Простите, если не сюда пишу.
С Микротик знаком несколько лет, но скрипты не писал. Таких задач передо мной не было.
Читал информацию в интернете. Но в программировании не силен.
Буду рад, если поправите мои скрипты и, возможно, мое понимание, как это работает.
Мне необходимо составить банлист из IP и заблокировать эти адреса на Микротике.
MIKROTIK RB4011IGS+5HACQ2HND-IN с RouterOS v6.45.9 (long-term)
Делаю скриптом на FTP сервере:
Код: Выделить всё
@echo off
powershell -executionpolicy bypass -command "(Invoke-WebRequest https://www.spamhaus.org/drop/drop.txt).content.split() | foreach -begin {" ^
"@(':log info "torlist.rsc import started."', '/system logging disable 0', '/ip firewall address-list remove [find where list="""torlist"""]','/ip firewall address-list') | Out-File '.\torlist.rsc' -Append -Encoding utf8" ^
"} -Process {" ^
""""/do {ip firewall address-list add address=$($_) list=talos timeout=2d} on-error={}""" | Out-File '.\torlist.rsc' -Append -Encoding utf8" ^
"} -end {" ^
""""/system logging enable 0""", """:log info "torlist.rsc import complete."""" | Out-File '.\torlist.rsc' -Append -Encoding utf8" ^
"}"
exit
Код: Выделить всё
:log info torlist.rsc import started.
/system logging disable 0
/ip firewall address-list remove [find where list="torlist"]
/ip firewall address-list
/do {ip firewall address-list add address=221.132.192.0 list=talos timeout=2d} on-error={}
/do {ip firewall address-list add address=223.169.0.0 list=talos timeout=2d} on-error={}
/do {ip firewall address-list add address=223.173.0.0 list=talos timeout=2d} on-error={}
/do {ip firewall address-list add address=223.254.0.0 list=talos timeout=2d} on-error={}
/system logging enable 0
:log info torlist.rsc import complete.
Для этого идем в /system/scripts и пишем там скрипт:
Код: Выделить всё
#Загружаем банлист
/system script add name="ZagruzkaTorlist" source={
/tool fetch url="http://домен.ру/torlict.rsc" mode=http;
:log info "Zagruzili Torlist";
}
# Скрипт, который удалит старый список Torlist и добавит новый
/system script add name="ZamenitTorlist" source={
/ip firewall address-list remove [find where list="torlist"]
/import file-name=torlist.rsc;
:log info "Удалены старые записи Torlist и импортирован новый список";
}
Код: Выделить всё
add chain=input action=drop comment="Blokiruem IP iz torlist.rsc" \
connection-state=new src-address-list=blacklist in-interface=ether1-Internet
Код: Выделить всё
# Расписание загрузки и применения списка Torlist
/system scheduler add comment="Skachivaem Banlist" interval=3d \
name="SkachivaemBanlist" on-event=ZagruzkaTorlist \
start-date=jan/01/1970 start-time=02:00:00
/system scheduler add comment="Primenit banlist" interval=3d \
name="UstanovitBanlist" on-event=ReplaceTorlist \
start-date=jan/01/1970 start-time=02:10:00
Буду благодарен советам и ссылкам на источники.