利用Vsftpd 搭建虚拟用户FTP服务器安全
概述:
软件来源:http://vsftpd.beasts.org
软件版本:vsftpd-2.0.5.tar.gz
操做系统:RedHat Enterprise Linux AS3
1.vsftpd软件的安装
# tar –zxvf vsftpd-2.0.5.tar.gz //解压软件包
# cd vsftpd-2.0.5 //进入解压后的目录
# make && make install //编译并安装
# cp vsftpd.conf /etc/ //拷贝主配置文件到/etc目录下
# chkconfig vsftpd off //关闭进程守护模式
2.添加一个本地用户,而且禁止其SSH方式登陆
# useradd -s /sbin/nologin wjc
3.编辑vsftpd主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES //打开本地用户
local_umask=022 //本地用户建立文件夹和上传文件的权限,实际值=777-umask
connect_from_port_20=YES //链接端口为20
max_per_ip=4 //每一个IP最多链接4个客户端
max_clients=200 //FTP最多支持200个用户
listen=YES //打开监听模式,不然须要用守护模式启动服务
guest_enable=YES //开启虚拟用户访问功能
guest_username=wjc //虚拟用户实际用wjc用户来登陆
pam_service_name=ftp.vu //密码验证方式
user_config_dir=/etc/vsftpd_user_conf //虚拟用户的配置文件所在的目录
注:,由于主配置文件是被先读的,而后再读用户的配置文件。因此
在主配置文件中给的权限越低,在后面用户管理的时候对用户的权限划分的空间就越大
4.编辑验证方式文件
# vi /etc/pam.d/ftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
5.编辑虚拟用户和密码
# vi /tmp/login.txt
test1 //用户名
test1 //密码
test2
test2
6.虚拟用户的权限控制
# mkdir /etc/vsftpd_user_conf
在/etc/vsftpd_user_conf目录下用虚拟用户的登陆名来命名其配置文件
给用户test1添加配置文件
# vi /etc/vsftpd_user_conf/test1
local_root=/var/ftpvu/testftp //限制虚拟用户登陆的主目录
anon_world_readable_only=no //准许虚拟用户能够浏览
write_enable=yes //开放写的权限
anon_upload_enable=yes //开放上传权限
anon_mkdir_write_enable=yes //开放建立目录的权限
anon_other_write_enable=yes //其余写权限,如:重命名
一样你能够建立test2文件,给test2用户建立不一样的权限,以达到控制虚拟用户不一样的访问权限的目的
7.创建访问者的口令库文件,而后修改其权限
# db_load -T -t hash -f /tmp/login.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
8.开启FTP服务
# /usr/local/sbin/vsftpd &
9. 验证服务是否开启
//查看进程
# ps -x | grep vsftpd
//查看端口
# netstat –tln
10.关闭FTP服务
# ps –x | grep vsftpd
# kill -9 PID //-9这个参数为强制,可不加;PID为进程号,能够用ps来查看
目前没有更好的办法来中止FTP服务,因此只能杀进程来关闭了
11.可能出现的问题
500 OOPS: could not bind listening IPv4 socket
有可能FTP服务器是运行的;
也有多是由于没有关闭守护状态