感觉很坑,按照网上说的没一个都测试了,可一直都报错。
不断的重新安装不下10次,最后一次终于测试出了正确的方法。
#官网配置说明##
https://security.appspot.com/vsftpd/vsftpd_conf.html
##需求##
1)登录FTP 只能看到当前用户的,不能跨越到主目录
2)禁止匿名用户登录FTP
3)修改FTP 监听端口号!
##问题##
yum install vsftpd
结果一大堆问题,
1)无法启动 systemctl stop vsftpd --> 成功过,第二行 systemctl start vsftpd ==> 一直报错一直报错
[root@niche vsftpd]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
[root@niche vsftpd]# systemctl status vsftpd
vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled)
Active: failed (Result: exit-code) since Wed 2014-12-17 15:16:58 UTC; 18min a go
Dec 17 15:16:58 niche systemd[1]: vsftpd.service: control process exited, c...=2
Dec 17 15:16:58 niche systemd[1]: Failed to start Vsftpd ftp daemon.
Dec 17 15:16:58 niche systemd[1]: Unit vsftpd.service entered failed state.
Dec 17 15:17:25 niche systemd[1]: Stopped Vsftpd ftp daemon.
Dec 17 15:23:12 niche systemd[1]: Stopped Vsftpd ftp daemon.
Dec 17 15:26:11 niche systemd[1]: Stopped Vsftpd ftp daemon.
Dec 17 15:33:55 niche systemd[1]: Stopped Vsftpd ftp daemon.
Dec 17 15:34:11 niche systemd[1]: Stopped Vsftpd ftp daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@niche vsftpd]# systemctl stop vsftpd
[root@niche vsftpd]# systemctl start vsftpd
Job for vsftpd.service failed. See 'systemctl status vsftpd.service' and 'journalctl -xn' for details.
[root@niche vsftpd]#
最后的解决办法,手动杀死 进程。ps auxf | grep vsftpd。
然后在重启 systemctl start vsftpd,又可以使用systemctl来控制vsftpd了,真的是有点出鬼?
2)禁用匿名用户,本来一开始就修改了vsftpd.conf,但是怎么都无法重启无法生效。现在手动杀死进程才可以。
3)锁定在根目录,禁止local用户跳出根目录。测试了很多次最后这一行才可以:
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
4)修改监听端口号:配置文件结尾加入新的端口号,listen_port=2001,然后重启!
5)允许chroot !仅仅对有读写权限的进行!
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_port=2001
pasv_min_port=2100
pasv_max_port=2199
allow_writeable_chroot=YES
1、设置被动模式打开的配置文件
#vim /etc/vsftpd/vsftpd.conf
添加或修改以下内容
connect_from_port_10021=YES //这里的10021端口,你可以修改为你喜欢的 pasv_min_port=8888 //设置被动模式的端口范围,最小端口号~最大端口号 pasv_max_port=8899 //我们设置的范围可以不用那么大,但数值最好大些(至少也大于1024)
2、然后更改防火策略
#vim /etc/sysconfig/iptables
添加以下防火规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10021 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888:8899 -j ACCEPT
======================================================
2015-1-12 23:37:27补充
[root@unbox vsftpd]# diff vsftpd.conf vsftpd.conf.bak
12c12
< anonymous_enable=NO
---
> anonymous_enable=YES
29c29
< anon_upload_enable=NO
---
> #anon_upload_enable=YES
100,101c100,101
< chroot_local_user=NO
< chroot_list_enable=YES
---
> #chroot_local_user=YES
> #chroot_list_enable=YES
103c103
< chroot_list_file=/etc/vsftpd/chroot_list
---
> #chroot_list_file=/etc/vsftpd/chroot_list
114c114
< listen=YES
---
> listen=NO
123c123
< listen_ipv6=NO
---
> listen_ipv6=YES
128,131d127
< listen_port=2100
< pasv_min_port=8190
< pasv_max_port=8192
<
[root@unbox vsftpd]#
============================
2017-11-15 补充:
最新正确配置方法 http://blog.csdn.net/default7/article/details/78543808