Iptables作網(wǎng)關時一種簡單的NAT使用方式
原創(chuàng)【51CTO.com獨家特稿】Iptables的基本語法(更好的理解后面的網(wǎng)關NAT腳本):
iptables [-t表名] <-A| I |D |R> 鏈名[規(guī)則編號] [-i | o 網(wǎng)卡名稱] [-p 協(xié)議類型] [-s 源IP地址 | 源子網(wǎng)][--sport 源端口號] [-d 目標IP地址 | 目標子網(wǎng)][--dport 目標端口號] <-j 動作 >
INPUT鏈:當一個數(shù)據(jù)包由內(nèi)核中的路由計算確定為本地Linux系統(tǒng)后,它會通過INPUT鏈的檢查。
OUTPUT鏈:保留給系統(tǒng)自身生成的數(shù)據(jù)包。
FORWARD鏈:經(jīng)過Linux系統(tǒng)路由的數(shù)據(jù)包(即當iptables防火墻用于連接兩個網(wǎng)絡,兩個網(wǎng)絡之間的數(shù)據(jù)包必須流經(jīng)該防火墻)。
PREROUTING鏈:用于修改目的地地址(DNAT)。
POSTROUTING鏈:用于修改源地址(SNAT)。
◆轉發(fā)和NAT的語義在iptables是獨立的。轉發(fā)數(shù)據(jù)包的功能是在filter表中通過使用FORWARD規(guī)則鏈來完成;而NAT功能是在nat通過使用PREROUTING、POSTROUTING規(guī)則鏈來完成。混淆這二個概念對它們的功能并沒有影響,但現(xiàn)在記住它們的區(qū)別是很重要的。轉發(fā)和NAT是二個不同的功能和技術;轉發(fā)是一個路由功能,而NAT是在nat表中定義的一個轉換功能。
Iptables作網(wǎng)關NAT路由器,啟動的是NAT的地址偽裝功能SNAT/MASQUERADE,具體以公司NAT路由腳本/root/firewall.sh實例來說明下:
此腳本實現(xiàn)功能如下:
①因為是綁定mac地址上網(wǎng),企業(yè)內(nèi)部客戶機如綁定mac后可杜絕局域網(wǎng)內(nèi)ARP病毒;
②對局域網(wǎng)內(nèi)機器上網(wǎng)嚴格控制,每增加一臺工作用機,就必須重新刷新NAT服務器的ip-mac對應關系;嚴格杜絕了公司外來用機上網(wǎng)問題(有的員工周末加班時喜歡帶自己手提),在安全問題上做到防患于未然;
③配合NAT網(wǎng)關服務器的監(jiān)控軟件NTOP+iptraf,可以做到及時監(jiān)控每臺主機的流量情況,如發(fā)現(xiàn)流量異??杉皶r通知網(wǎng)管或行政處理;
④經(jīng)工作實際使用發(fā)現(xiàn),此腳本作NAT網(wǎng)關路由器時,可將公司10M電信光纖帶寬發(fā)揮得極致,即一個員工用迅雷,整個公司均打不開網(wǎng)頁。
⑤網(wǎng)關NAT服務器也適合做局域網(wǎng)的文件服務器,提供vsftpd,samba服務等;
⑥看過一些其它linux愛好者寫過的腳本,感覺沒此腳本精簡方便;這里感謝3158.com技術總監(jiān)唐老師提供技術性指導。
#!/bin/bash |
#為了方便調(diào)試工作,將防火墻規(guī)則寫成腳本形式方便調(diào)試。
|
#以mac.txt文件定義的主機ip及mac地址來代替原有arp對應關系;每增加一臺工作用機,就要重新運行一次此腳本。
#當iptables對filter nat mangle任意一表進行操作時,會自動加進iptable_nat模塊;這個可以不寫
modprobe iptable_nat |
#加載狀態(tài)檢測機制,state模塊時用到,這個必寫
modprobe ip_conntrack |
#ip_conntrack_ftp是本機做FTP時用到的,這個看你的網(wǎng)關NAT用不用FTP,我這里用到了所以寫上了
modprobe ip_conntrack_ftp |
#ip_nat_ftp是通過本機的FTP時需要用到的,這個我系統(tǒng)用到了。
modprobe ip_nat_ftp |
#清除本網(wǎng)關的Filter、FORWARD、POSTROUTIG鏈的默認規(guī)則
|
#將FORWARD的默認策略設置為禁止一切(基于最安全原則考慮)
iptables -P FORWARD DROP |
#客戶機綁定mac地址才能上網(wǎng),這樣防止惡意增加IP在公司內(nèi)部上網(wǎng),引起不安全隱患。
|
#網(wǎng)關上有幾塊網(wǎng)卡,eth0接的是外網(wǎng)IP地址,eth1、eth2等對應該局域網(wǎng)IP,因是租用了電信的光纖,不存在著ADSL上網(wǎng)情況。
|
/root/mac.txt部分內(nèi)容如下:
|
【51CTO.COM 獨家特稿,轉載請注明出處及作者!】
【編輯推薦】