CentOS 7搭建vsftp服務
1. 安裝前准備
- 關閉防火牆或者開端口權限。一般是firewalld或者iptables。
systemctl stop firewalld
systemctl disable firewalld
- 關閉sellinux
臨時關閉
setenforce 0
重啟機器關閉
vi /etc/selinux/config
修改
SELINUX=disabled
查看是否關閉
getenforce
2. 安裝vsftpd
yum install -y vsftpd ftp
systemctl start vsftpd
systemctl enable vsftpd
3. 配置vsftpd
- 創建vsftpd使用的系統用戶,主目錄為/home/vsftpd,禁止ssh登錄。創建之后所有虛擬用戶使用這個系統用戶訪問文件。
useradd vsftpd -d /home/vsftpd -s /bin/false
- 創建虛擬用戶主目錄,比如虛擬用戶叫ftp1,執行下面的命令。
mkdir -p /home/vsftpd/ftp1
chmod 755 /home/vsftpd/ftp1
chown vsftpd.vsftpd /home/vsftpd/ftp1
- 創建這個虛擬用戶
vi /etc/vsftpd/loginusers.conf
增加
ftp1
123456
這樣就創建了ftp1這個虛擬用戶,密碼為123456
- 根據這個文件創建數據庫文件
db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.db
chmod 600 /etc/vsftpd/loginusers.db
- 啟用這個數據庫文件
vi /etc/pam.d/vsftpd
注釋掉所有內容后,增加下面的內容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
- 創建虛擬用戶配置文件
mkdir /etc/vsftpd/userconf
vi /etc/vsftpd/userconf/ftp1 # 這里的文件名稱必須與虛擬用戶名一致
增加下面的內容
# 設置登錄后禁錮的目錄
local_root=/home/vsftpd/ftp1/
# 開放寫權限
write_enable=YES
# 開放下載權限
anon_world_readable_only=no
# 開放上傳權限
anon_upload_enable=yes
# 開放創建目錄的權限
#anon_mkdir_write_enable=yes
# 開放刪除和重命名的權限
anon_other_write_enable=yes
- 最后修改主配置文件
vi /etc/vsftpd/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_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES
# 以下是跟被動模式相關配置:
pasv_enable=yes # 被動模式啟動
pasv_max_port=10250 # 啟動的最大端口
pasv_min_port=10240 # 啟動的最小端口
# 端口設置需要防火牆開啟、華為雲需要配置安全組
pasv_address=114.1*6.*1.*7 # 華為雲主機的IP,改為你自己的運服務器IP
pasv_addr_resolve=yes # 配合pasv_address開啟允許欺騙
配置介紹:
-
- anonymous_enable=NO 禁止匿名用戶登錄
-
- chroot_local_user=YES 禁止用戶訪問除主目錄以外的目錄
-
- ascii_upload_enable=YES ascii_download_enable=YES 設定支持ASCII模式的上傳和下載功能
-
- guest_enable=YES 啟動虛擬用戶
-
- guest_username=vsftpd 虛擬用戶使用的系統用戶名
-
- user_config_dir=/etc/vsftpd/userconf 虛擬用戶使用的配置文件目錄
-
- allow_writeable_chroot=YES 最新版的vsftpd為了安全必須用戶主目錄(也就是/home/vsftpd/ftp1)沒有寫權限,才能登錄,或者使用
-
- allow_writeable_chroot=YES
-
最后重啟服務使配置生效
systemctl restart vsftpd
4. 登錄測試
- shell 查看
# sudo su - vsftpd
# pwd
/home/vsftpd/ftp1
# ls
111.pdf
5. 參考文檔
# 華為雲Centos 7.4安裝、配置FTP服務器vsftpd
https://blog.csdn.net/qiantanlong/article/details/82909865
# centos7安裝vsftp配置虛擬用戶,詳細介紹,親測完美!
https://blog.csdn.net/will0532/article/details/79175478
# CentOS 7搭建vsftp(虛擬用戶方式登錄)
http://www.cnblogs.com/wsjhk/p/8311037.html