近期給公司配置一臺服務器需要用到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服務配置完成。
可以連接服務器上傳下載文件了。