国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
iptable配置的靜態(tài)防火墻

    1、iptables介紹
   
    iptables是復(fù)雜的,它集成到linux內(nèi)核中。用戶通過iptables,可以對進(jìn)出你的計算機(jī)的數(shù)據(jù)包進(jìn)行過 濾。通過iptables命令設(shè)置你的規(guī)則,來把守你的計算機(jī)網(wǎng)絡(luò)哪些數(shù)據(jù)允許通過,哪些不能通過,哪些通過的數(shù)據(jù)進(jìn)行記錄(log)。接下來,我將告訴 你如何設(shè)置自己的規(guī)則,從現(xiàn)在就開始吧。
   
    2、初始化工作
   
    在shell提示符 # 下打入
   
    iptables -F
   
    iptables -X
   
    iptables -t nat -F
   
    iptables -t nat -X
   
    以上每一個命令都有它確切的含義。一般設(shè)置你的iptables之前,首先要清除所有以前設(shè)置的規(guī)則,我們就把它叫做初始化好了。雖然很多情況下它什么也不做,但是保險起見,不妨小心一點吧! 重啟服務(wù)也有相同的效果。
   
    /etc/init.d/iptables stop
   
    /etc/init.d/iptables start
   
    3、開始設(shè)置規(guī)則:
   
    接下下開始設(shè)置你的規(guī)則了
   
    iptables -P INPUT DROP
   
    這 一條命令將會為你構(gòu)建一個非常"安全"的防火墻,我很難想象有哪個hacker能攻破這樣的機(jī)器,因為它將所有從網(wǎng)絡(luò)進(jìn)入你機(jī)器的數(shù)據(jù)丟棄(drop) 了。這當(dāng)然是安全過頭了,此時你的機(jī)器將相當(dāng)于沒有網(wǎng)絡(luò)。如果你ping localhost,你就會發(fā)現(xiàn)屏幕一直停在那里,因為ping收不到任何回應(yīng)。
   
    4 、添加規(guī)則
   
    接著上文繼續(xù)輸入命令:
   
    iptables -A INPUT -i ! ppp0 -j ACCEPT
   
    這條規(guī)則的意思是:接受所有的,來源不是網(wǎng)絡(luò)接口ppp0的數(shù)據(jù)。
   
    我們假設(shè)你有兩個網(wǎng)絡(luò)接口,eth0連接局域網(wǎng),loop是回環(huán)網(wǎng)(localhost)。ppp0是一般的adsl上網(wǎng)的internet網(wǎng)絡(luò)接口,如果你不是這種上網(wǎng)方式,那則有可能是eth1.在此我假設(shè)你是adsl上網(wǎng),你的internet接口是ppp0
   
    此時你即允許了局域網(wǎng)的訪問,你也可以訪問localhost
   
    此時再輸入命令 ping localhost,結(jié)果還會和剛才一樣嗎?
   
    到此我們還不能訪問www,也不能mail,接著看吧。
   
    5、我想訪問www
   
    iptables -A INPUT -i ppp0 -p tcp -sport 80 -j ACCEPT
   
    允許來自網(wǎng)絡(luò)接口ppp0(internet接口),并且來源端口是80的數(shù)據(jù)進(jìn)入你的計算機(jī)。
   
    80端口正是www服務(wù)所使用的端口。
   
    好了,現(xiàn)在可以看網(wǎng)頁了。但是,你能看到嗎?
   
    如果你在瀏覽器的地址中輸入www.baidu.com,能看到網(wǎng)頁嗎?
   
    你得到的結(jié)果一定是:找不到主機(jī)www.baidu.com
   
    但是,如果你再輸入220.181.27.5,你仍然能夠訪問baidu的網(wǎng)頁。
   
    為什么?如果你了解dns的話就一定知道原因了。
   
    因 為如果你打入www.baidu.com,你的電腦無法取得www.baidu.com這個名稱所能應(yīng)的ip地址220.181.27.5.如果你確實記 得這個ip,那么你仍然能夠訪問www,你當(dāng)然可以只用ip來訪問www,如果你想挑戰(zhàn)你的記憶的話^ _ ^,當(dāng)然,我們要打開DNS.
   
    6、打開dns端口
   
    打開你的dns端口,輸入如下命令:
   
    iptables -A INPUT -i ppp0 -p udp -sport 53 -j ACCEPT
   
    這條命令的含義是,接受所有來自網(wǎng)絡(luò)接口ppp0,upd協(xié)議的53端口的數(shù)據(jù)。53也就是著名的dns端口。
   
    此時測試一下,你能通過主機(jī)名稱訪問www嗎?你能通過ip訪問www嗎?
   
    當(dāng)然,都可以!
   
    7、查看防火墻
   
    此時可以查看你的防火墻了
   
    iptables -L
   
    如果你只想訪問www,那么就可以到此為止,你將只能訪問www了。 不過先別急,將上面講的內(nèi)容總結(jié)一下,寫成一個腳本。
   
    #!/bin/bash
   
    # This is a script
   
    # Edit by liwei
   
    # establish static firewall
   
    iptables -F
   
    iptables -X
   
    iptables -t nat -F
   
    iptables -t nat -X
   
    iptables -P INPUT DROP
   
    iptables -A INPUT -i ! ppp0 -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT
   
    8、 復(fù)雜嗎?到此iptables可以按你的要求進(jìn)行包過濾了。你可以再設(shè)定一些端口,允許你的機(jī)器訪問這些端口。這樣有可能,你不能訪問QQ,也可能不能打 網(wǎng)絡(luò)游戲,是好是壞,還是要看你自己而定了。順便說一下,QQ這個東西還真是不好控制,用戶與服務(wù)器連接使用的好像是8888端口,而QQ上好友互發(fā)消息 使用的又是udp的4444端口(具體是不是4444還不太清楚)。而且QQ還可以使用www的80端口進(jìn)行登錄并發(fā)消息,看來學(xué)無止境,你真的想把這個 家伙控制住還不容易呢?還是進(jìn)入我們的正題吧。
   
    如果你的機(jī)器是服務(wù)器,怎么辦?
   
    9、如果不巧你的機(jī)器是服務(wù)器,并且要提供www服務(wù)。顯然,以上的腳本就不能符合我們的要求了。但只要你撐握了規(guī)則,稍作修改同樣也能很好的工作。在最后面加上一句
   
    iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT
   
    這 一句也就是將自己機(jī)器上的80端口對外開放了,這樣internet上的其他人就能訪問你的www了。當(dāng)然,你的www服務(wù)器得工作才行。如果你的機(jī)器同 時是smtp和pop3服務(wù)器,同樣的再加上兩條語句,將--dport后面的80改成25和110就行了。如果你還有一個ftp服務(wù)器,呵呵,如果你要 打開100個端口呢……
   
    我們的工作好像是重復(fù)性的打入類似的語句,你可能自己也想到了,我可以用一個循環(huán)語句來完成,對,此處可以有效的利用shell腳本的功能,也讓你體驗到了shell腳本語言的威力??聪挛模?br>   
    10、用腳本簡化你的工作,閱讀下面的腳本
   
    #!/bin/bash
   
    # This is a script
   
    # Edit by liwei
   
    # establish a static firewall
   
    # define const here
   
    Open_ports="80 25 110 10" # 自己機(jī)器對外開放的端口
   
    Allow_ports="53 80 20 21" # internet的數(shù)據(jù)可以進(jìn)入自己機(jī)器的端口
   
    #init
   
    iptables -F
   
    iptables -X
   
    iptables -t nat -F
   
    iptables -t nat -X
   
    iptables -P INPUT DROP #we can use another method to instead it
   
    iptables -A INPUT -i ! ppp0 -j ACCEPT
   
    # define ruler so that some data can come in.
   
    for Port in "$Allow_ports" ; do
   
    iptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT
   
    done
   
    for Port in "$Open_ports" ; do
   
    iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT
   
    done
   
    這個腳本有三個部分(最前面的一段是注釋,不算在這三部分中)
   
    第一部分是定義一些端口:訪問你的機(jī)器"Open_ports"端口的數(shù)據(jù),允許進(jìn)入;來源是"Allow_ports"端口的數(shù)據(jù),也能夠進(jìn)入。
   
    第二部分是iptables的初始化,第三部分是對定義的端口具體的操作。
   
    如果以后我們的要求發(fā)生了一些變化,比如,你給自己的機(jī)器加上了一個ftp服務(wù)器,那么只要在第一部分"Open_ports"的定義中,將ftp對應(yīng)的20與21端口加上去就行了。呵呵,到此你也一定體會到了腳本功能的強大的伸縮性,但腳本的能力還遠(yuǎn)不止這些呢!
   
    11、使你的防火墻更加完善
   
    看上面的腳本init部分的倒數(shù)第二句
   
    iptables -P INPUT DROP
   
    這是給防火墻設(shè)置默認(rèn)規(guī)則。當(dāng)進(jìn)入我們計算機(jī)的數(shù)據(jù),不匹配我們的任何一個條件時,那么就由默認(rèn)規(guī)則來處理這個數(shù)據(jù)----drop掉,不給發(fā)送方任何應(yīng)答。
   
    也就是說,如果你從internet另外的一臺計算機(jī)上ping你的主機(jī)的話,ping會一直停在那里,沒有回應(yīng)。
   
    如果黑客用namp工具對你的電腦進(jìn)行端口掃描,那么它會提示黑客,你的計算機(jī)處于防火墻的保護(hù)之中。我可不想讓黑客對我的計算機(jī)了解太多,怎么辦,如果我們把drop改成其他的動作,或許能夠騙過這位剛出道的黑客呢。
   
    怎么改呢?將剛才的那一句( iptables -P INPUT DROP )去掉,在腳本的最后面加上
   
    iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
   
    iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable
   
    這 樣就好多了,黑客雖然能掃描出我們所開放的端口,但是他卻很難知道,我們的機(jī)器處在防火墻的保護(hù)之中。如果你只運行了ftp并且僅僅對局域網(wǎng)內(nèi)部訪問, 他很難知道你是否運行了ftp.在此我們給不應(yīng)該進(jìn)入我們機(jī)器的數(shù)據(jù),一個欺騙性的回答,而不是丟棄(drop)后就不再理會。這一個功能,在我們設(shè)計有 狀態(tài)的防火墻中(我這里講的是靜態(tài)的防火墻)特別有用。
   
    你可以親自操作一下,看一看修改前后用namp掃描得到的結(jié)果會有什么不同?
   
    12、 這個教程我想到此就結(jié)束了,其中有很多東西在這里沒有提到,如ip偽裝,端口轉(zhuǎn)發(fā),對數(shù)據(jù)包的記錄功能。還有一個很重要的東西就是: iptables處理數(shù)據(jù)包的流程。在這里我想告訴你,你設(shè)置的過濾規(guī)則的順序很重要,在此不宜詳細(xì)介紹,因為這樣一來,這個教程就會拘泥于細(xì)節(jié)。
   
    iptables是復(fù)雜的,我在linuxsir上看過很多教程,它們往往多而全,反而讓人望而生畏,希望我的這個教程,能夠指導(dǎo)你入門。加油!
   
    最后,我把完整的腳本寫出來如下,你只要修改常量定義部分,就能表現(xiàn)出較大的伸縮性^_^
   
    #!/bin/bash
   
    # This is a script
   
    # Edit by liwei
   
    # establish a static firewall
   
    # define const here
   
    Open_ports="80 25 110 10" # 自己機(jī)器對外開放的端口
   
    Allow_ports="53 80 20 21" # internet的數(shù)據(jù)可以進(jìn)入自己機(jī)器的端口
   
    #init
   
    iptables -F
   
    iptables -X
   
    iptables -t nat -F
   
    iptables -t nat -X
   
    # The follow is comment , for make it better
   
    # iptables -P INPUT DROP
   
    iptables -A INPUT -i ! ppp0 -j ACCEPT
   
    # define ruler so that some data can come in.
   
    for Port in "$Allow_ports" ; do
   
    ptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT
   
    done
   
    for Port in "$Open_ports" ; do
   
    iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT
   
    iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT
   
    done
   
    # This is the last ruler , it can make you firewall better
   
    iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
   
    iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
RHEL5.7下iptables防火墻配置(上)
nfs服務(wù)所需要的的iptables設(shè)置
IP6tables
iptables 入門
iptalbes 配置文件
/etc/sysconfig/iptables 詳解 - secyaher的日志 - 網(wǎng)易...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服