防火牆的相關知識介紹及命令

防火牆的相關知識

 

防火牆:位於網絡之間的,根據所定義的規則對進出網絡數據包經行匹配,並匹配到包用指定的處理機制進行處理的硬件、軟件或者二者的結合

 

包過濾防火牆:工作於網絡層

  有狀態檢測

  簡單包過濾

  

網關代理型防火牆:工作於應用層,效率低,安全性高

 

  Hook function5個鉤子

  INPUT

  OUTPUT

  RORWARK

  PREROUTING

  POSTRONTING

  

filter:過濾 在INPUTOUTPUTRORWARK

natPREROUTINGdnatPOSTRONTING(snat) OUTPUT

mangle:對數據包的封裝格式重新進行修改,在5個鉤子裏都可以

rawPREROUTINGOUTPUT

 

當每個鉤子擁有不同的表時,其檢測順序是mangle,在nat,最後filter

 

防火牆規則的查看:

# iptables -t table -L -n -v

  -t 默認是filter

  -L 列出目前的table的規則

  -n 不進行IPhostname反查,使顯示信息更快

  -v 顯示詳細信息

  --line-numbers 顯示的時候帶行號

 

防火牆規則的清除

# iptables -t table [-FXZ]

     -F flush):清空所有的已定規則

 -X ():刪除用戶自定義的空鏈

 -Z ():清空計數器(每一條規則都有兩個計數器,一個用於記錄被本條規則所匹配到的包的個數,另一個用戶記錄所有匹配到包的體積之和)

 

定義防火牆的默認策略

# iptables  -P  chain ACCEPT|DROP) REJECT

# iptables  -P  INPUT  DROP

 

配置防火牆

#iptables  [-t table]  sub_command  CHAIN  [num]  [cretiria]   [ -j ACCTION] 

    sub_command

       Rule

         -A append):追加

     -I insert):插入,

     -D delete):刪除 -D OUTPUT 

     -R replace):替換, -R FORWARD 6

    chain:鏈

     -N new):新建

     -E 重命名一條鏈 

 通用匹配:

      -s ! IP/NETWORK 源地址

      -d ! IP/NETWORK 目標地址

      -p tcp|udp|icmp)指定協議

      -i interface 一般不用於outputpostrouting

      -o interface 一般不用在inputprerouting

  

  

 擴展匹配:

   隱式擴展:一般指對-p選項中指定的協議進行的擴展

       -p tcp

         --sport

     --dport

     --tcpflags 要檢查的標記,必須爲1的標記(剩餘位必須爲0

     --syn 

      -p udp

         --sport

     --dport 53 DNS 端口

      -p icmp

         --icmp-type

     echo-request8

     echo-reply0

  

    顯示擴展:一般指必須使用-m選項明確指定要加載擴展

 

       -m state:連接狀態 

          --state state

          NEW:想要新建立的數據包

  # iptables -A OUTPUT -o eth1 -m state --state NEW -j DROP

          ESTABLISHED:已建立狀態的請求數據包

  # iptables -P OUTPUT DROP

  # iptables -A OUTPUT -s 172.16.100.1 -m state --state ESTABLISHED -j ACCEPT

          RELATED:相關聯的數據包

          INVALID:無效的數據包

  

       -m mport|multiport)第一個可能不能用,所有儘量用第二個

            --source-ports 8023

            --destination-ports

            --ports 

  # iptables -A INPUT -d 172.16.19.1 -p tcp -m multiport --source-ports 80,23 -j ACCEPT

 

       -m iprange 

            --src-range ip-ip

            --dst-range ip-ip

  # iptables -A INPUT -m iprange --src-range 172.16.19.10-172.16.19.100 -p tcp --dport 80 -j ACCEPT

 

      -m connlimit

            --connlimit-above n 限制某個連接請求上併發請求的個數

 

      -m limit

            --limit rate 平均單位時間是幾個

            --limit-burst number 突發限制的數量

# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second --limit-burst 30 -j ACCEPT

 

      -m time 

            --timestart value

            --timestop

            --days listofdays

            --datestart date

            --datestop date

# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m time --datestart 2012:02:18 --datestop 2012:02:26 --timestart 08:30:00 --timestop 14:30:00 -j ACCEPT

 

      -m string

            --algo bm|kmp

            --string pattern

# iptables -A OUTPUT -s 172.16.100.1 -p tcp --dport 80 -m string --algo bm --string “wed” -j DROP 

 

 

21 FTP 22 ssh  23 telent

 

 

 

  

練習192.168.1.0/24狼窩,在要求爲172.16.x.1寫規則,滿足以下要求:

1filter表所有鏈接的默認規則爲DROP

2lo接口上進出的所有數據包均放行;

3Webssh開放給非狼窩的主機;

1)ssh僅允許在工作時間(每週一至週五的900-1800)被訪問,但172.16.0.0/16網絡中的主機可在任意時段訪問;

2)web服務全時段可被訪問,但每秒種接收的新請求的個數不能超過100個;

4、發往本機的ping請求,每秒只各應兩個數據包,且最高每秒只響應3個;拒絕來自狼窩ping請求;本機可向任意主機發送Ping請求;

5、本機出口僅將已經建立的連接放行

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARK DROP

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A OUTPUT -o lo -j ACCEPT

# iptables -A INPUT -s 192.168.1.0/24 -p tcp -m --multiport --source-ports 80,22 -j DROP

# iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 22 -j ACCEPT

# iptables -A INPUT -m --timestart 09:00:00 --timestop 18:00:00 --weekdays Mon,Tue,Web,Thu,Fri -p tcp --dport 22 -j ACCEPT

# iptables -A INPUT -p tcp --syn -m limit --limit-burst 100 -j ACCEPT

# iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type 8 -j DROP

# iptables -A INPUT -d 172.16.19.1 -p icmp --icmp-type 8 -m limit --limit 2/second --limit-burst 3 -j ACCEPT

# iptables -A OUTPUT -s 172.16.19.1 -p icmp --icmp-type 8 -j ACCEPT 

# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章