• 基于openeuler的NAT服务器查看流向内部服务端口的流量


    在网络边界构建NAT服务器统一转发内部服务,有助于安全管理,也有利于业务的灵活性。本文在基于openeuler的NAT服务器通过脚本查看监控流向流向内部服务端口的流量。

     一、基本思路

    用"iptables -t nat -nvL POSTROUTING --line-numbers "获取 NAT 表 POSTROUTING 链中的每一个规则。

    1. [root@localhost]# iptables -t nat -nvL POSTROUTING --line-numbers
    2. Chain POSTROUTING (policy ACCEPT 2356 packets, 150K bytes)
    3. num pkts bytes target prot opt in out source destination
    4. 1 8 480 SNAT tcp -- * * 0.0.0.0/0 192.168.117.229 tcp dpt:80 to:192.168.117.222
    5. 2 258 13416 SNAT tcp -- * * 0.0.0.0/0 192.168.235.55 tcp dpt:4433 to:192.168.117.222
    6. 3 209 10868 SNAT tcp -- * * 0.0.0.0/0 192.168.18.43 tcp dpt:4434 to:192.168.117.222
    7. 4 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.235.38 tcp dpt:4435 to:192.168.117.222
    8. 5 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.18.73 tcp dpt:4436 to:192.168.117.222
    9. 6 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.18.73 tcp dpt:4437 to:192.168.117.222
    10. 7 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.18.73 tcp dpt:4438 to:192.168.117.222
    11. 8 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.18.73 tcp dpt:4439 to:192.168.117.222
    12. 9 0 0 SNAT tcp -- * * 0.0.0.0/0 192.168.18.73 tcp dpt:4440 to:192.168.117.222

    二、示例脚本

    下面是一个简单的 bash 脚本,然后对于NAT 表 POSTROUTING 链中每一个规则,提取出规则的内部服务 IP和端口,数据包的数量 (packets) 和字节数量(bytes)。本脚本适用于openeuler 22.03 LTS系统,其它系统可能需要根据实际回显情况进行适当的修改。

    1. [root@localhost]# vi monitor.sh
    2. #!/bin/bash
    3. ##__author__='daigjianbing'
    4. # 监控NAT服务器iptables-NAT-POSTROUTING链的目的IP端口和流量
    5. iptables -t nat -nvL POSTROUTING --line-numbers | \
    6. while IFS= read -r line
    7. do
    8. # 检查行是否包含规则,过滤有效行
    9. if [[ $line == *[0-9].*.*.* ]]
    10. then
    11. # 获取目的 IP
    12. ip=$(echo "$line" | awk '{print $10}')
    13. # 获取目的 端口
    14. port=$(echo "$line" | awk '{print $12}'|awk -F ':' '{print $2}')
    15. # 获取数据包和字节数量
    16. packets=$(echo $line | awk '{print $2}')
    17. bytes=$(echo $line | awk '{print $3}')
    18. echo "NAT业务的目的IP和端口: $ip:$port"
    19. echo "数据包总数: $packets"
    20. echo "字节数总数: $bytes"
    21. echo "------------------------------"
    22. fi
    23. done

     三、检测测试

    1. [root@CTNAT10 monitor]# sh monitor.sh
    2. NAT业务的目的IP和端口: 192.168.117.229:80
    3. 数据包总数: 9
    4. 字节数总数: 540
    5. ------------------------------
    6. NAT业务的目的IP和端口: 192.168.235.55:4433
    7. 数据包总数: 301
    8. 字节数总数: 15652
    9. ------------------------------
    10. NAT业务的目的IP和端口: 192.168.18.43:4434
    11. 数据包总数: 244
    12. 字节数总数: 12688
    13. ------------------------------
    14. NAT业务的目的IP和端口: 192.168.235.38:4435
    15. 数据包总数: 0
    16. 字节数总数: 0
    17. ------------------------------
    18. NAT业务的目的IP和端口: 192.168.18.73:4436
    19. 数据包总数: 0
    20. 字节数总数: 0
    21. ------------------------------
    22. NAT业务的目的IP和端口: 192.168.18.73:4437
    23. 数据包总数: 0
    24. 字节数总数: 0
    25. ------------------------------
    26. NAT业务的目的IP和端口: 192.168.18.73:4438
    27. 数据包总数: 0
    28. 字节数总数: 0
    29. ------------------------------
    30. NAT业务的目的IP和端口: 192.168.18.73:4439
    31. 数据包总数: 0
    32. 字节数总数: 0
    33. ------------------------------
    34. NAT业务的目的IP和端口: 192.168.18.73:4440
    35. 数据包总数: 0
    36. 字节数总数: 0
    37. ------------------------------

    效果如上,达到所需目标。

  • 相关阅读:
    【车载开发系列】汽车嵌入式开发常用工具介绍
    Java基础之多态(最简单最详细)
    1000道最新高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构
    Linux:文件权限管理小案例1:警察和土匪游戏
    springBoot 项目中的静态资源文件夹static和模版文件文件夹templates
    hot100-哈希
    02UEc++【打飞艇:无人机运动】
    金融新应用潮涌,银行如何加强数据安全韧性?
    linux多处理器并发访问共享资源---自旋锁
    数字化打开第二增长曲线,华为总结运营商云转型三大场景
  • 原文地址:https://blog.csdn.net/forestqq/article/details/132831661