top100011 wrote:密碼輸入3次錯進黑名單,script編寫有困難;
請問一下目前因為很多(恕刪)
但觸動帳號後5分鐘內未登入 進黑名,我倒是有準備:
/ip firewall mangle
add action=jump chain=input comment="vpn point" connection-state=new dst-port=1723,443,1194 jump-target=point protocol=tcp in-interface=pppoe-out1
add action=jump chain=input connection-state=new dst-port=1701,500,4500 jump-target=point protocol=udp in-interface=pppoe-out1
add action=return chain=point src-address-list=mobile
add action=add-src-to-address-list address-list=temp address-list-timeout=6m chain=point src-address-list=!temp

/ip firewall raw
add action=accept chain=prerouting src-address-list=mobile
add action=drop chain=prerouting src-address-list=Scanners

/system script add
:local date [/system clock get date]
:local clock [/system clock get time]
:foreach i in=[/log find topics~"ppp" message~"logged in"] do={
:local timein [/log get $i time]
:local info [/log get $i message]
:local caller [:pick $info ([:find $info "from"]+5) [:len $info]]
:local ex1 (8:0:0>$clock && [:pick $timein 0 6]=[:pick $date 0 6])
:set ex1 ($ex1 && [:pick $timein 7 15]>=($clock-0:1:0))
:local ex2 ($clock>=8:0:0 && [:len $timein]=8)
:set ex2 ($ex2 && $timein>=($clock-0:1:0))
:local ex3 ($clock=0:0:0 && [:len $timein]=8)
:set ex3 ($ex3 && $timein>23:59:00)
:if ($ex1 || $ex2 || $ex3) do={
:do {/ip firewall address-list remove [find list~"(temp|Scanners|mobile)" address=$caller dynamic]} on-error={}
:do {/ip firewall address-list add list=mobile address=$caller timeout=1d} on-error={}
}
}

/system script add
:global vpn
:local connected [/ip firewall address-list find list=temp dynamic]
:local scanners 0
:foreach i in=$connected do={
:if ([/ip firewall address-list get $i timeout]<0:1:0) do={
:do {/ip firewall address-list add list=Scanners address=[get $i address] timeout=1d} on-error={}
/ip firewall address-list remove $i ; :set scanners ($scanners+1)
}
}
:if ([:len $connected]>$scanners) do={:set vpn ($vpn-1)}

/system scheduler add
/system script run vpn-check ; :delay 3s
:global vpn ; :if ([:typeof $vpn]!="num") do={:set vpn 0}
:local check [/ip firewall mangle get [find src-address-list="!temp"] byte]
:if ($vpn!=$check) do={:set vpn $check ; /system script run vpn-server}






























































































