Linux防火墙iptables地址转换(内容还没完善好)

目录

 

SNAT DNAT

示例

准备

重启服务

linux系统对网络抓包

tcpdump 命令示例:

可视化工具

更改默认区域

firewall -cmd


SNAT DNAT

下面是一个示例,将本地主机上的流量重定向到另一台服务器,类似于将访问本机的192.168.10.182的5566端口,转发到百度主页:

  1. 目的地址转换 (DNAT)

目的地址转换,内部地址映射到一个或者是一组公网地址。将内部私网地址映射成公网地址,公网地址可以直接对外提供访问服务

iptables -t nat -A PREROUTING -p tcp -d 192.168.10.182 --dport 5566 -j DNAT --to-destination 104.193.88.123:80

 这个规则会将来自本地主机对192.168.10.182的5566端口的请求,重定向到104.193.88.123的80端口(假设百度主页在80端口上)。

  1. 源地址转换 (SNAT)(如果需要):
iptables -t nat -A POSTROUTING -p tcp -d 104.193.88.123 --dport 80 -j SNAT --to-source 192.168.10.182

这个规则会将从本地主机转发到104.193.88.123的80端口的请求的源地址改为192.168.10.182。这是为了确保返回的数据包能够正确返回给本地主机。

请注意:

  • 如果使用的是HTTPS(端口443),在规则中相应地更改端口。

  • 这些规则是针对IPv4的。如果使用IPv6,规则会有所不同。

  • 确保开启了IP转发功能,以便iptables规则生效:echo 1 > /proc/sys/net/ipv4/ip_forward

这些规则可能会因环境不同而有所调整。确保在配置之前备份iptables规则,并在对网络进行更改时谨慎操作,避免意外断开连接或影响网络连通性。

示例

准备

三台服务器

test1 :内网服务器 192.168.41.10

test2:网关服务器 192.168.41.11

test3:外网地址 12.0.0.10

重启服务

换到test3

到test02

iptables -t nat -A POSTROUTING -s 192.168.41.0/24 -o ens36 -j SNAT --to 10.0.0.10

这条iptables规则的作用是进行SNAT(Source Network Address Translation)操作,它会更改数据包的源IP地址。让我解释每个部分的含义:

  • -t nat: 这是一个规则的表(table),它指定了要操作的iptables表。nat 表用于Network Address Translation(NAT)规则。

  • -A POSTROUTING: 这部分表示将规则附加到 POSTROUTING 链,它是 nat 表中的一个链。POSTROUTING 链用于在数据包离开网络接口之前进行处理,通常用于进行SNAT操作。

  • -s 192.168.41.0/24: 这部分指定了源IP地址的匹配条件。这个规则会匹配源IP地址在192.168.41.0/24子网中的所有数据包。

  • -o ens36: 这部分指定了输出接口的匹配条件。这个规则会匹配从名为 ens36 的网络接口出去的数据包。

  • -j SNAT --to 10.0.0.10: 这部分是SNAT操作,它会将匹配的数据包的源IP地址更改为10.0.0.10。这意味着,所有从192.168.41.0/24子网发送到 ens36 接口的数据包的源IP地址都会被更改为10.0.0.10。

这个规则的常见用途是将内部私有网络(如192.168.41.0/24)的数据包通过公共IP地址(10.0.0.10)进行Internet访问,从而实现IP地址伪装,使外部服务器只能看到公共IP地址而不是内部私有IP地址

iptables -t nat -A POSTROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.233.10:80

这条iptables规则的作用是进行DNAT(Destination Network Address Translation)操作,它会更改数据包的目标IP地址和目标端口。让我解释每个部分的含义:

  • -t nat: 这是一个规则的表(table),它指定了要操作的iptables表。nat 表用于Network Address Translation(NAT)规则。

  • -A POSTROUTING: 这部分表示将规则附加到 POSTROUTING 链,它是 nat 表中的一个链。POSTROUTING 链用于在数据包离开网络接口之前进行处理,通常用于进行DNAT操作。

  • -d 11.0.0.11: 这部分指定了目标IP地址的匹配条件。这个规则会匹配目标IP地址为11.0.0.11的所有数据包。

  • -i ens36: 这部分指定了输入接口的匹配条件。这个规则会匹配通过名为 ens36 的网络接口进入系统的数据包。

  • -p tcp: 这部分指定了协议条件,只匹配TCP协议的数据包。

  • --dport 80: 这部分指定了目标端口的匹配条件,只匹配目标端口为80的数据包。

  • -j DNAT --to 192.168.233.10:80: 这部分是DNAT操作,它会将匹配的数据包的目标IP地址更改为192.168.233.10,并将目标端口更改为80。这意味着,所有发送到11.0.0.11的TCP端口80的数据包将被重定向到内部主机192.168.233.10的TCP端口80。

这个规则的常见用途是将外部请求(目标IP地址为11.0.0.11,端口为80)重定向到内部主机以提供特定服务,比如Web服务。

linux系统对网络抓包

两种方式

        静态抓包:指定抓多少数据包

        动态抓包:不停止的话,一直抓包

tcpdump 是一个功能强大的命令行工具,用于抓取和分析网络数据包。以下是一些常见的

tcpdump 命令示例:

  1. 捕获特定网络接口上的所有数据包:
sudo tcpdump -i eth0

这会在接口 eth0 上捕获所有数据包的输出。

  1. 捕获特定主机的数据包:

    Plain Text sudo tcpdump host 192.168.1.100

    这会捕获与主机 IP 地址为 192.168.1.100 有关的所有数据包。

  1. 捕获特定端口的数据包:

    Plain Text sudo tcpdump port 80

    这会捕获目标端口为 80 的所有数据包(通常是 HTTP 流量)。

  1. 捕获特定协议的数据包(例如,HTTP):

    Plain Text sudo tcpdump port 80

    这会捕获所有 HTTP 数据包。

  1. 捕获并将数据包保存到文件中:
sudo tcpdump -i eth0 -w capture.pcap

这将把捕获的数据包保存到名为 capture.pcap 的文件中,以便稍后分析。

  1. 显示数据包的详细信息:
sudo tcpdump -i eth0 -nn -v

-nn 选项用于禁用主机名和端口号的解析,而 -v 选项会显示更多详细信息。

  1. 捕获特定主机与特定主机之间的数据包:

    Plain Text sudo tcpdump host 192.168.1.100 and host 192.168.1.200

    这会捕获来自主机 192.168.1.100 到主机 192.168.1.200 的数据包,或反之。

  1. 按协议过滤数据包:
sudo tcpdump -i eth0 tcp

这会捕获所有 TCP 数据包,或者您可以使用 udp 以捕获 UDP 数据包。

静态抓包:tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.41.0/24 -w /opt/test.cap

这个命令使用了多个 tcpdump 的选项和过滤器。让我们逐个解释这些选项和过滤器的含义:

  • tcp: 捕获TCP协议的数据包。

  • -i ens33: 指定捕获数据包的网络接口为 ens33

  • -t: 禁用打印时间戳。

  • -s0: 设置捕获数据包的截断长度为0,表示捕获整个数据包的内容而不进行截断。

  • -c 10: 指定捕获的数据包数量为10。

  • dst port 80: 仅捕获目标端口为80的数据包。

  • src net 192.168.41.0/24: 仅捕获源IP地址在192.168.41.0/24子网中的数据包。

  • -w /opt/test.cap: 将捕获的数据包保存到 /opt/test.cap 文件中。

综合起来,这个命令的意思是:在 ens33 网络接口上捕获来自192.168.41.0/24子网的前10个目标端口为80的完整TCP数据包,并将其保存到 /opt/test.cap 文件中。由于指定了截断长度为0,所以将会捕获完整的数据包内容。

动态抓包:tcpdump -i ens33 -s0 -w /opt/test.cap

  • -i ens33: 指定捕获数据包的网络接口为 ens33,这表示你要在 ens33 网络接口上进行数据包捕获。

  • -s0: 设置捕获数据包的截断长度为0,表示捕获整个数据包的内容而不进行截断。

  • -w /opt/test.apt: 指定将捕获的数据包保存到 /opt/test.apt 文件中。

综合起来,这个命令的目的是在 ens33 网络接口上捕获所有传入和传出的数据包,并将这些数据包保存到名为 /opt/test.apt 的文件中。由于设置了截断长度为0,所以将会捕获整个数据包的内容。

可视化工具

firewall-config 是一个Linux防火墙管理工具,通常与 firewalld 防火墙服务一起使用。它提供了一个图形用户界面(GUI)来配置和管理防火墙规则,而不需要在命令行中手动输入规则。

以下是关于 firewall-config 工具的一些常见信息和用途:

  1. 配置防火墙规则firewall-config 允许管理员轻松配置防火墙规则,包括允许和拒绝特定端口、协议和服务的访问。这有助于增强系统的安全性,控制网络流量。

  2. 应用服务定义:通过 firewall-config,管理员可以定义和配置服务对象,这些对象通常对应于特定应用程序或服务。这样,可以更容易地管理和调整相关的防火墙规则。

  3. 图形化界面firewall-config 提供了一个直观的图形用户界面,允许管理员使用鼠标和菜单来管理防火墙规则,而不需要记忆复杂的命令。

  4. 实时监控和修改:管理员可以在运行时监控和修改防火墙规则,这使得可以快速响应网络安全事件或需求变化。

  5. 支持复杂网络拓扑firewall-config 支持复杂的网络拓扑,包括多个区域(zones)和源/目标地址的定义,以实现高级的网络配置。

  6. 与 firewalld 集成firewall-configfirewalld 的图形界面,而 firewalld 是一种用户空间的动态防火墙管理工具,用于管理 iptables 防火墙规则。

  • block:限制区域,所有流量都会被拒绝

  • dmz:隔离区域,也叫非军事区,只会允许预定服务,ssh等系统预设服务,其余都会拒绝

  • drop丢弃区域丢弃所有传入流量,而且没有任何响应。

  • external 外部区域允许系统预设的服务,ssh,其他的全部拒绝

  • home:家庭区域,只允许预设的服务,其他的全部拒绝

  • internal:内部区域,和家庭区域—样。

  • public:公共区域,也是firewalld默认区域。允许预设服务ssh,其他的全部拒绝

  • trusted:信任区域,允许所有的传入流量

  • work:工作区域,允许预定义服务的流量传入,其他的全部拒绝。

更改默认区域

firewall -cmd

firewall-cmd 是一个命令行工具,用于在基于 firewalld 的 Linux 系统上配置和管理防火墙规则。它允许管理员通过命令行界面对防火墙进行动态的配置和修改。以下是一些关于 firewall-cmd 的常见用法和选项:

  1. 查看防火墙状态:可以使用 firewall-cmd --state 命令来查看防火墙的状态,以确定它是否处于活动状态。

  2. 管理区域和服务:可以使用 firewall-cmd --zone 命令来配置区域,允许特定服务或应用程序通过防火墙。例如,您可以使用 --zone=public 选项来设置公共区域。

  3. 添加和删除规则:可以使用 --add-...--remove-... 选项向特定区域添加或删除防火墙规则。例如,使用 --add-port 可以允许特定端口的流量通过防火墙,而 --remove-port 可以删除该规则。

  4. 重新加载防火墙:在应用更改后,可以使用 firewall-cmd --reload 命令重新加载防火墙配置,以确保新的规则生效。

  5. 查看当前配置:使用 firewall-cmd --list-all 命令可以查看当前防火墙的所有配置信息,包括区域、规则和接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值