安裝FTP包?
安裝
yum install -y vsftpd
設(shè)置開機啟動
systemctl enable vsftpd
啟動
systemctl start vsftpd
查看狀態(tài), 出現(xiàn)下圖則代表啟動成功,可進行下一步操作
systemctl status vsftpd
firewall防火墻設(shè)置
打開firewall善镰,設(shè)置開機啟動妹萨,永久開放ftp服務(wù),--permanent 代表永久生效炫欺,開啟21端口乎完,然后重載防火墻規(guī)則
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --reload
systemctl restart firewalld
查看firewall的規(guī)則,出現(xiàn)如下圖紅框中的ftp服務(wù)和21端口品洛,代表啟動成功
firewall-cmd --list-all
到這里树姨,我們上述步驟全部正確的話摩桶,現(xiàn)在是可以成功連接到ftp服務(wù)器的,我們可以打開瀏覽器嘗試連接,windows系統(tǒng)也可以使用資源管理器打開帽揪,同意還可以使用ftp工具連接硝清,工具可以自行百度查詢
ftp地址:ftp://ip地址
比如我的ip地址是192.168.17.128,那么就如下圖所示转晰,成功連接ftp服務(wù)
selinux設(shè)置
為什么要設(shè)置selinux呢芦拿,因為會對ftp服務(wù)的上傳下載造成權(quán)限影響,具體有設(shè)置有如下兩種方法
方法一:直接關(guān)掉selinux查邢,但是需要重啟centos服務(wù)器蔗崎,如果熟悉linux的,有條件的可以使用此方法扰藕,不熟悉當前centos部署那些項目與服務(wù)蚁趁,請勿使用該方法
打開selinux配置文件
vim /etc/selinux/config
#修改配置參數(shù),SELINUX=enforcing前面加上#號注釋实胸,增加SELINUX=disabled
#SELINUX=enforcing
SELINUX=disabled
重啟centos服務(wù)期,此命令請謹慎使用他嫡,請先暫停所有部署在此服務(wù)器的項目服務(wù),避免重啟開機造成錯誤
reboot
方法二:修改selinux
查看所有與ftp相關(guān)的selinux服務(wù)庐完,會出現(xiàn)下圖钢属,每個人可能有一點點不同,不過不影響
getsebool -a|grep ftp
將包含有 ftp_home_dir 和 ftpd_full_access 相關(guān)的都設(shè)置為 1
setsebool ftpd_full_access 1
setsebool tftp_home_dir 1
FTP配置文件修改
備份原來配置文件门躯,再打開配置文件
cp??/etc/vsftpd/vsftpd.conf??/etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conf
修改如下配置淆党,對照好配置文件如下配置修改,不要修改錯了
anonymous_enable=NO
anon_mkdir_write_enable=YES
chown_uploads=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
添加下列內(nèi)容到vsftpd.conf末尾
use_localtime=YES
listen_port=21
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=40000
pasv_max_port=40010
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES
建立虛擬用戶讶凉,關(guān)閉匿名登錄
雖然再開啟firewall防火墻后已經(jīng)可以連接ftp服務(wù)了染乌,但是屬于匿名登錄,任何人知道ip地址就可以進入懂讯,存在安全隱患荷憋,所以建議使用ftp專用的虛擬用戶登錄
創(chuàng)建編輯用戶文件
vim /etc/vsftpd/virtusers
第一行為用戶名,第二行為密碼褐望。不能使用root作為用戶名勒庄,可以建立多個用戶,如下圖所示, 我建立兩個賬戶
生成用戶數(shù)據(jù)文件瘫里,添加新用戶時实蔽,vim /etc/vsftpd/virtusers 寫入賬號密碼,在先后添加一個虛擬用戶的個人配置文件(下面有詳細說明), 再重新運行一次該命令即可谨读,刪除用戶?vim /etc/vsftpd/virtusers局装,然后刪掉要刪除的賬號密碼,再重新運行一次該命令即可
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
設(shè)定PAM驗證文件,并指定對虛擬用戶數(shù)據(jù)庫文件進行讀取
chmod 600/etc/vsftpd/virtusers.db
修改 /etc/pam.d/vsftpd?文件铐尚,先備份原油文件拨脉,再打開修改
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd
先將配置文件中原有的 auth 及 account 的所有配置行均注釋掉,再添加下面兩行到文件最下面塑径,如下圖所示女坑,然后保存退出
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
新建系統(tǒng)用戶vsftpd,用戶目錄為/home/vsftpd, 用戶登錄終端設(shè)為/bin/false(即:使之不能登錄系統(tǒng))
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd
建立虛擬用戶個人配置文件,上面我建立了兩個用戶统舀,我現(xiàn)在拿用戶test1做舉例
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch test1
vi test1
把下面的復(fù)制粘貼放入打開的test1文件中即可匆骗,保存退出,就可是用使用用戶test1登錄誉简,密碼為test123456碉就,登錄后可以上傳下載
local_root=/data/media/? ? ? ? ? ? ? ? ? ?#該用戶可以訪問的文件路徑,比如我設(shè)置的是/data/media
write_enable=YES? ? ? ? ? ? ? ? ? ? ? ? ? #設(shè)置為YES則可以上傳闷串,NO是禁止上傳
anon_world_readable_only=NO? ? ?#下面四個都是匿名用戶相關(guān)瓮钥,默認即可
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
最后重啟vsftpd,重啟后就可以使用我們設(shè)置的虛擬用戶登錄看到指定的目錄了
systemctl restart vsftpd