基于redhat6
安装vsftp软件
yum install vsftpd
我们这里安装的版本是vsftpd-2.2.2-6.el6.i686
因为我们要建立匿名账户的vsftpd所以还要安装db4和db4_utils两个软件包,redhat6已经默认安装.
修改/etc/vsftpd/vsftpd.conf
[root@mail ftp]# grep -v '^#' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_root=/ftp/public ;匿名账户根目录
xferlog_enable=YES ;开启日志
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600 ;删除空闲了10分钟后的用户
data_connection_timeout=120 ;删除空闲了2分钟的下载
accept_timeout=60 ;删除挂起了1分钟后的被动连接
connect_timeout=60 ;删除挂起1分钟后的活动连接
ftpd_banner=Welcome to ZZU FTP.
chroot_local_user=YES ;本地账户限制在家目录
ls_recurse_enable=YES ;禁用危险地ls-R指令
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
hide_ids=YES ;隐藏文件的所有者和组信息
max_clients=300 ;最大接入人数300个
max_per_ip=4 ;每人最大4个连接
anon_max_rate=100000 ;匿名用户最大速率100K/s
local_max_rate=1000000 ;本地用户最大速率1M/s
guest_enable=YES ;开启虚拟用户
guest_username=ftp ;虚拟用户映射的本地用户
user_sub_token=$USER
local_root=/ftp/virtual/$USER ;虚拟用户的根目录
user_config_dir=/etc/vsftpd/userdir ;虚拟用户的权限对用文件
虚拟账户的设置
mkdir /etc/vsftpd/vuser
vim /etc/vsftpd/vuser/vu
ftp1
123
ftp2
123
第一行为账户第二行为密码
生成数据库文件
db_load –T –t hash –f /etc/vsftpd/vuser/vu /etc/vsftpd/vuser/vu.db
虚拟账号权限
mkdir /etc/vsftpd/userdir
vim /etc/vsftpd/userdir/ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
赋予ftp1最大权限
vim /etc/vsftpd/userdir/ftp2
anon_upload_enable=YES
赋予ftp2可上传权限
修改账户验证模式
vim /etc/pam.d.vsftpd
改变为
auth required pam_userdb.so db=/etc/vsftpd/vuser/vu
account required pam_userdb.so db=/etc/vsftpd/vuser/vu
![Redhat6 建立基于防火墙和suLinux的虚拟用户vsftp_虚拟用户](https://s2.51cto.com/attachment/201109/111439965.jpg?x-oss-process=image/resize,m_fixed,w_1184)
防火墙和suLinux都是开启的
改变相应策略
![Redhat6 建立基于防火墙和suLinux的虚拟用户vsftp_虚拟用户_02](https://s2.51cto.com/attachment/201109/110649769.jpg?x-oss-process=image/resize,m_fixed,w_1184)
setsebool -P allow_ftpd_anon_write=1
setsebool -P allow_ftpd_full_access=1
setsebool -P ftp_home_dir=1
![Redhat6 建立基于防火墙和suLinux的虚拟用户vsftp_suLinux_03](https://s2.51cto.com/attachment/201109/110649546.jpg?x-oss-process=image/resize,m_fixed,w_1184)
建立ftp相关的文件夹
mkdir –p /ftp/public /ftp/virtual/ftp1 /ftp/virtual/ftp1
chown ftp.ftp /ftp/virtual/*
修改安全环境
chcon --reference /var/ftp -R /ftp
启动服务
service vsftpd start
测试
![Redhat6 建立基于防火墙和suLinux的虚拟用户vsftp_vsftp_04](https://s2.51cto.com/attachment/201109/113744594.jpg?x-oss-process=image/resize,m_fixed,w_1184)