1.概念
目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、福州網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
網(wǎng)絡(luò)地址轉(zhuǎn)換用于控制網(wǎng)絡(luò)封包的表面源或所需目標(biāo)地址。
基于主機的簡單防火墻只具有 INPUT 鏈中的規(guī)則,以 ACCEPT 或 REJECT 封包,但是在專用(不可路由)網(wǎng)絡(luò)的網(wǎng)關(guān)或路由器上,通常使用 PREROUTING 和 POSTROUTING 鏈修改封包。nat 表使用三條鏈: PREROUTING 、 OUTPUT 和 POSTROUTING 。當(dāng)路由器修改通過其的網(wǎng)絡(luò)通信的源或目標(biāo) IP 地址或端口時,進行網(wǎng)絡(luò)地址轉(zhuǎn)換。它用于映射使用單個 IP 地址的計算機網(wǎng)絡(luò),以使其可以共享單個公共地址并隱藏其內(nèi)部網(wǎng)絡(luò)( MASQUERADE 或 SNAT )。它還用于將發(fā)送到一個 IP 地址的通信重定向到另一個 IP 地址。此目標(biāo) NAT 用于端口轉(zhuǎn)發(fā)(通過防火墻外部的端口至防火墻內(nèi)部的服務(wù))并用于透明地重定向至代理服務(wù)。
MASQUERADE 目標(biāo)使源 IP 地址更改為與開啟防火墻的接口的 IP 相匹配。目標(biāo)將響應(yīng)發(fā)送回該接口的 IP地址。連接跟蹤自動將返回通信轉(zhuǎn)換為匹配的內(nèi)部 IP 地址和端口(基于連接兩端的 IP 地址和端口進行跟蹤)。 SNAT 目標(biāo)通過選項 --to-source 使源 IP 地址更改為指定的 IP 地址。
# iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
DNAT 目標(biāo)通過— to-destination 選項使目標(biāo) IP 地址更改為與指定的 IP 地址相匹配。路由器將封包轉(zhuǎn)發(fā)到該地址;這是在做出路由決策之前使用鏈的原因。連接跟蹤自動將響應(yīng)發(fā)送回具有原始 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服務(wù)
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表 內(nèi)外網(wǎng)訪問
3.1實驗環(huán)境:
真機 172.25.254.6 (外網(wǎng))
虛擬機一 172.25.254.106/172.25.6.1
虛擬機二 172.25.6.10 (內(nèi)網(wǎng))
3.2內(nèi)網(wǎng)訪問外網(wǎng)
3.2.1虛擬機一配置
[root@server106 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #開通內(nèi)核路由功能
[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##添加內(nèi)網(wǎng)到外網(wǎng)的策略
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網(wǎng)段 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外網(wǎng)訪問內(nèi)網(wǎng)
3.3.1虛擬機一配置
[root@server106 ~]# iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 172.25.254.106 ##添加外網(wǎng)內(nèi)網(wǎng)的策略
3.3.2虛擬機二 ### 添加測試頁
[root@localhost ~]# vim /var/www/html/index.html
test page
[root@localhost ~]# /etc/init.d/httpd start
3.3.3真機端測試