趁着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端口。