zoukankan      html  css  js  c++  java
  • FTP 服务的访问控制

    FTP服务的访问控制

    1. FTP服务的自身访问控制(对象访问控制)

    • ftpusers 黑名单
    • userlist 默认黑名单(可以成为白名单)

    需求1:不允许stu1用户访问ftp服务
    echo stu1 >> /etc/vsftpd/ftpusers

    需求2:只允许stu2用户访问ftp服务
    1)修改配置文件,将user_list变成白名单
    userlist_deny=NO
    2)将stu2用户加入这个文件user_list
    echo stu2 >> /et/vsftpd/user_list

    总结:

    1. 在ftpusers文件中的用户不能访问ftp服务器
    2. 用户在user_list文件中,如果userlist_deny=NO(白名单),只在该文件中的用户可以访问
    3. 如果user_list 文件是白名单,用户既在ftpusers又在user_list,那么ftpusers拒绝优先。

    用户名,密码 ? 黑名单?白名单?


    2. FTP服务的网络访问控制

    • 支持tcp_wrappers

      /etc/hosts.allow 优先

      /ect/hosts.deny

      /etc/hosts.deny
      vsftpd:all	全部拒绝
      vsftpd:all EXCEPT 192.168.0.2 	拒绝所有除了192.168.0.2
      vsftpd:192.168.0.254 拒绝单个IP地址,相当于hosts.allow文件增加vsftpdd:192.168.0.254:deny
      vsftpd:192.168.0.0/255.255.255.0 拒绝某个网段
      vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254 拒绝某个网段,除了某个IP地址
      注意:此处子网掩码不支持192.168.0.0/24写法
      

    如何判断一个服务是否支持tcp_wrappers?

    1)./configure --enable-libwrap 表示支持tcp_wrappersf访问控制(配置时加上)

    /usr/local/bin

    2)rpm 安装

    [root@server vsftpd]# ldd /usr/sbin/vsftpd|grep libwrap*
    	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fcc222de000)
    
    [root@server vsftpd]# ldd /usr/sbin/sshd|grep libwrap*
    	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fba5dd90000)
    
    • 需求:拒绝10.1.1.0/24和192.168.91.0/24网段的所有人访问,除了10.1.1.3服务器

      vim /etc/hosts.deny
      vsftpd:10.1.1.0/255.255.255.0,192.168.91.0/255.255.255.0 EXCEPT 10.1.1.3
      
      

    网络访问控制除了tcp_wrappers还可以托管给xinetd服务区管理。

    vim /etc/vsftpd/vsftpd.conf
    listen=YES					// 独立模式下监听,如果托管给xinetd,需改为NO
    怎么托管给xinetd?
    

    3.搭建虚拟用户验证的FTP服务(本机验证未成功)

    1. 建立虚拟用户账户数据库

      vsftpd服务使用Berkeley DB 格式的数据库文件来存放虚拟用户账户,使用db_load工具生产数据库文件。(若未安装,安装包在安装光盘1中,软件名为db4-utils)

      [root@server vsftpd]# vim ./vusers.list		// 新建一个虚拟用户账号密码列表文件
      zhangsan
      123
      lisi
      123
      wangwu 
      456
      [root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db
      [root@server vsftpd]# ls
      banner_file  ftpusers   vsftpd.conf             vusers.db
      chroot_list  user_list  vsftpd_conf_migrate.sh  vusers.list
      [root@server vsftpd]# file vusers.db
      vusers.db: Berkeley DB (Hash, version 9, native byte-order)
      注意:db_load命令
      -T 允许非Berkeley的程序使用该数据库
      -t 指定算法(hash:哈希,散列)
      -f 指定源文件
      生成的数据库文件必须为“.db”格式
      [root@server vsftpd]# chmod 600 vusers.*	//修改有关用户名密码文件的权限,增强安全性
      [root@server vsftpd]# ll vusers.*
      -rw------- 1 root root 12288 Apr 22 20:37 vusers.db
      -rw------- 1 root root    33 Apr 22 20:37 vusers.list
      																				
      
    2. 添加虚拟映射账号,为FTP根目录修改权限

      [root@server vsftpd]# useradd -d /var/ftproot/ -s /sbin/nologin virtual
      [root@server vsftpd]# ll -d /var/ftproot/
      drwx------ 4 virtual virtual 4096 Apr 22 20:47 /var/ftproot/
      [root@server vsftpd]# chmod 755 /var/ftproot/
      [root@server vsftpd]# ll -d /var/ftproot/
      drwxr-xr-x 4 virtual virtual 4096 Apr 22 20:47 /var/ftproot/
      
      
    3. 增加PAM认证

      [root@server vsftpd]# vim /etc/pam.d/vsftpd.vu	//手动创建从pam认证文件
      auth	required	pam_userdb.so db=/etc/vsftpd/vusers
      account required	pam_userdb.so db=/etc/vsftpd/vusers
      
      
    4. 修改配置文件,重启服务

      anon_umask=022
      guest_enable=YES
      guest_username=virtual
      
      
    5. 客户端测试

    扩展:FTP的虚拟主机

    • 基于IP的虚拟主机
    • 基于端口的虚拟主机

    eth0:10.1.1.2 只允许本地用户访问

    eth1:10.1.1.3 只允许匿名用户访问,并且各自限制

    [root@server vsftpd]# rpm -ql vsftpd
    /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS
    /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS/README
    [root@server vsftpd]# cd /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS/
    [root@server VIRTUAL_HOSTS]# ls
    README
    [root@server VIRTUAL_HOSTS]# less README 	// 查看操作步骤
    
  • 相关阅读:
    SGU 495 Kids and Prizes
    HDU 3853 LOOPS
    HDU 4089 Activation
    HDU 4405 Aeroplane chess
    ZOJ 3329 One Person Game
    POJ 2096 Collecting Bugs
    POJ1573(Robot Motion)
    poj2632(Crashing Robots)
    poj1068(Parencodings)
    poj2506(Tiling)
  • 原文地址:https://www.cnblogs.com/liuwei-xd/p/11022021.html
Copyright © 2011-2022 走看看