zoukankan      html  css  js  c++  java
  • linux下限制ip访问

    inux下最直接限制ip访问的方式有两种:

    1.使用hosts.allow和hosts.deny来设置ip白名单和黑名单,/etc/目录下.

    优先级为先检查hosts.deny,再检查hosts.allow,   
    后者设定可越过前者限制,   
    例如:   
    1.限制所有的ssh,   
    除非从216.64.87.0 - 127上来。   
    hosts.deny:   
    in.sshd:ALL   
    hosts.allow:   
    in.sshd:216.64.87.0/255.255.255.128  
       
    2.封掉216.64.87.0 - 127的telnet   
    hosts.deny   
    in.sshd:216.64.87.0/255.255.255.128  
       
    3.限制所有人的TCP连接,除非从216.64.87.0 - 127访问   
    hosts.deny   
    ALL:ALL   
    hosts.allow   
    ALL:216.64.87.0/255.255.255.128  
       
    4.限制216.64.87.0 - 127对所有服务的访问   
    hosts.deny   
    ALL:216.64.87.0/255.255.255.128  
       
    其中冒号前面是TCP daemon的服务进程名称,通常系统   
    进程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd   
       
    其中IP地址范围的写法有若干中,主要的三种是:   
    1.网络地址--子网掩码方式:   
    216.64.87.0/255.255.255.0  
    2.网络地址方式(我自己这样叫,呵呵)   
    216.64.(即以216.64打头的IP地址)   
    3.缩略子网掩码方式,既数一数二进制子网掩码前面有多少个“1”比如:   
    216.64.87.0/255.255.255.0 -- 216.64.87.0/24  
       
    设置好后,要重新启动  
    # /etc/rc.d/init.d/xinetd restart  
    # /etc/rc.d/init.d/network restart

     2.使用iptables命令

    单个IP的命令是  
    iptables -I INPUT -s 81.241.219.171 -j DROP  
       
    封IP段的命令是  
    iptables -I INPUT -s 97.47.225.0/16 -j DROP  
    iptables -I INPUT -s 97.47.225.0/16 -j DROP  
    iptables -I INPUT -s 97.47.225.0/16 -j DROP  
       
    封整个段的命令是  
    iptables -I INPUT -s 97.47.225.0/8 -j DROP  
       
    封几个段的命令是  
    iptables -I INPUT -s 97.47.225.0/24 -j DROP  
    iptables -I INPUT -s 97.47.225.0/24 -j DROP   
       
       
    服务器启动自运行  
    有三个方法:  
    1、把它加到/etc/rc.local中  
    2、vi /etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。  
    3、service   iptables   save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。  
    后两种更好些,一般iptables服务会在network服务之前启来,更安全  
       
    解封:  
    iptables -L INPUT  
    iptables -L --line-numbers 然后iptables -D INPUT 序号   
       
       
    iptables 限制ip访问  
    通过iptables限制9889端口的访问(只允许192.168.1.100、192.168.1.101、192.168.1.102),其他ip都禁止访问  
    iptables -I INPUT -p tcp --dport 9889 -j DROP  
    iptables -I INPUT -s 192.168.1.100 -p tcp --dport 9889 -j ACCEPT  
    iptables -I INPUT -s 192.168.1.101 -p tcp --dport 9889 -j ACCEPT  
    iptables -I INPUT -s 192.168.1.102 -p tcp --dport 9889 -j ACCEPT
    1. 优先级为先检查hosts.deny,再检查hosts.allow,   
    2. 后者设定可越过前者限制,   
    3. 例如:   
    4. 1.限制所有的ssh,   
    5. 除非从216.64.87.0 - 127上来。   
    6. hosts.deny:   
    7. in.sshd:ALL   
    8. hosts.allow:   
    9. in.sshd:216.64.87.0/255.255.255.128  
    10.    
    11. 2.封掉216.64.87.0 - 127的telnet   
    12. hosts.deny   
    13. in.sshd:216.64.87.0/255.255.255.128  
    14.    
    15. 3.限制所有人的TCP连接,除非从216.64.87.0 - 127访问   
    16. hosts.deny   
    17. ALL:ALL   
    18. hosts.allow   
    19. ALL:216.64.87.0/255.255.255.128  
    20.    
    21. 4.限制216.64.87.0 - 127对所有服务的访问   
    22. hosts.deny   
    23. ALL:216.64.87.0/255.255.255.128  
    24.    
    25. 其中冒号前面是TCP daemon的服务进程名称,通常系统   
    26. 进程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd   
    27.    
    28. 其中IP地址范围的写法有若干中,主要的三种是:   
    29. 1.网络地址--子网掩码方式:   
    30. 216.64.87.0/255.255.255.0  
    31. 2.网络地址方式(我自己这样叫,呵呵)   
    32. 216.64.(即以216.64打头的IP地址)   
    33. 3.缩略子网掩码方式,既数一数二进制子网掩码前面有多少个“1”比如:   
    34. 216.64.87.0/255.255.255.0 -- 216.64.87.0/24  
    35.    
    36. 设置好后,要重新启动  
    37. # /etc/rc.d/init.d/xinetd restart  
    38. # /etc/rc.d/init.d/network restart
  • 相关阅读:
    1295. 统计位数为偶数的数字『简单』
    1281. 整数的各位积和之差『简单』
    697. 数组的度『简单』
    748. 最短完整词『简单』
    832. 翻转图像『简单』
    1446. 连续字符『简单』
    1455. 检查单词是否为句中其他单词的前缀『简单』
    1160. 拼写单词『简单』
    1304. 和为零的N个唯一整数『简单』
    1103. 分糖果 II『简单』
  • 原文地址:https://www.cnblogs.com/azhqiang/p/5379602.html
Copyright © 2011-2022 走看看