防火墙之地址转换SNAT DNAT
NAT network address translation
仅从报文请求来看,可以分为:
SNAT 源地址转换
DNAT 目标地址转换
PNAT 端口转换
NAT server:能根据需要实现SNAT DNAT PNAT
并非是用户空间的进程完成转换功能,靠的是内核中的地址转换规则
私有IP客户端访问互联网的方法
SNAT 、PROXY
SNAT:主要用于实现内网客户端访问外部主机时使用(局域网上网用)
定义在POSTROUTING链上
iptables -t nat -A postrouting -s 内部网络地址或主机地址 -j SNAT --to-source NAT服务器上的某外部地址
另外一个target
MASQUERADE地址伪装(适用于PPPOE拨号上网,假设eth1是出口)
iptables -t nat -A postrouting -s 内部网络或主机地址 -o eth1 -j MASQUERADE
DNAT:主要用于内部服务器被外网访问(发布服务)
定义在PREROUTING
iptables -t nat -A PREROUTING -d NAT服务器的某外部地址 -p 某协议 --dport 某端口 -j DNAT --to-destination 内网服务器地址[:port]
注意:NAT服务器需要打开数据转发
echo 1 > /proc/sys/net/ipv4/ip_forward
或者修改/etc/sysctl.conf net.ipv4.ip_forward = 1
实验操作
SNAT、DNAT
实验一:SNAT
规划主机A 作为SNAT server
eth0 ip地址172.20.1.10(外部地址),eth1 192.168.1.1(内部地址)
主机B当做局域网内主机
eth0 ip地址192.168.1.2 默认路由要指向192.168.1.1
SNAT server:
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 172.20.1.10
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
主机B ping外部的其它主机(172.20.1.20模拟互联网上的主机)
DNAT
在主机B(192.168.1.2) 开启httpd服务,然后用外部的其它主机访问主机A 172.20.1.10
主机A DNAT server
[root@localhost ~]# iptables -t nat -I PREROUTING -d 172.20.1.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2
出现了测试页