防火墙(Iptables NAT)
Posted mr-ws
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防火墙(Iptables NAT)相关的知识,希望对你有一定的参考价值。
1.nat 透明转发 源地址和目标地址不会改变
环境配置:
三台机器:
一台:
更改网关:
环境配置:
三台机器:
一台:
更改网关:
[root@whya ~]# ip route add default via 192.168.60.160 [root@whya ~]# ip route del default via 192.168.60.2 [root@whya ~]# ip route list default via 192.168.60.160 dev ens33 192.168.60.0/24 dev ens33 proto kernel scope link src 192.168.60.130 metric 100
二台:
添加新的ip地址:
添加新的ip地址:
[root@whyd ~]# ip addr add 172.16.1.101/24 dev ens33
打开转发功能:
[root@whyd ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
三台:
更改IP:
更改IP:
[root@whye ~]# ip addr add 172.16.1.102/24 dev ens33 [root@whye ~]# ip addr del 192.168.60.170 dev ens33
更改网卡:
[root@whye ~]# ip route add default via 172.16.1.101
[root@whye ~]# ip route del default via 192.168.60.2
测试:
一台:
[
一台:
[
root@whya ~]# ping 172.16.1.102 PING 172.16.1.102 (172.16.1.102) 56(84) bytes of data. 64 bytes from 172.16.1.102: icmp_seq=1 ttl=64 time=0.445 ms 64 bytes from 172.16.1.102: icmp_seq=2 ttl=64 time=0.290 ms 64 bytes from 172.16.1.102: icmp_seq=3 ttl=64 time=0.352 ms
三台:装抓包工具:tcpdump
[root@whye ~]# tcpdump -i ens33 -nn icmp [root@whye ~]# tcpdump -i ens33 -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 22:36:24.958462 IP 192.168.60.130 > 172.16.1.102: ICMP echo request, id 10102, seq 5, length 64 22:36:24.958496 IP 172.16.1.102 > 192.168.60.130: ICMP echo reply, id 10102, seq 5, length 64
2.sant 私有地址上网 (应对固定IP)
将原地址改为snat地址 解决私用网络上网问题
将原地址改为snat地址 解决私用网络上网问题
环境准备:
一台:
指向snat的ip和网关
二台:
ip准备
开启转发
ip准备
开启转发
[root@whyd ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
转发策略:
[root@whyd ~]# iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -j SNAT --to-source 172.16.1.101 从192.168.60.0/24出来的数据包地址都改为172.16.1.101
三台:
ip准备
ip准备
测试:
一台:
一台:
[root@whya ~]# ping -c1 172.16.1.102 PING 172.16.1.103 (172.16.1.103) 56(84) bytes of data. 64 bytes from 172.16.1.102: icmp_seq=1 ttl=63 time=1.72 ms --- 172.16.1.102 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.726/1.726/1.726/0.000 ms
三台:抓包
[root@whye ~]# tcpdump -i ens33 -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 22:39:50.413260 IP 172.16.1.101 > 172.16.1.102: ICMP echo request, id 10107, seq 1, length 64 22:39:50.413315 IP 172.16.1.102 > 172.16.1.101: ICMP echo reply, id 10107, seq 1, length 64
3.dant 发布内网 (应对dhcp可变ip)
masquerade伪装
环境:
一台
更改ip
指定网关
一台
更改ip
指定网关
二台:
打开转发
[root@whyd ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
设置策略:
[root@whyd ~]# iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -d 172.16.1.0/24 -j MASQUERADE 从192.168.60.0/24出来到172.16.1.0/24的数据包都进行伪装
三台:工作中是外网服务器
ip设置
网关指向
ip设置
网关指向
测试:
一台:
一台:
[root@whya ~]# ping -c1 172.16.1.102 PING 172.16.1.102 (172.16.1.102) 56(84) bytes of data. 64 bytes from 172.16.1.102: icmp_seq=1 ttl=63 time=1.10 ms --- 172.16.1.102 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.100/1.100/1.100/0.000 ms
三台:
[root@whye ~]# tcpdump -i ens33 -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 23:25:13.278352 IP 172.16.1.101 > 172.16.1.102: ICMP echo request, id 10676, seq 1, length 64 23:25:13.278440 IP 172.16.1.102 > 172.16.1.101: ICMP echo reply, id 10676, seq 1, length 64
二台:
ip
网关
转发
ip
网关
转发
[root@whyd ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
策略:
[root@whyd ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.60.130:80 将来在80端口的请求转到192.168.60.130:80上
三台:
IP
网关
IP
网关
测试:
一台:
[root@whya html]# cat /var/www/html/index.html nihao
三台:
[root@whye ~]# curl http://172.16.1.101 nihao
以上是关于防火墙(Iptables NAT)的主要内容,如果未能解决你的问题,请参考以下文章
41_iptables防火墙 filter表控制 扩展匹配 nat表典型应用