標籤:
在CentOS 7下安裝ftp伺服器,可以使區域網路內的主機擁有共用檔案的一個網站。
在Linux系統下,vsftp是一款應用比較廣泛的FTP軟體,其特點是小巧輕快,安全易用。目前在開源作業系統中常用的FTP軟體除了vsftp外,主要有proftpd、pureftpd和 wu-ftpd等。本篇隨筆記錄vsftp的安裝與配置。
注意:本隨筆所有操作均在VMware workstations虛擬機器中安裝的CentOS7 中進行,在進行操作前最好設定快照,這樣某一步出錯了還可以退回原來的狀態:
1.安裝vsftp:在root使用者下,輸入:
yum install -y vsftpd
查看安裝情況:
2.匿名FTP配置:
允許匿名使用者存取並上傳檔案,設定檔路徑一般為 /etc/vsftpd.conf, 如果是使用rpm 包安裝,設定檔位於 /etc/vsftpd/vsftpd.conf
(i) 安裝vsftpd後,該軟體會自動在/var目錄下產生/var/ftp/pub目錄,此/var/ftp 目錄即為匿名使用者預設訪問的目錄。因為在虛擬機器中拍攝了快照,所以可以通過轉到安裝vsfptd之前的快照的方式進行驗證 /var/ftp目錄為vsftpd軟體產生的。在虛擬機器中轉到安裝vsftpd軟體之前的快照狀態。輸入
ls /var/ftp
顯示沒有該目錄。
然後再轉到安裝vsftpd後的快照,再次輸入同樣的命令,結果如下:
顯示該目錄下有pub檔案夾,該檔案夾當前為空白; 這足以說明 /var/ftp/ 和 /var/ftp/pub檔案夾為 vsftpd軟體安裝過程中自動產生的。
(ii)系統中當前會有 ftp使用者組和ftp使用者,博主已通過退回快照的方式驗證,該使用者和該使用者組並非由vsftpd軟體產生。所用命令為:
groups ftp
在兩個快照狀態下均顯示出ftp使用者屬於ftp使用者組。
將預設目錄賦予使用者ftp許可權以便可以上傳檔案。
該命令的意思是將 ftp使用者組中的所有使用者佈建為 /var/ftp/pub目錄的擁有者,使用 -R 參數的意義是使用 recursive方式,即pub目錄下的所有其他子目錄也都屬於ftp使用者組中的所有使用者。
(iii)使用
vim /etc/vsftpd/vsftpd.conf
命令,編輯 vsftpd的設定檔。
配置情況如下:
其中
grep -v ^# filename
命令即是查看 filename 檔案中去除‘#‘注釋掉的內容後的有效內容。
關於紅色方框內的 chroot_local_user等選項的詳細解釋,參見:http://blog.csdn.net/bluishglc/article/details/42398811
(3)啟動FTP伺服器
(i)在啟動 vsftpd之前,查看連接埠狀態:
netstat -nptl
可以看到目前只有ipv4的53,22,631號連接埠和ipv6的22號連接埠正在Listen。
輸入
systemctl start vsftpd
啟動 vsftpd 服務.
再次輸入命令
netstat -ntpl
可以看到21號連接埠已經啟動,這正是ftp的命令連接埠。(ftp的資料連接埠為20)。
(ii)使用虛擬機器中開啟的另一台Ubuntu串連CentOS7上的ftp服務:
顯示無法串連,這是因為沒有在伺服器的防火牆上開啟21號連接埠的緣故。
於是在CentOS7伺服器上編輯 iptables :
vim /etc/sysconfig/iptables
添加紅色方框中的兩行,開啟20和21號連接埠。(21號連接埠為ftp命令連接埠,20號連接埠為ftp資料連接埠)
之前安裝iptables的時候,已經使用了如下的命令
systemctl disable firewalld #禁止開機啟動 firewalldsystemctl stop firewalld #停止運行firewalldsystemctl enable iptables #開機啟動iptablessystemctl start iptables #啟動iptables
當前,firewalld沒有啟動,iptables正在運行,在修改了 /etc/sysconfig/iptables檔案的情況下,應該重新啟動iptables
systemctl restart iptables
這時候再輸入
systemctl stop vsftpd
netstat -nptl
沒有開啟21號連接埠,那是因為已經關閉了vsftpd伺服器:
啟動vsftpd伺服器並查看連接埠:
systemctl start vsftpd
netstat -nptl
vsftpd服務重新開啟了,且21號連接埠正在傾聽。以上現象說明連接埠傾聽與否只與服務運行與否有關,跟防火牆iptables中有沒有開放連接埠無關。
(iii)用Ubuntu串連CentOS 7上的 ftp服務:
串連成功!
4.用ftp上傳和下載檔案
(i)在串連的ftp命令列裡輸入 ls 命令:
顯示目前的目錄下有pub檔案夾,說明當前匿名使用者預設登陸的目錄是CentOS7伺服器上的/var/ftp目錄
(ii)上傳檔案:
用
cd pub
命令進入pub檔案夾
然後用
put filename.txt
命令上傳本地的filename.txt檔案
(注意:因為登陸ftp之前,Ubuntu所在目錄為 /home/username ,則此時 filename.txt 預設為Ubuntu上的 /home/username/filename.txt,也可以用絕對路徑指定檔案。可以用 lcd pathname 命令改變用戶端的目前的目錄)
結果:
顯示“533 Could not create file.”
在CentOS7 上使用如下命令更改 /var/ftp/pub檔案夾的許可權:
chmod 766 /var/ftp/pub
重啟vsftpd服務,在Ubuntu用戶端上串連,然後上傳檔案,結果還是顯示“533 Could not create file.”
網上搜尋原因,按照這個網頁的指示:http://www.111cn.net/sys/linux/45542.htm 在CentOS7伺服器上做如下設定:
在CentOS7伺服器上重啟 vsftpd服務,然後在Ubuntu上重新登入伺服器,這是還是預設登入進 /var/ftp目錄,一定要用 cd pub 命令轉換進pub目錄,再試試上傳檔案:
成功!
(iii)下載檔案:
在CentOS7伺服器上用
vim /var/ftp/pub/welcom.txt
命令建立一個檔案。
在Ubuntu上嘗試下載:
成功!
CentOS 7營運管理筆記(4)----安裝ftp伺服器