vsftpd介绍
vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等
特点
vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;
所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;
此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。
匿名vsftpd的配置
1 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 2 3 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 4 5 yum makecache 6 7 yum -y install vsftpd 8 9 默认vsftpd安装好了,默认配置就是匿名用户,不需要我们配置什么 10 11 mkdir /var/ftp/yh 12 13 mount /dev/cdrom /var/ftp/yh 14 15 systemctl start vsftpd.service 16 17 打开浏览器访问:ftp://ftp服务器的ip地址 18 19 ftp://10.0.0.200/ 20 21 你会发现ftp已经可以提供服务了
配置文件详解
1 anonymous_enable=YES|NO 2 3 控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。 4 5 ftp_username= username 6 7 匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp 8 9 no_anon_password=YES|NO 10 11 控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。 12 13 anon_root=path 14 15 设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。 16 17 anon_world_readable_only=YES|NO 18 19 控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。 20 21 anon_upload_enable=YES|NO 22 23 控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。 24 25 anon_mkdir_write_enable=YES|NO 26 27 控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。 28 29 anon_other_write_enable=YES|NO 30 31 控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。 32 33 chown_uploads=YES|NO 34 35 是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。 36 37 chown_username=whoever 38 39 指定拥有匿名用户上传文件所有权的用户 40 41 local_enable=YES|NO 42 43 控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。 44 45 local_root= 46 47 定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。 48 49 user_config_dir= 50 51 定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件 52 53 chroot_list_enable=YES|NO 54 55 锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。 56 57 chroot_list_file=/etc/vsftpd/chroot_list 58 59 指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。 60 61 chroot_local_users=YES|NO 62 63 将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。 64 65 passwd_chroot_enable =YES|NO 66 67 当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。 68 69 listen_address=ip address 70 71 定义了在主机的哪个IP地址上监听FTP请求 72 73 listen_port=port_value 74 75 指定FTP服务器监听的端口号(控制端口),默认值为21。此选项在standalone模式下生效 76 77 port_enable=YES|NO 78 79 指定数据连接时模式,默认值为YES(PORT模式,NO为PASV模式) 80 81 connect_from_port_20=YES|NO 82 83 控制以PORT模式进行数据传输时是否使用20端口(ftp-data) 84 85 ftp_data_port=port number 86 87 设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。 88 89 pasv_enable=YES|NO 90 91 YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。 92 93 pasv_min_port=port number 94 95 pasv_max_port=port number 96 97 设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表 示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高 98 99 pasv_address= ip address 100 101 此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取。 102 103 ascii_upload_enable=YES|NO 104 105 控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO 106 107 ascii_download_enable=YES|NO 108 109 控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。 110 111 idle_session_timeout= numerical value 112 113 空闲用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。 114 115 data_connection_timeout= numerical value 116 117 空闲的数据连接的超时时间。默认值为300 秒。 118 119 accept_timeout=numerical value 120 121 接受建立联机的超时设定,单位为秒。默认值为60。 122 123 connect_timeout=numerical value 124 125 响应PORT方式的数据联机的超时设定,单位为秒。默认值为60 126 127 max_clients=numerical value 128 129 此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。 130 131 max_per_ip=numerical value 132 133 此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将影响到象网际快车这类的多进程下载软件。默认值为0,表示不限制。 134 135 anon_max_rate=value 136 137 设定匿名用户的最大数据传输速度value,以Bytes/s为单位。默认无。 138 139 local_max_rate=value 140 141 设定用户的最大数据传输速度value,以Bytes/s为单位。默认无。 142 143 write_enable=YES 144 145 设定允许进行写操作(上传、删除),默认为YES,可选值【yes,no】 146 147 local_umask=022 148 149 设定权限掩码,默认022,对应的文件上传权限644、目录权限755 150 151 dirmessage_enable=YES 152 153 设定开启目录标语功能 154 155 xferlog_enable=YES 156 157 设定开启日志记录功能 158 159 xferlog_file=/var/log/ftp/vsftpd.log 160 161 设置日志目录 162 163 xferlog_std_format=YES 164 165 设定日志使用标准的记录格式 166 167 nopriv_user=vsftpd 168 169 设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。 170 171 async_abor_enable=YES 172 173 设定支持异步传输功能。 174 175 ftpd_banner=This Vsftp server supports virtual users ^_^ 176 177 设定Vsftpd的登陆标语。 178 179 deny_email_enable=YES 180 181 可将某些特殊的 email address 抵挡住。如果以anonymous 登录服务器时,会要求输入密码,也就是您的email address, 如果很讨厌某些email address ,就可以使用此设定来取消他的登录权限,但必须与下面的设置项配合 182 183 banned_email_file=/etc/vsftpd/banned_emails 184 185 当上面的 deny_email_enable=YES 时,可以利用这个设定项来规定那个email address 不可登录vsftpd 服务器,此文件需用户自己创建,一行一个email address 即可! 186 187 ls_recurse_enable=YES 188 189 是否允许递归查询 , 大型站点的 FTP 服务器启用此项可以方便远程用户查询 190 191 chroot_local_user=YES 192 193 listen=YES 194 195 如果设置为 YES , 则 vsftpd 将以独立模式运行,由vsftpd 自己监听和处理连接请求 196 197 198 listen_ipv6=YES 199 200 设定是否支持IPV6 201 202 pam_service_name=vsftpd 203 204 设置 PAM 外挂模块提供的认证服务所使用的配置文件名 ,即/etc/pam.d/vsftpd 文件,此文件中file=/etc/vsftpd/ftpusers 字段,说明了PAM 模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers 中 205 206 207 208 userlist_enable=YES/NO 209 210 此选项默认值为NO , 此时ftpusers 文件中的用户禁止登录FTP 服务器;若此项设为YES ,则 user_list 文件中的用户允许登录 FTP 服务器,而如果同时设置了 userlist_deny=YES ,则 user_list 文件中的用户将不允许登录FTP 服务器,甚至连输入密码提示信息都没有,直接被FTP 服务器拒绝 211 212 userlist_deny=YES/NO 213 214 此项默认为YES ,设置是否阻扯user_list 文件中的用户登录FTP 服务器 215 216 tcp_wrappers=YES 217 218 表明服务器使用 tcp_wrappers 作为主机访问控制方式,tcp_wrappers 可以实现linux 系统中网络服务的基于主机地址的访问控制,在/etc 目录中的hosts.allow 和hosts.deny 两个文件用于设置tcp_wrappers 的访问控制,前者设置允许访问记录,后者设置拒绝访问记录。例如想限制某些主机对FTP 服务器192.168.57.2 的匿名访问,编缉/etc/hosts.allow 文件,如在下面增加两行命令:vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY 表明限制IP 为192.168.57.1/192.168.57.9 主机访问IP 为192.168.57.2 的FTP 服务器,此时FTP 服务器虽可以PING 通,但无法连接
关于userlist_enable、userlist_deny的设置,ftpusers和user_list文件的区别
ftpusers:禁止user_list列表中的用户访问FTP
userlist_enable=YES,userlist_deny=YES,禁止user_list列表中的用户访FTP
userlist_enable=YES,userlist_deny=NO,只允许user_list列表中的用户FTP。
userlist_enable=NO,userlist_deny=YES,因设定userlist_enable=NO,忽略user_list文件,user_list不启作用
userlist_enable=NO,userlist_deny=NO,因设定userlist_enable=NO,忽略user_list文件,user_list不启作用
ftpusers禁止的优先级更高。假设ftpusers禁止woodie用户访问,userlist允许woodie用户访问,则在运行时,用户woodie不能访问ftp。
本地用户vsftpd的配置
本地用户必须是系统上存在的用户,然后引用到vsftpd里面
备份主配置文件防止改错
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak
修改配置文件
去掉注释%g /^#/d
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
#xferlog_enable=YES
connect_from_port_20=YES
#xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
添加本地用户
1 useradd u01 2 3 echo 123456 |passwd --stdin u01 4 5 vim /etc/vsftpd/chroot_list 6 7 u01 8 9 测试 10 11 打开cmd通过ftp进行连接 12 13 ftp 10.0.0.200 14 15 连接到 10.0.0.200。 16 17 220 (vsFTPd 3.0.2) 18 19 200 Always in UTF8 mode. 20 21 用户(10.0.0.200:(none)): u01 22 23 331 Please specify the password. 24 25 密码: 26 27 230 Login successful. 28 29 ftp> 30 31 当输入完用户和密码后出现Login successful表示ftp登陆成功了,说明我们的陪已经成功
虚拟用户vsftpd的配置
修改vsftpd相关的账户
vsftpd服务的宿主用户(这个账户可以不用创建)
$ useradd vsftpd -s /sbin/nologin
默认的VSftpd的服务宿主用户是root,但是这不符合安全性的需要。这里建立名字为vsftpd的用户,用他来作为支持VSftpd的服务宿主用户。由于该用户仅用来支持VSftpd服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。
vsftpd的虚拟宿主用户
$ useradd yang -d /home/ftpdata -s /sbin/nologin
$ chown -R yang.yang /home/ftpdata
VSftpd的虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓VSftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此出于安全性的考虑,也要非常注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。
修改配置文件
1 %g /^d/d 删除注释行 2 3 anonymous_enable=NO 4 5 local_enable=YES 6 7 write_enable=YES 8 9 local_umask=022 10 11 dirmessage_enable=YES 12 13 xferlog_enable=YES 14 15 connect_from_port_20=YES 16 17 xferlog_std_format=YES 18 19 listen=YES 20 21 pam_service_name=vsftpd 22 23 userlist_enable=YES 24 25 tcp_wrappers=YES 26 27 chroot_local_user=YES 28 29 guest_enable=YES 30 31 guest_username=yang 32 33 virtual_use_local_privs=YES 34 35 user_config_dir=/etc/vsftpd/vuser_conf
生成vsftpd虚拟用户数据库文件
vim /etc/vsftpd/vuser_passwd.txt
test
12345678
格式很简单:”一行用户名,一行密码!”。
生成虚拟用户数据文件
db_load命令可以将用户文本信息文件转换为db数据库并使用hash加密。
选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
指定了选项-T,那么一定要追加子选项-t ; 子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。hash就是使用hash码加密。
-f参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码;
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
chmod 600 vuser_passwd.*
很多人找不到db_load的问题就是没有安装这个包
yum install db4 db4-utils
特别注意
如果要删除掉一个虚拟用户,先在vuser_passwd.txt中删除用户对应的用户名和密码,然后删除vuser_passwd.db,重新运行db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
如果更改密码,更改文件内容后还需重新运行db_load就可以,并重启ftp服务使其生效。
如果要改变用户的其它配置,只需修改用户的配置文件。
配置PAM验证文件
1 vim /etc/pam.d/vsftpd 2 3 将以下内容加入到文件最前面(在后面加入无效) 4 5 32位系统 6 7 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 8 9 account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 10 11 64位系统 12 13 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 14 15 account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 16 17 上一步建立的数据库vuser_passwd在此处被使用,建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd/vsftpd.conf文件中的语句pam_service_name=vsftpd来启用的。
vsftpd虚拟用户的独立配置
1 mkdir -p /etc/vsftpd/vuser_conf 2 3 vim /etc/vsftpd/vuser_conf/test 4 5 anon_world_readable_only=NO 6 7 write_enable=YES 8 9 anon_upload_enable=YES 10 11 anon_mkdir_write_enable=YES 12 13 anon_other_write_enable=YES 14 15 local_root=/home/ftpdata/ 16 17 测试 18 19 ftp 10.0.0.200 20 21 连接到 10.0.0.200。 22 23 220 (vsFTPd 3.0.2) 24 25 200 Always in UTF8 mode. 26 27 用户(10.0.0.200:(none)): tom 28 29 331 Please specify the password. 30 31 密码: 32 33 230 Login successful. 34 35 ftp>
报错总结
错误一 :500 OOPS: vsftpd: refusing to run with writable root inside chroot()
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
错误二:530 Login incorrect
解决问题方法,查看vsftpd文件是否在/etc/pam.d/vsftp这个地方,后者里面书写是否不对
错误三:500 OOPS:bad bool value in config file for:anon_world_readable_only
google了一把发现有人说是配置文件的末尾不能有空格,打开自己的配置文件一看,不止anon_world_readable_only这一行末尾,整个文件的末尾都有几个空格。唉,复制粘贴网页上的配置要谨慎啊
vsftpd服务器之间的站点对传
1 有时候可能需要开启vsftpd服务器之间的站点对传功能,只需在主配置文件 /etc/vsftpd/vsftpd.conf 里加入如下参数即可: 2 3 pasv_promiscuous=YES 4 port_promiscuous=YES 5 6 说明: 7 port_promiscuous=YES|NO 8 默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。 9 10 pasv_promiscuous=YES|NO 11 默认值为NO。为YES时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。 12 由于取消了数据包的安全检查,允许数据流向非客户端,所以站点对传成功。 13 14 配置修改完成后,重启vsftpd服务生效: 15 16 /etc/init.d/vsftpd restart
配置VSftpd服务器的日志功能
1 VSftpd与log有关的选项 2 3 vsftpd_log_file 4 5 xferlog_enable 6 7 xferlog_std_format 8 9 xferlog_file 10 11 dual_log_enable 12 13 syslog_enable 14 15 log_ftp_protocol 16 17 no_log_lock 18 19 这里主要要到下面几个参数控制 20 21 log_ftp_protocol 22 如果启用, 假若选项xferlog_std_format没有启用, 所有的FTP请求和应答都会被记录。 此选项将对调试很有用。 23 默认: YES 24 25 dual_log_enable 26 如果启用, 将生成两个相似的日志文件, 默认在/var/log/xferlog和/var/log/vsftpd.log目录下。 前者是wu-ftpd类型的传输日志, 可以用于标准工具分析。 后者是vsftpd自己类型的日志。 27 28 xferlog_enable 29 如果启用, 将会维护一个日志文件, 用于详细记录上载和下载. 默认情况下, 这个日志文件是/var/log/vsftpd.log。 但是也可以通过配置文件中的vsftpd_log_file选项来指定。 30 默认: NO(但是在示例设置中启用了这个选项) 31 32 xferlog_std_format 33 如果启用, 传输日志文件将以标准xferlog的格式书写, 如同wu-ftpd一样. 这可以用于重新使用传输统计生成器. 然而, 默认格式更注重可读性。 此格式的日志文件默认为/var/log/xferlog, 但是您也可以通过xferlog_file选项来设定。 34 默认: NO 35 36 xferlog_file 37 xferlog 日志文件所在位置,默认为/var/log/xferlog。 38 39 vsftpd_log_file 40 指定VSFTPd日志文件位置,默认为/var/log/vsftpd.log,xferlog_enable的默认值为no(VSFTPd提供的配置文件模版将其值改为了yes),dual_log_enable的默认值也为no,就是说默认情况下VSFTPd是不记录日志的。我们也可以将日志信息写入系统日志/var/log/messages中,使用如下参数:syslog_enable=yes/no
配置VSftpd传输日志
1 将xferlog_file前面的#号对掉,也就是把VSftpd的Log功能打开,这样我们就能在/var/log目录下查看xferlog。这是VSftpd日志功能,这对于我们来说是极为重要的。 2 3 ##################log settings################### 4 5 # Activate logging of uploads/downloads. 6 7 xferlog_enable=YES 8 9 # 10 11 # You may override where the log file goes if you like. The default is shown 12 13 # below. 14 15 xferlog_file=/var/log/xferlog 16 17 # 18 19 #log in two files /var/log/xferlog and /var/log/vsftpd.log 20 21 dual_log_enable=YES 22 23 vsftpd_log_file=/var/log/vsftpd.log 24 25 #log time setting 26 27 use_localtime=YES 28 29 # 30 31 ###################end of log####################
配置VSftpd限制同一个IP地址的同时连接数量
1 通过/etc/hosts.allow定义允许的来源地址,/etc/hosts.deny定义拒绝的来源地址。 2 3 配置示例 4 5 /etc/hosts.allow 6 7 # 8 9 # hosts.allow This file describes the names of the hosts which are 10 11 # allowed to use the local INET services, as decided 12 13 # by the ‘/usr/sbin/tcpd’ server. 14 15 # 16 17 vsftpd: 123.103.47.0/255.255.255.0 218.240.63.0/255.255.255.0 59.46.172.0/255.255.255.0 10.0.0.0/255.0.0.0 60.2.80.0/255.255.255.0 218.249.230.0/255.255.255.0 160.10.0.0/255.255.0.0 218.246.69.0/255.255.255.0 125.35.3.0/255.255.255.0 : allow 18 19 /etc/hosts.deny 20 21 # 22 23 # hosts.deny This file describes the names of the hosts which are 24 25 # *not* allowed to use the local INET services, as decided 26 27 # by the ‘/usr/sbin/tcpd’ server. 28 29 # 30 31 # The portmap line is redundant, but it is left to remind you that 32 33 # the new secure portmap uses hosts.deny and hosts.allow. In particular 34 35 # you should know that NFS uses portmap! 36 37 vsftpd : ALL : DENY 38 39 将tcp_wrappers=yes添加至/etc/vsftpd/vsftpd.conf中 40 41 $ vi /etc/vsftpd/vsftpd.conf 42 43 tcp_wrappers=YES 44 45 重新启动VSftpd 46 47 $ service vsftpd restart 48 49 Shutting down vsftpd: OK ] 50 51 Starting vsftpd for vsftpd: OK ]