美文网首页
iptables复习

iptables复习

作者: 午觉不眠Orz | 来源:发表于2024-05-30 18:12 被阅读0次

    一、iptables原理学习资料:

    云计算底层计算
    重温iptables #感谢作者,写的真细

    二、概念原理总结,辅助理解

    1)iptables是用户空间命令,通过netlink和内核的netfilter模块进行交互,在L3/L4操控封包。
    2)PREROUTING链和OUTPUT链,可以DNAT,OUTROUTING链可以SNAT。其他链路都没NAT操作。
    3)raw,mangle,nat,filter,四张表加上security五张表,一般有用途上的区别
    raw表:最高优先级,一般用于连接跟踪,Connection Tracking
    mangle表:一般用于修改封包,典型:设置TTL,MARK标记;
    nat表,一般用于nat地址转换
    filter表,一般记录过滤条件,决定封包的放行,丢弃,拒绝
    security表:安全相关,甚少使用。

    4)根据规则看NAT,判断方法
    例如OUTROUTING链路,见到规则 -j MASQUERADE,那就是SNAT
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

    例如PREROUTING链和OUTPUT链,见到-j DNAT,那就是DNAT
    iptables -t nat -A PREROUTING # 入站后第一个链
    -p tcp --dport 7777 -i eth0 # 如果封包来自eth0且目标端口为7777
    -j DNAT --to-destination 172.16.87.132:80

    5)TCP标记,可用的标记SYN, ACK, FIN, RST, URG, PSH,还有两个特殊的值ALL, NONE分别匹配具有任何标记的封包、没有任何标记的封包

    三、调试iptables的方法(ubuntu 20.04版本)

    开启iptables调试内核模块
    $ modprobe nf_log_ipv4

    $ sysctl net.netfilter.nf_log.2

    net.netfilter.nf_log.2 = nf_log_ipv4

    添加iptables规则
    $ iptables -t raw -A PREROUTING -p icmp -j TRACE

    $ iptables -t raw -A OUTPUT -p icmp -j TRACE

    $ iptables -t raw -A PREROUTING -p tcp -j TRACE

    $ iptables -t raw -A OUTPUT -p tcp -j TRACE

    测试规则
    客户端执行 ping 命令,
    $ ping 192.168.6.23 -n 1

    这里使用 -n 参数指定发送的包数量为1,方便我们分析日志
    此时在服务器上执行查看日志命令, 日志文件为:/var/log/syslog 或者 /var/log/kern.log 或者 /var/log/messages
    $ tail -f /var/log/syslog

    iptables -t raw -nvL PREROUTING --line-number
    iptables -t raw -nvL OUTPUT --line-number
    iptables -t raw -D PREROUTING 4
    iptables -t raw -D OUTPUT 8
    iptables -t raw -A PREROUTING -p tcp -j TRACE

    iptables -t raw -A OUTPUT -p tcp -j TRACE

    向xx.xx.xx.xx的80端口发起一次tcp syn请求
    hping3 -c 1 -S -p 80 xx.xx.xx.xx

    相关文章

      网友评论

          本文标题:iptables复习

          本文链接:https://www.haomeiwen.com/subject/abwtqjtx.html