新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Shorewall的單用戶簡單設置

        Shorewall的單用戶簡單設置

        作者: 時間:2016-09-12 來源:網絡 收藏

        一、防火墻基本知識:

        本文引用地址:http://www.104case.com/article/201609/303838.htm

        除了軟件和硬件防火墻的分類外,如果以封包抵擋機制來分類,大概可以分為proxy和IP Filter。

        基本上的IP Filter有兩個最基本的防火墻機制,分別是:Ip Filter和TCP_Wrapper。

        這里我們談IP Filter,因為shorewall可以通過IPTABLES簡單設置IP Filter的規則。

        或者說:如果你不麻煩iptables的語法規則,或者可以自己寫一些shell程序批處理iptables指令,完全可以不安裝shorewall或者其他防火墻。因為下的防火墻基本都是通過設置iptables的規則完成的。

        1.首先確定(uname指令確定核心,lsmod確定當前載入模塊,如果是ipchains,請執行rmmod ipchains。 然后modprobe ip_tables即可將iptables裝入現在使用的模塊)你的內核是采用哪種抵擋機制,是不是我們需要的iptables(Ubuntu5.10的是iptables)

        Linux Kernel Version 2.0:使用 ipfwadm

        Linux Kernel Version 2.2:使用的是 ipchains

        Linux Kernel Version 2.4:主要是使用 iptables 但為了兼容 ipchains ,因此Version 2.4 版本中,同時將 ipchains 編譯成模組供使用,好讓使用者仍然可以使用磣 2.2 版的 ipchains 的防火墻規則。

        ---------------

        然后執行下面代碼來觀看現在的防火墻規則(聯網情況下,root用戶)

        $ sudo iptables -L -n (L的含義是列出目前的 table 的規則,n含義是不進行IP與HOSTNAME的相互轉換,這樣可以加快顯示速度)

        $ sudo iptables -t nat -L -n (-t nat的含義是顯示nat的filter。iptables會有nat tables和filter tables,不加參數為filter。有興趣的兄弟可以參看其他關于iptables的介紹,介于太長,此處不做介紹;)

        ---------------

        接下來我們就要清除掉現在所有的防火墻規則(聯網情況下)

        root@*** root]# /sbin/iptables [-t tables] [-FXZ]

        其中參數含義為:

        -F :清除所以已經建立的規則;

        -X :殺掉所有使用者建立的 chain ( tables );

        -Z :把所有的 chain 的計數和流量統計歸為0;

        例:

        [root@*** root]# /sbin/iptables -F

        [root@*** root]# /sbin/iptables -X

        [root@*** root]# /sbin/iptables -Z

        [root@*** root]# /sbin/iptables -t nat -F

        ---------------

        二、具體安裝Shorewall3.0.4

        下載shorewall最新的穩定版本3.0.4(tarball安裝,即為源代碼make安裝。確定你的機器跟隨‘新手指南’裝了基本編譯工具),由于新立得里面還是2.多的版本,在官方網站看的是3的介紹,所以安裝3.0.4。而且安裝很簡單,不會出現其他依賴性問題.

        ------------

        1.下載地址:http://www1.shorewall.net/pub/shorewall/3.0/shorewall-3.0.4/

        2.安裝前需要:iptables(前面提到的)+iproute (檢查這個的指令是sudo Which ip )(基本上ubuntu5.10都具備了,所以可以不考慮)

        3.盡量不要在ms-windows里面編輯shorewall的配置文件,因為ms和lin的文字排版不太一樣,比如回車。

        4.cd到你解壓之后的目錄,然后./install.sh 回車,看見沒有錯誤信息,就OK了。但是此刻shorewall沒有啟動。等會兒我們來啟動。默認安裝之后就是每次啟動就自動啟動防火墻(設置文件在 /etc/shorewall/shorewall.conf。找到STARTUP_ENABLED=Yes

        ,yes代表開機自動啟動!)

        5.安裝之后所有文件分別位于:/usr/shorewall 和/sbin 和 /etc/shorewall,我們需要注意的就是/etc/shorewall。這里是配置文件。(個人建議,對于一些重要的,經常不需要變動的文件可以將隱藏屬性chattr +i 上去,具體指令信息,請找‘男人’man )

        6.查看安裝后的版本:sudo shorewall version 可以得到3.0.4的消息

        三、配置Shorewall3.0.4

        詳細的官方文檔位于:http://www.shorewall.net/Documentation.htm ,shorewall的文件很多,但是一般用戶用到的不多,特別是我們這種單機撥號的用戶。

        -------------

        1.首先配置/etc/shorewall/zones文件,瀏覽至最后,添加代碼如下:

        #ZONE TYPE OPTIONS

        fw firewall #文件原本存在的這行,fw為防火墻本身,必須

        net ipv4

        loc ipv4

        #LAST LINE -- DO NOT REMOVE

        其中關于各個type,options的解釋,該配置文件前面部分有,大家如果嚴格要求,可以參照文件配置,一般用戶配置成上面就可以了。

        2.配置/etc/shorewall/interfaces

        (這里用到的ZONE的名字是在上個文件/etc/shorewall/zones中定義的名字,所以順序不要弄錯了。這種zone名字的方法是比較簡單的,推薦這種方法。)

        #ZONE INTERFACE BROADCAST OPTIONS

        net ppp0

        #LAST LINE -- DO NOT REMOVE

        同樣配置文件對各個參數進行了詳盡的解釋

        --------------

        3.配置/etc/shorewall/rules 和 /etc/shorewall/policy

        關系: policy是定義默認的策略給所有的連接(從一個zone到另外一個zone, 比如我們定義的從loc到net);

        rules是定義特殊的防火墻規則,即是policy里面沒有的。

        先后條件:任何連接,防火墻先檢查rules,如果rule中沒有關于這個連接要求的描述,就調用policy的默認配置。

        /etc/shorewall/policy的配置如下(默認)

        #SOURCE ZONE DESTINATION ZONE POLICY LOG LIMIT:BURST

        # LEVEL

        loc net ACCEPT

        net all DROP info

        all all REJECT info

        #LAST LINE -- DO NOT REMOVE

        我一般改為下面,省得每次開端口麻煩。

        fw net ACCEPT

        net all DROP info

        all all REJECT info

        上面的含義是允許本機所有連接網絡的要求;網絡連接到我的所有zones(比如防火墻fw,本地loc)都丟棄該連接要求的tcp封包,并記入日志。拒絕所有連接要求并記入日志(當連接被拒絕了,防火墻就會返回一個RST (加入協議是TCP) 或者一個 ICMP端口不能到達的包給其他協議)


        上一頁 1 2 下一頁

        關鍵詞: unix linux

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 垣曲县| 铁岭县| 浙江省| 渝北区| 苏尼特右旗| 西畴县| 黄山市| 怀仁县| 永德县| 罗源县| 鄢陵县| 铜梁县| 比如县| 昌邑市| 娄底市| 贡觉县| 饶平县| 白城市| 吕梁市| 汤原县| 涞源县| 讷河市| 顺义区| 墨竹工卡县| 建始县| 河津市| 竹北市| 枣阳市| 蚌埠市| 达日县| 澄迈县| 洪泽县| 高尔夫| 泌阳县| 松江区| 平阳县| 都安| 民和| 阳山县| 新田县| 博乐市|