List of Top 20 Google dorks

What is google hacking?

Google hacking involves using advanced operators in the google search engine to locate the specific string of text withing search result. Google hacking doesn’t mean that we are going to hack into the google website, it means we use operators provided by google to narrow the result and to get the specific result as we want.
Generally we call these operators as google dorks.We use these dorks with the string that we want to search.

Google Dorks

We have lot of dorks which we will discuss in this post one by one.
  • inurl
  • site
  • intitle
  • allintitle
  • allinurl
  • cache
  • numrange
  • filetype or ext
  • link
  • inanchor
  • allintext
  • intext
  • *
  • **
  • .
  • |
  • +
  • -
Above is the list of Google dorks which can use to get the efficient search results or can be use as hacking purpose. We will discuss in the next post how use these dorks in hacking.

site

site dork restricts the results to the specified domain. We can use this dork to find all the pages and subdomains of the specified domain.
Example:   site:yahoo.com
As we can see we use site dork to find all pages and subdomain of yahoo.com.

inurl

inurl dork restricts the results to site whose URL contains all the specified phrase or word or string.
Example: inurl:admin
The above example we use admin string with inurl dork. It will show all the website whose URL contains “admin” word.

intitle

intitle restricts results to documents whose title contains the specified phrase or word or string.
Example: intitle:hacking
It will show you all the sites with the word hacking in the title.
you can copy and paste this example to google and see the result.

allintitle

allintitle is almost same as intitle with little difference. it will restricts results to document whose title containig all the specified phrases or collection or word. intitle can show the results that matched single word from phrase we typed.
Example: allintitle:hacking books
Example dork will show all the pages that have title ” hacking books”

allinurl

allinurl is same as inurl but with some difference. It restricts results to sites whose URL contains all the specified phrases, but iurl can show sites which contain even single word from the phrase.
Example: allinurl: admin login

cache

cache dork will show the cached version of the site or page of the specified site.
Example: cache: www.abc.com
filetype or ext
It will show all the site which contain document of the specified type.
Example: filetype:pdf    or  ext:pdf

link

It will restricts results to sites containing links to the specified location.
Example: link: yahoo.com
It will show result documents containing one or more links to www.yahoo.com

inanchor

It will restricts results to sites containing liks with the specified phrase in their descriptions. inanchore dork will show all the sites which contains links with specified word or phrase.
Example: inanchor:click
Example will show all the site which have links with the text “click”

intext

it will show all the result pages or sites which contains  the specified text or phrase in the text of site.
Example: intext:hacking
Example dork will show all the pages of site which contain hacking phrase in the text.

allintext

allintext is same as intext but it will show that results which contain all the text specified in the text of the page or site.
Example: allintext: hacking world
The above dork will show all the sites which contain the exact ” hacking world ” in the text of the site’s page.

"+"

+ is used in google hacking like we use in programming and maths. + in concatination operator which used to concat to strings.
Example : hello + world
The above will show all the results which contain hallo and world both words.

"|"

| is another operator which is used in google hacking. | means OR like logical operators.
When we use this operator search engine performs logical or operation.
Example: hello | world
This example will show all the site which contain ” hello”  or ” world”  or both of them.

"*"

* wild card for single word.
Example: fire * fox
The above dork will return documents containing the phrase like fire “anyword” fox
anyword means any thing like the, in , go, for etc.

Introduction to the Linux Operating System

What is an Operating System?

Every time you switch on your computer, you see a screen where you can perform different activities like write, browse the internet or watch a video. What is it that makes the computer hardware work like that? How does the processor on your computer know that you are asking it to run a mp3 file?
Well, it is the operating system or the kernel which does this work. A kernel is the program at the heart of any operating system that takes care of fundamental stuff, like letting hardware communicate with software

So, to work on your computer you need an Operating System(OS) .In fact,  you are using one as you read this on your computer. Now, you may have used popular OS's like Windows, Apple OS X but here we will learn what Linux is and what benefits it offers over other OS choices.

 What is Linux? Who created Linux?

Linux is an operating system or a kernel which germinated as an idea in the mind of young and bright Linus Torvalds when he was a computer science student. He used to work on the UNIX OS (a proprietary software), and thought that it needed improvements.
However, when his suggestions were rejected by the designers of UNIX, he thought of launching an OS which will be receptive to changes, modifications suggested by its users.

The Lone Kernel & the early days

So Linus devised a Kernel named Linux in 1991. Though he would need programs like File Manager, Document Editors, Audio -Video programs to run on it. Something as you have a cone but no ice-cream on top J.
As time passed by, he  collaborated with other programmers in places like MIT and applications for Linux started to appear. So around 1991, a working Linux operating system with some applications was officially launched and this was the start of one of the most loved and open-source OS options available today.
The earlier versions of Linux were not so user friendly as they were in use by computer programmers andLinus Torvalds never had it in mind to commercialize his product.
This definitely curbed the Linux's popularity as other commercially oriented Operating System Windows got famous. Nonetheless, the open-source aspect of the Linux operating system made it more robust.

Linux gets its due attention


The main advantage of Linux was that programmers were able to use the Linux Kernel in order to design their own custom operating systems. With time, a new range of user-friendly OS's stormed the computer world. Now, Linux is one of most popular and widely used Kernel, and it is the backbone of popular operating systems like Debian, Knoppix, Ubuntu, and Fedora. Nevertheless, the list does not end here as there are thousands of OS's based on Linux which offer a variety of functions to the users.

The benefits of using Linux

Linux now enjoys popularity at its prime and it's famous among programmers as well as regular computer users around the world. Its main benefits are -
It offers a free operating system. You do not have to shell hundreds of dollars to get the OS like Windows!

  • Being open-source, anyone with programming knowledge can modify it.
  • The Linux operating systems now offer millions of programs/applications to choose from, most of them free!
  • Once you have Linux installed you no longer need an antivirus! Linux is a highly secure system. More so , there is a global development community constantly looking at ways to enhance its security. With each upgrade, the OS becomes more secure and robust
  • Linux is the OS of choice for Server environments due to its stability and reliability (Mega-companies like and Google use Linux for their Servers). A Linux based server could run non-stop without a reboot for years on end.

I am asked to Learn Unix? Then why Linux?

UNIX is called the mother of operating systems which laid out the foundation to Linux. Unix is designed mainly for mainframes and is  in enterprises and universities  .While Linux is fast becoming a household name for computer users , developers and server environment. You may have to pay for a Unix kernel while in Linux it is free.
But, the commands used on both the operating systems are usually the same. There is not much difference between UNIX and Linux. Though they might seem different, at core, they are essentially the same. Since, Linux is a clone of UNIX.  So learning one is same as learning another.

Chapter:

20 Basic concept of ethical hacking-Haktuts


The Comprehensive Guide to Ethical Hacking


1:Phase of pentesting


PenTest, like forensics, is almost as much an art as it is a science – you can only be taught so far, technical techniques and tools are all very well, but you really need a mind that can think sideways and approach a task from as many angles as possible

2:Footprinting


Tools and tricks to get the information about the computer,ip and mac address,related user and system.

3:Scanning


Before starting the pentesting,pentester must have some information about network and system.so pentester scan the entire network with some tool like nMap,zenmap,ping and hping etc

4:Enumeration


During the enumeration phase, possible entry points into the tested systems are identified. The information collected during the reconnaissance phase is put to use.

5:System Hacking


System hacking login to system without credentials not only bypass the credentials but also you can work in system as root user by privilege escalation.

6:Trojans


It is a generally non-self-replicating type of malware program containing malicious code.A Trojan often acts as a backdoor, contacting a controller which can then have unauthorized access to the affected computer.While Trojans and backdoors are not easily detectable by themselves, computers may appear to run slower due to heavy processor or network usage

7:viruses and worms


A computer virus attaches itself to a program or file enabling it to spread from one computer to another, leaving infections .a worm is its capability to replicate itself on your system, so rather than your computer sending out a single worm, it could send out hundreds or thousands of copies of itself, creating a huge devastating effect.

8:Sniffing Traffic


It is a program that monitors and analyzes network traffic, detecting and finding problems.Various technique and tool is used for sniffing like kali linux MITM attack,tshark,urlsnarf etc

9:Social engineering


In this technique,ethical hacker create the phishing page of website to obtain credential of users.

10:Denial of service


A DoS attack generally consists of efforts to temporarily interrupt or suspend or down the services of a host connected to the Internet.

11:Session Hijacking


It is used to gain unauthorized access to information or services in a computer system.Session hijacking is also known as man in the middle attack.This can be performed with the help of kali linux which is based on debian linux.

12:Hacking Web Servers


Web server can be hacked by varios ways like Denial of Service Attacks,Domain Name System Hijacking,Phishing etc.List of tool to hack web server are Metasploit,Mpack,Zeus etc


13:Webapplication


Webapplication is used to intercept the proxy,as an intruder,as an repeater etc after hacking the website webapplication is used to upload injecton and script in website like populer c99 injection.

14:SQL Injection


SQL injection is used to insert the qwery and confuse the database of system to gain unauthorised access.Hackers use sql injection to extract the data from website without credential Eg ‘or’‘=’

15:Wireless


In this user get to know about the type of wireless interface and how to expoit the different type of security encryption like wep ,wpa,wpa2 etc

16:Mobile hacking


users know ,how to sniff the nework using mobile ,hack another user smartphone and extract the data from smartphone,how to root the smartphone etc.


17:IDS,Firewell and Honeypots


IDS stands for Intrusion detection system.IDS  is a device or software application that monitors network or system activities.Firewell is used to set rule to inbound and outbound traffic.There are two types of firewell software and hardware.software firewell is cheap as compare to hardware firewell.

18:Buffer Overflows


A buffer overflow condition exists when a program attempts to put more data in a buffer than it can hold.Normally this is due to the vulnerability in drivers of system as when driver start performing improperly then system get crashed and blue screen appear on the screen.

19:Cryptography


Cryptography is the study and application of techniques that hide the real meaning of information by transforming it into non human readable formats and vice versa.The process of transforming information into non human readable form is called encryption.
The process of reversing encryption is called decryption.

Decryption is done using a secret key which is only known to the legitimate recipients of the information

How to select the bandwidth for hosting of website

How to select the bandwidth for hosting of website

Bandwidth


Most hosting companies offer a variety of bandwidth options in their plans. So exactly what is bandwidth as it relates to web hosting? Put simply, bandwidth is the amount of traffic that is allowed to occur between your web site and the rest of the internet. The amount of bandwidth a hosting company can provide is determined by their network connections, both internal to their data center and external to the public internet.

Network Connectivity


The internet, in the most simplest of terms, is a group of millions of computers connected by networks. These connections within the internet can be large or small depending upon the cabling and equipment that is used at a particular internet location. It is the size of each network connection that determines how much bandwidth is available. For example, if you use a DSL connection to connect to the internet, you have 1.54 Mega bits (Mb) of bandwidth. Bandwidth therefore is measured in bits (a single 0 or 1). Bits are grouped in bytes which form words, text, and other information that is transferred between your computer and the internet.

If you have a DSL connection to the internet, you have dedicated bandwidth between your computer and your internet provider. But your internet provider may have thousands of DSL connections to their location. All of these connection aggregate at your internet provider who then has their own dedicated connection to the internet (or multiple connections) which is much larger than your single connection. They must have enough bandwidth to serve your computing needs as well as all of their other customers. So while you have a 1.54Mb connection to your internet provider, your internet provider may have a 255Mb connection to the internet so it can accommodate your needs and up to 166 other users (255/1.54).

Traffic


A very simple analogy to use to understand bandwidth and traffic is to think of highways and cars. Bandwidth is the number of lanes on the highway and traffic is the number of cars on the highway. If you are the only car on a highway, you can travel very quickly. If you are stuck in the middle of rush hour, you may travel very slowly since all of the lanes are being used up.

Traffic is simply the number of bits that are transferred on network connections. It is easiest to understand traffic using examples. One Gigabyte is 2 to the 30th power (1,073,741,824) bytes. One gigabyte is equal to 1,024 megabytes. To put this in perspective, it takes one byte to store one character. Imagine 100 file cabinets in a building, each of these cabinets holds 1000 folders. Each folder has 100 papers. Each paper contains 100 characters - A GB is all the characters in the building. An MP3 song is about 4MB, the same song in wav format is about 40MB, a full length movie can be 800MB to 1000MB (1000MB = 1GB).

If you were to transfer this MP3 song from a web site to your computer, you would create 4MB of traffic between the web site you are downloading from and your computer. Depending upon the network connection between the web site and the internet, the transfer may occur very quickly, or it could take time if other people are also downloading files at the same time. If, for example, the web site you download from has a 10MB connection to the internet, and you are the only person accessing that web site to download your MP3, your 4MB file will be the only traffic on that web site. However, if three people are all downloading that same MP at the same time, 12MB (3 x 4MB) of traffic has been created. Because in this example, the host only has 10MB of bandwidth, someone will have to wait. The network equipment at the hosting company will cycle through each person downloading the file and transfer a small portion at a time so each person's file transfer can take place, but the transfer for everyone downloading the file will be slower. If 100 people all came to the site and downloaded the MP3 at the same time, the transfers would be extremely slow. If the host wanted to decrease the time it took to download files simultaneously, it could increase the bandwidth of their internet connection (at a cost due to upgrading equipment).

Hosting Bandwidth


In the example above, we discussed traffic in terms of downloading an MP3 file. However, each time you visit a web site, you are creating traffic, because in order to view that web page on your computer, the web page is first downloaded to your computer (between the web site and you) which is then displayed using your browser software (Internet Explorer, Netscape, etc.) . The page itself is simply a file that creates traffic just like the MP3 file in the example above (however, a web page is usually much smaller than a music file).

A web page may be very small or large depending upon the amount of text and the number and quality of images integrated within the web page. For example, the home page for CNN.com is about 200KB (200 Kilobytes = 200,000 bytes = 1,600,000 bits). This is typically large for a web page. In comparison, Yahoo's home page is about 70KB.

How Much Bandwidth Is Enough?


It depends (don't you hate that answer). But in truth, it does. Since bandwidth is a significant determinant of hosting plan prices, you should take time to determine just how much is right for you. Almost all hosting plans have bandwidth requirements measured in months, so you need to estimate the amount of bandwidth that will be required by your site on a monthly basis

If you do not intend to provide file download capability from your site, the formula for calculating bandwidth is fairly straightforward:

Average Daily Visitors x Average Page Views x Average Page Size x 31 x Fudge Factor

If you intend to allow people to download files from your site, your bandwidth calculation should be:

[(Average Daily Visitors x Average Page Views x Average Page Size) +(Average Daily File Downloads x Average File Size)] x 31 x Fudge Factor

Let us examine each item in the formula:


Average Daily Visitors - The number of people you expect to visit your site, on average, each day. Depending upon how you market your site, this number could be from 1 to 1,000,000.

Average Page Views - On average, the number of web pages you expect a person to view. If you have 50 web pages in your web site, an average person may only view 5 of those pages each time they visit.

Average Page Size - The average size of your web pages, in Kilobytes (KB). If you have already designed your site, you can calculate this directly.

Average Daily File Downloads - The number of downloads you expect to occur on your site. This is a function of the numbers of visitors and how many times a visitor downloads a file, on average, each day.

Average File Size - Average file size of files that are downloadable from your site. Similar to your web pages, if you already know which files can be downloaded, you can calculate this directly.

Fudge Factor - A number greater than 1. Using 1.5 would be safe, which assumes that your estimate is off by 50%. However, if you were very unsure, you could use 2 or 3 to ensure that your bandwidth requirements are more than met.

Usually, hosting plans offer bandwidth in terms of Gigabytes (GB) per month. This is why our formula takes daily averages and multiplies them by 31.

Summary


Most personal or small business sites will not need more than 1GB of bandwidth per month. If you have a web site that is composed of static web pages and you expect little traffic to your site on a daily basis, go with a low bandwidth plan. If you go over the amount of bandwidth allocated in your plan, your hosting company could charge you over usage fees, so if you think the traffic to your site will be significant, you may want to go through the calculations above to estimate the amount of bandwidth required in a hosting plan.

Linux command from basic to advance for beginners

Linux command from basic to advance for beginners


a
apropos- Search Help manual pages (man -k)
apt-get- Search for and install software packages (Debian/Ubuntu)
aptitude- Search for and install software packages (Debian/Ubuntu)
aspell- Spell Checker
awk -Find and Replace text, database sort/validate/index
b
basename- Strip directory and suffix from filenames
bash- GNU Bourne-Again SHell
bc -Arbitrary precision calculator language
bg- Send to background
break- Exit from a loop •
builtin- Run a shell builtin
bzip2- Compress or decompress named file(s)
c
cal- Display a calendar
case- Conditionally perform a command
cat- Concatenate and print (display) the content of files
cd- Change Directory
cfdisk -Partition table manipulator for Linux
chgrp -Change group ownership
chmod- Change access permissions
chown- Change file owner and group
chroot- Run a command with a different root directory
chkconfig- System services (runlevel)
cksum- Print CRC checksum and byte counts
clear- Clear terminal screen
cmp- Compare two files
comm- Compare two sorted files line by line
command- Run a command - ignoring shell functions •
continue- Resume the next iteration of a loop •
cp -Copy one or more files to another location
cron- Daemon to execute scheduled commands
crontab- Schedule a command to run at a later time
csplit- Split a file into context-determined pieces
cut -Divide a file into several parts
d
date- Display or change the date & time
dc- Desk Calculator
dd- Convert and copy a file, write disk headers, boot records
ddrescue- Data recovery tool
declare- Declare variables and give them attributes •
df -Display free disk space
diff -Display the differences between two files
diff3- Show differences among three files
dig- DNS lookup
dir- Briefly list directory contents
dircolors- Colour setup for `ls'
dirname- Convert a full pathname to just a path
dirs- Display list of remembered directories
dmesg- Print kernel & driver messages
du- Estimate file space usage
e
echo -Display message on screen •
egrep -Search file(s) for lines that match an extended expression
eject- Eject removable media
enable -Enable and disable builtin shell commands •
env- Environment variables
ethtool- Ethernet card settings
eval- Evaluate several commands/arguments
exec- Execute a command
exit- Exit the shell
expect -Automate arbitrary applications accessed over a terminal
expand- Convert tabs to spaces
export -Set an environment variable
expr- Evaluate expressions
f
false- Do nothing, unsuccessfully
fdformat- Low-level format a floppy disk
fdisk- Partition table manipulator for Linux
fg- Send job to foreground
fgrep- Search file(s) for lines that match a fixed string
file- Determine file type
find- Search for files that meet a desired criteria
fmt- Reformat paragraph text
fold- Wrap text to fit a specified width.
for- Expand words, and execute commands
format- Format disks or tapes
free- Display memory usage
fsck File system consistency check and repair
ftp File Transfer Protocol
function Define Function Macros
fuser Identify/kill the process that is accessing a file
g
gawk- Find and Replace text within file(s)
getopts -Parse positional parameters
grep- Search file(s) for lines that match a given pattern
groupadd- Add a user security group
groupdel -Delete a group
groupmod- Modify a group
groups- Print group names a user is in
gzip- Compress or decompress named file(s)
h
hash- Remember the full pathname of a name argument
head- Output the first part of file(s)
help- Display help for a built-in command •
history -Command History
hostname- Print or set system name
i
iconv- Convert the character set of a file
id- Print user and group id's
if- Conditionally perform a command
ifconfig- Configure a network interface
ifdown- Stop a network interface
ifup- Start a network interface up
import- Capture an X server screen and save the image to file
install- Copy files and set attributes
j
jobs- List active jobs •
join- Join lines on a common field
k
kill- Stop a process from running
killall- Kill processes by name
l
less- Display output one screen at a time
let- Perform arithmetic on shell variables •
ln -Create a symbolic link to a file
local- Create variables •
locate- Find files
logname- Print current login name
logout -Exit a login shell •
look- Display lines beginning with a given string
lpc- Line printer control program
lpr- Off line print
lprint- Print a file
lprintd- Abort a print job
lprintq- List the print queue
lprm- Remove jobs from the print queue
ls- List information about file(s)
lsof- List open files
m
make Recompile a group of programs
man Help manual
mkdir Create new folder(s)
mkfifo- Make FIFOs (named pipes)
mkisofs- Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod- Make block or character special files
more- Display output one screen at a time
mount -Mount a file system
mtools- Manipulate MS-DOS files
mt-r Network diagnostics (traceroute/ping)
mv- Move or rename files or directories
mmv- Mass Move and rename (files)
n
netstat- Networking information
nice- Set the priority of a command or job
nl- Number lines and write files
nohup- Run a command immune to hangups
notify-send Send desktop notifications
nslookup- Query Internet name servers interactively
o
open- Open a file in its default application
op- Operator access
p
passwd- Modify a user password
paste- Merge lines of files
pathchk- Check file name portability
ping- Test a network connection
pkill -Stop processes from running
popd- Restore the previous value of the current directory
pr -Prepare files for printing
printcap- Printer capability database
printenv -Print environment variables
printf -Format and print data •
ps- Process status
pushd -Save and then change the current directory
pwd- Print Working Directory
q
quota- Display disk usage and limits
quotacheck- Scan a file system for disk usage
quotactl- Set disk quotas
r
ram ram disk device
rcp -Copy files between two machines
read- Read a line from standard input •
readarray- Read from stdin into an array variable •
readonly -Mark variables/functions as readonly
reboot- Reboot the system
rename- Rename files
renice- Alter priority of running processes
remsync- Synchronize remote files via email
return- Exit a shell function
rev -Reverse lines of a file
rm- Remove files
rmdir- Remove folder(s)
rsync- Remote file copy (Synchronize file trees)
s
screen -Multiplex terminal, run remote shells via ssh
scp- Secure copy (remote file copy)
sdiff- Merge two files interactively
sed- Stream Editor
select- Accept keyboard input
seq- Print numeric sequences
set- Manipulate shell variables and functions
sftp -Secure File Transfer Program
shift- Shift positional parameters
shopt- Shell Options
shutdown- Shutdown or restart linux
sleep- Delay for a specified time
slocate- Find files
sort- Sort text files
source- Run commands from a file `.'
split- Split a file into fixed-size pieces
ssh- Secure Shell client (remote login program)
strace -Trace system calls and signals
su- Substitute user identity
sudo- Execute a command as another user
sum- Print a checksum for a file
suspend- Suspend execution of this shell •
symlink- Make a new name for a file
sync- Synchronize data on disk with memory
t
tail- Output the last part of file
tar- Tape ARchiver
tee- Redirect output to multiple files
test- Evaluate a conditional expression
time- Measure Program running time
times- User and system times
touch- Change file timestamps
top- List processes running on the system
traceroute- Trace Route to Host
trap -Run a command when a signal is set(bourne)
tr -Translate, squeeze, and/or delete characters
true- Do nothing, successfully
tsort- Topological sort
tty -Print filename of terminal on stdin
type- Describe a command •
u
ulimit- Limit user resources •
umask- Users file creation mask
umount -Unmount a device
unalias -Remove an alias •
uname -Print system information
unexpand- Convert spaces to tabs
uniq Uniquify- files
units -Convert units from one scale to another
unset- Remove variable or function names
unshar -Unpack shell archive scripts
until Execute commands (until error)
uptime -Show uptime
useradd- Create new user account
userdel- Delete a user account
usermod- Modify user account
users- List users currently logged in
uuencode -Encode a binary file
uudecode- Decode a file created by uuencode
v
v- Verbosely list directory contents (`ls -l -b')
vdir- Verbosely list directory contents (`ls -l -b')
vi -Text Editor
vmstat- Report virtual memory statistics
w
wait Wait for a process to complete •
watch- Execute/display a program periodically
wc -Print byte, word, and line counts
whereis- Search the user's $path, man pages and source files for a program
which- Search the user's $path for a program file
while- Execute commands
who- Print all usernames currently logged in
whoami- Print the current user id and name (`id -un')
wget -Retrieve web pages or files via HTTP, HTTPS or FTP
write -Send a message to another user
x
xargs- Execute utility, passing constructed argument list(s)
xdg-open- Open a file or URL in the user's preferred application.

How to setup the FTP

Well, since many of us have always wondered this, here it is. Long and drawn out. Also, before attempting this, realize one thing; You will have to give up your time, effort, bandwidth, and security to have a quality ftp server.

That being said, here it goes. First of all, find out if your IP (Internet Protocol) is static (not changing) or dynamic (changes everytime you log on). To do this, first consider the fact if you have a dial up modem. If you do, chances are about 999 999 out of 1 000 000 that your IP is dynamic. To make it static, just go to a place like h*tp://www.myftp.org/ to register for a static ip address.

You'll then need to get your IP. This can be done by doing this:
Going to Start -> Run -> winipcfg or www.ask.com and asking 'What is my IP?'

After doing so, you'll need to download an FTP server client. Personally, I'd recommend G6 FTP Server, Serv-U FTPor Bullitproof v2.15 all three of which are extremely reliable, and the norm of the ftp world.
You can download them on this site: h*tp://www.liaokai.com/softw_en/d_index.htm

First, you'll have to set up your ftp. For this guide, I will use step-by-step instructions for G6. First, you'll have to go into 'Setup -> General'. From here, type in your port # (default is 21). I recommend something unique, or something a bit larger (ex: 3069). If you want to, check the number of max users (this sets the amount of simultaneous maximum users on your server at once performing actions - The more on at once, the slower the connection and vice versa).

The below options are then chooseable:
-Launch with windows
-Activate FTP Server on Start-up
-Put into tray on startup
-Allow multiple instances
-Show "Loading..." status at startup
-Scan drive(s) at startup
-Confirm exit

You can do what you want with these, as they are pretty self explanatory. The scan drive feature is nice, as is the 2nd and the last option. From here, click the 'options' text on the left column.

To protect your server, you should check 'login check' and 'password check', 'Show relative path (a must!)', and any other options you feel you'll need. After doing so, click the 'advanced' text in the left column. You should then leave the buffer size on the default (unless of course you know what you're doing ), and then allow the type of ftp you want.

Uploading and downloading is usually good, but it's up to you if you want to allow uploads and/or downloads. For the server priority, that will determine how much conventional memory will be used and how much 'effort' will go into making your server run smoothly.

Anti-hammering is also good, as it prevents people from slowing down your speed. From here, click 'Log Options' from the left column. If you would like to see and record every single command and clutter up your screen, leave the defaults.

But, if you would like to see what is going on with the lowest possible space taken, click 'Screen' in the top column. You should then check off 'Log successful logins', and all of the options in the client directry, except 'Log directory changes'. After doing so, click 'Ok' in the bottom left corner.

You will then have to go into 'Setup -> User Accounts' (or ctrl & u). From here, you should click on the right most column, and right click. Choose 'Add', and choose the username(s) you would like people to have access to.

After giving a name (ex: themoonlanding), you will have to give them a set password in the bottom column (ex: wasfaked). For the 'Home IP' directory, (if you registered with a static server, check 'All IP Homes'. If your IP is static by default, choose your IP from the list. You will then have to right click in the very center column, and choose 'Add'.

From here, you will have to set the directory you want the people to have access to. After choosing the directory, I suggest you choose the options 'Read', 'List', and 'Subdirs', unless of course you know what you're doing . After doing so, make an 'upload' folder in the directory, and choose to 'add' this folder seperately to the center column. Choose 'write', 'append', 'make', 'list', and 'subdirs'. This will allow them to upload only to specific folders (your upload folder).

Now click on 'Miscellaneous' from the left column. Choose 'enable account', your time-out (how long it takes for people to remain idle before you automatically kick them off), the maximum number of users for this name, the maximum number of connections allowed simultaneously for one ip address, show relative path (a must!), and any other things at the bottom you'd like to have. Now click 'Ok'.
**Requested**


From this main menu, click the little boxing glove icon in the top corner, and right click and unchoose the hit-o-meter for both uploads and downloads (with this you can monitor IP activity). Now click the lightning bolt, and your server is now up and running.

Post your ftp info, like this:

213.10.93.141 (or something else, such as: 'f*p://example.getmyip.com')

User: *** (The username of the client)

Pass: *** (The password)

Port: *** (The port number you chose)

So make a FTP and join the FTP section


Listing The Contents Of A Ftp:


Listing the content of a FTP is very simple.
You will need FTP Content Maker, which can be downloaded from here:
ht*p://www.etplanet.com/download/application/FTP%20Content%20Maker%201.02.zip

1. Put in the IP of the server. Do not put "ftp://" or a "/" because it will not work if you do so.
2. Put in the port. If the port is the default number, 21, you do not have to enter it.
3. Put in the username and password in the appropriate fields. If the login is anonymous, you do not have to enter it.
4. If you want to list a specific directory of the FTP, place it in the directory field. Otherwise, do not enter anything in the directory field.
5. Click "Take the List!"
6. After the list has been taken, click the UBB output tab, and copy and paste to wherever you want it.


If FTP Content Maker is not working, it is probably because the server does not utilize Serv-U Software.

If you get this error message:
StatusCode = 550
LastResponse was : 'Unable to open local file test-ftp'
Error = 550 (Unable to open local file test-ftp)
Error = Unable to open local file test-ftp = 550
Close and restart FTP Content Maker, then try again.

Error messages:


110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm Where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "=").
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Command okay.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message. On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
220 Service ready for new user.
221 Service closing control connection. Logged out if appropriate.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action okay, completed.
257 "PATHNAME" created.
331 User name okay, need password.
332 Need account for login.
350 Requested file action pending further information.
421 Too many users logged to the same account
425 Can't open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken. File unavailable (e.g., file busy).
451 Requested action aborted: local error in processing.
452 Requested action not taken. Insufficient storage space in system.
500 Syntax error, command unrecognized. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted: page type unknown.
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
553 Requested action not taken. File name not allowed.


 Active FTP vs. Passive FTP, a Definitive Explanation

Introduction

One of the most commonly seen questions when dealing with firewalls and other Internet connectivity issues is the difference between active and passive FTP and how best to support either or both of them. Hopefully the following text will help to clear up some of the confusion over how to support FTP in a firewalled environment.

This may not be the definitive explanation, as the title claims, however, I've heard enough good feedback and seen this document linked in enough places to know that quite a few people have found it to be useful. I am always looking for ways to improve things though, and if you find something that is not quite clear or needs more explanation, please let me know! Recent additions to this document include the examples of both active and passive command line FTP sessions. These session examples should help make things a bit clearer. They also provide a nice picture into what goes on behind the scenes during an FTP session. Now, on to the information...

The Basics

FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a 'data' port and a 'command' port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20.

Active FTP


In active mode FTP the client connects from a random unprivileged port (N > 1024) to the FTP server's command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client's specified data port from its local data port, which is port 20.

From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened:

FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's port 20 to ports > 1024 (Server initiates data connection to client's data port)
FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data port)

In step 1, the client's command port contacts the server's command port and sends the command PORT 1027. The server then sends an ACK back to the client's command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4.

The main problem with active mode FTP actually falls on the client side. The FTP client doesn't make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked.

Active FTP Example

Below is an actual example of an active FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

There are a few interesting things to consider about this dialog. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server. We will see the opposite behavior when we use passive FTP. While we are on the subject, a quick note about the format of the PORT command. As you can see in the example below it is formatted as a series of six numbers separated by commas. The first four octets are the IP address while the second two octets comprise the port that will be used for the data connection. To find the actual port multiply the fifth octet by 256 and then add the sixth octet to the total. Thus in the example below the port number is ( (14*256) + 178), or 3762. A quick check with netstat should confirm this information.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

Passive FTP


In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode.

In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1024 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1024) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data.

From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened:

FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's ports > 1024 from anywhere (Client initiates data connection to random port specified by server)
FTP server's ports > 1024 to remote ports > 1024 (Server sends ACKs (and data) to client's data port)

In step 1, the client contacts the server on the command port and issues the PASV command. The server then replies in step 2 with PORT 2024, telling the client which port it is listening to for the data connection. In step 3 the client then initiates the data connection from its data port to the specified server data port. Finally, the server sends back an ACK in step 4 to the client's data port.

While passive mode FTP solves many of the problems from the client side, it opens up a whole range of problems on the server side. The biggest issue is the need to allow any remote connection to high numbered ports on the server. Fortunately, many FTP daemons, including the popular WU-FTPD allow the administrator to specify a range of ports which the FTP server will use. See Appendix 1 for more information.

The second issue involves supporting and troubleshooting clients which do (or do not) support passive mode. As an example, the command line FTP utility provided with Solaris does not support passive mode, necessitating a third-party FTP client, such as ncftp.

With the massive popularity of the World Wide Web, many people prefer to use their web browser as an FTP client. Most browsers only support passive mode when accessing ftp:// URLs. This can either be good or bad depending on what the servers and firewalls are configured to support.

Passive FTP Example

Below is an actual example of a passive FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

Notice the difference in the PORT command in this example as opposed to the active FTP example. Here, we see a port being opened on the server (192.168.150.90) system, rather than the client. See the discussion about the format of the PORT command above, in the Active FTP Example section.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

Summary

The following chart should help admins remember how each FTP mode works:

Active FTP :
command : client >1024 -> server 21
data : client >1024 <- server 20

Passive FTP :
command : client >1024 -> server 21
data : client >1024 -> server >1024

A quick summary of the pros and cons of active vs. passive FTP is also in order:

Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.

Luckily, there is somewhat of a compromise. Since admins running FTP servers will need to make their servers accessible to the greatest number of clients, they will almost certainly need to support passive FTP. The exposure of high level ports on the server can be minimized by specifying a limited port range for the FTP server to use. Thus, everything except for this range of ports can be firewalled on the server side. While this doesn't eliminate all risk to the server, it decreases it tremendously.