趁着AWS云服务有1年免费期的福利,申请了一个EC2(可以看作是AWS的VPC),预装Centos7系统。
整个网页后台学习学习, 作为后台维护自然免不了要装一个FTP,选用最经典的vsftpd,立马安装。
yum install vsftpd
开启FTP前,习惯性关闭防火墙 systemctl stop firewalld, 居然提示找不到firewalld.service。一脸问号,顺便查看了一下iptables,也没有。难道这个版本的Centos连防火墙都没有。
怒装firewall
yum install firewalld
到此,软件的安装顺利完成
在做软件配置前,为排除干扰,先把防火墙都关闭,包括AWS的安全组。
- 配置FTP
FTP通过改写配置文件来实现配置,每次配置修改后要应用则需要重新启动FTP服务。
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
配置FTP模式
熟悉FTP的同学一定了解FTP根据连接端口的使用可以分两种模式(被动Passive模式 与 主动Active模式)
若FTP未做任何配置,则默认使用的是PASV被动模式。通过浏览器做连接(ftp://192.168.1.2)也是默认使用PASV的方式连接服务器。
被动模式
FTP模式 | 服务端监听端口 | 连接建立后服务端用来传输的端口 |
配置内容 |
---|---|---|---|
Active | 21/TCP | 20(由服务器发起连接请求) | connect_from_port_20=YES pasv_enable=NO |
PASV | 21/TCP |
在自定义的端口范围中随机选择一个 (由客户端发起连接请求) |
connect_from_port_20=NO(默认为YES) pasv_enable=YES pasv_min_port=10000(端口范围可任意设置) pasv_max_port=10001 |
接下来配置FTP的访问用户与权限(匿名方式)
暂时为图方便,采用匿名用户的访问方式。
在配置文件 vsftpd.conf 中确认以下几行内容,没有的加上,搞定。
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
最后配置FTP的访问目录(匿名用户使用)
同样在配置文件中为匿名用户设定访问目录
anon_root=/root/ftpfolder
指定用户访问(规定用户名密码,匿名用户拒绝登录)
既然拒绝匿名用户,首先就是关闭匿名用户的权限
anonymous_enable=NO
接着是创建用于登录FTP的用户, 这是linux的一种用户类型, 使用linux命令创建并设置初始访问目录
useradd ftpuser -s /sbin/nologin –d /usr/share/nginx/html
最后为该用户设置好密码后重启vsftpd
passwd ftpuser
systemctl restart vsftpd
- 配置防火墙
Centos firewall 配置
先插一段防火墙使用的常用命令列表
作用 | 命令 |
---|---|
开启防火墙 | systemctl start firewalld |
停止防火墙 | systemctl stop firewalld |
查看防火墙运行状态 |
systemctl status firewalld 或者 firewall-cmd --state |
开放单个端口 |
firewall-cmd --permanent --zone=public --add-port=8081/tcp 永久开放8081的TCP端口 |
开放批量端口 |
firewall-cmd --permanent --zone=public --add-port=100-500/tcp 批量永久开放100到500的TCP端口 |
移除/关闭已开放的端口 | firewall-cmd --permanent --zone=public --remove-port=100-500/tcp |
添加对应的服务 |
firewall-cmd --add-service=ftp --permanent 服务开启后就不需要另行开启该服务的端口。 比如添加FTP服务后,不需要再开放21或其他ftp关联端口 |
移除已开放的服务 | firewall-cmd --remove-service=ftp --permanent |
应用之前所做的所有修改 |
firewall-cmd --complete-reload 防火墙的修改配置立即生效,不用通过systemctl重新启动防火墙。 修改只有通过该命令应用后才能在 --list-all 参数查看到 |
查看当前防火墙的所有配置 |
firewall-cmd --list-all 显示当前防火墙的所有配置 |
综上,对于Centos的防火墙,放行FTP服务的流量只需要加上FTP service就可以了。
firewall-cmd --add-service=ftp --permanent
firewall-cmd --complete-reload
AWS 安全组配置
因此这里我只为FTP开放了21与10000-10001这种类型的TCP端口。