在CentOS7上安裝ftp服務器用於保存服務端上傳的圖片。
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 stop
Redirecting to /bin/systemctl stop vsftpd.service
Failed to stop vsftpd.service: Unit vsftpd.service not loaded. #找不到vsftpd
[root@localhost /]# /sbin/service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
Failed 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 --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_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=YES
chroot_list_enable=YES(這行可以沒有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那麽, 凡是加在文件vsftpd.chroot_list中的用戶都是不受限止的用戶
即, 可以瀏覽其主目錄的上級目錄.
所以, 如果不希望某用戶能夠瀏覽其主目錄上級目錄中的內容,可以如上設置, 然後在
文件vsftpd.chroot_list中不添加該用戶即可(此時, 在該文件中的用戶都是可以瀏覽其主目錄之外的目錄的).
或者, 設置如下
chroot_local_user=NO
chroot_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=NO
chroot_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=YES
pasv_min_port=30000
pasv_max_port=30999
並且在userlist_enable=YES文件後面添加
userlist_deny=NO
userlist_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服務器上傳文件了。
更多Vsftpd相關教程見以下內容:
Linux CentOS 6.5 下搭建 vsftpd ftp服務器 http://www.linuxidc.com/Linux/2016-07/133319.htm
CentOS安裝vsftpd-3.0.2及安全配置 http://www.linuxidc.com/Linux/2016-12/138040.htm
openSUSE 13.2/13.1 下安裝配置 FTP服務器 vsftpd http://www.linuxidc.com/Linux/2014-12/110070.htm
CentOS7基於虛擬用戶的vsftpd http://www.linuxidc.com/Linux/2016-11/137150.htm
Ubuntu 14.04 配置vsftpd實現FTP服務器 - 通過FTP連接AWS http://www.linuxidc.com/Linux/2016-08/133933.htm
FTP協議詳解與vsftpd在Linux上的安裝配置 http://www.linuxidc.com/Linux/2016-09/134831.htm
CentOS 6.7 安裝vsftpd服務器 http://www.linuxidc.com/Linux/2017-04/142612.htm
CentOS 7.3安裝配置Vsftpd文件服務器 http://www.linuxidc.com/Linux/2017-06/144886.htm
Vsftpd3.0--FTP服務器搭建之本地用戶篇 http://www.linuxidc.com/Linux/2017-04/142699.htm
CentOS7基於虛擬用戶的vsftpd http://www.linuxidc.com/Linux/2016-11/137150.htm
Ubuntu 16.04下vsftpd 安裝配置實例 http://www.linuxidc.com/Linux/2017-06/144807.htm
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-08/146085.htm
在CentOS7上安裝ftp服務器用於保存服務端上傳的圖片。