Centos7.4 搭建FTP服務器以及遇到的坑


1:安裝vsftpd

yum install vsftpd -y


2:啟動vsftpd

systemctl start vsftpd

 

加入開機啟動

systemctl enable vsftpd


 啟動后可以看到系統監聽21端口

netstat -nltp | grep 21


3:vsftpd的文件說明

vsftpd.conf: 主要配置文件

ftpusers:配置禁止訪問ftp服務器的用戶列表

user_list:配置用戶訪問控制

4:配置阻止匿名用戶訪問和切換根目錄

vi /etc/vsftpd/vsftpd.conf


找到以下兩處並按下面的樣子修改

# 禁用匿名用戶
anonymous_enable=NO
# 禁止切換根目錄
chroot_local_user=YES

#開啟以下配置

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list     #如果沒有此文件則創建此文件,不需要添加內容


文件末尾添加

allow_writeable_chroot=YES 

不添加此項,連接ftp服務器的時候會報500 OOR。。。。

5:創建ftp用戶

useradd ftpuser


 為用戶設置密碼

echo "ftpuser123" | passwd ftpuser --stdin


6:限制上步創建的用戶只能通過ftp訪問

usermod -s /sbin/nologin ftpuser


7:為用戶分配主目錄

用以下命令創建,但是該目錄不能上傳文件

mkdir -p /home/ftp/pub 


創建歡迎文件

echo "Welcome to use FTP service." > /home/ftp/welcome.txt


設置訪問權限

chmod a-w /home/ftp && chmod 777 -R /home/ftp/pub


設置為用戶主目錄

usermod -d /home/ftp ftpuser


8:保存后重啟vsftpd

systemctl restart vsftpd


9:配置防火牆

在防火牆的配置文件中開啟21端口,並重啟防火牆

firewall-cmd --add-port=21/tcp --permanent


上述步驟即可完成vsftpd搭建,但是客戶端只能通過主動模式訪問vsftpd,例如使用filezilla需要將傳輸模式的默認模式改為主動模式才能訪問ftp服務器,如果發現可以正常登陸但是無法將目錄列出來,就是這個原因.如果需要直接可以訪問的話,需要將ftp服務器開啟被動模式

1:修改配置文件

vi /etc/vsftpd/vsftpd.conf

 
2:在末尾添加

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000


3:重啟vsftpd並將上述的30000端口至31000端口開啟,

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:31000 -j ACCEPT

 
  備注:過程雖然不難,但遇到的坑比較多,按照很多網上的文章進行配置,最后都是各種錯誤,剛開始是無法連接,發現沒有給用戶設置主目錄,

當找到問題后修改,可以連接上但是發現權限不夠(忘記給目錄賦值權限),而且竟然發現創建的用戶可以直接通過ssh連接到服務器,這樣子就

失去了我想要的,安全性也大大降低了,總之問題很多,最頭疼的還是提示已經登陸但是無法將目錄展示出來,經過自己分析日志發現是模式不對,

希望大家可以借鑒參考,盡量少入點坑
---------------------
作者:bpandaw
來源:CSDN
原文:https://blog.csdn.net/bpandaw/article/details/78061964
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM