skill——iptables(五)

黑白名單

黑名單:即默認策略爲 ACCEPT,鏈中規則對應的動作應該爲 DROP 或 REJECT ,表示只有匹配到規則的報文才會被拒絕,沒有匹配到規則的報文默認被放行
白名單:即默認策略爲 DROP 或 REJECT,鏈中規則對應的動作應該爲 ACCEPT ,表示只有匹配到規則的報文才會被放行,沒有匹配到規則的報文默認被拒絕
也就是說:
白名單時,默認所有人是壞人,只放行好人
黑名單時,默認所有人是好人,只拒絕壞人
案例一:
簡單的黑名單(默認策略爲 ACCEPT,鏈中規則對應的動作爲 DROP 或 REJECT)
skill——iptables(五)
案例二:
簡單的白名單(默認策略爲 DROP 或 REJECT,鏈中規則對應的動作爲 ACCEPT )
先添加規則動作爲 ACCEPT 的鏈使端口 22 可以被訪問,然後使用 -P 把默認策略改爲 DROP
如下圖:
skill——iptables(五)
注意:但是上圖的設置有個問題,就是如果誤操作把這這條規則刪掉了或執行了 iptables -F INOUT 清空了鏈,正在連接的 ssh 就會 的斷開,這個顯然不是我們想要的
可以做以下修改:
讓默認策略繼續爲:ACCEPT,在需要放行的規則後面添加一條拒絕所有請求的規則
意思是:如果報文符合放行規則,則會被放行規則匹配到,得以通過,如果沒有,則會被最後一條拒絕規則禁止通行
skill——iptables(五)
這樣做的目的是在誤操作的情況下(iptables -F INOUT 清空了鏈),也可以保證連接是暢通的

自定義鏈

用於解決默認鏈中規則非常多時,方便我們分類管理,比如定義一條鏈,只存放針對 80 端口的入站規則
案例三

  1. 創建一條自定義鏈
    注意:前面說過,-t filter 可以省略,爲默認值
    skill——iptables(五)
    skill——iptables(五)
  2. 向 IN_WEB 中添加並查看規則
    注意:操作自定義鏈與默認鏈沒什麼不同
    skill——iptables(五)
  3. 使用默認鏈來引用自定義鏈
    注意:沒有默認鏈引用時,之前定義的規則是無法被正常使用的,被哪條默認鏈引用取決於實際工作場景(自定義鏈也可以引用其他自定義鏈)
    注意:此時的 “-j 動作” 表示訪問本機的 80 端口的 tcp 報文將由自定義鏈來處理,我們也可以發現 IN_WEB 中的 references 數值變爲了 1,表示該自定義鏈被引用了一次
    skill——iptables(五)
    skill——iptables(五)
  4. 重命名自定義鏈
    skill——iptables(五)
    skill——iptables(五)
  5. 刪除自定義鏈
    注意:刪除自定義鏈需滿足兩個條件
    1)自定義鏈中沒有任何規則,即自定義鏈爲空
    2)自定義鏈沒有被任何默認鏈引用,即自定義鏈的引用計數爲 0
    skill——iptables(五)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章