close

實 驗 目 標

KEYNES 實作防火牆Policy 較同意於前端網路設備Juniper SSG 5, Cisco ASA

設置防火牆相關Policy與NAT轉譯,本例將測試主機型態Firewall IPTABLES

經執行後,其設計觀念與Cisco ACL List 類似,因此KEYNES覺得還蠻容易上手

另外 IPTABLES 可設計為 主機型閘道防火牆應用,也可以使用NAT 功能

IPTABLES 工具另外掛許多模組可以阻斷DDOS,SPOOLING 外來攻擊

(當然最重要是將可替省錢企業省下購買硬體試防火牆經費)

防火牆可攜性: 運用Linux 平台底下IPTABLE,我們可將所以Policy 寫成一個bash script
 
                          檔案,隨意修改檔案內容,方便複製移轉至他台機器運行
  
                          最後編寫 /etc/rc.d/rc.local/  讓其 bash script 開機時自動運作
                          

(1) 牛刀小試(二): 建立第一條Policy  

      iptables  -A  INPUT -p tcp -m state --state INVAID -j Drop

     # 比對INPUT 方向條件, 比對封包協定 為 tcp  , -m state  INVAID -J Drop
 
       使用state 模組,偵測對方若是"狀態不明封包"即丟棄該封包 


    

(2) 牛刀小試(二): 建立第二條Policy

      iptables -A INPUT -p tcp -s 192.168.0.198 -d 192.168.0.197 --dport 22 -j ACCEPT  

      # SSH 端連線主機: 192.168.0.198
 
         IPTABLES 主機  :  192.168.0.197(亦是本機)


    
   眼尖的讀者可以查得目前INPUT Chain Default  Policy 為 ACCEPT(預設為ACCEPT)
     
       故在我們還沒建立上述第二條Poicy 時, 來源端IP 192.168.0.198 是無法連線到

       IPTABLES 主機  :  192.168.0.197 的 22 Port  進行遠端主機管理

       Default  Poicy : 視為每個Chain 最後一條Policy ,與 Cisco ACL 類似比對方式
 
       IPTABLES 依序是從第一條Policy 往下比對至最後一條Policy 比對方式

       我們隨後將INPUT Chain Default  Policy  更改為DROP 以符合企業需求

   
(3) 牛刀小試(三): 更改INPUT Chain Default Policy 由 ACCEPT 變為DROP

      iptables  -P INPUT DROP   

  
(4) 牛刀小試(四): 利用 參數 I 插入一條policy  於指定行數

     iptables  -I INPUT 2  -p icmp -d 192.168.0.197 -j ACCEPT

     #插入一筆Policy  於INPUT中第2行, 內容: 開放所有來源端可以Ping通防火牆主機  
    

   

   接下來我們利用192.168.0.198 去Ping 192.168.0.197 這台主機,測試是否會Ping通

   #由下圖可知在未加入上述筆條例時,彼此是無法Ping通,經icmp開放後得已ping通該主機

 


     現在我們要刪除上述Policy(icmp) ,可利用參數 -D  刪除 Chain 中某一筆Policy

      iptables -D INPUT 3   

      # 下圖為我們要刪除  來源端: anywhere ->目的端: 192.168.0.197

         這條例 ,該條例為第3行數

   
(5) 牛刀小試(五):  新增一筆條例,讓192.168.0.198 可以存取Firwall 主機上VSFTPD 服務

iptables -A INPUT -p tcp  -s 192.168.0.198 -d 192.168.0.197 --dport 21 -j ACCEPT


  
  
     利用192.168.0.198 主機去 telnet 192.168.0.197(F/W )的21Port Success

 
(6) 牛刀小試(六): 

    以下圖為例,我們將.198 主機 連線到.197 : 80 ACCEPT

     利用參數 -R : 可做取代條例之用      
 
iptables -R INPUT 5 -p tcp -s 192.168.0.198 -d 192.168.0.197 --dport 80 -j REJECT


    

(7) 牛刀小試(七): 將所有iptables 寫成一個shell script 檔案以執行

 主機型F/W

 

vi    fw.sh

# /bin/bash

fw=/sbin/iptables

Default= 192.168.0.100

 

Block1=  10.10.10.0/24

 

#Clear Policy & Set Defualt Policy as Drop

iptables -t filter -F

iptables -t filter -P INPUT DROP

#Rules

$fw  -A INPUT  -p tcp  -m state  --state INVALID -j DROP

$fw -A INPUT  -p  tcp   -d $Default  --deport 22 -j  ACCEPT

$fw -A INPUT  -p  tcp   -d $Default  --deport 53 -j  ACCEPT

$fw -A INPUT  -p  tcp   -d $Default  --deport 80 -j  ACCEPT

$fw -A INPUT  -p  tcp   -d $Default  --deport  25  -j  ACCEPT

$fw -A INPUT  -p  tcp   -d $Default  --deport 110  -j  ACCEPT

$fw -A INPUT  -p  tcp  -s $Block1    -d $Default  --deport 22 -j  REJECT

$fw -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT


建構FW Script 完成後請執行

chown root:root fw.sh     

chmod  700  fw.sh    #修改權限

./fw.sh                      #修改完成請手動執行此Script

開機運行此Script

vi  /etc/rc.d/rc.local

/usr/local/bin/fw.sh                #插入此行即可

 

參考資料: Linux 網路安全技術與實現/悅知/陳勇勳

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 終極.凱因斯 的頭像
    終極.凱因斯

    NEIL`s_IT技術學習分享發表Blog

    終極.凱因斯 發表在 痞客邦 留言(0) 人氣()