VSFTPD虛擬用戶搭建方法

   部署FTP服務器時,默認是使用真實用戶來登陸和使用,若是用戶數量不少,則須要創建不少的真實用戶來知足需求,麻煩且不安全。創建虛擬用戶的vsftp就能夠解決這個問題,同時添加刪除用戶也十分方便,下面開始詳解安裝和配置的過程。
1. 編譯安裝vsftp
tar zxvf vsftpd- 2.0.7 .tar.gz
cd vsftpd- 2.0.7
 
若是是64位的系統則需修改vsf_findlibs.sh
vi vsf_findlibs.sh
修改
locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0"; locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";
locate_library /lib/libcap.so.1 && echo "/lib/libcap.so.1"; locate_library /lib64/libcap.so.1 && echo "/lib64/libcap.so.1";
 
make
install -m 755 vsftpd /usr/sbin/vsftpd
cp vsftpd.conf /etc/
vi /home/passwd.txt
用戶名(隨意輸入)
密碼(隨意輸入)
例:download
123456
    upload
    123456
    admin
    123456
 
 
2. 安裝db4
rpm -ivh db4-utils- 4.3.29 -9.fc6.i386.rpm (32位系統)
rpm –ivh db4-utils- 4.3.29 -9.fc6.x86_64.rpm(64位系統)
db_load -T -t hash -f /home/passwd.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
cd vsftpd- 2.0.7
cd EXAMPLE/
cp VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp
 
若是是64位系統則需修改/etc/pam.d/ftp
 
vi /etc/pam.d/ftp
改爲
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
 
3. 建立虛擬用戶
useradd -d /home/ftpsite/ virtual
vi /etc/passwd
修改成:virtual:x:510:510::/home/ftpsite/:/bin/nologin
 
 
 
 
4.編輯vsftp配置文件
vi /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
ftpd_banner=Welcome to tfhudong FTP service.
listen=yes
listen_port=21
guest_enable=YES
pam_service_name=ftp
user_config_dir=/etc/vsftpd_user_conf
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#50K
#Local_max_rate=50000
#30K
#Anon_max_rate=30000
pasv_min_port=50000
pasv_max_port=60000
pasv_enable=yes
max_clients=200
max_per_ip=4
check_shell=NO
anon_root=/home/ftpsite/m
 
5.建立虛擬用戶權限文件
 
mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
touch download upload admin
 
6. 建立用戶家目錄(若是須要則添加)
mkdir /home/ftpsite/download
chmod 700 /home/ftpsite/download
chown virtual.virtual /home/ftpsite/download
 
mkdir /home/ftpsite/upload
chmod 700 /home/ftpsite/upload
chown virtual.virtual /home/ftpsite/upload
 
mkdir /home/ftpsite/admin
chmod 700 /home/ftpsite/admin
chown virtual.virtual /home/ftpsite/admin
7編輯用戶權限文件
vi download
anon_world_readable_only=NO
guest_username=virtual
local_root=/home/ftpsite/download #download用戶的家目錄,需自定義
 
vi upload
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
guest_username=virtual
local_root=/home/ftpsite/upload #upload 用戶的家目錄
 
vi admin
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_umask=0999
guest_username=virtual
local_root=/home/ftpsite/admin #admin 用戶的家目錄
 
8配置iptables防火牆並開放ftp端口
vi /etc/sysconfig/iptables
添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # 21是監聽端口,在vsftpd.conf中設置的listen [端口]對應
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50000:60000 -j ACCEPT #傳輸數據用50000----60000之間的端口 vsftpd.conf中的pasv_min_port=50000 pasv_max_port=60000 對應
重啓iptables
/etc/init.d/iptables restart
9啓動vsftpd
不間斷運行vsftpd
nohup /usr/sbin/vsftpd /etc/vsftpd.conf &
10 測試
clip_p_w_picpath002
先測試download用戶(只容許下載,不容許上傳、新建、刪除)
clip_p_w_picpath004
clip_p_w_picpath006
把123文件下載到本地
clip_p_w_picpath008
測試上傳功能(應阻止上傳)
clip_p_w_picpath010
clip_p_w_picpath012
clip_p_w_picpath014
clip_p_w_picpath016
測試成功!
同理測試upload和admin用戶功能。
相關文章
相關標籤/搜索