تا %60 تخفیف خرید برای 2 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

آموزش مسدود کردن همه سایت ها به غیر از سایت های مجاز در میکروتیک

به نام خدا ، زمانیکه شما قصد دارید بدون استفاده از 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 رکورد مربوطه را به سادگی حذف و یا غیر فعال نماییم

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند