這個部落格必須寫!
為了這個ftp伺服器上傳高了一天的時間!
同事安裝centos 7 上安裝ftp,fz串連的時間報550錯誤資訊!
我就卸載了重裝!
1、CentOS卸載vsftpd的方法
如果伺服器上已經安裝了vsftpd服務,配置出錯需要卸載vsftpd服務。
1.1 尋找vsftpd服務
[root@localhost /]# rpm -aq vsftpd
返回結果顯示:
vsftpd-3.0.2-21.el7.x86_64 #此處是尋找vsftpd的返回結果
表示此服務期之前已經安裝過vsftpd服務。
1.2 刪除尋找到的vsftpd服務
註:在卸載vsftpd之前,先停止vsftpd
[root@localhost /]# /sbin/service vsftpd stop
卸載vsftpd:
[root@localhost /]# rpm -e vsftpd-3.0.2-21.el7.x86_64
返回結果顯示:
warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave #刪除時將備份vsftp的使用者列表檔案
1.3 輸入驗證命令,驗證vsftpd服務是否已經刪除
[root@localhost /]# /sbin/service vsftpd stopRedirecting to /bin/systemctl stop vsftpd.serviceFailed to stop vsftpd.service: Unit vsftpd.service not loaded. #找不到vsftpd
[root@localhost /]# /sbin/service vsftpd startRedirecting to /bin/systemctl start vsftpd.serviceFailed to start vsftpd.service: Unit not found. #找不到vsftpd
如果輸入以上兩個命令都顯示找不到vsftpd服務的話,那就證明已經卸載成功。
2、安裝vsftpd組件
[root@localhost /]# yum -y install vsftpd
2.1 啟動ftp
[root@localhost home]# systemctl start vsftpd.service
2.2 放開21連接埠
[root@localhost /]# firewall-cmd --zone=public --add-port=21/tcp --permanent[root@localhost /]# firewall-cmd --reload
3、vsftpd服務的詳細配置
3.1 關閉匿名使用者
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
在vsftpd.conf設定檔中修改以下三項:
anonymous_enable=NO#anon_upload_enable=YES#anon_mkdir_write_enable=YES
然後重啟ftp服務:
[root@localhost vsftpd]# systemctl restart vsftpd.service
通過配置重啟之後,匿名使用者不可以登入了。
3.2 建立ftp虛擬宿主賬戶
建立一個不能登入系統使用者. 只用來登入ftp服務 ,這裡如果沒設定使用者目錄。預設是在home下:
[root@localhost vsftpd]# useradd ftpuser -s /sbin/nologin
為ftpuser使用者佈建密碼:
[root@localhost /]# passwd ftpuser
3.3 查看ftp的狀態
[root@localhost /]# getsebool -a|grep ftp
顯示結果:
ftpd_anon_write --> offftpd_connect_all_unreserved --> offftpd_connect_db --> offftpd_full_access --> offftpd_use_cifs --> offftpd_use_fusefs --> offftpd_use_nfs --> offftpd_use_passive_mode --> offhttpd_can_connect_ftp --> offhttpd_enable_ftp_server --> offtftp_anon_write --> offtftp_home_dir --> off
將上面紅色兩項狀態設定為on:
[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on[root@localhost vsftpd]# setsebool -P tftp_home_dir on
3.4 配置vsftpd.conf
限制系統使用者鎖定在/home/ftpuser目錄
如果設定為chroot_local_user=YESchroot_list_enable=YES(這行可以沒有, 也可以有)chroot_list_file=/etc/vsftpd.chroot_list那麼, 凡是加在檔案vsftpd.chroot_list中的使用者都是不受限止的使用者即, 可以瀏覽其主目錄的上級目錄.所以, 如果不希望某使用者能夠瀏覽其主目錄上級目錄中的內容,可以如上設定, 然後在檔案vsftpd.chroot_list中不添加該使用者即可(此時, 在該檔案中的使用者都是可以瀏覽其主目錄之外的目錄的).或者, 設定如下chroot_local_user=NOchroot_list_enable=YES(這行必須要有, 否則檔案vsftpd.chroot_list不會起作用)chroot_list_file=/etc/vsftpd.chroot_list然後把所有不希望有這種瀏覽其主目錄之上的各目錄許可權的使用者添加到檔案vsftpd.chroot_list(此時, 在該檔案中的使用者都是不可以瀏覽其主目錄之外的目錄的)中即可(一行一個使用者名稱).
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
這裡有兩種方案,我採用第二種,配置如下:
chroot_local_user=NOchroot_list_enable=YES #(這行必須要有, 否則檔案vsftpd.chroot_list不會起作用)chroot_list_file=/etc/vsftpd/chroot_list
預設chroot_list是不存在的
[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list
然後加入 ftpuser ,表示只有ftpuser不能訪問上級目錄,重啟vsftpd。
3.5 修改許可權
修改/home/ftpuser 的許可權為不可寫
[root@localhost vsftpd]# chmod a-w /home/ftpuser/taotao
這是因為我們在上面將/home/ftpuser/taotao檔案的許可權改為不可寫了,那麼我們在這個目錄下建立一個images檔案夾,用來上傳檔案。並將許可權賦值給 ftpuser 使用者
[root@localhost taotao]# mkdir images[root@localhost images]# chown ftpuser images
4、開啟PASV(被動模式)
在 /etc/vsftpd/vsftpd.conf 的最下面加入
pasv_enable=YESpasv_min_port=30000pasv_max_port=30999
並且在userlist_enable=YES檔案後面添加
userlist_deny=NOuserlist_file=/etc/vsftpd/user_list
開啟防火牆:
[root@localhost taotao]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
[root@localhost taotao]# firewall-cmd --reload
這樣就可以使用ftp伺服器上傳檔案了。
參考連結:
http://chadou.me/p/184
http://bguncle.blog.51cto.com/3184079/957315/