基于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
防火墙和suLinux都是开启的
改变相应策略
setsebool -P allow_ftpd_anon_write=1
setsebool -P allow_ftpd_full_access=1
setsebool -P ftp_home_dir=1
建立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
测试