nat表
mangle表
iptables內(nèi)置鏈PREROUTING:路由表之前INPUT:通過路由表后目的地為本機FORWARDING:通過路由表后,目的地不為本機OUTPUT:由本機產(chǎn)生,向外轉(zhuǎn)發(fā)POSTROUTIONG:路由之后netfilter五條鏈相互關(guān)系,即iptables數(shù)據(jù)包轉(zhuǎn)發(fā)流程圖Iptables工作流程圖iptables擁有三個表和五條鏈組成
Iptables基本語法iptables [-t 表名] -命令 -匹配 -j 動作/目標iptables內(nèi)置了filter、nat和mangle三張表,我們可以使用-t參數(shù)來設(shè)置對哪張表生效哈~也可以省略-t參數(shù),則默認對filter表進行操作。具體命令參數(shù)可以通過man iptables查詢哈~配置SNAT命令基本語法iptables -t nat -A POSTROUTING -o 網(wǎng)絡(luò)接口 -j SNAT --to-source IP地址配置DNAT命令基本語法iptables -t nat -A PREROUTING -i 網(wǎng)絡(luò)接口 -p 協(xié)議 --dport 端口 -j DNAT --to-destination IP地址。(1)刪除策略iptables -F:清空所選鏈中的規(guī)則,如果沒有指定鏈則清空指定表中所有鏈的規(guī)則iptables -X:清除預設(shè)表filter中使用者自定鏈中的規(guī)則iptables -Z:清除預設(shè)表filter中使用者自定鏈中的規(guī)則
2、設(shè)置回環(huán)地址有些服務的測試需要使用回環(huán)地址,為了保證各個服務的正常工作,需要允許回環(huán)地址的通信,如果不設(shè)置回環(huán)地址,有些服務不能啟動哈~。iptables -A INPUT -i lo -j ACCEPT
3、連接狀態(tài)設(shè)置為了簡化防火墻的配置操作,并提高檢查的效率,需要添加連接狀態(tài)設(shè)置iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT連接跟蹤存在四種數(shù)據(jù)包狀態(tài)NEW:想要新建連接的數(shù)據(jù)包INVALID:無效的數(shù)據(jù)包,例如損壞或者不完整的數(shù)據(jù)包ESTABLISHED:已經(jīng)建立連接的數(shù)據(jù)包RELATED:與已經(jīng)發(fā)送的數(shù)據(jù)包有關(guān)的數(shù)據(jù)包
4、設(shè)置80端口轉(zhuǎn)發(fā)公司網(wǎng)站需要對外開放,所以我們需要開放80端口iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
5、DNS相關(guān)設(shè)置為了客戶端能夠正常使用域名訪問互聯(lián)網(wǎng),我們還需要允許內(nèi)網(wǎng)計算機與外部DNS服務器的數(shù)據(jù)轉(zhuǎn)發(fā)。開啟DNS使用UDP、TCP的53端口iptables -A FORWARD -p tcp --dport 53 -j ACCEPTiptables -A FORWARD -p udp --dport 53 -j ACCEPT
6、允許訪問服務器的SSH管理員會通過外網(wǎng)進行遠程管理,所以我們要開啟SSH使用的TCP協(xié)議22端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT
7、NAT端口映射設(shè)置由于局域網(wǎng)的地址為私網(wǎng)地址,在公網(wǎng)上不合法哈~所以必須將私網(wǎng)地址轉(zhuǎn)為服務器的外部地址進行地址映射哈~連接外網(wǎng)接口為ppp0iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADEMASQUERADE和SNAT作用一樣哈~相樣是提供源地址轉(zhuǎn)換的操作,但是MASQUERADE是針對外部接口為動態(tài)IP地址來設(shè)置滴,不需要使用--to-source指定轉(zhuǎn)換的IP地址。如果網(wǎng)絡(luò)采用的是撥號方式接入互聯(lián)網(wǎng),而沒有對外的靜態(tài)IP地址(主要用在動態(tài)獲取IP地址的連接,比如ADSL撥號、DHCP連接等等),那么建議使用MASQUERADE哈~注意:MASQUERADE是特殊的過濾規(guī)則,其只可以映射從一個接口到另一個接口的數(shù)據(jù)哈~
8、內(nèi)網(wǎng)機器對外發(fā)布WEB網(wǎng)站內(nèi)網(wǎng)WEB服務器IP地址為192.168.0.3,我們需要進行如下配置哈~,當公網(wǎng)客戶端訪問服務器時,防火墻將請求映射到內(nèi)網(wǎng)的192.168.0.3的80端口iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
9、保存與恢復iptables配置保存:iptables-saveiptables-save [-c] [-t 表名]-c:保存包和字節(jié)計數(shù)器的值。可以使在重啟防火墻后不丟失對包和字節(jié)的統(tǒng)計-t:用來保存哪張表的規(guī)則,如果不跟-t參數(shù)則保存所有的表可以使用重定向命令來保存這些規(guī)則集iptables-save> /etc/iptables-save恢復:iptables-restoreiptables-restore [-c] [-n]-c:如果加上-c參數(shù)則表示要求裝入包和字節(jié)計數(shù)器-n:表示不覆蓋己有的表或表內(nèi)的規(guī)則,默認情況下是清除所有己存在的規(guī)則使用重定向來恢復由iptables-save保存的規(guī)則集iptables-restore> /etc/iptables-save如果要在服務或系統(tǒng)重啟后依然生效service iptables save
新聞熱點
疑難解答