更多内容请看:http://www.bdtool.net/ linux
研究了两天vsftpd,从网上找了不少资料,不是出这问题就是那问题,幸亏终于解决了,下面贴出个人配置过程。不喜勿喷。。。 shell
1、安装vsftpd 数据库
sudo apt-get install vsftpd
安装完之后大体的目录介绍 安全
/etc/vsftpd/vsftpd.conf 服务器 |
主配置文件 测试 |
/usr/sbin/vsftpd ui |
Vsftpd的主程序 spa |
/etc/rc.d/init.d/vsftpd .net |
启动脚本 日志 |
/etc/pam.d/vsftpd |
PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户) |
/etc/vsftpd/ftpusers |
禁止使用vsftpd的用户列表文件。记录不容许访问FTP服务器的用户名单,管理员能够把一些对系统安全有威胁的用户帐号记录在此文件中,以避免用户从FTP登陆后得到大于上传下载操做的权利,而对系统形成损坏。(注意:linux-4中此文件在/etc/目录下) |
/etc/vsftpd/user_list |
禁止或容许使用vsftpd的用户列表文件。这个文件中指定的用户缺省状况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅容许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下) |
/var/ftp |
匿名用户主目录;本地用户主目录为:/home/用户主目录,即登陆后进入本身家目录 |
/var/ftp/pub |
匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后没法删除) |
/etc/logrotate.d/vsftpd.log |
Vsftpd的日志文件 |
2、配置用户
在/etc下建立目录vsftpd
mkdir vsftpd cd vsftpd vi user.txt
user.txt中加入用户名、密码,奇数行为用户名,偶数行为密码
ftp1 ftp1 ftp2 ftp2
使用db_load命令将用户生成数据库
若是没有db_load命令先安装
apt-get install db-util
而后生成数据库
db_load -T -t hash -f user.txt user.db sudo chmod 600 user.db
3、建立不一样用户的配置
mkdir user_conf cd user_conf sudo touch ftp1 ftp2 //对应user.txt中的用户
在ftp1中写入:主要是测试,先简单的写
anon_world_readable_only=NO local_root=/opt/vsftpd/ftp1
在ftp2中写入:
anon_world_readable_only=NO local_root=/home/ftp //与ftp1彻底不一样的两个目录
4、修改pam.d下的vsftpd,我就是在这走了不少弯路,把vsftpd所有贴出,供你们看与网上的有什么区别
cd /etc/pam.d vi vsftpd
auth required pam_userdb.so db=/etc/vsftpd/user account required pam_userdb.so db=/etc/vsftpd/user
其中db=....指向咱们以前创建的user.db
5、建立虚拟账号:
sudo useradd virtual -d /opt/vsftpd -s /sbin/nologin //不容许登陆 chmod a-w /opt/vsftpd //修改目录的权限 chown virtual:virtual /opt/vsftpd //修改目录属于的用户组,由于咱们建立了两个ftp位置,因此都要修改权限、用户组 chmod a-w /home/ftp chown virtual:virtual /home/ftp
6、修改/etc/vsftpd.conf
#配置 listen=YES #匿名用户配置 #是否开启匿名用户登陆 anonymous_enable=NO xferlog_std_format=YES #使用上传下载日志,日志文件默认为/var/log/vsftpd.log,能够经过xferlog_file选项修改 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log #日志使用标准xferlog格式 xferlog_std_format=YES local_enable=YES use_localtime=YES write_enable=YES guest_enable=YES guest_username=virtual //对应前面添加的用户virtual user_config_dir=/etc/vsftpd/user_conf //对应前面添加的每一个用户不一样配置的目录 dirmessage_enable=YES connect_from_port_20=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd //对应/etc/pam.d/vsftpd rsa_cert_file=/etc/ssl/private/vsftpd userlist_enable=YES