→ 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