防火墙(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地址:
[root@whyd ~]# ip addr add 172.16.1.101/24 dev ens33

 

打开转发功能:
[root@whyd ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

 

三台:
更改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的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准备
 
测试:
一台:
[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
指定网关

二台:
打开转发
[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设置
网关指向
 
测试:
一台:
[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准备
网关
准备apache并创建测试网页
[root@whya html]# echo nihao > /var/www/html/index.html

 

二台:
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
网关

测试:
一台:
[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表典型应用

Iptables防火墙NAT地址转换

iptables防火墙filter表控制扩展匹配 nat表典型应用

Linux之iptables(网络防火墙及NAT)

iptables nat及端口映射

Linux防火墙iptables基础