安装VSFTPD
1 | yum install vsftpd |
启动vsftpd:
1 | systemctl start vsftpd.service |
设置vsftpd开机自启动:
1 | systemctl enable vsftpd.service |
配置VSFTPD
完成第一步之后其实已经启动了ftp服务器,但我们并用不了,因为我们还没有对vsftpd进行一些必要的设置。
vsftpd的配置文件是/etc/vsftpd/vsftpd.conf
,直接用vim打开编辑即可。
使用vim编辑器打开vsftpd配置文件:
1 | vim /etc/vsftpd/vsftpd.conf |
设置如下:
1 | anonymous_enable=YES |
修改配置文件完成。保存后重启VSFTPD。
重启vsftpd服务:
1 | systemctl restart vsftpd.service |
创建FTP用户
修改完vsftpd的配置文件之后我们还是不能使用vsftpd,因为我们还没有设置ftp的用户。
添加一个名为lzd的用户,用户文件夹位置为:/var/www/html
,且禁止此用户登陆服务器:
1 | useradd -d /var/www/html -s /sbin/nologin lzd |
然后设置一下密码,为ftpuser设置密码:
1 | passwd lzd |
开放端口
调整防火墙或配置安全组,开放21端口的入站规则。
主动模式与被动模式
主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口);被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)。
主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。
被动模式只需要服务器端开放端口给客户端连接就行了,如果服务端在防火墙内,也需要做端口映射才行。
FTP主动模式
使用Vim编辑器打开iptables配置文件:
1 | vim /etc/sysconfig/iptables |
然后在配置文件中加入这么一句:
1 | -A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT |
这句话告诉iptables开放21端口,允许接受从21端口传入的连接。
然后重启iptables服务:
1 | systemctl restart iptables.service |
现在就可以使用ftp工具登陆我们的ftp服务器了!
FTP被动模式
如果ftp处于被动模式下,除了需要修改iptables的配置文件以外,还需要修改vsftpd的配置文件。
首先是修改vsftpd的配置文件:
使用Vim编辑器打开vsftpd配置文件:
1 | vim /etc/vsftpd/vsftpd.conf |
现在配置文件中找到“connect_from_port_20=YES”
并将它修改为“connect_from_port_20=NO”
,关闭掉vsftpd的主动模式。
然后在配置文件的末尾追加:
1 | #使vsftpd运行在被动模式 |
保存配置文件并退出。
然后重启vsftpd服务:
1 | systemctl restart vsftpd.service |
然后再使用Vim编辑器打开iptables配置文件:
1 | vim /etc/sysconfig/iptables |
添加这两句话:(“#”开头的是注释,可以不添加)
1 | #开放ftp协议21端口,允许接受来自21端口的新建TCP连接 |
保存并退出,然后重启iptables服务:
1 | systemctl restart iptables.service |
现在就可以使用ftp工具登陆我们的ftp服务器了!
调整文件夹权限
可能现在又有个问题冒出来了,使用ftp工具登陆服务器之后,不管创建什么,都会失败。
1 | chmod 777 html |