本文简单介绍了一些vsftpd相对重要的一些注意点,是参考一些前辈的文章中总结的。
VSFTP
vsftpd 
是一个基于
GPL 
发布的类
UNIX 
系统上使用的
FTP 
服务器软件。其中的
vs 
是“
Very Secure
”的缩写,从此名称缩写可以看出,编制者的初衷就是代码的安全性。(安全
+
高速
+
稳定)
在稳定性方面:
vsftpd 
可以在单机(非集群)上支持
4000 
个以上的并发用户同时连接。
ftp.redhat.com 
的数据,
vsftpd 
可以支持
15000 
个并发用户。 
除了安全、高速、稳定之外,
vsftpd 
还具有如下的特性: 
Ø  支持基于
IP 
的虚拟
FTP 
服务器 
Ø  支持虚拟用户 
Ø  支持
PAM  
或  
xinetd / tcp_wrappers 
的认证方式 
Ø  支持两种运行方式:独立和
Xinetd
Ø  支持每个虚拟用具有独立的配置 
Ø  支持带宽限制等
 
在 主动模式 下,
FTP
客户端随机开启一个 大于
1024
的端口
N 向 服务器的
21
号端口发起连接 ,然后开放 N+1 号端口进行监听,并向服务器发出 PORT N+1 命令。服务器接收到命令后,会用其本地的 FTP
数据端口(通常是
20
来连接客户端指定的端口
N+1
,进行数据传输。 
    在 被动模式 下,
FTP 客 户端随机开启一个大于
1024
的端口
N
向服务器的
21
号端口发起连接,同时会开启
N+1
号端口。然后 向服务器发送
PASV
命令,通知服务器自己处于被动模式 。服务器收到命令后,会开放一个大于
1024
的端口 P 进行监听,然后用 PORT P 命令 通知客户端 , 自己的数据端口是
P 。客户端收到命令后,会通过
N+1
号端口连接服务器的端口
P
,然后在两个端口之间进行数据传输。
 
主动
FTP
   命令连接:客户端 
>1023
端口 
-> 
服务器 
21
端口
   数据连接:客户端 
>1023
端口 
<- 
服务器 
20
端口 
被动
FTP
   命令连接:客户端 
>1023
端口 
-> 
服务器 
21
端口
   数据连接:客户端 
>1023
端口 
-> 
服务器 
>1023
端口
    总的来说, 主动模式的
FTP
是指服务器主动连接客户端的数据端口 , 被动模式的
FTP
是指服务器被动地等待客户端连接自己的数据端口 。 
 
当 ftp 服务器在防火墙的后面的时候, ftp 服务器应该采用主动模式 , 这样可以限制端口访问。
 
配置文件所在位置:
[root@teacher vsftpd]# ls
ftpusers    user_list   vsftpd.conf  vsftpd_conf_migrate.sh
[root@teacher vsftpd]# pwd
/etc/vsftpd
[root@teacher vsftpd]#
ftpusers
:用于保存不允许登录本机
ftp
服务器的用户
user_list
:更灵活的对
vsftpd
设置用户访问控制
匿名用户使用的用户名: ftp 或者 anonymous
 
[root@teacher ~]#  finger ftp
Login: ftp                              Name: FTP User
Directory:  /var/ftp                      Shell:  /sbin/nologin
Never logged in.
No mail.
No Plan.
[root@teacher ~]#
 
在系统中,没有权限登录系统的用户一般也被称之为 虚拟用户 ;虚拟用户也是要写进
/etc /passwd 
中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录
SHELL 
的权限去掉了,所以他没有能力登录系统。
[root@localhost ~]# mount --bind [
原有的目录
] [
新目录
比如我的 
ftp 
的默认目录是
/var/ftp
,我想把
/mnt/wu
文件夹, 映射到
/var/ftp 
目录中 ,我就如下操作:
我们要先在
/var/ftp 
目录中建一个目录 
[root@localhost ~]#  mkdir /var/ftp/wu
然后执行 
mount 
命令 
[root@localhost ~]#  mount --bind /mnt/wu /var/ftp/wu
这样就好了