看板 Linux 關於我們 聯絡資訊
需求是firewalld擋10.20.1.x 但不擋 此網段某幾個ip 例如只擋 10.20.1.0-100 10.20.1.105-200 10.20.1.205-255 中間的ip不擋 其他網域也不擋 上網查只有擋整個網段 或 擋單個ip firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' service name ='ssh' source address='10.20.1.100' reject" firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' service name ='ssh' source address='10.20.1.0/24' reject" 難道我只能用窮舉法設定每個ip reject了嗎 請問有沒有更簡單的command來設定 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1652860162.A.C45.html
CP64: 那先對放行的那幾個下 accept 最後對整段下 reject 呢 05/18 16:34
nknudragon: submask不要用24 ,用28 or 30看看 05/18 16:39
nknudragon: 另外的想法是,用/28,切成16個網段,開1擋15 05/18 16:53
mirc: 先設定要放行的,之後再擋網段呢? 05/18 17:29
roccqqck: 看來2樓的方法可能是唯一解 05/18 20:49
roccqqck: mirc的方法我試過 失敗 整個網段reject 05/18 20:50
roccqqck: 也是CP64的方法 05/18 20:59
hizuki: iptables -L -v 先到accept target的方法是對的 05/18 22:16
CP64: 不太確定 firewalld 底下的運作 看是先用樓上的方法 05/19 01:41
CP64: 或是 nft list ruleset 看它生出來的 rule 是不是對的 05/19 01:41
tomsawyer: 我記得firewalld跟iptables一樣有先後順序 你有對嗎? 05/19 10:32
firewalld 我兩種順序都試過 都是整個網段被reject iptables的確照順序會成功 iptables還有--src-range的用法 但是要把其他規則移植到iptables 我寧用窮舉法
tomsawyer: 喔我看錯,50可能要48遮 100用96遮 05/19 10:34
chang0206: 維護一個iplist 作為放行白名單? 05/19 11:39
CP64: 實際看了產出來的 rule, firewalld 會強制把 deny 放前面... 05/20 04:23
CP64: 會需要在 accept 的 rule 裡加 priority=-1 往前拉 05/20 04:28
感謝 不過我的RHEL7 firewalld 0.6.3 剛剛測試似乎不支援priority ※ 編輯: roccqqck (101.12.100.160 臺灣), 05/20/2022 09:55:00
tomsawyer: Rich-rule的參數似乎有rule-priority 可以用 可以試試 05/22 05:27
tomsawyer: >0.7 05/22 05:28
fashionjack: 先寫先執行,1F是正解。 05/22 05:28
firewalld一定要priority才行 照順序沒用 我另外找到一個很奇怪的方法 用firewall-cmd下iptables的規則 www.tecmint.com/block-ssh-and-ftp-access-to-specific-ip-and-network-range #--------------------- On IPtables Firewall --------------------- ``` iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT ``` #--------------------- On FirewallD --------------------- ``` firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT ``` ``` firewall-cmd --reload #這規則用firewalld看不到 firewall-cmd --list-all-zones #用iptables才看得到 iptables -L -n --line-numbers ``` ※ 編輯: roccqqck (49.216.102.88 臺灣), 05/25/2022 15:22:33