第一步:安装vsftp pam db4
首先判断你服务器上是否安装了vsftpd (rpm -aq vsftpd),如果已安装则先卸载(rpm -e vsftpd-2.0.5-16.el5_5.1)
yum -y install vsftpd
第二步:配置vsftpd服务的宿主
#useradd vsftpd -s /sbin/nologin
这个vsftpd只是用来替换root的,并不需要登录
第三步:建立ftp虚拟宿主帐户
#useradd ftpuser -s /sbin/nologin
这ftpuser只个虚拟帐户的宿主,本身是不用登录的
第四步:配置vsftpd.conf
更改配置前最好备份一下然后再改
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
max_clients=1
max_per_ip=1
local_max_rate=10000
第五步:建立日志文件
#touch /var/log/vsftpd.log //日志文件
#chown vsftpd.vsftpd /var/log/vsftpd.log //属于vsftpd这个宿主
第六步:建立虚拟用户文件
#mkdir /etc/vsftpd/vconf/
#touch /etc/vsftpd/vconf/vir_user
第七步:建立虚拟用户
#vi /etc/vsftpd/vconf/vir_user
virtualuser //用户名
12345678 //密码
注意:第一行用户名,第二行是上一行用户名的密码,其他人的以此类推
第八步:生成数据库
#db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
#chmod 600 /etc/vsftpd/vconf/vir_user.db
#chmod 600 /etc/vsftpd/vconf/vir_user
第九步:修改/etc/pam.d/vsftpd内容
#vi /etc/pam.d/vsftpd
# 注释掉其他部分
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
第十步:创建用户的配置文件
注意:用户配置文件的名字要和创建的“虚拟用户”名字对应
#touch /etc/vsftpd/vconf/virtualuser
#vi /etc/vsftpd/vconf/virtualuser
输入:
local_root=/var/ftp/virtualuser
//虚拟用户的个人目录路径
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=1048576 //本地用户的最大传输速度,单位是Byts/s,我设定的是10M
第十一步:建立虚拟用户目录
如果不建立虚拟用户的个人目录,那么所有的虚拟用户登录后所在的目录都是同一个目录下
# mkdir /var/ftp/virtualuser
# chown ftpuser.ftpuser ./virtualuser
# chmod 700 /var/ftp/virtualuser
配置就此完成,如果想增加新的用户,只要按照上面的第七八步、第十步进行就可以了。(重启service
vsftpd restart)
第十二步:ftp防火墙设置
#modprobe nf_conntrack_ftp
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 21 -j ACCEPT
PS:登陆报错500 OOPS: could not open chroot() list
file:/etc/vsftpd/chroot_list解决
第一是:
限制用户只能访问配置的目录,不能访问其他路径
修改vi /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES //限制访问自身目录将YES改成NO
# (default follows)
第二是:
为了限制在当前目录,但是因为这个配置要去读取vsftpd/chroot_list这个空文件 我没有创建这个文件 就报错了,这个是受限的用户列表.
建立这个用户列表,不需要写内容就可以了
用命令“vi /etc/vsftpd/chroot_list”,新建一个文件,然后随便输入一些文本后,保存退出。
顶顶!