• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2013年6月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            服務(wù)器通常會(huì)安裝防火墻,Iptables為比較常用的免費(fèi)防火墻,Iptables能夠提供數(shù)據(jù)包過濾,網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)等功能.在Debian上手工配置Iptables的資料比較少,本文做一個(gè)詳細(xì)的介紹.

            第一步,首先確定你的系統(tǒng)已經(jīng)安裝Iptables.打開SSH終端,輸入
            whereis iptables
            如果能看到如下類似信息,說明你已經(jīng)安裝了iptables
            iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
            如果不是這個(gè)提示,或者沒有任何提示,那你的Debian上可能沒有安裝iptables
            請(qǐng)使用如下命令安裝:
            apt-get install iptables

            第二步:查看Iptables目前的配置信息
            可以使用如下命令查看
            iptables -L
            如果你是第一次安裝配置iptables,你可能會(huì)看到如下結(jié)果:

            Chain INPUT (policy ACCEPT)
            target prot opt source destination
            Chain FORWARD (policy ACCEPT)
            target prot opt source destination
            Chain OUTPUT (policy ACCEPT)
            target prot opt source destination

            這個(gè)結(jié)果,也就是防火墻充許所有的請(qǐng)求,就如沒有設(shè)置防火墻一樣.

            第三步:配置Iptables
            配置Iptables,我們先把一個(gè)基本的Iptables的規(guī)則文章保存起來,這個(gè)規(guī)則文章做為測(cè)試用
            vim /etc/iptables.test.rules
            然后在這個(gè)文章中輸入如下規(guī)則內(nèi)容。

            *filter
            # 允許回環(huán)網(wǎng)卡
            -A INPUT -i lo -j ACCEPT
            -A OUTPUT -o lo -j ACCEPT
            # 允許已建立的或相關(guān)連的通行
            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
            # Allows all outbound traffic
            # 允許所有本機(jī)向外的訪問(選這個(gè)的話就把其它OUTPUT規(guī)則刪除即可)
            #-A OUTPUT -j ACCEPT
            # 允許ssh:22 http:80 https:443 ftp:21(20000-20500)端口進(jìn)入訪問
            -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
            -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
            -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
            #-A INPUT -m state --state NEW -p tcp -m multiport --dports 21,20000:20500 -j ACCEPT
            #-A INPUT -p tcp -s 0/0 --sport 20000:20500 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
            #允許本地DNS(udp 53端口)和ntp(udp 123端口)訪問外網(wǎng)
            -A OUTPUT -p udp -d 8.8.8.8 --dport 53 -j ACCEPT
            -A OUTPUT -p udp -d 8.8.4.4 --dport 53 -j ACCEPT
            #-A OUTPUT -p udp --dport 123 -j ACCEPT
            # 允許PING(不允許的話把下面那個(gè)刪了就可以)
            -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
            #記錄接收數(shù)據(jù)包被拒絕(log-level=7)的日志,最高記錄頻率為5條/分鐘,日志可通過dmesg或syslog查看
            #-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
            # 禁止其它未允許的規(guī)則訪問:
            -A OUTPUT -p udp -j REJECT --reject-with icmp-port-unreachable
            -A INPUT -j REJECT --reject-with icmp-port-unreachable
            -A FORWARD -j REJECT --reject-with icmp-port-unreachable
            COMMIT

            保存本文件,使之生效,注意,iptables不需要重啟,加載一次規(guī)則就成:
            iptables-restore < /etc/iptables.test.rules

            第四步:保存生效的配置,讓系統(tǒng)重啟的時(shí)候自動(dòng)加載有效配置
            編輯創(chuàng)建如下文件:
            vim /etc/network/if-pre-up.d/iptables
            添加如下內(nèi)容:
            #!/bin/bash
            /sbin/iptables-restore < /etc/iptables.test.rules
            最后,設(shè)置可執(zhí)行僅限
            chmod +x /etc/network/if-pre-up.d/iptables



            詳解:
            :INPUT ACCEPT [0:0]
            # 該規(guī)則表示INPUT(進(jìn))表默認(rèn)策略是ACCEPT
            :FORWARD ACCEPT [0:0]
            # 該規(guī)則表示FORWARD(轉(zhuǎn))表默認(rèn)策略是ACCEPT
            :OUTPUT ACCEPT [0:0]
            # 該規(guī)則表示OUTPUT(出)表默認(rèn)策略是ACCEPT

            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            # 意思是允許進(jìn)入的數(shù)據(jù)包只能是剛剛我發(fā)出去的數(shù)據(jù)包的回應(yīng),ESTABLISHED:已建立的鏈接狀態(tài)。RELATED:該數(shù)據(jù)包與本機(jī)發(fā)出的數(shù)據(jù)包有關(guān)。

            -A INPUT -j REJECT --reject-with icmp-host-prohibited
            -A FORWARD -j REJECT --reject-with icmp-host-prohibited
            # 這兩條的意思是在INPUT表和FORWARD表中拒絕所有其他不符合上述任何一條規(guī)則的數(shù)據(jù)包。并且發(fā)送一條host prohibited的消息給被拒絕的主機(jī)。
            #REJECT 是用來返回一個(gè)錯(cuò)誤的包來回應(yīng)匹配包,其他的等價(jià)于DROP,所以它是一個(gè)拒絕TARGET,在規(guī)則的結(jié)束。這個(gè)TARGET僅僅用在INPUT,FORWARD和OUTPUT鏈和用戶自定義的鏈,下列選項(xiàng)是用來定義返回錯(cuò)誤的結(jié)果的:
            icmp-host-unreachable
            icmp-port-unreachable

            -m state --state <狀態(tài)> 有數(shù)種狀態(tài),狀態(tài)有: ▪ INVALID:無效的封包,例如數(shù)據(jù)破損的封包狀態(tài) ▪ ESTABLISHED:已經(jīng)聯(lián)機(jī)成功的聯(lián)機(jī)狀態(tài); ▪ NEW:想要新建立聯(lián)機(jī)的封包狀態(tài); ▪ RELATED:這個(gè)最常用!表示這個(gè)封包是與我們主機(jī)發(fā)送出去的封包有關(guān), 可能是響應(yīng)封包或者是聯(lián)機(jī)成功之后的傳送封包!這個(gè)狀態(tài)很常被設(shè)定,因?yàn)樵O(shè)定了他之后,只要未來由本機(jī)發(fā)送出去的封包,即使我們沒有設(shè)定封包的 INPUT 規(guī)則,該有關(guān)的封包還是可以進(jìn)入我們主機(jī), 可以簡(jiǎn)化相當(dāng)多的設(shè)定規(guī)則

            第五:其它
            如果你想設(shè)置某ip段可以訪問所有服務(wù),你需要在iptables.test.rules文件中加入-A INPUT -m iprange --src-range 192.168.1.1-192.168.1.199 -j ACCEPT,然后從第三步再設(shè)置一次。



            Debian Iptables深入學(xué)習(xí)篇:
            在Linux上,iptables是用于建立和維護(hù)IP包過濾規(guī)則表的管理工具,實(shí)際過濾工作由內(nèi)核的netfilter模塊負(fù)責(zé)。
            規(guī)則表有幾種(最常用的是filter表),每個(gè)表中可以包含若干規(guī)則鏈,每個(gè)規(guī)則鏈包含一組規(guī)則,每條規(guī)則定義一個(gè)匹配條件和處理動(dòng)作。
            常用的規(guī)則鏈:
            INPUT: 處理從外部發(fā)給本機(jī)的網(wǎng)絡(luò)包;
            FORWARD: 處理從外部發(fā)來,需要轉(zhuǎn)發(fā)到外部的網(wǎng)絡(luò)包;
            OUTPUT: 處理從本機(jī)發(fā)往外部的網(wǎng)絡(luò)包;
            常用的處理動(dòng)作:
            ACCEPT: 通過;
            DROP: 拋棄;
            QUEUE: 通過,并加入用戶空間的隊(duì)列中;
            RETURN: 停止后續(xù)規(guī)則檢查,直接轉(zhuǎn)到默認(rèn)處理;
            分析一個(gè)實(shí)際的網(wǎng)絡(luò)防火墻過濾表:
            -A INPUT -i lo -j ACCEPT
            -A INPUT表示加入INPUT鏈,對(duì)應(yīng)接收數(shù)據(jù)包;-i lo表示來自本機(jī)網(wǎng)絡(luò)接口(localhost);-j ACCEPT表示處理動(dòng)作為接受。整條規(guī)則表示所有本機(jī)發(fā)給自己的數(shù)據(jù)包可以通過。
            -A INPUT -i !lo -d 127.0.0.0/8 -j REJECT
            -i !lo表示非localhost的其他網(wǎng)絡(luò)接口,-d 127.0.0.0/8 表示網(wǎng)絡(luò)地址的匹配,使用網(wǎng)絡(luò)掩碼255.0.0.0(255的二進(jìn)制有8個(gè)1,如果是掩碼255.255.255.0,對(duì)應(yīng)的數(shù)字為24)處理后與127.0.0.0相同。整條規(guī)則表示不是來自本機(jī),且IP地址以127開頭的數(shù)據(jù)包全部丟棄;
            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            -m表示match,state –state ESTABLISHED,RELATED表示狀態(tài)為已有連接通道上的網(wǎng)絡(luò)包;
            -A INPUT -p tcp --dport 80 -j ACCEPT
            -A INPUT -p tcp --dport 443 -j ACCEPT
            -p對(duì)應(yīng)網(wǎng)絡(luò)協(xié)議,–dport對(duì)應(yīng)端口號(hào);兩條規(guī)則表示接受http(80端口),https(443端口)的tcp包;
            -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
            SSH協(xié)議使用22端口,這條規(guī)則表示接收新建SSH連接的數(shù)據(jù)包;
            -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
            –icmp-type 8對(duì)應(yīng) echo-request(ping),此條規(guī)則表示允許外部的ping命令;
            -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
            記錄接收數(shù)據(jù)包被拒絕(log-level=7)的日志,最高記錄頻率為5條/分鐘,日志可通過dmesg或syslog查看
            -A INPUT -j REJECT
            -A FORWARD -j REJECT
            -A OUTPUT -j ACCEPT
            最后放一組默認(rèn)規(guī)則:未匹配的所有接收數(shù)據(jù)包,拒絕;所有轉(zhuǎn)發(fā)數(shù)據(jù)包,拒絕;所有外發(fā)數(shù)據(jù)包,允許;
            如果要在android下通過iptables技術(shù)來控制app的網(wǎng)絡(luò)訪問權(quán)限,大致規(guī)則為:
            -A OUTPUT -m owner --uid-owner [app-uid] -j REJECT


            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-06-23 18:01 聶文龍 閱讀(495) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            AV色综合久久天堂AV色综合在| 亚州日韩精品专区久久久| 日本久久久久久中文字幕| 国产高清国内精品福利99久久 | 欧美丰满熟妇BBB久久久| 99久久99久久| 天天做夜夜做久久做狠狠| 18岁日韩内射颜射午夜久久成人 | 久久99精品久久久久久久不卡| 久久久久久综合一区中文字幕| 亚洲国产日韩欧美久久| 99精品久久精品| 久久亚洲熟女cc98cm| 青青青国产成人久久111网站| 久久久久久久波多野结衣高潮 | 99久久99久久久精品齐齐| 午夜精品久久久久成人| 伊人久久免费视频| 久久久无码精品亚洲日韩按摩| 久久精品国产一区二区电影| 国内精品久久久久影院日本| 久久人人爽人人爽人人片AV东京热 | 亚洲成色www久久网站夜月| 久久精品国产99久久久香蕉| 丁香五月网久久综合| 色欲综合久久躁天天躁蜜桃| 亚洲?V乱码久久精品蜜桃 | 久久精品国产一区二区三区日韩| 久久天天婷婷五月俺也去| 国产无套内射久久久国产| 久久精品国产久精国产| 久久精品国产清高在天天线| 成人午夜精品无码区久久| 综合久久精品色| 久久99热这里只有精品66| 久久久久成人精品无码| 热99re久久国超精品首页| 国产精品一久久香蕉国产线看| 久久免费的精品国产V∧| 久久男人Av资源网站无码软件 | 久久免费国产精品一区二区|