CentOS 7 搭建ftp服務並配置虛擬用戶

1、上傳vsftp的rpm安裝包及相關依賴(無),並安裝
vsftpd-3.0.2-27.el7.x86_64.rpm
rpm -ivh vsftpd-3.0.2-27.el7.x86_64.rpm

第1步:建立虛擬FTP用戶數據庫文件。
第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。
第3步:建立支持虛擬用戶的PAM認證文件。
第4步:爲虛擬用戶設置不同的權限。
第5步:在vsftpd.conf文件中添加支持配置。
第6步:重啓vsftpd服務,驗證實驗效果。

一、虛擬用戶配置
#創建用戶密碼文本,奇行是用戶名,偶行是密碼
vi /etc/vsftpd/vmuser_passwd.txt
user1
123456
user2
456789
#生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vmuser_passwd.txt /etc/vsftpd/vmuser_passwd.db
chmod 600 /etc/vsftpd/ vmuser_passwd.db
#編輯虛擬用戶認證文件,註釋掉原來語句,再增加以下兩句
vi /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vmuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vmuser_passwd
#創建ftpuser用戶(虛擬用戶主用戶),並指定虛擬用戶主目錄
useradd -d /mnt/data/ftpuser -s /sbin/nologin ftpuser
mkdir -p /mnt/data/ftpuser
chmod 755 /mnt/data/ftpuser
chown -R ftpuser:ftpuser /mnt/data/ftpuser
mkdir liumingming
chown -R ftpuser:ftpuser liumingming
#創建虛擬用戶權限文件存放的目錄
mkdir /etc/vsftpd/vmuser_conf/
vi user1
#指定家目錄
local_root=/mnt/data/ftpuser/user1
#可以瀏覽目錄下載文件
anon_world_readable_only=YES
#可以上傳文件
anon_upload_enable=YES
#可以創建 刪除目錄
anon_mkdir_write_enable=YES
#可以更名刪除文件
anon_other_write_enable=YES
#對自己的主目錄有寫的權限,(若不加此參數,而virtual用戶對其家目錄又有寫權限,則會出現登錄出錯,這是ftp的安全機制。)
allow_writeable_chroot=YES

二、配置文件修改
vi /etc/vsftpd/vsftpd.conf
#設定不允許匿名訪問
anonymous_enable=NO
#設定啓用虛擬用戶功能
guest_enable=YES
#指定虛擬用戶的宿主用戶
guest_username=ftpuser
#當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限
virtual_use_local_privs=YES
#設定虛擬用戶的配置文件存放路徑
user_config_dir=/etc/vsftpd/vmuser_conf
#開啓被動模式,指定端口
pasv_enable=YES
pasv_min_port=35001
pasv_max_port=35020

啓動服務
systemctl start vsftpd
開放防火牆
firewall-cmd --add-port=35001-35020/tcp --permanent
firewall-cmd --reload

vsftp.conf詳細說明
設置vsftpd是否可以獨立運行
listen=NO
是否監聽ipv6端口
listen_ipv6=YES
是否運行匿名訪問
anonymous_enable=NO
是否運行本地用戶登錄
local_enable=YES
是否啓用ftp的寫入權限
write_enable
本地用戶默認上傳文件權限爲077
local_umask=022
是否運行匿名ftp用戶上傳文件
anon_upload_enable=YES
是否運行匿名ftp用戶創建文件夾
anon_mkdir_write_enable=YES
在用戶切換目錄時是否發送信息
dirmessage_enable=YES
vsftp目錄列表是否顯示本地時間
use_localtime=YES
是否啓用上傳/下載日誌記錄
xferlog_enable=YES
傳輸端口來自20
connect_from_port_20=YES
上傳匿名文件
chown_uploads=YES
chown_username=whoever
日誌保存路徑
xferlog_file=/var/log/vsftpd.log
啓用xferlog默認保存路徑(參考xferlog_file配置項)
xferlog_std_format=YES
允許的空閒時間
idle_session_timeout=600
允許的數據傳輸時間
data_connection_timeout=120
是否啓用port模式
port_enable=YES
啓用被動模式
pasv_enable=YES
最小端口
pasv_min_port=xxxx
最大端口
pasv_max_port=xxxx
啓用此功能服務器能夠識別異步ABOR請求
async_abor_enable=YES
啓用ascii上傳模式(啓用可能會被dos攻擊)
ascii_upload_enable=YES
啓用ascii下載模式
ascii_download_enable=YES
ftp登錄歡迎語
ftpd_banner=Welcome
禁止登錄的email用戶列表
banned_email_file=/etc/vsftpd.banned_emails
開啓禁止email用戶登錄(參考banned_email_file配置項)
deny_email_enable=YES
將登錄用戶限制在其主目錄
chroot_local_user=YES
不受目錄限制影響的用戶列表
chroot_list_file=/etc/vsftpd.chroot_list
是否開啓不受目錄影響用戶功能(參考chroot_list_file配置項)
chroot_list_enable=YES
定義sftpd的空目錄
secure_chroot_dir=/var/run/vsftpd/empty
定義vsftpd使用的PAM服務的名稱
pam_service_name=sftpd
rsa證書位置
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
密鑰位置
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyrsa
是否啓用SSL
ssl_enable=NO
是否允許匿名用戶啓用SSL
allow_anon_ssl=NO
dsa證書的位置
dsa_cert_file=/path/file
非匿名用戶登陸時是否加密,默認爲yes
force_local_logins_ssl=YES
非匿名用戶傳輸數據時是否加密,默認爲yes
force_local_data_ssl=YES
匿名用戶登錄時是否加密
force_anon_logins_ssl=NO
匿名用戶數據傳輸時是否加密,默認爲no
force_anon_data_ssl=NO
是否激活sslv2加密
ssl_sslv2=NO
是否激活sslv3加密
ssl_sslv3=NO
是否激活tlsv1加密
ssl_tlsv1=YES
加密方法
ssl_ciphers=DES-CBC3-SHA
禁用SSL會話重用(WinSCP需要)
require_ssl_reuse=NO
選擇哪個SSL密碼vsftpd將允許加密的SSL連接(FileZilla需要)
ssl_ciphers=HIGH

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