mhtzc 发表于 2018-8-24 15:36:34

关于firewall 里过滤 的return怎么用

在防火墙过滤里ative return,不理解,我想表达的就是想1.1.1.0/24当ping的1.1.1.1网关时进行log记录,并返回到原来链表,进行其他配比。
可以能我写的还不对,但我想知道怎么可以看出来是返回到之前的链表, 谢谢各位

/ip firewall address-list
add address=1.1.1.0/24 list=lan_intern

/ip firewall filter
add action=jump chain=input in-interface=ether2 jump-target=input_administration log=yes protocol=tcp src-address-list=lan_intern
add action=accept chain=input_administration connection-state=newin-interface=ether2 protocol=icmp src-address-list=lan_intern
add action=accept chain=input_administration connection-state=new dst-port=8291 in-interface=ether2 protocol=tcp src-address-list=net_intern
add action=return chain=input_administration disabled=yes

cspm333 发表于 2018-8-24 16:57:23

本帖最后由 cspm333 于 2018-8-24 17:17 编辑

1.若已經將ether2已規劃為1.1.1.0/24 ,
再指定src-address=1.1.1.0/24或src-addres-list=lan_intern是沒必要的...不是不可以,只是感覺多餘.

2 .jump是將符合條件的封包劃分至指定的chain(鏈),您目前是指定input_administration
所以已在action=jump比對過的項目,不必在chain=input_administration裡再設定一次,
再設定一次等同再次比對...是浪費資源的.

3.action=return是將標記過的鏈再次比對,若符合從鏈跳開...即不算數的意思.
static/image/hrline/4.gif
使用action=jump是這樣規劃的:
/ ip firewall filter
add action=jump chain=input in-interface=ether2 jump-target=input_administration connection-state=new protocol=icmp
add action=passthrough chain=input_administration log=yes       #已在jump比對過的項目就不再重複,直接動作

#action=passthrough是統計封包,但對上或對下不作任何影響或改變
static/image/hrline/4.gif
若需用到action=return ,如:1.1.1.10是特例不需log標示
/ip firewall filter
add action=jump chain=input in-interface=ether2 jump-target=input_administration connection-state=new protocol=icmp
add action=return chain=input_administration src-address=1.1.1.10 #將1.1.1.10從鏈(chain=input_administration )跳開
add action=passthrough chain=input_administration log=yes

#若要action=retrun發揮跳開作用,一定要擺在關鍵動作之前. 若是擺在關鍵動作後,動作都做了,跳開是於事無補的.













mhtzc 发表于 2018-8-29 09:23:59

先感谢@cspm333的解答,我在体会下,对return这个ative不是很理解,这个在什么时候用的比较多呢?

cspm333 发表于 2018-8-29 10:06:25

mhtzc 发表于 2018-8-29 09:23
先感谢@cspm333的解答,我在体会下,对return这个ative不是很理解,这个在什么时候用的比较多呢? ...

包含的層面很廣,只要是"不包含"的都可用return做剃除的動做.
如:我想標記所有可能p2p的封包,但server使用的port要先剃除,
所以我用jump+retun來完成我的標記:


mhtzc 发表于 2018-8-29 10:42:13

那意思是说,在路由之后,把源ip:192.168.88.108所有chain链DS213 tcp 500,5005等,udp 1701等都drop掉,当所有对应流量都执行完成之后返回(return)到postrouting链,下面的192.168.88.101也是和上面一样的道理对吧

cspm333 发表于 2018-8-29 11:19:29

本帖最后由 cspm333 于 2018-8-29 12:03 编辑

mhtzc發表於2018-8-29 10:42
那意思是說,在路由之後,把源ip:192.168.88.108所有chain鏈DS213 tcp 500,5005等,udp 1701等都drop掉, ...
非drop掉.並沒有將封包丟棄,只是被排除的port不被歸在p2p標記之列而已.
return用排除或剃除是比較口語話的說法, return官方的語意是這些封包返回到jump之前,不在鏈(chain)之列.
所以使用return的封包會回到原本postrouting這層鏈是正確的.

postroutig這個官方的鍊有特別意義,是nat之後的意思.
我標記的p2p封包並不是桌機與與router間(chain=forward)的封包,而是離開router到遠端伺服器間的封包.
雖然放到Queue simple或Queue tree作用的結果會相同,但意義不太同...

mhtzc 发表于 2018-8-29 15:22:31

其实我想做一些规则,例如:在eth2口设置一个ip地址为1.1.1.1当eth2下面连接的电脑ping这个1.1.1.1的时候,用log记录下这些ip,然后当ping结束之后,返回jump之前的链表,真个过程让log显示出来。这个应该如何添加才可以出效果呢?谢谢:)

cspm333 发表于 2018-8-29 16:26:34

本帖最后由 cspm333 于 2018-8-29 16:38 编辑

mhtzc 發表於 2018-8-29 15:22
其實我想做一些規則,例如:在eth2口設置一個ip地址為1.1.1.1當eth2下面連接的電腦ping這個1.1.1.1的時候 ...
您太執著於"返回"這個字串的意思了,
每一個chain只是整個大流程(forwrad)的一部份 ,跑完後會接著下另一個小流程(另一個chain),或者跑完大流程剩餘的部份.

如上:整個大流程chain=forward ,旗下還有icmp與virus這兩個chain.
假設chain=icmp的封包有的return ,有的沒...

最終兩邊的封包還是會run接下來virus這個chain.
也就是retun的封包只是跳過當下的chain=icmp內的動作 ,接下來防火牆流程還是會繼續.
而在chain=icmp內執行動作的封包 ,除非動作是丟棄封包,不然封包只要結束還在就得再往下繼續.

小流程chain=virus跑完也並不是結束,還是得繼續跑完防火牆剩餘的規則...
除非virus已經最終流程,到了結束階段.


mhtzc 发表于 2018-8-29 16:59:59

谢谢@cspm333
页: [1]
查看完整版本: 关于firewall 里过滤 的return怎么用