Linux CentOS 6.5 下配置vsftpd 搭建FTP服務器

近期給公司配置一臺服務器需要用到FTP服務,在此分享一下本人的學習經歷

操作系統環境:Linux CentOS-6.5-i386

1、檢查是否已安裝vsftpd:rpm -qa | grep vsftpd
如果沒有安裝則沒有提示信息,如圖:
這裏寫圖片描述

2、安裝vsftpd,運行命令:yum install vsftpd -y,等待安裝完成。
這裏寫圖片描述

這裏寫圖片描述

3、vsftpd安裝完成後,默認端口是21,要在防火牆上開啓端口21,這樣纔可以對外連接。
運行命令:vim /etc/sysconfig/iptables
添加一行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

這裏寫圖片描述

4、保存並退出。重啓防火牆:service iptables restart

5、開啓vsftpd服務:service vsftpd start
檢測vsftpd運行狀態:netstat -tunpl | grep vsftpd
這裏寫圖片描述

6、添加一個用戶名,不允許登陸系統,只用作ftp,其目錄爲 /home/webapp:
useradd ftpuser -s /sbin/nologin -d /home/webapp
這裏寫圖片描述

修改ftpuser用戶的密碼:passwd ftpuser
這裏寫圖片描述

將ftpuser用戶添加到配置文件user_list中:echo ftpuser >> /etc/vsftpd/user_list
也可以通過編輯配置文件user_list,在文件末尾新增添加的用戶。
這裏寫圖片描述

重啓vsftpd服務

7、進入到vsftpd目錄下修改vsftpd的配置文件,修改前先做好備份,如圖:
這裏寫圖片描述

8、修改vsftpd.conf文件:vim vsftpd.conf
1)、禁止匿名登錄,將 anonymous_enable=YES 修改爲 anonymous_enable=NO

2)、找到以下三項,

#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

並修改爲:

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

否則會在連接FTP服務器時報錯:
這裏寫圖片描述

進入到/etc/vsftpd路徑下:cd /etc/vsftpd
新建/etc/vsftpd/chroot_list文件:touch chroot_list
將ftpuser用戶添加到chroot_list文件中:echo ftpuser >> chroot_list
這裏寫圖片描述

3)、文件末尾新增:

# 僅允許userlist中的用戶訪問FTP服務器
userlist_deny=NO

# 將服務配置爲被動模式
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999

保存並退出。

9、修改防火牆配置,添加一條防火牆規則:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT

這裏寫圖片描述

保存並退出,重啓防火牆和vsftpd服務。

10、用FalshFXP連接FTP服務器,報錯:
這裏寫圖片描述

查看SELinux 的狀態
這裏寫圖片描述

解決方法:
1)、執行:setsebool ftpd_disable_trans 1,解除SELinux保護,否則無法讀取FTP目錄,輸入命令後提示:Could not change active booleans: Invalid boolean,表示解除成功,否則代表失敗(爲了減少vsftpd服務使用中一些不必要的麻煩,可以關閉SELinux服務)。
2)、執行:setsebool -P ftp_home_dir=1,說明:-P表示永久設置,不用每次開機後都重新設置。
這條命令會執行一分鐘左右,成功了不會提示任何信息。

至此,vsftpd服務配置完成。

這裏寫圖片描述

可以連接服務器上傳下載文件了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章