千家信息网

网络地址转换实验

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,1.概念网络地址转换用于控制网络封包的表面源或所需目标地址。基于主机的简单防火墙只具有 INPUT 链中的规则,以 ACCEPT 或 REJECT 封包,但是在专用(不可路由)网络的网关或路由器上,通
千家信息网最后更新 2024年11月27日网络地址转换实验

1.概念

网络地址转换用于控制网络封包的表面源或所需目标地址。

基于主机的简单防火墙只具有 INPUT 链中的规则,以 ACCEPT 或 REJECT 封包,但是在专用(不可路由)网络的网关或路由器上,通常使用 PREROUTING 和 POSTROUTING 链修改封包。nat 表使用三条链: PREROUTING 、 OUTPUT 和 POSTROUTING 。当路由器修改通过其的网络通信的源或目标 IP 地址或端口时,进行网络地址转换。它用于映射使用单个 IP 地址的计算机网络,以使其可以共享单个公共地址并隐藏其内部网络( MASQUERADE 或 SNAT )。它还用于将发送到一个 IP 地址的通信重定向到另一个 IP 地址。此目标 NAT 用于端口转发(通过防火墙外部的端口至防火墙内部的服务)并用于透明地重定向至代理服务。

MASQUERADE 目标使源 IP 地址更改为与开启防火墙的接口的 IP 相匹配。目标将响应发送回该接口的 IP地址。连接跟踪自动将返回通信转换为匹配的内部 IP 地址和端口(基于连接两端的 IP 地址和端口进行跟踪)。 SNAT 目标通过选项 --to-source 使源 IP 地址更改为指定的 IP 地址。

# iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

DNAT 目标通过- to-destination 选项使目标 IP 地址更改为与指定的 IP 地址相匹配。路由器将封包转发到该地址;这是在做出路由决策之前使用链的原因。连接跟踪自动将响应发送回具有原始 IP 地址的原始源而不是新源。

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.254

DNAT 示例:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.0.250

# iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.0.200:3128 (重定向)

SNAT 示例:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (伪装)

# iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.0.253


2.filter表 只允许sshd,dns,http,https,ftp服务

vim /etc/vsftpd/vsftpd.conf

pasv_max_port=5000

pasv_min_port=5000

iptables -F

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 20 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 953 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 5000 -j ACCEPT

iptables -A INPUT -m state --state NEW -s 172.25.6.254 -p tcp --dport 1024: -j ACCEPT


3.NAT表 内外网访问

3.1实验环境:

真机 172.25.254.6 (外网)

虚拟机一 172.25.254.106/172.25.6.1

虚拟机二 172.25.6.10 (内网)


3.2内网访问外网

3.2.1虚拟机一配置

[root@server106 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1 #开通内核路由功能

[root@server106 ~]# sysctl -p

[root@server106 ~]# iptables -F

[root@server106 ~]# iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 172.25.254.106##添加内网到外网的策略

3.2.2虚拟机二配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=172.25.6.1

[root@localhost ~]# /etc/init.d/network restart

3.2.3测试:虚拟机二可ping通254网段 172.25.254.6

[root@localhost ~]# ping 172.25.254.6

PING 172.25.254.6 (172.25.254.6) 56(84) bytes of data.

64 bytes from 172.25.254.6: icmp_seq=1 ttl=64 time=0.102 ms

64 bytes from 172.25.254.6: icmp_seq=2 ttl=64 time=0.127 ms

64 bytes from 172.25.254.6: icmp_seq=3 ttl=64 time=0.164 ms


3.3外网访问内网

3.3.1虚拟机一配置

[root@server106 ~]# iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 172.25.254.106 ##添加外网内网的策略

3.3.2虚拟机二 ### 添加测试页

[root@localhost ~]# vim /var/www/html/index.html

test page

[root@localhost ~]# /etc/init.d/httpd start

3.3.3真机端测试





0