服务器端需要的包:vsftpd
掌管FTP的“三把锁”:目录权限,SELinux,配置文件(/etc/vsftpd/vsftpd.conf)
通常不用root用户登录ftp,需要建立一个ftpadmin账户来管理ftp服务器。需要将ftpadmin账户的主目录改为:/var/ftp,然后更改/var/ftp/pub的所有者为ftpadmin。
可以建立一个incoming的目录来供匿名者上传文件,incoming目录权限设置为777。通常情况下最好不要让匿名者上传文件,有可能造成严重后果!
SELinux的一些注意事项:
配置文件:/etc/selinux/config
一些SELinux的选项对vsftpd服务有很多限制,例如:
普通账号不能登录到主目录,匿名者不可上传等。
获得关于vsftpd的SELinux选项信息:
getsebool -a | grep ftp
设置选项:
setsebool -P ftpd_disable_trans on(1) ,即解除关于ftp服务的SELinux的所有限制。
P为永久生效的意思,permanent
配置选项:(/etc/vsftpd/vsftpd.conf)
(1)anonymous_enable:默认YES
是否允许匿名用户登录
(2)local_enable:默认YES
是否支持系统账户
(3)write_enable:默认YES
是否支持系统用户上传
(4)local_umask:默认022
系统用户上传文件或目录的掩码,即确定默认权限
(5)anon_umask:默认077
+配置文件中无该项,若需设置,必须手工添加。
匿名用户上传默认掩码,一般设置为022
(6)anon_upload_enable:默认NO
是否支持匿名上传
(7)anon_mkdir_enable:默认NO
是否允许匿名用户上传文件夹
(8)anon_other_write_enable:默认NO
是否允许匿名用户对上传目录中的文件进行改名或删除
(9)no_anon_password:默认NO
当设置为YES时,表示不需要为anonymous输入任何密码,可直接进入
(10)dirmessage_enable:默认YES
表示使用者进入摸个目录时,会提示信息,显示内容的预设文件时.message
(11)message_file:默认.message
例如:message_file=/var/ftp/.message,(10)会调用(11)的内容
(12)data_connection_timeout:
如果服务器与客户端数据连接已完成,但可能由于线路的问题导致规定时间内(秒)无法顺利完成数据的传送,那么客户端就会被vsftpd强制断开
(13)idle_session_timeout:
如果使用者在规定时间内(秒)没有任何命令动作,则强制与服务器断开
(14)ftpd_banner:
当登录FTP时,会显示欢迎蚊子/说明
(15)banner_file:
制定某个纯文本文档作为显示内容
(16)listen:默认YES
表示以standalone的方式启动
(17)listen_port:
+配置文件无该项,需要手工添加
(18)max_clients:
+配置文件无该项,需要手工添加
最大客户机数量,默认无限制
(19)local_max_rate:
+配置文件无该项,需要手工添加
系统账户最大下载速率(单位:字节)
(20)anon_max_rate:
同(19)
(21)max_per_ip:
+配置文件无该项,需要手工添加
每个IP最大下载进程数,控制连接IP数
有关安全的一些重要选项:
(1)vsftpd的日志功能
(A)xferlog_enable:默认YES
(B)xferlog_file:日志文件一般建立在/var/log下
(C)xferlog_std_format:默认YES
与wu-ftp相同的记录格式
(2)chroot:避免使用者进入到别的目录区,将工作范围局限在自己的主目录下。
注:匿名账户被chroot到/var/ftp
chroot的配置:
(a)chroot_local_user:预设为NO
(b)chroot_list_enable:预设为NO
(c)chroot_list_file:一行一个账号
若a为yes,b为no,系统账户都被chroot,与chroot_list_file内容无关;
若a为no,b为yes,则未被写入chroot_list_file的账户没被chroot,写入chroot_list_file的账则被chroot
若a为yes,b为yes,则所有的系统账户都被chroot,只有被写入chroot_list_file的系统账户,未被chroot
(3)tcp_wrappers默认YES,即ftp支持tcp_wrappers,可通过/etc/hosts.deny和/etc/hosts.allow设置访问范围。
(4)PAM ---Pluggable Authentication Module(可插拔验证模块)
(简写)
/etc/vsftpd/ftpusers的名单,控制是否可以访问ftp。绝大部分系统文件管理账户放在这里,这类账号不允许访问ftp。
(5)基于userlist的用户登入限制
类似于/etc/vsftpd/ftpusers,也是记录着不可登入的用户
这个文件功能会一句/etc/vsftpd/vsftpd.conf配置文件内的userlist_deny=YES或NO而不同!!
userlist试验总结:
userlist_deny=YES
userlist_enable=YES
userlist中的用户无法登录
userlist_deny=NO
userlist_enable=YES
只有userlist中的用户可以登录
vsftp现总结这些,会不断改进手敲累死了
以后会研究一下“百度”的FTP服务~ftppro,好像叫这个哦