1. 程式人生 > >Linux Redhat 6.5 中防火墻

Linux Redhat 6.5 中防火墻

防火墻

Linux防火墻體系只要工作在網咯層,針對於TCP/IP數據包實施過濾個限制,典型的包過濾防火墻(或稱為網絡層防防火墻)
  • net filter 指的是Linux的內核總的實現包頭過濾不以程序或文件的形式存在。
  • iptables 指的是用戶管理Linux防火墻的密令程序,通常位於/sbin/iptables目錄下
    規則表
    1. filter 表用來對數據包過濾,根據具體的規則要求決定如何處理一個數據包。表內包含了三個鏈。即INPUT , FORWARD,OUTPUT
    2. nat 表:主要用來修改數據包IP地址,端口的信息表內包含了三個鏈,PREROUTING POSTROUTING OUTPUT
    3. mangle 表 用來修改數據包的TOS服務 TTL生存周期,或者為數據包設置Mark 標記。表內包含五個鏈 PREROUTING POSTROUTING INPUT OUTPUT FORWARD .
    4. raw 表 是來自1.2.9 以後的版本的iptables新增的,只要用來決定是否對數據包進行跟蹤 表包含了兩個鏈 OUTPUT PREROUTING
      規則鏈
    5. INPUT 當收到訪問防火墻本機地址數據包(入站)時,應用從鏈路中的規則。
    6. OUTPUT 當防火墻本機向外發送數據包(出站)時 應用次鏈中的規則 。
    7. FORWARD 當接收到需要通過防火墻中轉發送給其他地址的數據包中,應用此鏈路中的規則。
    8. PREROUTING 在數據包做出路由選擇之前,應用此鏈中的規則
    9. POSTROUTING 在對數據包做出選擇之後,應用此鏈中規則
      規則表之間順序
      當數據包抵達防火墻時,將一次應用raw表、mangle表、nat表、和filter表中對應的規則(如果存在)應用順序為raw=> mangle=>nat=>filter.
      基本語法
    10. ACCEPT 允許通過
    11. DROP 直接丟棄不給發出任何回應
    12. REJECT 拒絕數據包通過,必要時會給數據發送端一個相應
選項名 功能及特點
-A 在指定鏈尾端添加
-D 刪除莫一條
-I 在指定鏈插入一條規則
-R 修改替換
-L 列出指定的所有規則末指定為所有
-F 清空鏈規則末指定為所有
-P 指定默認鏈
-n 使用數字心事顯示輸出結果
-v 查看規則列表顯示詳細信息
-h 產看密令幫助信息
--line-numbers 查看規則列表時,同時顯示出在鏈中的順序號
實驗開始
實驗目的為可以訪問Linux 提供的網頁服務
實現只能訪問不讓ping
實現NAT snt 轉換 和 DNAT

實驗準備兩Linux 其中Linux 1 提供HTTP 服務 Linux 2充當路由器 一臺客戶機

  1. Linux 1 只需要開啟 httpd 服務就可以 但讓網卡信息要清楚
  2. Linux 2 充當路由器 雙網卡配置 一個為 192.168.100.1 一個12.0.0.1
  3. 一臺客戶機 IP地址 為12.0.0.33
    開始實驗
    • 實現互聯互通 當然只能平通網關
    • [root@c02 ~]# iptables -F 清楚所有鏈
    • [root@c02 ~]# vim /etc/sysctl.conf 修改配置文件
    • net.ipv4.ip_forward = 1 把 0 改為 1 這樣就能從客戶機訪問到Linux 1 提供的 httpd 服務
    • [root@c02 ~]# iptables -A FORWARD -s 12.0.0.33 -p icmp -j DROP
      在指定列表最末行插入(這個看環境因為我全部情況了不存在先後順序)FORWARD (出站口)禁止源地址 -s 12.0.0.33 訪問 -p icmp 協議 -j 執行操作 DROP 丟棄(註意大小寫)
    • [root@c01 ~]# cat /etc/httpd/logs/access_log
      12.0.0.33 - - [12/May/2018:07:59:27 +0800] "查看httpd訪問日誌
    • [root@c02 ~]# iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.100.1
      內網訪問公網 -t 指定表格 nat 表 -A 插入到POSTROUTING 規則鏈在對數據包做出選擇之後 源地址的段 -o 出口 eth0 -j 使用 SNAT --to-source 轉換成外網出口
    • [root@c02 ~]# iptables -t nat -A PREROUTING -s 192.168.100.1 -i eth0 -j DNAT --to-destination 12.0.0.33 這個就是在 PREROUTING 在數據包做出路由選擇之前
    • 技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片

Linux Redhat 6.5 中防火墻