# Block Bad Host Name, ARP Spoofing etc. #
# host-name, edit t1 -> t15 #
# then add the script to scheduler and run every two minutes #
# Mikrotik RouterOS v6.33rc30 #
:foreach i in=[/ip dhcp-server lease find host-name="t1" || host-name="t2" || host-name="t3" \
|| host-name="t4" || host-name="t5" || host-name="t6" || host-name="t7" \
|| host-name="t8" || host-name="t9" || host-name="t10" || host-name="t11" \
|| host-name="t12" || host-name="t13" || host-name="t14" || host-name="t15" ] do={
:local ip [/ip dhcp-server lease get $i address ];
:local mac [/ip dhcp-server lease get $i mac-address ];
:local host [/ip dhcp-server lease get $i host-name ];
/ip dhcp-server lease make-static [ find ];
/ip dhcp-server lease set [ find where dynamic=no mac-address=$mac ] use-src-mac=yes client-id="1:$mac" \
server=dhcp1 block-access=yes comment=BadHost
:log warning ("Bad Host Name $host " . "with Mac $mac " . "and IP $ip blocked on dhcp server lease ")
}
# Remove Bad Host Name, ARP Spoofing etc. #
# then add the script to scheduler and run every 12 hours #
# Mikrotik RouterOS v6.33rc30 #
:foreach i in=[/ip dhcp-server lease find comment=BadHost ] do={
:local ip [/ip dhcp-server lease get $i address ];
:local mac [/ip dhcp-server lease get $i mac-address ];
:local host [/ip dhcp-server lease get $i host-name ];
/ip dhcp-server lease remove [ find where comment=BadHost ];
:log warning ("Bad Host Name $host " . "with Mac $mac " . "and IP $ip Removing from dhcp server lease ")
}
# Other Option to Block bad Elements is with Bridge Filter #
# Block Bad Host Name, ARP Spoofing etc. #
# host name, edit t1 -> t15 #
# then add the script to scheduler and run every two minutes #
# Mikrotik RouterOS v6.33rc30 #
:foreach i in=[/ip dhcp-server lease find host-name="t1" || host-name="t2" || host-name="t3" \
|| host-name="t4" || host-name="t5" || host-name="t6" || host-name="t7" \
|| host-name="t8" || host-name="t9" || host-name="t10" || host-name="t11" \
|| host-name="t12" || host-name="t13" || host-name="t14" || host-name="t15" ] do={
:local ip [/ip dhcp-server lease get $i address ];
:local mac [/ip dhcp-server lease get $i mac-address ];
:local host [/ip dhcp-server lease get $i host-name ];
:if ([/interface bridge filter find src-mac-address="$mac/FF:FF:FF:FF:FF:FF" ] = "") do={
/interface bridge filter add chain=input src-mac-address="$mac/FF:FF:FF:FF:FF:FF"\
mac-protocol=ip action=drop comment=BadHost
/interface bridge filter add chain=output src-mac-address="$mac/FF:FF:FF:FF:FF:FF"\
mac-protocol=ip action=drop comment=BadHost
/interface bridge filter add chain=forward src-mac-address="$mac/FF:FF:FF:FF:FF:FF"\
mac-protocol=ip action=drop comment=BadHost
:log warning ("Bad Host Name $host " . "with Mac $mac " . "and IP $ip add to bridge filter ")
}
}
# Remove Bad Host Name, ARP Spoofing etc. #
/interface bridge filter remove [ find comment=BadHost ]