zoukankan      html  css  js  c++  java
  • iptables 限制访问规则

    • iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
      把这条语句插在input链的最前面(第一条),对状态为ESTABLISHED,RELATED的连接放行。
      这条规则在某种情况下甚至比下面开放ssh服务都重要:① 如果INPUT连默认为DROP,② INPUT链默认为INPUT,但存在这条规则-A INPUT -j REJECT --reject-with icmp-host-prohibited,上面两种情况下都必须添加--state RELATED,ESTABLISHED为第一条,否则22端口无法通行,把自己锁在防火墙外面了。
      有了这条规则,可保证只要当前ssh没有关闭,哪怕防火墙忘记开启22端口,也可以继续连接。

    • iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      允许所有,不安全,默认。

    • iptables -A INPUT -s 172.29.73.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
      限制指定IP范围能SSH,可取

    • iptables -A INPUT -s 10.30.0.0/16 -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
      允许一个IP段访问多个端口

    • iptables -A INPUT -s 10.30.26.0/24 -p tcp -m tcp --dport 80 -j DROP
      禁止某IP段访问80端口,将-j DROP改成 -j REJECT --reject-with icmp-host-prohibited作用相同。

    iptables -A INPUT -s 172.29.73.23 -j ACCEPT
    完全信任某一主机,尽量不使用

    iptables -I INPUT 2 -i lo -j ACCEPT
    允许loopback。回环接口是一个主机内部发送和接收数据的虚拟设备接口,应该放行所有数据包。指定插入位置为 2 则之前该编号为 2 规则依次后移。

    • -A INPUT -p icmp -j ACCEPT
      接受icmp数据包,可以ping。也可以设置只允许某个特定的IP,见后文。

    iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
    这条规则用在INPUT链默没有DROP的情况,作用与-P DROP相同,当前面所有的规则都没匹配时,自然落到这个 REJECT 上。
    类似的FORWARD链也可以这么用:iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    当然,更强的规则是将OUPUT链也设置成DROP,这样一来情况就会复杂很多,如就是发送名解析请求,也要添加规则iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
    正是因为这样的太过麻烦,所以一般OUTPUT策略默认为ACCEPT。(安全性比较高的系统除外)

  • 相关阅读:
    IDEA中Git实战
    高并发下redis缓存穿透问题解决方案
    springboot整合mybatis+generator
    Github修改项目显示的语言类型
    Github中README.md换行
    maven中可以直接引用的java系统属性和环境变量属性
    springboot启动异常java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS
    java获取Linux持续运行时间及友好显示
    http工具类
    idHTTP最简洁的修改和取得Cookie例子
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11183337.html
Copyright © 2011-2022 走看看