Centos7 安裝配置FTP服務(wù)器

許久沒有在服務(wù)器上安裝過FTP了,現(xiàn)在代碼提交都偏向于svn版本庫管理;今天遇到金主說需要給前端配置個FTP上傳文件。配置過程中遇到些問題,記錄下過程。

yum安裝vsftpd

vsftpd 是 linux服務(wù)器上的FTP服務(wù)器程序(相當(dāng)服務(wù)端)
ftp 是 linux服務(wù)器上的FTP服務(wù)(相當(dāng)客戶端)

在安裝前需提前確認(rèn)是否已經(jīng)安裝了vsftpd 命令如下:

rpm -qa|grep vsftpd

另外,默認(rèn)的配置文件路徑為: /etc/vsftpd/vsftpd.conf

安裝命令:

yum install -y vsftpd

開啟 重啟 關(guān)閉命令:

systemctl start vsftpd
systemctl restart vsftpd
systemctl stop vsftpd

這里建議先用客戶端匿名訪問下FTP,是否已經(jīng)安裝成功。
因為這里服務(wù)可能存在防火墻,需要開放21端口

創(chuàng)建FTP使用的用戶

useradd -s /sbin/nologin -d /var/www/html ftpuser
passwd ftpuser

參數(shù)說明 :
useradd
-d:指定用戶登入時的主目錄,替換系統(tǒng)默認(rèn)值/home/<用戶名>
-s:指定用戶登入后所使用的shell。默認(rèn)值為/bin/bash。
參考地址:# linux命令useradd添加用戶詳解

passwd 是修改用戶密碼

相關(guān)命令:
usermod -s /sbin/nologin ftpuser 修改用戶登入后所使用的shell
usermod -d /var/www/html ftpuser 修改用戶登入時的主目錄
userdel -r ftpuser 刪除指定用戶 -r 參數(shù)是指刪除用戶全部文件

配置FTP服務(wù)

配置文件路徑:

vim /etc/vsftpd/vsftpd.conf

這里要關(guān)注的幾個配置項
1.不允許匿名訪問

anonymous_enable=NO

2.是否允許使用本地帳戶進(jìn)行FTP用戶登錄驗證

local_enable=YES/NO

本地賬號和虛擬賬號區(qū)別主要在于能否登錄系統(tǒng),賬號有權(quán)限可以登錄操作系統(tǒng)的為本地賬號,而不能登錄操作系統(tǒng)只能使用某些服務(wù)登錄的為虛擬系統(tǒng)。

  1. userlist_enable , userlist_deny 和 名單文件 /etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO

當(dāng)userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:所有出現(xiàn)在名單中的用戶都會被拒絕登入;
當(dāng)userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:只有出現(xiàn)在名單中的用戶才會被準(zhǔn)許登入(user_list之外的用戶都被拒絕登入);

參考:vsftpd中關(guān)于ftpusers和user_list兩個文件的說明以及vsftpd.conf中的userlist_enable和userlist_deny兩個配置項的解釋

按上面得設(shè)置,則需要在名單文件 /etc/vsftpd/user_list中添加ftpuser(一行一個用戶名),ftpuser才可以登陸。

4.用戶不能離開主目錄

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user
是否將所有用戶限制在主目錄,YES為啟用 NO禁用.(該項默認(rèn)值是NO,即在安裝vsftpd后不做配置的話,ftp用戶是可以向上切換到要目錄之外的)
chroot_list_enable
是否啟動限制用戶的名單 YES為啟用 NO禁用(包括注釋掉也為禁用)
chroot_list_file=/etc/vsftpd/chroot_list
是否限制在主目錄下的用戶名單,至于是限制名單還是排除名單,這取決于chroot_local_user的值。

參考:vsftpd 配置:chroot_local_user與chroot_list_enable詳解

按上面得設(shè)置,則需要在名單文件 /etc/vsftpd/chroot_list中添加ftpuser(一行一個用戶名),ftpuser才會被現(xiàn)在在主目錄中,不允許離開。

5.用戶的主目錄寫權(quán)限
從2.3.5之后,vsftpd增強(qiáng)了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權(quán)限了!如果檢查發(fā)現(xiàn)還有寫權(quán)限,就會報該錯誤。

要修復(fù)這個錯誤,你可以在vsftpd的配置文件中增加下列項:

allow_writeable_chroot=YES

還有一種方法:可以用命令 chmod a-w /var/www/html 去除用戶主目錄的寫權(quán)限

6.基本配置以上選項即可了,也可以查看詳細(xì)配置介紹

常見問題

1.500 OOPS: vsftpd: refusing to run with writable root inside chroot() 錯誤,解決請參考配置第5項;

2.530 Login incorrect錯誤 :

  • 用戶沒權(quán)限,先查看 userlist_enable userlist_deny 得設(shè)置也就是配置第3項;
  • 系統(tǒng)環(huán)境默認(rèn)/etc/shells文件有沒有/sbin/nologin這個項,沒有請?zhí)砑由?,因為這里配置這一項為用戶登陸后使用的shell;
  • 確保FTP用戶密碼正確,可以修改密碼后測試;
  • 服務(wù)器防火墻需要開放21端口(阿里云主機(jī)記得控制臺也需要開放端口);
  • Selinux原因,可以臨時關(guān)閉setenforce 0,發(fā)現(xiàn)可以正常連接了,修改/etc/sysconfig/selinux文件可以永久地禁用它。將文件中 SELINUX=enforcing 修改為:SELINUX=disabled;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容