国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

用IPTables實現字符串模式匹配
2005-12-14   

自1995年ipfwadm開始進入1.2.1的核心,Linux的防火墻實現有很長的時間了。Ipfwadm實現了標準的tcp/ip包過濾功能,比如過濾源地址與目的地址以及端口過濾。早在1999年第一個穩定的2.2.0核心中防火墻的實現被ipchains替代了,ipchains的新功能包括支持規則鏈,碎片包控制,較好的網絡地址翻譯功能(NAT)以及其他一些有用的改進。我們需要明白Linux防火墻包括核心級代碼(通常是可加載核心模塊或者核心源程序的補丁)和用戶級代碼(一個配置的工具,比如 /usr/bin/ipchains,這是用來插入包規則到核心空間的)因此無論如何,只要新的linux防火墻代碼被引入,核心和用戶空間的有關代碼都要改寫。
2001年2.4的核心完成了,iptables出現了。它引入了很多重要的改進,比如基于狀態的防火墻,基于任何 TCP標記和MAC地址的包過濾,更靈活的配置和記錄功能,強大而且簡單的NAT功能和透明代理功能,通過速度限制實現DoS的阻止(更詳細的資料請參看 A Comparison of iptables Automation Tools一文)。
然而,最重要變化是引入了模塊化的架構方式。比如,ipchains和ipfwadm兼容模式是通過一個核心模塊的設置實現的,該模塊能夠在運行的核心中插入,以便提供相應的通訊功能。在附加的變化中,用戶自定義編碼功能已經成為了可能,比如過濾一定范圍的端口,根據TTL值和包的到達時間進行判斷,對自定義的協議進行狀態監視,對隨機的數據包進行監視等,這些目前都還不是iptable的一部分,但是在未來將被實現。很多很有趣的新模塊已經完成了。編寫一個可加載的核心模塊來創建核心級代碼,通過用戶級代碼實現控制過濾器的行為。參見Rusty Russell's Linux iptables HOWTO
本文主要關注字符串模式匹配的功能,(顯然,是通過模塊實現的),該功能可以限制和研究數據包的有效載荷。這是iptable技術的一個非常有意義的突破,它超越了傳統的包過濾防火墻的標準TCP/IP標志監視功能。傳統的防火墻可以分為包過濾和應用代理兩種類型,應用代理防火墻可以分別出應用層的協議比如 telnet,HTTP或者SMTP,能夠監視這些協議的有效載荷和檢查命令,但是應用代理防火墻帶來了巨大的性能缺陷:當通過網絡協議棧處理上層即應用層的數據包。同時我們需要為每一個要監控的協議編寫新的代理程序。包過濾防火墻通常只監視源地址和目的地址,源端口和目的端口,TCP/IP標志等,而完全忽略了高層協議的有效載荷。由于上述原因,包過濾防火墻通常比應用代理防火墻的速度快。應用代理提供了更加有力度的安全控制而包過濾可以用于更高的帶寬線路滿足更高的吞吐量。
基于以上的情況,iptables的新增功能提供了跨越兩種防火墻類型的優勢,避免了各自的缺陷,這個功能同時非常清晰的證明了新的模塊化的架構較之老的ipchains的優勢,它能夠使得iptables工作在網絡層(OSI模型的第三層)不必工作在高層協議,但是卻可以監視高層協議的有效載荷,而不必分析應用層的通信結構。
在2001年5月以前,還沒有提出字符串模式匹配模塊以前。有一個嘗試添加內容監控的能力給iptables防火墻的工程:Hogwash。該工程結合了Snort IDS規則模式匹配引擎,以便于iptable能夠響應帶有攻擊信號的數據包。

現在我們提供了一個Step-By-Step的指導,以便于在RedHat Linux上實現模式匹配的包監視功能。標準的RH7.2提供了iptables 1.2.3的版本以及1.2.4的可用RPM升級包。然而,模式匹配功能沒有被包含在標準的發行版中,因為開發人員將它標記為試驗。
如果你使用的是RH7.1-7.2,你就已經使用了2.4的核心。你至少需要2.4.4的核心以便能夠使用iptables 1.2.4的功能。通常推薦你從發行商那里下載最新的可用的核心。目前,有一個例外:iptables-1.2.4的字符串模式匹配補丁不能在2.4.9 的核心下工作。你應該安裝核心的源碼RPM包(通常被放在/usr/src/linux-2.4.x的源碼樹內)或者從別處下載的核心源程序(比如 www.kernel.org或者它的一個鏡像)。
在本文中,將采用最新的2.4.16核心作為例子。測試也能運行在使用2.4.7核心的RedHat 7.2上,但是2.4.7的核心并不推薦使用,因為2.4.7的核心有一些小的安全問題,比如SYN-cookie保護和iptables的保存/恢復功能。
接下來需要從http://netfilter.samba.org/iptables-1.2.4.tar.bz2下載iptables。當對壓縮文件進行解壓縮之后,需要對iptables進行配置,合并相關的核心源程序樹。可以使用半自動化的程序來完成這個目的。首先,可能需要運行程序以便包含已經考慮過的穩定的iptables補丁,但是這個補丁沒有被包含在kernel的發行版內。從iptables的解壓目錄(在本例中iptables在 /home/anton/iptables-1.2.4,核心源程序在/usr/src/linux-2.4.16)運行:
make pending-patches KERNEL_DIR=/usr/src/linux-2.4.16
這將開始運行交互式的補丁應用程序,雖然你可以安全應用所有的補丁,但是沒有一個補丁是iptables的字符串匹配所必需的。對任何你認為需要的補丁都回答y(yes)。如果你希望能夠安全的使用iptables,則選擇none。
現在我們將準備應用試驗部分的補丁,比如字符串模式匹配的支持。運行:
make patch-o-matic KERNEL_DIR=/usr/src/linux-2.4.16
在這個交互式的過程中,回答y(yes)以便應用string.patch。程序將遍歷所有的可用的補丁,包括那些穩定的。
Testing... string.patch NOT APPLIED ( 2 missing files)
The string patch:
Author: Emmanuel Roger <WINFIELD@FREEGATES.BE>
Status: Working, not with kernel 2.4.9
This patch adds CONFIG_IP_NF_MATCH_STRING which allows you to
match a string in a whole packet.
THIS PATCH DOES NOT WORK WITH KERNEL 2.4.9 !
Do you want to apply this patch [N/y/t/f/q/?] y
其余的補丁也許也讓你非常感興趣,不過它們與本文并不相關。如果你選擇安裝任何別的補丁,請注意開發者給出的警告信息,其中包括了補丁的功能(比如dropped表的補丁)確定你沒有安裝MAC過濾的補丁,因為最近發現這個補丁包含一個漏洞。
現在我們開始編譯用戶空間程序和相關的Libraries:
make KERNEL_DIR=/usr/src/linux-2.4.16
然后我們安裝它們(iptables在/usr/local/user/sbin,libraries在/usr/local/lib/iptables)在root身份下執行以下內容:
make install KERNEL_DIR=/usr/src/linux-2.4.16

緊接著我們配置和編譯核心:
Now we are ready to compile the user-space code and the libraries:
make KERNEL_DIR=/usr/src/linux-2.4.16
and then install them (iptables program goes in /usr/local/user/sbin and libraries go into /usr/local/lib/iptables). As root:
cd /usr/src/linux-2.4.16
可以使用任何的核心配置方法。有關詳細的配置核心的方法,可以查閱Internet資源,Internet上有大量的這方面的文檔,比如kernel HOWTO等。以下簡要介紹一下:
make xconfig
在GUI界面下,選擇Netfilter配置選項,然后在Strings match support前選擇m(模塊支持)
然后執行通常的操作:
make dep;make bzImage;make modules;make modules_install
現在按照你喜歡的方式安裝核心,并重新啟動。重新啟動系統以后,測試一下iptables是否支持模式匹配功能,在root身份下執行:
/usr/local/sbin/iptables -m string -help
該命令將顯示如下標準的iptables幫助信息:
STRING match v1.2.4 options:
--string [!] string Match a string in a packet
該功能允許你對匹配數據包的內容,我們可以通過netcat或者telnet來測試這一功能,從而確定我們確實可以獲得數據包的內容。
運行:
iptables -A INPUT -m string --string "test" -j LOG --log-level
info --log-prefix "TEST"
然后啟動一個netcat的服務器:
nc -l -p 3456
然后連接該netcat服務器:
telnet localhost 3456
然后輸入:
test
whatevertestdoes
這樣將引起iptables產生一個簡單的記錄,我們在記錄文件中將會看到如下的信息(當然你需要設置了記錄信息的級別為info)
Nov 27 23:16:53 pua kernel:
TEST IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00
SRC=127.0.0.1 DST=127.0.0.1 LEN=2154 TOS=0x00 PREC=0x00 TTL=64
ID=42880 DF PROTO=TCP SPT=3128 DPT=33018 WINDOW=32767 RES=0x00 ACK PSH URGP=0
Nov 27 23:16:53 pua kernel:
TEST IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00
SRC=127.0.0.1 DST=127.0.0.1LEN=1830 TOS=0x00 PREC=0x00 TTL=64
ID=17451 DF PROTO=TCP SPT=8000 DPT=33017 WINDOW=32767 RES=0x00 ACK PSH URGP=0

在tcp/ip數據包中只要出現test字符串,以上的信息就會產生。這有什么好處呢?太多了。正如 Filtering packets based on string matching這篇文章所建議的那樣,該文章可以在linuxguru.net的sysctl內找到。它能夠用來阻止那些討厭的IIS蠕蟲造成得 Unix web服務器記錄文件記錄大量的對cmd.exe的請求,這些蠕蟲將不再干擾你,但是如果你的/var分區(通常是記錄文件存放的分區)不夠大,那么這一功能將有一定的幫助。只要靜靜地丟棄蠕蟲對80端口的請求或者使用記錄限制功能,對這些信息進行記錄,丟棄這些包的操作如下:
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"
每小時只記錄一條這樣的信息:
iptables -I INPUT -j LOG -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe" -m limit
--limit 1/hour
Bill Steams(Mason firewall building script的作者)提供了一個極好的建議----轉換網絡IDS Snort的規則成為iptables字符串模式匹配的規則。Snort的攻擊信號數據庫中包含了大約1200種信號and appears to be the biggest publicly available attack database suitable for instant deployment。在iptables上使用現成的信號是合理的一種方式。http: //www.strearns.org/snort2iptables 是Bill Stearm提供的試驗性的軟件。在這里你可以找到shell腳本以便將標準的Snort規則轉換為iptables的規則。下面是一個將snort關于 Linux下針對mountd的攻擊和bind的攻擊轉化為iptables的規則的例子:
Snort規則:
1、alert udp $EXTERNAL_NET any -> $HOME_NET 518
(msg:"EXPLOIT ntalkd x86 linux overflow";
content:"|0103 0000 000 0 0001 0002 02e8|";
reference:bugtraq,210; classtype:attempted-admin; sid:313; rev:2;)
2、alert tcp $EXTERNAL_NET any -> $HOME_NET 53
(msg:"EXPLOIT named tsig infoleak";
content: "|AB CD 09 80 00 00 00 01 00 00 00 00 00 00 01 00 01 20 20 20 20 02 61|";
reference:cve,CAN-2000-0010; reference:bugtraq,2302; reference:arachnids,482;
classtype:attempted-admin; sid:303; rev:3;)
3、alert udp $EXTERNAL_NET any -> $HOME_NET 635
(msg:"EXPLOIT x86 linux mountd overflow";
content:"|5eb0 0289 06fe c889 4604 b006 8946|";
reference:cve,CVE-1999-0002; classtype:attempted-admin; sid:315; rev:1;)
轉化的iptables規則:
1、iptables -A SnortRules -p udp -s $EXTERNAL_NET -d $HOME_NET --dport 518 -m
string --string " è" -j LOG --log-prefix "SID313 " # "EXPLOIT ntalkd x86
linux overflow" bugtraq,210 classtype:
attempted-admin sid:313
2、iptables -A SnortRules -p tcp -s $EXTERNAL_NET -d $HOME_NET --dport 53 -m
string --string "&laquo;&Iacute; .a" -j LOG --log-prefix "
SID303 " # "EXPLOIT named tsig infoleak" cve,CAN-2000-0010 bugtraq,2302
arachnids,482 classtype:attempted-admin sid:303
3、iptables -A SnortRules -p udp -s $EXTERNAL_NET -d $HOME_NET --dport 635 -m
string --string "^° ‰ &thorn;&Egrave;‰F ° ‰F" -j LOG --log-prefix " cve-CVE-1999-0002
" # "EXPLOIT x86 linux mountd overflow" classtype:attempted-admin sid:315
顯而易見,上面的轉化使用了針對漏洞所使用的緩沖區溢出字符串作為捕獲攻擊的方式,有些規則不便于轉化主要是因為在楨的控制方面snort比iptables要強大一點。
總之,iptables的字符串模式匹配功能能夠被用來保護那些開放了易受攻擊的而一般的包過濾又無法保護的網絡服務(如WWW服務,mail服務, DNS服務,FTP服務等)的組織的網絡(如果將它布置在組織的網關上)和單個的主機(使iptables成為主機的一部分),另外,iptables的字符串模式匹配功能還能夠幫助實現強制安全策略,即通過關鍵字來阻止訪問非法的內容。


熱詞搜索:

上一篇:Linux防火墻對P2P流量的限制
下一篇:Linux下的NAT及防火墻的混合應用(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产美女主播视频一区| 4438成人网| 日韩免费福利电影在线观看| 中文在线一区二区| 蜜臀va亚洲va欧美va天堂| 99在线视频精品| 日韩一级成人av| 亚洲黄色片在线观看| 粉嫩嫩av羞羞动漫久久久| 4438亚洲最大| 亚洲成人精品一区二区| 91视频在线观看| 国产午夜亚洲精品不卡| 久久精品国产精品亚洲精品| 欧美亚洲日本一区| 亚洲视频电影在线| 99久久久久久99| 国产亚洲精品福利| 国产麻豆午夜三级精品| 欧美一区二区日韩| 午夜伦欧美伦电影理论片| 日本韩国欧美三级| 亚洲天堂精品视频| aaa亚洲精品| 亚洲欧美综合色| 成人av在线电影| 中文字幕va一区二区三区| 国产在线播精品第三| 久久久久久久久久久久电影| 久久国产精品色婷婷| 欧美成人精品福利| 精品亚洲国内自在自线福利| 欧美一级精品大片| 免费成人小视频| 欧美大白屁股肥臀xxxxxx| 美女脱光内衣内裤视频久久影院| 在线成人小视频| 青青青伊人色综合久久| 欧美va在线播放| 丁香激情综合国产| 综合色天天鬼久久鬼色| 欧美综合色免费| 日精品一区二区| 日韩一区二区免费电影| 美脚の诱脚舐め脚责91| 久久影院午夜论| 成人av影院在线| 亚洲午夜成aⅴ人片| 91精品国产综合久久福利软件 | 91精品国产欧美一区二区成人| 五月激情综合色| 久久蜜桃av一区精品变态类天堂| 国产99久久久久久免费看农村| 中文字幕不卡在线播放| 欧美色图片你懂的| 青青草国产精品97视觉盛宴| 久久久久综合网| 色哟哟一区二区| 奇米影视一区二区三区小说| 中文字幕精品一区二区精品绿巨人 | 成人美女视频在线观看| 亚洲免费av高清| 欧美tk—视频vk| 97久久超碰国产精品电影| 天堂一区二区在线免费观看| 精品国产乱码久久久久久蜜臀| 懂色一区二区三区免费观看| 亚洲国产精品久久不卡毛片| 欧美精品一区二区三区很污很色的 | 成人av免费网站| 婷婷成人综合网| 国产欧美在线观看一区| 欧美日韩一区二区三区高清| 国产精品中文欧美| 亚洲成av人片| 中文字幕av不卡| 日韩亚洲欧美在线| 色视频成人在线观看免| 国内国产精品久久| 午夜a成v人精品| 亚洲毛片av在线| 久久精品日产第一区二区三区高清版 | 精品区一区二区| 在线观看亚洲精品视频| 国产传媒欧美日韩成人| 天天av天天翘天天综合网| 亚洲三级理论片| 国产精品网站在线观看| 欧美一区二区三区免费在线看 | 91.麻豆视频| 91欧美一区二区| 国产一区二区三区美女| 日韩制服丝袜先锋影音| 亚洲自拍偷拍综合| 国产精品久久久久久户外露出 | 国产精品一区免费在线观看| 日韩在线一二三区| 亚洲一区二区三区四区在线免费观看| 国产日韩欧美高清在线| 26uuu欧美| 久久久一区二区三区捆绑**| 欧美一区二区在线不卡| 精品视频资源站| 在线观看不卡一区| 色婷婷精品久久二区二区蜜臀av| aaa亚洲精品| av在线播放一区二区三区| 国产91在线观看| 国产91精品免费| 国产a级毛片一区| 顶级嫩模精品视频在线看| 国产一区二区在线电影| 国内精品免费在线观看| 国精产品一区一区三区mba视频| 麻豆一区二区三| 久久国产免费看| 狠狠色丁香九九婷婷综合五月| 国内精品嫩模私拍在线| 国产精品99久久久久久有的能看| 国产在线不卡一卡二卡三卡四卡| 国产一区二区成人久久免费影院| 国产在线一区二区| 成人一级片在线观看| 成人av电影观看| 91色乱码一区二区三区| 欧美最新大片在线看| 69p69国产精品| 欧美成人三级在线| 国产精品久久久久婷婷二区次| ●精品国产综合乱码久久久久| 综合久久久久久久| 婷婷开心久久网| 激情综合一区二区三区| 大陆成人av片| 在线观看不卡一区| 精品国产三级a在线观看| 日本一区二区三区四区在线视频| 中文字幕日韩一区| 日韩电影免费在线看| 国产一区二区调教| 色婷婷精品大在线视频 | 91黄色激情网站| 日韩三级视频在线看| 久久久精品tv| 一区二区三区欧美日韩| 蜜桃精品视频在线| 成人美女视频在线观看| 在线91免费看| 欧美激情一区在线观看| 亚洲成人免费视频| 国产成人亚洲综合a∨婷婷| 一本大道久久a久久综合| 在线综合视频播放| 国产精品私房写真福利视频| 一区二区三区小说| 国内偷窥港台综合视频在线播放| 色婷婷久久综合| 久久久久成人黄色影片| 婷婷中文字幕综合| 97国产精品videossex| 精品国产免费一区二区三区四区| 亚洲激情图片一区| 风流少妇一区二区| 欧美一区二区在线免费播放| 亚洲免费在线观看视频| 国产精品1区2区3区| 91.com在线观看| 亚洲精品中文在线| 国产不卡在线播放| 欧美一区二区成人6969| 亚洲一区日韩精品中文字幕| 国产91精品久久久久久久网曝门| 日韩女优av电影在线观看| 亚洲女人****多毛耸耸8| 国产电影精品久久禁18| 欧美一区二区三区四区在线观看| 亚洲美腿欧美偷拍| 成人午夜精品一区二区三区| 精品国偷自产国产一区| 婷婷亚洲久悠悠色悠在线播放| 色综合久久综合网97色综合| 国产精品毛片无遮挡高清| 久久99精品国产.久久久久久| 精品视频在线视频| 亚洲资源中文字幕| 色综合久久久久综合99| 中文字幕一区三区| 大胆亚洲人体视频| 国产欧美一区在线| 国产精品一区久久久久| 久久亚洲综合色一区二区三区| 日本不卡在线视频| 91精品国产91综合久久蜜臀| 香蕉影视欧美成人| 3d动漫精品啪啪一区二区竹菊 | 成人精品在线视频观看| 亚洲国产精品高清| 99精品欧美一区二区蜜桃免费| 国产精品久久免费看| kk眼镜猥琐国模调教系列一区二区|