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 �Civh 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_image002
先测试download用户(只允许下载,不允许上传、新建、删除)
clip_image004
clip_image006
把123文件下载到本地
clip_image008
测试上传功能(应阻止上传)
clip_image010
clip_image012
clip_image014
clip_image016
测试成功!
同理测试upload和admin用户功能。

本文出自 “奇幻的梦” 博客,转载请与作者联系!

你可能感兴趣的:(职场,用户,vsftpd,休闲,虚拟)