iptables -t nat -A POSTROUTING -s 192.168.18.0/24 -o eth0 -j SNAT --to-source 172.18.210.77
用一個CentOS虛擬機提供NAT服務。
參照了howtoforge上面的文章,發現本身並不複雜,但是幾個基本概念必須搞清,不然看的就不太明白。
最重要的也就是這麼兩步:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface gre10 -j ACCEPT
這裏eth0是外部接口,eth1是內部接口。
然後把/proc/sys/net/ipv4/ip_forward內容改爲1 就可以了。 這之前當然還要查一查iptables的規則,看看是否有和NAT規則衝突的,就把它改掉。
howtoforge網站沒有對此做什麼解釋,所以設置好了也只是知其然不知其所以然。 後來查了文檔,原來iptables規則中有三個表, filter,nat,mangle, 默認都是在filter表上操作,所以平時一般的規則修改不怎麼用到nat表和mangle 表,也不會用到 -- table 選項,難怪一開始看到howtoforge的文章會感到沒有頭緒。
在Linux nat中,被轉發的包實際經過了以下幾個 表-鏈 的組合
1. mangle -- PREROUTING
2. nat -- PREROUTING ;用於外部訪問內部網站的NAT
3. mangle -- FORWARD
4. filter -- FORWARD
5. mangle -- POSTROUTING
6. nat - POSTROUTING ;用於內部瀏覽外部的NAT
一般來說都是在 filter -- FORWARD 和 nat -- POSTROUTING 這兩個組合中作規則的設定。所以在這裏設置用eth0作爲出口路由,對於進入eth1的轉發包一律允許,當然也可以結合具體情況做一些過濾。
centOS本身的system-config-securitylevel工具不適合做這種配置,修改了nat以後也不要再用這個工具來檢查配置了, 好像是無法識別的。
filter 表裏面有3個chain,FORWARD, INPUT 和 OUTPUT。
iptables的常見選項:
-p 指定協議 -s 指定源地址 -d 指定目的地址 -i 指定入接口 -o 指定出接口
-p 指定協議後,可接着用 --sport --dport 指定端口號 --syn 表示syn 包後面可接 -m limit --limit n/s 來限定每秒SYN數量。
擴展選項:
-m multiport --sports
端口號同逗號分隔,不一定是連續的
-m mulitport --dports
-m multiport --ports
-m --state 狀態可以是 ESTABLISHED NEW RELATED INVALID 等
如果要讓外部訪問內部的某一個服務器如Web 服務器:
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 119.23.42.3 --dport 3389 --sport 1024:65535 -j DNAT --to 192.168.60.253:3389
iptables -A FORWARD -p tcp -i eth0 -o gre10 -d 192.168.60.253 --dport 3389 --sport 1024:65535 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
centos 7 nat
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux 開機(腳本)啓動順序
Uchen
2019-02-24 13:53:20
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
tar Command Daily Work Summary
海膽階段
2019-02-24 12:58:10
SSH and SCP Daily Work Summary
海膽階段
2019-02-24 12:58:10
Linux積累-安裝與配置Hadoop
lftong
2019-02-23 14:00:30
centos ***
samplelife
2019-02-23 13:57:36
新手學習Linux系統的一點見解
jackieban
2019-02-23 13:57:24
CentOS 6.4下PXE+Kickstart無人值守安裝操作系統
paul8339
2019-02-23 13:56:09
Linux學習之旅 - 第一天
lichen_zt
2019-02-23 13:55:58
Linux I/O重定向以及正則表達式
zhongqijian916
2019-02-23 13:54:50
Linux---facl以及終端
zhongqijian916
2019-02-23 13:54:50
Linux---YUM
zhongqijian916
2019-02-23 13:54:50
Linux---LVM硬盤管理以及LVM的擴展
zhongqijian916
2019-02-23 13:54:50
Linux---LVM補充
zhongqijian916
2019-02-23 13:54:50
Linux---make
zhongqijian916
2019-02-23 13:54:50