基于IP的虚拟服务器
虚拟用户,结合数据库的用户验证
每个用户独立配置文件
速率限制
IPV6支持
支持SSL加密传输
……
vsftpd的安全性主要体现在三个方面:进程分离,处理不同的任务进程彼此是独立运行的;进程运行时均以最小权限运行;多数进程都使用chroot进行了禁锢,防止客户访问访问非法共享目录,这里的chroot是改变根的一种技术。
以下站点一直在使用vsftpd(这仅仅是很少很少的一部分站点)
ftp.redhat.com
ftp.suse.com
ftp.debian.org
ftp.openbsd.org
ftp.freebsd.org
ftp.gnu.org
ftp.gnome.org
ftp.kde.org
ftp.kernel.org
rpmfind.net
ftp.linux.org.uk
ftp.gimp.org
ftp-stud.fht-esslingen.de
gd.tuwien.ac.at
ftp.sunet.se
ftp.ximian.com
ftp.engardelinux.org
ftp.sunsite.org.uk
ftp.isc.org
FTP的两种工作方式
主动模式(active mode):传输数据时,服务器会主动连接客户端
第一步:客户端随机开启大于1024的A端口与服务器的21端口建立连接通道,通道建
立后,客户端随时可以通过该通道发送上传下载命令;
第二步:当客户端需要与服务器进行数据传输时,客户端会再开启一个大于1024的随机端口B,并将B端口号通过之前的命令通道传送给服务器的21号端口;
第三步:服务器获取到客户端的第二个端口后通过20号端口主动连接客户端的该端口,通过三次握手后,完成服务器与客户端数据通道的建立,所有的数据均通过这个数据通道进行传输。
被动模式(passive mode): 传输数据时,客户端主动连接服务器
第一步:FTP服务器端口大于1024的A端口与服务器的21号端口建立连接通道;
第二步:当客户端需要与服务器进行数据传输时,客户端从命令通道发送数据请求要求上传下载数据;
第三步:服务器收到数据请求后会随机开启一个端口B,并通过命令通道发送这个端口信息给客户端;
第四步:客户端收到服务器发过来的数据端口B的信息后,将在客户端本地开启一个随机端口C,此时客户端再主动通过主机的C端口号与服务器的B端口进行连接,通过三次握手完成后,最后进行数据传输。
总而言之,FTP协议需要多个端口才能完成工作,其中一个端口用来命令传输(指令端口),一个端口用来数据传输(数据端口),所以平常大家在使用FTP客户端工具传数据给服务器的时候,如果能连上,不能传输,请尝试更换你的连接模式。
vsftp安装配置
[root@ex01 ~]# yum -y install vsftpd
[root@ex01 ~]# chkconfig vsftpd on
[root@ex01 ~]# service vsftpd start
VSFTPD的核心文件和目录:
/etc/pam.d/vsftpd --基于PAM认证的vsftpd验证配置文件
/etc/logrotate.d/vsftpd --日志轮转备份配置文件
/etc/rc.d/init.d/vsftpd --vsftpd启动脚本,供server调用
/etc/vsftpd --vsftpd的主目录
/etc/vsftpd/ftpusers --默认的黑名单
/etc/vsftpd/user_list --可以通过主配置设置该文件为黑(白)名单
/etc/vsftpd/vsftpd.conf --vsftpd主配置文件
/var/ftp --vsftpd默认共享目录
主配置文件参数解析
Anonymous_enable=yes --允许匿名登陆
Dirmessage_enable=yes --切换目录时,显示目录下.message的内容
Local_umask=022 --FTP上本地的文件权限,默认是077
Connect_form_port_20=yes --启用FTP数据端口的数据连接
Xferlog_enable=yes --激活上传和下传的日志
Xferlog_std_format=yes --使用标准的日志格式
Ftpd_banner=XXXXX --显示欢迎信息
Pam_service_name=vsftpd --验证方式
Listen=yes --独立的VSFTPD服务器
Anon_upload_enable=yes --匿名用户上传权限
Anon_mkdir_write_enable=yes --创建目录的同时可以在此目录中上传文件
Write_enable=yes --本地用户写的权限
Anon_other_write_enable=yes --匿名帐号可以有删除的权限
Anon_world_readable_only=no --匿名用户浏览权限
Ascii_upload_enable=yes --启用上传的ASCII传输方式
Ascii_download_enable=yes --启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file --用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒) --用户会话空闲后10分钟
Data_connection_timeout=120(秒) --将数据连接空闲2分钟断
Accept_timeout=60(秒) --将客户端空闲1分钟后断
Connect_timeout=60(秒) --中断1分钟后又重新连接
Local_max_rate=50000(bite) --本地用户传输率50K
Anon_max_rate=30000(bite) --匿名用户传输率30K
Pasv_min_port=5000 --将客户端的数据连接端口改在5000—6000之间
Pasv_max_port=6000
Max_clients=200 --FTP的最大连接数
Max_per_ip=4 --每IP的最大连接数
Listen_port=5555 --从5555端口进行数据连接
Local_enble=yes --本地帐户能够登陆
Write_enable=no --本地帐户登陆后无权删除和修改文件
Chroot_local_user=yes --本地所有帐户都只能在自家目录
Chroot_list_enable=yes --文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes --在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/ 路径/文件名 --连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 --将虚拟服务绑定到某端口
Guest_enable=yes --虚拟用户可以登陆
Guest_username=所设的用户名 --将虚拟用户映射为本地用户
Chown_uploads=yes --改变上传文件的所有者为root
Chown_username=root
Deny_email_enable=yes --是否允许禁止匿名用户使用某些邮件地址
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=yes --服务器端用被动模式
User_config_dir=/任意指定的路径//任意文件目录 指定虚拟用户存放配置文件的路径、
本文介绍了FTP的主动模式和被动模式,详细讲解了VSFTPd的安装配置过程,包括核心文件、配置参数及其意义,如`vsftpd.conf`中的`Anonymous_enable`、`Anon_upload_enable`等,以及如何调整数据连接端口、限制连接数和速率控制等设置。
2258

被折叠的 条评论
为什么被折叠?



