• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Linux防火墻入門:iptables入門

    發布: 2007-7-04 12:06 | 作者: admin | 來源:  網友評論 | 查看: 10次 | 進入軟件測試論壇討論

    領測軟件測試網
      這一節開始說明 iptables 的觀念及用法
      iptables 中的指令,均需區分大小寫。
      ipchains 和 iptables 在語法上的主要的差異,注意如下:
      1. 在 ipchains 中,諸如 input 鏈,是使用小寫的 chains 名,在 iptables 中,要改用大寫 INPUT。2. 在 iptables 中,要指定規則是欲作用在那一個規則表上(使用 -t 來指定,如 -t nat),若不指定,則預設是作用在 filter 這個表。3. 在 ipchains 中, -i 是指介面(interface),但在 iptables 中,-i 則是指進入的方向,且多了 -o,代表出去的方向。4. 在 iptables 中,來源 port 要使用關鍵字 --sport 或 --source-port5. 在 iptables 中,目的 port 要使用關鍵字 --dport 或 --destination-port6. 在 iptables 中,"丟棄" 的處置動作,不再使用 DENY 這個 target,改用 DROP。7. 在 ipchains 的記錄檔功能 -l,已改為目標 -j LOG,并可指定記錄檔的標題。8. 在 ipchains 中的旗標 -y,在 iptables 中可用 --syn 或 --tcp-flag SYN,ACK,FIN SYN9. 在 iptables 中,imcp messages 型態,要加上關鍵字 --icmp-type,如: iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT
      iptables 使用時的樣板
      在設定 iptables 的封包過濾規則時,有幾個樣板的動作,若先熟悉它們,往后就可自行套用,依此類推,很快地,您就可以進入這個天地之中。
      觀察目前的設定
      作法如下:
      iptables -L -niptablse -t nat -L -n
      定義變數
      FW_IP="163.26.197.8"
      打開核心 forward 功能
      作法如下:
      ###-----------------------------------------------------#### 打開 forward 功能###-----------------------------------------------------###echo "1" > /proc/sys/net/ipv4/ip_forward
      清除所有的規則
      一開始要先清除所有的規則,重新開始,以免舊有的規則影響新的設定。作法如下:
      ###-----------------------------------------------------#### 清除先前的設定###-----------------------------------------------------#### 清除預設表 filter 中,所有規則鏈中的規則iptables -F# 清除預設表 filter 中,使用者自訂鏈中的規則iptables -X# 清除mangle表中,所有規則鏈中的規則iptables -F -t mangle# 清除mangle表中,使用者自訂鏈中的規則iptables -t mangle -X# 清除nat表中,所有規則鏈中的規則iptables -F -t nat# 清除nat表中,使用者自訂鏈中的規則iptables -t nat -X
      選定預設的政策
      接著,要選定各個不同的規則鏈,預設的政策為何。作法如下:
      預設全部丟棄:
      ###-----------------------------------------------------#### 設定 filter table 的預設政策###-----------------------------------------------------###iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP
      或者預設全部接受:
      ###-----------------------------------------------------#### 設定 filter table 的預設政策###-----------------------------------------------------###iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT
      各個規則鏈的預設政策可獨立自主的設定,不必受其它鏈的影響。
      以下練習,若目標為 DROP,則 policy 請設為 ACCEPT;若目標為 ACCEPT,則 policy 請設為 DROP,如此方可看出效果。
      開放某一個介面
      作法如下:
      iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT注:IPFW 或 Netfilter 的封包流向,local process 不會經過 FORWARD Chain,因此 lo 只在 INPUT 及 OUTPUT 二個 chain 作用。iptables -A INPUT -i eth1 -j ACCEPTiptables -A OUTPUT -o eth1 -j ACCEPTiptables -A FORWARD -i eth1 -j ACCEPTiptables -A FORWARD -o eth1 -j ACCEPT
      IP 偽裝
      使內部網路的封包經過偽裝之后,使用對外的 eth0 網卡當作代表號,對外連線。作法如下:
      ###-----------------------------------------------------#### 啟動內部對外轉址###-----------------------------------------------------###iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/16 -j SNAT --to-source $FW_IP
      上述指令意指:把 172.16.0.0/16 這個網段,偽裝成 $FW_IP 出去。
      虛擬主機
      利用轉址、轉 port 的方式,使外部網路的封包,可以到達內部網路中的伺服主機,俗稱虛擬主機。這種方式可保護伺服主機大部份的 port 不被外界存取,只開放公開服務的通道(如 Web Server port 80),因此安全性甚高。
      作法如下:
      ###-----------------------------------------------------#### 啟動外部對內部轉址###-----------------------------------------------------#### 凡對 $FW_IP:80 連線者, 則轉址至 172.16.255.2:80iptables -t nat -A PREROUTING -i eth0 -p tcp -d $FW_IP --dport 80 -j DNAT --to-destination 172.16.255.2:80
      開放內部主機可以 telnet 至外部的主機
      開放內部網路,可以 telnet 至外部主機。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open 外部主機 telnet port 23###-----------------------------------------------------###iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 23 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 23 -d $FW_IP --dport 1024:65535 -j ACCEPT
      開放郵包轉遞通道
      開放任意的郵件主機送信包給你的 Mail Server,而你的 Mail Server 也可以送信包過去。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open SMTP port 25###-----------------------------------------------------#### 以下是:別人可以送信給你iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d $FW_IP --dport 25 -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 25 -d any/0 --dport 1024:65535 -j ACCEPT# 以下是:你可以送信給別人iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 25 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 25 -d $FW_IP --dport 1024:65525 -j ACCEPT
      開放對外離線下載信件的通道
      開放內部網路可以對外部網路的 POP3 server 取信件。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open 對外部主機的 POP3 port 110###-----------------------------------------------------###iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 110 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 110 -d $FW_IP --dport 1024:65535 -j ACCEPT
      開放觀看網頁的通道
      開放內部網路可以觀看外部網路的網站。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open 對外部主機的 HTTP port 80###-----------------------------------------------------###iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 80 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 80 -d $FW_IP --dport 1024:65535 -j ACCEPT
      開放查詢外部網路的 DNS 主機
      開放內部網路,可以查詢外部網路任何一臺 DNS 主機。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open DNS port 53###-----------------------------------------------------#### 次會用 udp 封包來查詢iptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPTiptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT# 若有錯誤,會改用 tcp 封包來查詢iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT# 開放這臺主機上的 DNS 和外部的 DNS 主機互動查詢:使用 udpiptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPTiptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT# 開放這臺主機上的 DNS 和外部的 DNS 主機互動查詢:使用 tcpiptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! -y -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT
      開放內部主機可以 ssh 至外部的主機
      開放內部網路,可以 ssh 至外部主機。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open 外部主機 ssh port 22###-----------------------------------------------------###iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 22 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1024:65535 -j ACCEPT# 以下是 ssh protocol 比較不同的地方iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1020:1023 -d any/0 --dport 22 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1020:1023 -j ACCEPT
      開放內部主機可以 ftp 至外部的主機
      開放內部網路,可以 ftp 至外部主機。
      作法如下:(預設 policy 為 DROP)
      ###-----------------------------------------------------#### open 對外部主機 ftp port 21###-----------------------------------------------------#### 以下是打開命令 channel 21iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 21 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 21 -d $FW_IP --dport 1024:65535 -j ACCEPT# 以下是打開資料 channel 20 iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 20 -d $FW_IP --dport 1024:65535 -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT# 以下是打開 passive mode FTP 資料通道iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPTiptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 1024:65535 -d $FW_IP --dport 1024:65535 -j ACCEPT
      開放 ping
      可以對外 ping 任何一臺主機。
      作法如下:(預設 policy 為 DROP)
      iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPTiptables -A INPUT -i eth0 -p icm -s any/0 --icmp-type 0 -d $FW_IP -j ACCEPT
      
      
      

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>