Долго я к этому шел, но наконец вроде взлетело. Давно пытался реализовать разруливание траффика по разным каналам с автоматизацией. Но то времени нет, то не работает чего-нибудь, то еще какая напасть. Однако наконец мой микротик удалось скрестить с сервисом antifilter.download и настроить в приемлемом виде. Шпаргалка в общих чертах, как всегда

Во-первых, нам нужен сервер где-нибудь, где РКН не властен. Во-вторых, надо там настроить VPN-сервер. В-третьих, нужен роутер, который в автоматическом режиме прожуёт списки и направит нас в нужном направлении.

Первый пункт опустим, сервисов подобных сейчас множество, выбирай на вкус. VPN-сервер тоже выбираем по вкусу. Главное, чтобы он был совместим с роутером. Я выбрал привычный себе OpenVPN AS. Роутер, в моем случае, это MIKROTIK MAP 2ND – компактный и вообще можно запитать от любой повербанки и подключить через переходник в 4G-свисток Обязательна RouterOS 7 версии. Ладно, ближе к настройкам.

  • После установки OpenVPN AS нужно отключить TLS, потому что Mikrotik’овый клиент не умеет с ним работать. Печаль, но делать нечего. Заходим в Advanced VPN -> TLS Control Channel Security и вместо tls-crypt ставим none.
  • Дальше создаем профиль для роутера и выгружаем OVPN-профиль для него.
  • Из профиля добываем и сохраняем в файлы сертификат центра сертификации (секция CA, файл .cert), сертификат клиента (секция cert, файл .cert) и приватный ключ (секция key, файл .key).
  • Загружаем файлы сертификатов в Mikrotik и по очереди их импортируем в раздел сертификатов. Сертификат клиента после загрузки ключа должен получить статус КТ.
  • Создаем PPP-соединение типа OVPN Client со следующими параметрами:
ПараметрЗначение
NameПо вкусу
Connect toУказываем адрес нашего OpenVPN-сервера
PortПорт подключения для TCP-демона
ModeIP (по-другому роутер не умеет, фактически)
ProtocolTCP (по-другому роутер не умеет, фактически)
User / PasswordДанные, которые были указаны при создании пользователя на сервере
ProfileПо умолчанию, ничего не меняем
CertificateИмпортированный сертификат из предыдущего шага
Verify Server CertificateВообще, без разницы (мы же отключили TLS), но я бы включал
TLS VersionOnly v1.2
AuthSHA1
Cipheraes256cbc
Use peer DNSЕсть смысл выбрать Exclusively, потому что (хочется верить) на сервере VPN стоит DNS, который не блокирует запросы из России. Ну и неплохо было бы маршрут до DNS провесить тоже через этот туннель
Add Default RouterОтключить, нам не надо весь траффик гнать через VPN
Don’t Add Pushed RoutesОтключить. Во-первых, оно не работает нормально. А, во-вторых, мы их все равно использовать не будем
  • Настраиваем NAT через свежесозданный PPP-интерфейс. Проще всего добавить его в группу WAN-интерфейсов и не париться

Осталось настроить получение списка заблокированных адресов. Инструкция честно утащена с https://forummikrotik.ru/viewtopic.php?t=14126

/routing bgp connection
add as=64514 disabled=no hold-time=4m input.ignore-as-path-len=yes keepalive-time=1m local.address=192.168.220.220 .role=ebgp multihop=yes name=bgp1 remote.address=45.154.73.71/32 .as=65432 routing-table=main

Фильтр создается в Routing-Filters вкладка Rule. Синий плюсик.
В поле Chain впишите название вашего фильтра (придумайте сами).
А в поле Rule впишете текст (где my-vpn – это название вашего PPP-соединения):

set gw my-vpn; accept

Осталось в созданной записи BGP выбрать фильтр. Routing-BGP, далее щелкните дважды нужную строчку с параметрами BGP подключения. Перейдите на вкладку Filter. В поле Input Filter выберите нужный фильтр.

Да, и неплохо бы пустить получение BGP все через тот же VPN, а то мало ли заблочат

/ip route add dst-address=45.154.73.71/32 gateway=my-vpn

Вообще, рекомендую почитать оригинальную тему – там даже картинки есть.

Да, и последнее – для DNS’а и прочих руками забитых маршрутов сквозь VPN есть смысл использовать рекурсивные маршруты, чтобы целевой хост хотя бы пытался открыться через обычное соединение при неработающем VPN’е.

Добавить комментарий