آموزش مسدود کردن سایت ها در میکروتیک و تعریف سایت مجاز و استثناء

چگونه دسترسی به وب سایت ها را در Mikrotik مسدود یا بلاک کنیم؟ چگونه اجازه دسترسی به وبسایتهای خاصی را در میکروتیک بدهیم؟ زمانیکه شما قصد دارید بدون استفاده از webproxy دسترسی به سایتها رو مسدود کنید، این راه کار مناسب شماست. این کد بغیر از سایت ITPRO دسترسی به همه سایتهایی که کاربران برای یک بار تلاش برای ورود به آنها را کردند مسدود می کند. قبل از شروع باید روتر را بعنوان DNS سرور تمام درخواستهای DNS ی تنظیم کنید

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
/ip firewall nat
add action=redirect chain=dstnat comment=DNS dst-port=53 protocol=tcp to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53
/

حال یک Firewall Rule برای مسدود کردن دسترسی ها ایجاد می کنیم

/ip firewall filter
add chain=forward dst-address-list=restricted action=drop
/

در این جا یک script ایجاد و Code زیر را درون آن کپی می کنیم.

  • نکته: در Code زیر بجای کلمه itpro هر کلمه دیگری را می توان قرار داد
:foreach i in=[/ip dns cache find] do={
    :local bNew "true";
    :local cacheName [/ip dns cache all get $i name] ;
#    :put $cacheName;

    :if (([:find $cacheName "itpro"] != 0) || ([:find $cacheName "itpro"] != 0) || ([:find $cacheName "itpro"] != 0)) do={

        :local tmpAddress [/ip dns cache get $i address] ;
#	:put $tmpAddress;

# if address list is empty do not check
        :if ( [/ip firewall address-list find list="restricted" ] = "") do={
            :log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
            /ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
        } else={
            :foreach j in=[/ip firewall address-list find list="restricted"] do={
                :if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
                    :set bNew "false";
                }
            }
            :if ( $bNew = "true" ) do={
                :log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
                /ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
            }
        }
    }
}

نکته:با تکثیر عبارت زیر در کد بالا می توانیم سایتهایی که می خواهیم برای کاربران باز باشد را اضافه کنیم

|| ([:find $cacheName "itpro"] != 0)

در این جا یک script ایجاد و Code زیر را درون آن کپی می کنیم.متوجه شدم زمانیکه Cache میکروتیک پر میشه CPU قادر به هندل کردن دستورات بالا نیست این قسمت برای پاک کردن کش میکروتیک هست

delay delay-time=15000ms
ip dns cache flush

حال باید کاری کنیم که Code های بالا هر 30 ثانیه یک بار اجرا شود

/ system scheduler add name="schedule1" on-event="script1" start-date=Nov/01/2016 start-time=00:01:00 interval=30s comment="" disabled=no 
/ system scheduler add name="schedule2" on-event="script2" start-date=Nov/01/2016 start-time=00:01:00 interval=30s comment="" disabled=no 
/

توجه:کش مرورگرهای کاربران باید پاک شود

  • نکته : در صورتی که سایتی بصورت اشتباه فیلتر شده باشد می توان از قسمت IP>Firewall>Address List رکورد مربوطه را به سادگی حذف و یا غیر فعال نماییم

نظرات