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

掃一掃
關注微信公眾號

Linux下使用Iptables構建靜態防火墻
2011-03-16   netren

Linux系統下使用Iptables構建靜態防火墻

這篇文章向讀者展示了如何一步一步建立靜態防火墻來保護您的計算機,同時在每一步中,我力圖向讀者講述清楚原理。在這篇教程之后,你將能理解到防火墻內在過濾機制,同時也能自己動手建立符合自己要求的防火墻。

1、iptables介紹

iptables 是復雜的,它集成到linux內核中。用戶通過iptables,可以對進出你的計算機的數據包進行過濾。通過iptables指令設置你的規則,來把守你的計算機網絡──哪些數據允許通過,哪些不能通過,哪些通過的數據進行記錄(log)。接下來,我將告訴你如何設置自己的規則,從現在就開始吧。

2、初始化工作

在shell提示符 # 下打入

  1. iptables -F  
  2.  
  3. iptables -X  
  4.  
  5. iptables -t nat -F  
  6.  
  7. iptables -t nat -X  
  8.  

以上每一個指令都有它確切的含義。一般設置你的iptables之前,首先要清除所有以前設置的規則,我們就把它叫做初始化好了。雖然很多情況下它什么也不做,但是保險起見,不妨小心一點吧! 要是你用的是redhat 或fedora,那么你有更簡單的辦法

  1. service iptables stop  
  2.  

3、開始設置規則:

接下下開始設置你的規則了

  1. iptables -P INPUT DROP  
  2.  

這一條指令將會為你架設一個非常“安全”的防火墻,我很難想象有哪個hacker能攻破這樣的機器,因為它將所有從網絡進入你機器的數據丟棄(drop) 了。這當然是安全過頭了,此時你的機器將相當于沒有網絡。要是你ping localhost,你就會發現屏幕一直停在那里,因為ping收不到任何回應。

4 、添加規則

接著上文繼續輸入指令:

  1. iptables -A INPUT -i ! ppp0 -j ACCEPT  
  2.  

這條規則的意思是:接受所有的,來源不是網絡接口ppp0的數據。

我們假定你有兩個網絡接口,eth0連接局域網,loop是回環網(localhost)。ppp0是一般的adsl上網的internet網絡接口,要是你不是這種上網方式,那則有可能是eth1。在此我假定你是adsl上網,你的internet接口是ppp0

此時你即允許了局域網的訪問,你也可以訪問localhost

此時再輸入指令 ping localhost,結果還會和剛才一樣嗎?

到此我們還不能訪問www,也不能mail,接著看吧。

5、我想訪問www

  1. iptables -A INPUT -i ppp0 -p tcp -sport 80 -j ACCEPT  
  2.  

允許來自網絡接口ppp0(internet接口),并且來源端口是80的數據進入你的計算機。

80端口正是www服務所使用的端口。

好了,現在可以看網頁了。但是,你能看到嗎?

要是你在瀏覽器的地址中輸入www.baidu.com,能看到網頁嗎?

你得到的結果一定是:找不到主機www.baidu.com

但是,要是你再輸入220.181.27.5,你仍然能夠訪問baidu的網頁。

為什么?要是你了解dns的話就一定知道原因了。

因為要是你打入www.baidu.com,你的計算機無法取得www.baidu.com這個名稱所能應的ip地址220.181.27.5。要是你確實記得這個ip,那么你仍然能夠訪問www,你當然可以只用ip來訪問www,要是你想挑戰你的記憶的話^ _ ^,當然,我們要打開DNS。

6、打開dns端口

打開你的dns端口,輸入如下指令:

  1. iptables -A INPUT -i ppp0 -p udp -sport 53 -j ACCEPT  
  2.  

這條指令的含義是,接受所有來自網絡接口ppp0,upd協議的53端口的數據。53也就是著名的dns端口。

此時測試一下,你能通過主機名稱訪問www嗎?你能通過ip訪問www嗎?

當然,都可以!

7、查看防火墻

此時可以查看你的防火墻了

  1. iptables -L  
  2.  

要是你只想訪問www,那么就可以到此為止,你將只能訪問www了。 不過先別急,將上面講的內容總結一下,寫成一個腳本。

  1. #!/bin/bash  
  2.  
  3. # This is a script  
  4.  
  5. # Edit by liwei  
  6.  
  7. # establish static firewall  
  8.  
  9. iptables -F  
  10.  
  11. iptables -X  
  12.  
  13. iptables -t nat -F  
  14.  
  15. iptables -t nat -X  
  16.  
  17. iptables -P INPUT DROP  
  18.  
  19. iptables -A INPUT -i ! ppp0 -j ACCEPT  
  20.  
  21. iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT  
  22.  
  23. iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT  
  24.  

8、iptables復雜嗎?

到此iptables可以按你的要求進行包過濾了。你可以再設定一些端口,允許你的機器訪問這些端口。這樣有可能,你不能訪問QQ,也可能不能打網絡游戲,是好是壞,還是要看你自己而定了。順便說一下,QQ這個東西還真是不好控制,用戶與服務器連接使用的好像是8888端口,而QQ上好友互發消息使用的又是udp的4444端口(詳細是不是4444還不太清楚)。并且QQ還可以使用www的80端口進行登錄并發消息,看來學無止境,你真的想把這個家伙控制住還不容易呢?還是進入我們的正題吧。

要是你的機器是服務器,怎么辦?

9、問題簡答

要是不巧你的機器是服務器,并且要提供www服務。顯然,以上的腳本就不能符合我們的要求了。但只要你撐握了規則,稍作修改同樣也能很好的工作。在最后面加上一句

  1. iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT  
  2.  

這一句也就是將自己機器上的80端口對外開放了,這樣internet上的其他人就能訪問你的www了。當然,你的www服務器得工作才行。要是你的機器同時是smtp和pop3服務器,同樣的再加上兩條語句,將--dport后面的80改成25和110就行了。要是你還有一個ftp服務器,呵呵,要是你要打開100個端口呢……

我們的工作好像是重復性的打入類似的語句,你可能自己也想到了,我可以用一個循環語句來完成,對,此處可以有效的利用shell腳本的功能,也讓你體驗到了shell腳本語言的威力。看下文:

10、用腳本簡化你的工作,閱讀下面的腳本

  1. #!/bin/bash  
  2.  
  3. # This is a script  
  4.  
  5. # Edit by liwei  
  6.  
  7. # establish a static firewall  
  8.  
  9. # define const here  
  10.  
  11. Open_ports="80 25 110 10" # 自己機器對外開放的端口  
  12.  
  13. Allow_ports="53 80 20 21" # internet的數據可以進入自己機器的端口  
  14.  
  15. #init  
  16.  
  17. iptables -F  
  18.  
  19. iptables -X  
  20.  
  21. iptables -t nat -F  
  22.  
  23. iptables -t nat -X  
  24.  
  25. iptables -P INPUT DROP #we can use another method to instead it  
  26.  
  27. iptables -A INPUT -i ! ppp0 -j ACCEPT  
  28.  
  29. # define ruler so that some data can come in.  
  30.  
  31. for Port in "Allow_ports" ; do  
  32.  
  33. iptables -A INPUT -i ppp0 -p tcp -sport ?$Port -j ACCEPT  
  34.  
  35. iptables -A INPUT -i ppp0 -p udp -sport ?$Port -j ACCEPT  
  36.  
  37. done  
  38.  
  39. for Port in "Open_ports" ; do  
  40.  
  41. iptables -A INPUT -i ppp0 -p tcp -dport ?$Port -j ACCEPT  
  42.  
  43. iptables -A INPUT -i ppp0 -p udp -dport ?$Port -j ACCEPT  
  44.  
  45. done  
  46.  

這個腳本有三個部分(最前面的一段是注釋,不算在這三部分中)

第一部分是定義一些端口:訪問你的機器"Open_ports"端口的數據,允許進入;來源是"Allow_ports"端口的數據,也能夠進入。

第二部分是iptables的初始化,第三部分是對定義的端口詳細的操作。

要是以后我們的要求發生了一些變化,比如,你給自己的機器加上了一個ftp服務器,那么只要在第一部分"Open_ports"的定義中,將ftp對應的20與21端口加上去就行了。呵呵,到此你也一定體會到了腳本功能的強大的伸縮性,但腳本的能力還遠不止這些呢!

11、使你的防火墻更加完善

看上面的腳本init部分的倒數第二句

  1. iptables -P INPUT DROP  
  2.  

這是給防火墻設置默認規則。當進入我們計算機的數據,不匹配我們的任何一個條件時,那么就由默認規則來處理這個數據----drop掉,不給發送方任何應答。

也就是說,要是你從internet另外的一臺計算機上ping你的主機的話,ping會一直停在那里,沒有回應。

要是黑客用namp工具對你的計算機進行端口掃描,那么它會提示黑客,你的計算機處于防火墻的保護之中。我可不想讓黑客對我的計算機了解太多,怎么辦,要是我們把drop改成其他的動作,或許能夠騙過這位剛出道的黑客呢。

怎么改呢?將剛才的那一句( iptables -P INPUT DROP )去掉,在腳本的最后面加上

  1. iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset  
  2.  
  3. iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable  
  4.  

這樣就好多了,黑客雖然能掃描出我們所開放的端口,但是他卻很難知道,我們的機器處在防火墻的保護之中。要是你只運行了ftp并且僅僅對局域網內部訪問,他很難知道你是否運行了ftp。在此我們給不該該進入我們機器的數據,一個欺騙性的回答,而不是丟棄(drop)后就不再理會。這一個功能,在我們設計有狀態的防火墻中(我這里講的是靜態的防火墻)特別有用。

你可以親自操作一下,看一看修改前后用namp掃描得到的結果會有什么不同?

12、總結:

這個教程我想到此就完畢了,其中有很多東西在這里沒有提到,如ip偽裝,端口轉發,對數據包的記錄功能。還有一個很重要的東西就是:iptables處理數據包的流程.在這里我想告訴你,你設置的過濾規則的順序很重要,在此不宜詳細介紹,因為這樣一來,這個教程就會拘泥于細節。

iptables是復雜的,我在linuxsir上看過很多教程,它們往往多而全,反而讓人望而生畏,希望我的這個教程,能夠指導你入門。加油!

最后,我把完整的腳本寫出來如下,你只要修改常量定義部分,就能表現出較大的伸縮性^_^

  1. #!/bin/bash  
  2.  
  3. # This is a script  
  4.  
  5. # Edit by liwei  
  6.  
  7. # establish a static firewall  
  8.  
  9. # define const here  
  10.  
  11. Open_ports="80 25 110 10" # 自己機器對外開放的端口  
  12.  
  13. Allow_ports="53 80 20 21" # internet的數據可以進入自己機器的端口  
  14.  
  15. #init  
  16.  
  17. iptables -F  
  18.  
  19. iptables -X  
  20.  
  21. iptables -t nat -F  
  22.  
  23. iptables -t nat -X  
  24.  
  25. # The follow is comment , for make it better  
  26.  
  27. # iptables -P INPUT DROP  
  28.  
  29. iptables -A INPUT -i ! ppp0 -j ACCEPT  
  30.  
  31. # define ruler so that some data can come in.  
  32.  
  33. for Port in "Allow_ports" ; do  
  34.  
  35. ptables -A INPUT -i ppp0 -p tcp -sport ?$Port -j ACCEPT  
  36.  
  37. iptables -A INPUT -i ppp0 -p udp -sport ?$Port -j ACCEPT  
  38.  
  39. done  
  40.  
  41. for Port in "Open_ports" ; do  
  42.  
  43. iptables -A INPUT -i ppp0 -p tcp -dport ?$Port -j ACCEPT  
  44.  
  45. iptables -A INPUT -i ppp0 -p udp -dport ?$Port -j ACCEPT  
  46.  
  47. done  
  48.  
  49. # This is the last ruler , it can make you firewall better  
  50.  
  51. iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset  
  52.  
  53. iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable  
  54.  

以上,你已經成功在Linux下使用Iptables構建靜態防火墻了。

原文鏈接:http://os.51cto.com/art/201103/249250.htm

熱詞搜索:

上一篇:采取針對性措施保障Unix服務器的安全
下一篇:你的網絡設備全力運轉了嗎?

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
99视频精品免费观看| 亚洲黄色在线观看| 亚洲美女av电影| 国产精品久久久久一区| 欧美日韩 国产精品| 欧美日韩亚洲一区二区| 欧美日韩1区2区3区| 欧美在线观看视频一区二区| 久久中文在线| 国产精品黄视频| 亚洲国产毛片完整版 | 欧美韩国日本一区| 国产一区二区高清不卡| 午夜免费电影一区在线观看| 欧美电影免费观看高清| 欧美日韩在线播放| 国产精品v亚洲精品v日韩精品| 国产精品理论片| 亚洲欧洲在线视频| 黄色资源网久久资源365| 在线成人欧美| 久久精品在线免费观看| 在线观看成人网| 午夜精品免费视频| 国产欧美日韩亚洲| 久久成人综合网| 欧美日韩视频在线一区二区| 亚洲小视频在线观看| 欧美日本在线| 伊人激情综合| 亚洲性视频网址| 亚洲天堂网站在线观看视频| 欧美视频精品在线| 亚洲性人人天天夜夜摸| 国产综合欧美在线看| 中文一区二区| 一区二区三区免费看| 欧美少妇一区| 久久综合伊人77777蜜臀| 在线精品观看| 国产精品二区在线| 欧美国产精品专区| 国产欧美一区二区色老头 | 日韩视频久久| 亚洲少妇在线| 美乳少妇欧美精品| 先锋影音久久| 99精品视频一区二区三区| 国产一区二区三区久久 | 久久国产一区二区三区| av成人国产| 亚洲精品孕妇| 一区二区三区在线视频播放| 国产女人18毛片水18精品| 欧美日韩免费在线观看| 欧美日韩在线看| 亚洲国产精品久久久久秋霞影院| 国产欧美日韩在线| 国产精品免费在线| 国产精品高潮呻吟久久av黑人| 欧美好骚综合网| 欧美激情精品久久久| 欧美激情一区二区三区成人| 欧美jjzz| 欧美色中文字幕| 欧美国产成人在线| 欧美久久久久久蜜桃| 欧美日韩一区二区免费视频| 欧美日韩精品一区二区三区| 欧美日韩精品免费观看视一区二区 | 国产精品欧美久久| 国产精品国产| 国产欧美日韩不卡免费| 国产亚洲一区二区在线观看| 在线看一区二区| 99在线热播精品免费99热| 亚洲一区二区在线播放| 欧美在线不卡视频| 久久综合久久综合久久综合| 久久资源av| 欧美精品系列| 国产精品青草综合久久久久99| 国产日韩精品一区二区浪潮av| 精品成人乱色一区二区| 亚洲免费av电影| 午夜精品偷拍| 理论片一区二区在线| 欧美噜噜久久久xxx| 欧美图区在线视频| 国产在线麻豆精品观看| 亚洲久色影视| 亚欧成人精品| 欧美精品三级在线观看| 国产精品日韩欧美一区二区三区| 国产欧美在线观看一区| 亚洲国产一区在线观看| 午夜久久美女| 欧美黄色片免费观看| 国产精品久久久久久久第一福利| 国产亚洲激情在线| 亚洲成人中文| 亚洲欧美日韩精品久久奇米色影视| 久久久一区二区| 欧美日韩一区二区三| 国内久久精品视频| 亚洲午夜精品一区二区| 久久久夜夜夜| 一区二区亚洲| 亚洲精品日韩在线观看| 久热re这里精品视频在线6| 久久夜色撩人精品| 亚洲精品一区二区三区四区高清 | 亚洲精品一区二区三区福利| 中文一区二区| 久久精品国产视频| 欧美日韩一区综合| 亚洲欧洲精品成人久久奇米网| 亚洲影院一区| 欧美高清视频www夜色资源网| 国产精品私拍pans大尺度在线| 国产主播一区二区| 亚洲网站视频| 欧美三级网页| 亚洲福利视频一区| 久久成人免费| 国产嫩草一区二区三区在线观看 | 亚洲亚洲精品三区日韩精品在线视频| 国产一区二区精品丝袜| 国产欧美在线视频| 亚洲精品影视在线观看| 久久久噜噜噜| 国产欧美日韩亚洲一区二区三区| 亚洲伦理网站| 欧美成人性网| 91久久国产综合久久蜜月精品| 亚洲一二区在线| 欧美日韩爆操| **欧美日韩vr在线| 久久频这里精品99香蕉| 国产精品亚洲片夜色在线| 一本色道久久综合| 欧美日韩一区二区免费在线观看| 91久久精品一区| 欧美成人激情在线| 亚洲国产经典视频| 久久av在线看| 国产在线播精品第三| 欧美一区二区三区日韩| 欧美视频在线观看一区| 一本色道久久综合精品竹菊 | 亚洲麻豆一区| 亚洲一区二区免费看| 欧美理论视频| 欧美乱大交xxxxx| 国产精品白丝jk黑袜喷水| 老牛国产精品一区的观看方式| 久久久一区二区| 欧美福利在线| 欧美日韩在线观看一区二区三区 | 欧美日韩另类视频| 韩国三级电影久久久久久| 亚洲国产视频直播| 亚洲一区欧美一区| 国产精品高精视频免费| 亚洲一区二区三区色| 国产精品一区二区在线观看不卡 | 国产一区二区三区高清在线观看| 亚洲欧美成人一区二区三区| 国产精品尤物| 亚洲高清中文字幕| 玖玖在线精品| 韩国欧美国产1区| 亚洲国产91| 老司机免费视频一区二区三区| 欧美日韩二区三区| 欧美日本韩国一区| 国产日本欧美一区二区三区| 麻豆精品在线观看| 999在线观看精品免费不卡网站| 欧美日韩妖精视频| 午夜欧美理论片| 亚洲激情一区二区三区| 欧美日韩免费观看一区二区三区| 午夜视频久久久久久| 亚洲国产精品一区二区久| 国产精品成人免费| 久久久久这里只有精品| 亚洲人成绝费网站色www| 欧美婷婷久久| 男同欧美伦乱| 欧美一区二区三区在线观看| 亚洲经典在线| 国产视频精品va久久久久久| 欧美精品久久99| 久久久噜噜噜久久中文字幕色伊伊| 日韩午夜激情av| 红桃视频一区| 国产视频一区在线| 国产精品扒开腿做爽爽爽视频| 免费日韩视频|