iptable 使用實例
發表于:2007-05-25來源:作者:點擊數:
標簽:
、iptables使用實例 首先讓我們看一下服務器/客戶機的交互原理。服務器提供某特定功能的服務總是由特定的后臺程序提供的。在TCP/IP網絡中,常常把這個特定的服務綁定到特定的TCP或UDP端口。之后,該后臺程序就不斷地監聽(listen)該端口,一旦接收到符合條件
、 iptables使用實例
首先讓我們看一下服務器/客戶機的交互原理。服務器提供某特定功能的服務總是由特定的后臺程序提供的。在TCP/IP網絡中,常常把這個特定的服務綁定到特定的TCP或UDP端口。之后,該后臺程序就不斷地監聽(listen)該端口,一旦接收到符合條件的客戶端請求,該服務進行TCP握手后就同客戶端建立一個連接,響應客戶請求。與此同時,再產生一個該綁定的拷貝,繼續監聽客戶端的請求。
舉一個具體的例子:假設網絡中有一臺服務器A(IP地址為1.1.1.1)提供WWW服務,另有客戶機B(2.2.2.2)、C(3.3.3.3)。首先,服務器A運行提供WWW服務的后臺程序(比如Apache)并且把該服務綁定到端口80,也就是說,在端口80進行監聽。當B發起一個連接請求時,B將打開一個大于1024的連接端口(1024內為已定義端口),假設為1037。A在接收到請求后,用80端口與B建立連接以響應B的請求,同時產生一個80端口綁定的拷貝,繼續監聽客戶端的請求。假如A又接收到C的連接請求(設連接請求端口為1071),則A在與C建立連接的同時又產生一個80端口綁定的拷貝繼續監聽客戶端的請求。如下所示,因為系統是以源地址、源端口、目的地址、目的端口來標識一個連接的,所以在這里每個連接都是唯一的。
服務器 客戶端
連接1:a.b.c.1:80 <=> a.b.c.4:1037
連接2:a.b.c.1:80 <=> a.b.c.7:1071
每一種特定的服務都有自己特定的端口,一般說來小于1024的端口多為保留端口,或者說是已定義端口,低端口分配給眾所周知的服務(如WWW、FTP等等),從512到1024的端口通常保留給特殊的
UNIX TCP/IP應用程序,具體情況請參考/etc/services文件或RFC1700。
假設網絡環境如下:某一單位,租用DDN專線上網,網絡拓撲如下:
+--------------+
| 內部網段 | eth1+--------+eth0 DDN
| +------------|firewall|<===============>Internet
| 198.168.80.0 | +--------+
+--------------+
eth0: 198.199.37.254
eth1: 198.168.80.254
以上的IP地址都是Internet上真實的IP,故沒有用到IP欺騙。并且,我們假設在內部網中存在以下服務器:
www服務器:www.yourdomain.com 198.168.80.11
ftp服務器:ftp.yourdomain.com 198.168.80.12
email服務器:mail.yourdomain.com 198.168.80.13
下面我們將用iptables一步一步地來建立我們的包過濾防火墻,需要說明的是,在這個例子中,我們主要是對內部的各種服務器提供保護。
1. 在/etc/rc.d/目錄下用touch命令建立firewall文件,執行chmod u+x firewll以更改文件屬性 ,編輯/etc/rc.d/rc.local文件,在末尾加上 /etc/rc.d/firewall 以確保開機時能自動執行該腳本。
2. 刷新所有的鏈的規則
#!/bin/sh
echo "Starting iptables rules..."
#Refresh all chains
/sbin/iptables -F
3. 我們將首先禁止轉發任何包,然后再一步步設置允許通過的包。
所以首先設置防火墻FORWARD鏈的策略為DROP:
/sbin/iptables -P FORWARD DROP
4.設置關于服務器的包過慮規則:
在這里需要注意的是,服務器/客戶機交互是有來有往的,也就是說是雙向的,所以我們不僅僅要設置數據包出去的規則,還要設置數據包返回的規則,我們先建立針對來自Internet數據包的過慮規則。
WWW服務:服務端口為80,采用tcp或udp協議。規則為:eth0=>允許目的為內部網WWW服務器的包。
###########################Define HTTP packets####################################
#Allow www request packets from Internet clients to www servers
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j A
CCEPT
FTP服務:FTP服務有點特別,因為需要兩個端口,因為FTP有命令通道和數據通道。其中命令端口為21,數據端口為20,并且有主動和消極兩種服務模式,其消極模式連接過程為:FTP客戶端首先向FTP服務器發起連接請求,三步握手后建立命令通道,然后由FTP服務器請求建立數據通道,成功后開始傳輸數據,現在大多數FTP客戶端均支持消極模式,因為這種模式可以提高
安全性。FTP服務采用tcp協議。規則為:eth0=>僅允許目的為內部網ftp服務器的包。
############################Define FTP packets#####################################
#Allow ftp request packets from Internet clients to Intranet ftp server
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT
EMAIL服務:包含兩個協議,一是smtp,一是pop3。出于安全性考慮,通常只提供對內的pop3服務,所以在這里我們只考慮針對smtp的安全性問題。smtp端口為21,采用tcp協議。eth0=>僅允許目的為email服務器的smtp請求。
###########################Define smtp packets####################################
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT
5. 設置針對Intranet客戶的過慮規則:
在本例中我們的防火墻位于網關的位置,所以我們主要是防止來自Internet的攻擊,不能防止來自Intranet的攻擊。假如我們的服務器都是基于
linux的,也可以在每一部服務器上設置相關的過慮規則來防止來自Intranet的攻擊。對于Internet對Intranet客戶的返回包,我們定義如下規則。
#############Define packets from Internet server to Intranet#######################
/sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
說明:第一條允許Intranet客戶采用消極模式訪問Internet的FTP服務器;第二條接收來自Internet的非連接請求tcp包;最后一條接收所有udp包,主要是針對oi
cq等使用udp的服務。
6. 接受來自整個Intranet的數據包過慮,我們定義如下規則:
#############Define packets from Internet server to Intranet server###############
/sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT
7. 處理ip碎片
我們接受所有的ip碎片,但采用limit匹配擴展對其單位時間可以通過的ip碎片數量進行限制,以防止ip碎片攻擊。
#################################Define fregment rule##################################
/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
說明:對不管來自哪里的ip碎片都進行限制,允許每秒通過100個ip碎片,該限制觸發的條件是100個ip碎片。
8. 設置icmp包過濾
icmp包通常用于網絡
測試等,故允許所有的icmp包通過。但是黑客常常采用icmp進行攻擊,如ping of death等,所以我們采用limit匹配擴展加以限制:
#################################Define icmp rule##################################
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
說明:對不管來自哪里的icmp包都進行限制,允許每秒通過一個包,該限制觸發的條件是10個包。
通過以上個步驟,我們建立了一個相對完整的防火墻。只對外開放了有限的幾個端口,同時提供了客戶對Internet的無縫訪問,并且對ip碎片攻擊和icmp的ping of death提供了有效的防護手段。以下是完整的腳本文件內容,希望通過這個實例能是對iptables的用法有所了解:
#!/bin/sh
echo "Starting iptables rules..."
#Refresh all chains
/sbin/iptables -F
###########################Define HTTP packets####################################
#Allow www request packets from Internet clients to www servers
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j ACCEPT
############################Define FTP packets#####################################
#Allow ftp request packets from Internet clients to Intranet ftp server
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT
###########################Define smtp packets####################################
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT
#############Define packets from Internet server to Intranet#######################
/sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
#############Define packets from Intranet to Internet###############
/sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT
#################################Define fregment rule##################################
/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#################################Define icmp rule##################################
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
flyjon 回復于:2003-07-18 23:26:52
|
班主的精華好像是以前一篇著名的ipchains的翻版 shock: 
|
wuzy 回復于:2003-07-21 15:40:30
|
已閱
|
青山綠水 回復于:2003-07-21 19:08:38
|
還不錯 。
|
197511 回復于:2003-07-22 11:58:13
|
它能代替防火墻嗎????
|
livelybear 回復于:2003-08-07 11:38:20
|
正需要,收下。
|
coolbzk 回復于:2003-08-21 15:43:08
|
很好,頂
|
tiansgx 回復于:2003-08-23 14:33:45
|
up
|
shaotao27 回復于:2003-09-15 21:41:43
|
讓你的企業、產品、網站一夜成名
是否為您的企業、產品、網站推廣事宜而發愁?
其實只要您選擇方法得當,利用郵件推廣達到的效果是傳統媒體無法比擬的,而花費只是傳統推廣的幾萬分之一!郵件營銷使您將商業廣告迅速發送到數千萬客戶電子郵箱中,實乃影響您一生的成功捷徑,而成本只需300元。并且簡單易用,無須專業知識。
詳情請看網址: http://www.nic2000.com/?shao27
|
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|