Linux防火墙--iptables(下)

编写防火墙规则

  • 基本语法、控制类型

    • 语法:
      • iptables [-t 表名] 选项 链名 条件 -j 控制类型 //选项、链名、控制类型大写
      • iptables -t filter -I INPUT -p icmp -j DROP
      • 控制类型
        • ACCEPT:允许通过
        • DROP:不回应任何
        • REJECT:拒绝回应ICMP请求
        • LOG:记录日志信息,然后传给下一条规则链继续匹配,不对数据包进行控制。
      • 注意事项
        • 1、不指定表名时,默认指filter表
        • 2.、指定链名时,默认指表内的所有链
        • 3、除非设置链的默认策略,否则必须指定匹配条件
        • 4、选项名,链名,控制类型使用大写字母,其余均为小写
  • 添加、查看、删除规则
    • 添加新的规则
      • -A:在链的末尾追加一条规则
      • -I:在链的开头或指定序列号插入一条规则
      • iptables -I INPUT 2 -p icmp -j ACCEPT //添加到表中某一个位置 2--序列号 使用--line-numbers查看序列号
      • -p 协议
        • 协议类型:TCP,UDP,ICMP
    • 查看规则
      • iptables -L -n --line-numbers -v
        • -L 列出所有的规则条目
        • -n 以数字形式显示地址,端口等信息
        • -n -L 可合写为 -nL //必须为-nL
        • -v 以更详细的方式显示规则信息
        • --line-numbers 查看规则时,显示规则的序列号
    • 删除规则
      • -D 删除链内的指定序列号的一条规则
        • iptables -D INPUT 8
        • iptables -t filter -D INPUT 1
      • -F 清空所有规则
        • iptables -F //默认filter表
  • 设置默认策略

    • 默认策略只有ACCEPT或者DROP
    • -P为指定的链设置默认策略(规则)
    • iptables -t filter -P INPUT DROP
    • iptables -P INPUT DROP
  • 规则的匹配条件

    • 通用匹配:
      • 可直接使用,不依赖于其他条件或拓展
      • 包括网络协议、IP地址、网络接口等条件
      • 常见的匹配条件:
        • 协议匹配:-P 协议名
        • ! 取反
        • iptables -I INPUT ! -p icmp -j ACCEPT //除了icmp 之外都是允许通过
        • 地址匹配:-s 源地址、-d 目的地址
          • iptables -A INPUT -s 192.168.8.167 -p icmp -j ACCEPT //只允许这个地址通过
          • iptables -I INPUT -s 192.168.8.0/24 -p icmp -j ACCEPT //允许这个网段通过
        • 接口匹配:-i 入站网卡、-o出站网卡
          • iptables -I INPUT -i etho -p icmp -j DROP //以eth0进站的都不允许通过
    • 隐含匹配:
      • 要求以特定的协议匹配作为前提
      • 包括端口、TCP标记、ICMP类型等条件
      • 常用匹配
        • 端口匹配 --sport 源端口 --dport 目的端口
          • iptables -I INPUT -s 192.168.8.167 -p tcp --dport 22 -j ACCEPT //允许此地址连接22号端口
          • iptables -I INPUT -p tcp --dport 80 -j ACCEPT //允许TCP 80端口通过
        • TCP标记匹配 --tcp-flags 检查范围,被设置的标记
        • ICMP类型匹配 --icmp-type ICMP类型
          • 0-回显 3-端口不可达 8-icmp请求
          • iptables -I INPUT -p icmp --icmp-type 8 -j DROP
    • 显示匹配:
      • 要求以 -m 拓展模块 的形式明确指出类型
      • 包括多端口、MAC地址、IP地址、数据包状态等条件
      • 常用匹配
        • 多端口匹配 -m multiport -sport/-dport
          • iptables -I INPUT -m multiport -p tcp --dports 80,443 -j REJECT //拒绝80,443端口
        • ip 范围 -m IPrange --src-range
        • MAC范围: -m mac --mac source
          • iptables -I INPUT -m mac --mac-source 6C-2B-59-76-F1-03 -p icmp -j DROP //不允许此MAC地址通过
        • 状态匹配: -m statr --state 连接状态
          • iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章