ftp配置之虚拟用户

来源:互联网 发布:福布斯网络作家富豪榜 编辑:程序博客网 时间:2024/06/05 20:50
虚拟用户的特点:
虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。

本人安装环境是contos7
一、新建虚拟用户的宿主用户
useradd vsftpd -d /home/wwwroot -s /bin/false
chown vsftpd:vsftpd /home/wwwroot -R


二、安装vsftpd
yum install -y vsftpd #安装vsftpd
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI  #安装vsftpd虚拟用户配置依赖包
systemctl start vsftpd.service #启动
systemctl enable vsftpd.service #设置vsftpd开机启动

三、关闭SELINUX
vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
setenforce 0 #使配置立即生效

四、配置vsftp服务器
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #备份默认配置文件

执行以下命令:

sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'
echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300
\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd
\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES
\npasv_min_port=10060\npasv_max_port=10090
\naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf

注意:vim /etc/vsftpd/vsftpd.conf后,可以看到
guest_username=vsftpd
这个vsftpd就是第一步新建的虚拟用户的宿主用户

五、建立虚拟用户名单文件


vim /etc/vsftpd/virtusers
奇数行是用户名,偶数行为密码
web1
123456
web2
123456



六、生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
如果已经存在virtusers.db,比如添加一个新的用户(本人遇到过),db_load会出错,提示:file size not a multiple of the pagesize,只用删除这个virtusers.db



七、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers/pam.d/vsftpd
注意:如果系统为32位,上面改为lib,否则配置失败


八、建立虚拟用户个人Vsftp的配置文件

mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch web1 web2 web3 #这里创建三个虚拟用户配置文件
mkdir -p /home/wwwroot/web1/http/

vi web1 #编辑用户web1配置文件,其他的跟这个配置文件类似
local_root=/home/wwwroot/web1/http/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

九、配置iptables

vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 10060:10090 -j ACCEPT
-A OUTPUT -p tcp -m state --state NEW -m tcp --sport 21 -j ACCEPT

10060:10090
在 /etc/vsftpd/vsftpd.conf中对应
pasv_min_port=10060
pasv_max_port=10090

十、重启


systemctl restart vsftpd.service

十一、测试
FileZilla


原创粉丝点击