CentOS7系統vsftp安裝及配置

1. 安裝vsftpd的

yum -y install vsftpd

2. 設置開機啓動

systemctl enable vsftpdsystemctl -l | grep vsftpd  #查看是否開機自啓動

3. 啓動ftp服務

 systemctl start vsftpd.service

4. 打開防火牆,開放21端口

1 firewall-cmd --zone=public --add-port=21/tcp --permanent
2 firewall-cmd --permanent --zone=public --add-service=ftp
3 firewall-cmd --reload

5. 添加ftp用戶

 useradd -g root -d /apuser/ftp -s /sbin/nologin ftpuser

注:表示新增一個ftpuser(用戶名),且指定上傳目錄在/apuser/ftp下

如果後期想變更此用戶的上傳目錄到(/opt/ftpfile),請使用下面的命令:

usermod -d /opt/ftpfile ftpuser

6. 設置用戶密碼

passwd ftpuser

7. 配置selinux 允許ftp訪問home和外網訪問

1 setsebool -P allow_ftpd_full_access on
2 setsebool -P ftp_home_dir on3 3 getsebool -a | grep ftp  #查看ftp設置

8. 設置權限(此用戶可以訪問整個主機目錄,後面備註設置權限問題)

chown -R ftpuser:root /apuser/ftp

9. 修改vsftp配置文件

路徑:vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 改爲: anonymous_enable=NOallow_writeable_chroot=YES  #允許用戶具有主目錄寫權限 
reverse_lookup_enable=NO # 表示不查找dns服務器

10. 錯誤處理

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

要修復這個錯誤,可以用命令chmod a-w /apuser/ftp去除用戶主目錄的寫權限,注意把目錄替換成你自己的。或者你可以在vsftpd的配置文件中增加下列設置:allow_writeable_chroot=YES

vsftpd--530 Login incorrect. Login failed

解決辦法:

cat /etc/passwd

查看對應的ftp用戶所對應的主目錄和登陸shell
在這裏插入圖片描述
對應我的爲:sbin/nologin

接着:

vim /etc/shells

在這裏插入圖片描述
添加/sbin/nologin即可。

500 OOPS: cannot change directory:/home/frank

selinux如果打開,執行如下命令運行ftp。

setsebool ftpd_disable_trans 1
service vsftpd restart

如果selinux已經disabled。那麼應該是ftp目錄的權限問題。檢查ftp用戶的對應主目錄及上級目錄。ftp用戶是否有相應的權限。如果沒有請添加。

chmod 777 /apuser/ftp -R   #777爲最高權限,請根據各自情況設定相應權限。

如果還有問題,嘗試以下解決方法

修改/etc/pam.d/vsftpd

auth required pam_shells.so修改爲->auth required pam_nologin.so

11. 其他參考配置參數

1)如果客戶端登錄vsftp很慢,加上reverse_lookup_enable=NO表示不查找dns服務器
2)local_root=path 指定本地用戶根目錄
3)anon_root=path 指定匿名用戶根目錄
4)user_config_dir=path 指定用戶個人配置文件所在的目錄,用戶的個人配置文件爲該目錄中的同名文件
5)anon_max_rate=0 指定匿名用戶最大的傳輸速度
6)local_max_rate=0 指定本地用戶最大的傳輸速度
7)max_clients=0 指定vsftp允許的最大連接數
8)max_per_ip=0 指定每個ip地址允許建立的最大連接數
9)accept_timeout=60 指定pasc模式的連接超時時間(秒)
10)connect_timeout=60 指定port方式的連接超時時間
11)data_connection_timeout=300 ftp數據的連接超時時間
12)idle_session_timeout=600 限制空閒時間過多久就中斷連接
13)chroot_list_enable=yes 限制用戶在宿主目錄中,不能通過cd切換到系統的其他目錄中
14)chroot_list_file=/etc/vsftpd/chroot_list 在chroot_list中存放的是被鎖定的用戶列表,這些用戶只能在其宿主目錄中操作,不能通過cd切換目錄到系統的其他目錄中去
15)ftpd_banner=char 設置ftp登錄時的歡迎信息
16)限制客戶端可連接的ip地址tcp_wrappers=yes:tcp_wrappers是一種使用訪問控制列表(acl)來防止主機名和主機地址欺騙的保護機制
17)限制黑名單用戶userlist_enable=yesvim /etc/vsftpd/user_list在這個文件中加入黑名單用戶

12. vsftpd.conf參考配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
reverse_lookup_enable=NO
allow_writeable_chroot=YES

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