如果问哪种FTP服务器最安全?那么在Unix和Linux中,首推的就是vsftpd(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,vsftpd就是非常安全的文件传输协议服务。vsftpd设计的出发点就是安全性,像RedHat、Debian、GNU、GNOME、KDE等一些大型站点都采用vsftpd作为它们的FTP服务器。
安装vsftpd
路径: /usr/ports/ftp/vsftpd
命令: make install ; make clean
语法:
vsftpd [设定文件路径]
参数介绍只有一个参数,就是可以指定设定文件的位置。
预设: /usr/local/etc/vsftpd.conf
配置文件vsftpd服务器的配置文件为/etc/vsftpd.conf,其配置选项比较多,在此我只选择几个常用的配置选项介绍。
(1)允许本机使用者可以登入
设定: local_enable=YES
(2)允许匿名使用者可以登入上传修改文件设定: anonymous_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
还要配合系统的权限,该目录必须要能够让(ftp)账号写入。(3)限制匿名使用者完全无法登入:
设定: anonymous_enable=NO
(4)限制某些使用者无法登入:对象为匿名使用者:
deny_email_enable=YES
bannned_email_file=/usr/local/etc/vsftpd.banned_emails
把email位置一行一个email地址,加入指定的文件
对象为本机使用者:
方法1:
check_shell=YES
把该使用者所使用的shell从/etc/shells删除。方法2:
userlist_enable=YES
userlist_deny=YES
userlist_file=/usr/local/etc/vsftpd.user_list
把限制登入的账号写入文件,一行一个。(5)限制使用者只能够在自己的根目录下活动
设定:chroot_list_enable=YES
chroot_list_file=/usr/local/etc/vsftpd.chroot_list
(在文件中把要限制的账号写入,一个账号一行)激活vsftpd
(1)修改完成 /usr/local/etc/vsftpd.conf。
(2)修改 /etc/inetd.conf,把vsftpd相关信息加入。
(3)检查是否有ftp的这个匿名登入账号存在于系统,不管是否要使用匿名,都必须要加上这个ftp使用者账号。不然激活vsftpd之后会出现错误。
(4)若使用匿名登入,请检查匿名使用者的根目录(如:/home/ftp)的所有权是否属于ftp使用者可以写入,若可以请更改权限。
通常为了管理方便可能变更/home/ftp权限给另外一个使用者,由该使用者进行相关ftp管理。
若没有改动,则会出现错误。
(5)通过inetd激活vsftpd
kill -1 `cat /var/run/inetd.pid`
若想要直接激活,则会出现错误。我的配置文件
只希望给有注册的本机账号登入(限制匿名登入),并限制这些账号自由切换目录。所以针对默认的配置文件,只修改了以下部分。
nonymous_enable=NO
local_enable=YES
chroot_list_enable=YES
write_enable=YES
chroot_list_file=/usr/local/etc/vsftpd.chroot_list
以上是vsftpd.conf运行配置文件,供大家参考。