基礎防火牆策略


一、基於NAT的防火牆策略

原理:通過配置防火牆策略,實現內網可以通過防火牆訪問外網,外網不能主動訪問內網,保證了局域網的安全性。

上圖為本次實驗的簡略圖。

准備工作:外網設為橋接模式,內網設為僅主機模式,防火牆兩個模式都有。

步驟:

  1. 首先把所有的不必要的防火牆策略關閉,以防止實驗出現失誤。

    Centos6版本關閉防火牆:iptables –F

    Centos7版本關閉防火牆:systemctl stop firewalld,iptables –F

  2. 配置網關

    外網要想訪問內網,必須經過路由,所以要配置網關,這里防火牆擔當路由的功能。相同的,內網也要配置網關。

    在這里internet配置網關:route add default gw 172.17.0.102

    內網配置網關:route add default gw 192.168.58.161

  3. 配置防火牆策略

    iptables -A FORWARD -s 192.168.58.170/24 -d 172.17.0.200/16 -m state --state NEW -j ACCEPT

    iptables -I FORWARD -m state --state ESTABLISHED -j ACCEPT

    iptables -A FORWARD -j REJECT

    以上要配置三條防火牆策略,原因是:第一條配置的是允許內網先發起第一次請求訪問外網,第二條配置的是允許已建立的連接返回,第三條配置的是拒絕所有的連接,這三條的順序是2、1、3,這樣的順序是遵照防火牆的規則,范圍小的排在上面。

  4. 測驗

    用內網去訪問外網,可以

    用外網訪問內網,不可以

二、基於SNAT的防火牆策略

  1. 原理:基於源ip地址的網絡地址轉發。局域網通過防火牆訪問外網的時候,會通過地址轉發,把局域網的Ip轉換成和外網同樣的網段,這樣外網和局域網在一個網段了,就不需要設置網關了。
  2. 上圖為內網訪問外網的轉發路徑,當內網為192.168.58.170要訪問172.17.0.200時,防火牆會把192.168.58.170轉換成172.17.0.102,再去訪問外網。這就是SNAT。
  3. 具體實現:
  4. 檢查外網是否設置網關,若有,刪除,因為不需要網關,由圖看出172.17.0.102和172.17.0.200是在一個網段。關閉之前的防火牆策略,防止實驗失敗。
  5. 刪除網關:route del default gw 172.17.0.102
  6. 關閉之前的防火牆:iptables –F FORWARD
  7. 配置防火牆策略
  8. iptables -t nat -A POSTROUTING -s 192.168.58.170/24 -j SNAT --to-source 172.17.0.200
  9. 測試
  10. 使用內網直接去連接外網
  11. ping 172.17.0.200

三、基於DNAT的防火牆策略

  1. 原理:基於目的ip的網絡地址轉發。和SNAT正好相反,外網通過防火牆的ip轉發,能夠訪問內網。
  2. 步驟:
  3. 打開httpd服務,外網,防火牆,和內網的httpd服務。
  4. 刪除之前的防火牆策略
  5. iptables –t nat –F POSTROUTING
  6. 配置防火牆策略
  7. iptables -t nat -A PREROUTING -d 172.17.0.102 -p tcp --dport 80 -j DNAT --to-destination 192.168.58.170:80
  8. 測試
  9. 使用外網訪問防火牆ip,防火牆會轉至內網Ip.下圖為內網的html界面,是通過防火牆轉到得。

四、基於REDIRECT的端口轉發

  1. 原理:假設本機沒有80端口,當外來主機要訪問本機的80端口時,默認使其訪問8080端口,就是默認轉至本機的8080端口。
  2. 步驟:
  3. 准備工作:查看有無80端口,若有,則改為8080,為實驗的需要。
  4. vim /etc/httpd/conf/httpd.conf
  5. listen 8080
  6. 之后重啟httpd服務即可。
  7. 查看8080端口:
  8. 配置防火牆策略
  9. 清空之前的策略:
  10. iptables -t nat -F PREROUTING
  11. 配置新的策略:
  12. iptables -t nat -A PREROUTING -d 172.17.0.102 -p tcp --dport 80 -j REDIRECT --to-ports 8080
  13. 測試
  14. 在另外一台主機測試訪問本主機的80端口,看是否會轉至8080端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM