Как на микротике завернуть определенные сайты на внешний прокси?

Есть Mikrotik 6.32 на x86
Как сделать так, чтобы когда кто-то в домашней сети хочет зайти на сайт yandex.ru, mikrotik заворачивал его и яндекс открывался через этот самый внешний прокси?
P.S. пробовал вместо прокси использовать ppptp vpn, но почему-то трафик просто не идет через pptp соединение...
  • Вопрос задан
  • 4384 просмотра
Пригласить эксперта
Ответы на вопрос 1
@moneron89
Сертифицированный тренер Mikrotik
Если есть определённый список сайтов, то самым правильным решением будет сначала разрешить имена этих сайтов в определённый адрес-лист. Для этой цели нашёл замечательный скрипт.
:local DNSList {"example.com";"non-exist.domain.net";"server.local";"hostname"}
:local ListName "MyList"
:local DNSServers ( [ip dns get dynamic-servers], [ip dns get servers ], 8.8.8.8 )
:foreach addr in $DNSList do={
     :foreach DNSServer in $DNSServers do={
          :do {:resolve server=$DNSServer $addr} on-error={:log debug ("failed to resolve $addr on $DNSServer")}
     }
}
/ip firewall address-list remove [find where list~$ListName]
/ip dns cache all
:foreach i in=[find type="A"] do={
    :local bNew true
    :local cacheName [get $i name]
    :local match false
    :foreach addr in=$DNSList do={
       :if (:typeof [:find $cacheName $addr] >= 0) do={
           :set $match true
       }
    }
    :if ( $match ) do={
        :local tmpAddress [/ip dns cache get $i address]
        :if ( [/ip firewall address-list find ] = "") do={
            :log debug ("added entry: $[/ip dns cache get $i name] IP $tmpAddress")
            /ip firewall address-list add address=$tmpAddress list=$ListName comment=$cacheName
        } else={
            :foreach j in=[/ip firewall address-list find ] do={
                :if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
                    :set bNew false
                }
            }
            :if ( $bNew ) do={
                :log debug ("added entry: $[/ip dns cache get $i name] IP $tmpAddress")
                /ip firewall address-list add address=$tmpAddress list=$ListName comment=$cacheName
            }
        }
    }
}

Взято отсюда
В скрипте в первой строчке укажите список доменных имён, которые необходимо заворачивать на прокси.
После того, как у вас есть готовый адрес-лист, добавляйте правило в НАТ примерно следующего вида:
/ip firewall nat add action=dst-nat chain=dstnat comment=MyProxy disabled=no dst-address-list=MyList dst-port=80,443 \
    protocol=tcp to-addresses=<адрес прокси>

При необходимости меняйте порты в правиле. Также можно добавить в правило NAT src-address=!<ip-адрес вашего прокси>, если прокси находится в той же сети, что и другие домашние компы. Если он где-то вне домашней сети, это не требуется.
Не забудьте добавить скрипт в scheduler, чтобы он периодически запускался (чаще, чем ТТЛ днс-записей).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы