RouterOSを使用しているとどうしても使用する場面が想定されるCountry Block(国別防御)だと思いますが、RouterOSには標準では機能として搭載されていません。
しかし同じような事を考える人が多いらしく、過去にはScriptが組まれていたのですが、最近のRouterOSでは動作しないことが確認されています。
しかし、態々国別のCIDRをRouterOSの仕様にしてリスト化しているサイトが有りました。
検証環境:
- RouterOS 6.15
Index of /ipcountry
まずはScriptを2つ作成します。
一つは該当するリストの削除。もう一つはCIDRリストのダウンロードし、アドレスリストとして登録するScriptになります。
リストを削除するScriptは以下になります。今回はロシアのリストがある前提です。
[admin@MikroTik] /system script> add name=remove_russia policy=ftp,read,write,policy,test,winbox,api source="
n:foreach i in=[/ip firewall address-list find ] do={
n:if ( [ /ip firewall address-list get $i list ] = "RU" ) do={
n/ip firewall address-list remove $i
n}
n}
n"
そして、もう一つはロシアのCIDRリストをダウンロードするScriptになります。
[admin@MikroTik] /system script> add name=download_RU policy=read,write,test,polic
icy source={
{... /tool fetch url=http://www.iwik.org/ipcountry/mikrotik/RU
{... /import file-name=RU
{... }
そして、これらを1日1回のペースで実行するようにスケジューラーに登録します。
/system scheduler
add interval=1d name=CB_RU on-event="/system script run remove_russiar
n:delay 30r
n/system script run download_RU" policy=
ftp,read,write,policy,test,winbox,api start-time=startup
一応一つのScriptとしてまとめて実行することは可能ですが、対象とする国が増えたりする場合、メンテナンス性を考慮すると面倒でも国別にScriptを分けて実行したほうがいいと思います。
そして、最後にfirewall filterにdropするように登録して終了です。
/ip firewall filter
add action=drop chain=input comment=Country_Block_Russia src-address-list=RU
RB750GL
MikroTik Amazonで詳しく見る by AZlink |
RB2011UiAS-IN
MikroTik Amazonで詳しく見る by AZlink |