基于系统用户的vsftpd配置

安装vsftpd

#cd /etc/yum.repos.d/
# rm -rf *
# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
# yum clean all
# yum -y install vsftpd
 

1.关闭匿名用户登录

ftp 支持匿名登录是不安全,所以要禁止匿名 ftp 登录
/etc/vsftpd/vsftpd.conf 修改以下三项
anonymous_enable=NO
#anon_upload_enable=YES          (本来就是注释掉的,不需要改)
#anon_mkdir_write_enable=YES  (本来就是注释掉的,不需要改)
 
[root@red-hat-5 ~]# service vsftpd restart
关闭 vsftpd                                                    [ 确定 ]
vsftpd 启动 vsftpd                                      [ 确定 ]

2.创建一个系统用户来登录ftp

 
[root@red-hat-5 ~]# useradd -s /sbin/nologin viong
建设一个不能登录系统用户.   只用来登录 ftp 服务 , 这里如果没设置用户目录。默认是在 home
 
添加ftp用户(用户名:ftpuser   ftp根目录/home/wwwroot/ftpuser) 
 
   
   
   
   
  1. useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser 
 
  3. 加强 vsftp 安全设置
从以上可以看出 ftp 家目录存在安全漏洞 所以要修改以下设置 :

(1)限制系统用户锁定在家目录

 
Vi /etc/vsftpd/vsftpd.conf
 
去掉前面 #
chroot_list_enable=YES                              (开启目录锁定选项,默认不锁定)
chroot_list_file=/etc/vsftpd/chroot_list      (指定锁定目录的用户列表 )
 
然后把所有用户加入 /etc/vsftpd/chroot_list 即可
 
[root@red-hat-5 ~]# ls /etc/vsftpd/ chroot_list
默认是不存在 需要我们手动建立
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
 
[root@red-hat-5 ~]# touch /etc/vsftpd/chroot_list
[root@red-hat-5 ~]# cut -d : -f  1 /etc/passwd>>/etc/vsftpd/chroot_list
把本地用户都加入到 chroot_list
 
cut 命令是切去某一列 -d 是每列的分隔符 -f 是切取第几列 然后重定向到chroot 文件
 
[root@red-hat-5 ~]# ll /etc/vsftpd/
总计 24
-rw-r--r-- 1 root root  197 12-25 19:57 chroot_list
-rw--------1 root root 125 2007-12-13 ftpusers
 ftpusers指的是阻止这个文件中的用户登陆
-rw------- 1 root root  361 2007-12-13 user_list
-rw------- 1 root root 4396 12-25 19:19 vsftpd.conf
-rwxr--r-- 1 root root  338 2007-12-13 vsftpd_conf_migrate.sh
 

(2)限制重要系统用户不能登录ftp权限

 
[root@red-hat-5 ~]# cat /etc/vsftpd/ftpusers
默认会加入一些比较重要系统用户
 
 
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
 
ftpusers利用系统的pam模块阻止某一些用户登录
 

(3)利用ftp用户策略允许登录ftp的系统用户

 
系统添加一个用户也默认有 ftp 的登陆权限,是不安全,要一个个设置,有点繁琐。利用 ftp 用户策略解决这个问题 , user_list 文件设置,只有 user_list 中存在的用户才能登录系统
 
修改配置文件 :vi  /etc/vsftpd/vsftpd.conf
 
userlist_enable=YES 文件后面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
 

 
[root@red-hat-5 ~]# service vsftpd restart
关闭 vsftpd                                                    [ 确定 ]
vsftpd 启动 vsftpd                                      [ 确定 ]
 

user_list使用介绍:

[root@hx10 vsftpd]# more user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.

表示:

userlist_deny=NO,那么/etc/vsftpd/user_list的用户才可以登录,需要把刚创建的帐号加入这个文件,当然还会阻止/etc/vsftpd/ftpusers的用户登录

userlist_deny=YES,那么/etc/vsftpd/user_list的用户不可以登录,即使设置密码

 

(4)设置登录ftp目标ip地址

 
为了让 ftp 更安全 我们设置 ftp 目标 ip 地址访问
 
C:\Users\Administrator>ipconfig 查看本地ip
 
...................................
 
以太网适配器 VMware Network Adapter VMnet1:6
 
   连接特定的 DNS 后缀 . . . . . . . :
   IPv4 地址 . . . . . . . . . . . . : 192.168.184.1
   子网掩码   . . . . . . . . . . . . : 255.255.255.0
   默认网关 . . . . . . . . . . . . . :
 
只允许这个 ip 地址访问 ftp ssh ,可以写条 iptable 做限制 .
如下
 
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 22 -j ACCEPT
允许 192.168.184.1 访问本地 22 端口
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 21 -j ACCEPT
允许 192.168.184.1 访问本地 21 端口
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 65341:65351 -j ACCEPT
允许 192.168.184.1 访问本地 PASV 端口
 
[root@red-hat-5 ~]# iptables -P INPUT DROP  禁止任何输入的数据包
[root@red-hat-5 ~]# service iptables save 保存 iptables 设置
将当前规则保存到 /etc/sysconfig/iptables:                 [ 确定 ]
[root@red-hat-5 ~]# service iptables status 检查 iptables 的设置
表格 :filter
Chain INPUT (policy DROP)
num  target     prot opt source               destination        
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0          
2    ACCEPT     tcp  --  192.168.184.1        0.0.0.0/0           tcp dpt:22
3    ACCEPT     tcp  --  192.168.184.1        0.0.0.0/0           tcp dpt:21
4    ACCEPT    tcp -192.168.184.1        0.0.0.0/0      tcp dpts:65341:65351

vsftpd.conf的配置如下

  
  
  
  
  1. [root@vm3 vsftpd]# cat vsftpd.conf |grep -v ^$ |grep -v "#" 
  2. anonymous_enable=NO 
  3. local_enable=YES 
  4. write_enable=YES 
  5. local_umask=022 
  6. dirmessage_enable=YES 
  7. xferlog_enable=YES 
  8. connect_from_port_20=YES 
  9. xferlog_std_format=YES 
  10. chroot_list_enable=YES 
  11. chroot_list_file=/etc/vsftpd/chroot_list 
  12. listen=YES 
  13. pam_service_name=vsftpd 
  14. userlist_enable=YES 
  15. userlist_deny=NO 
  16. userlist_file=/etc/vsftpd/user_list
  17. tcp_wrappers=YES 
  18. [root@vm3 vsftpd]#  

 

本文出自 “无云安全技术站” 博客,请务必保留此出处http://hx100.blog.51cto.com/44326/909357

你可能感兴趣的:(配置,用户,系统)