Skip to content

Latest commit

 

History

History
80 lines (55 loc) · 5.77 KB

WireGuard.md

File metadata and controls

80 lines (55 loc) · 5.77 KB

AntiZapret

Прозрачный обход блокировок для локальной сети.

Мне это решение особенно нравится тем, что оно корректно отрабатывает любой трафик. В том числе и HTTPS. При этом никаких настроек на клиентах делать не надо.

Система отлично работает с роутерами на базе OPNsense (на роутерах на базе pfSense не проверял, но также должно работать без проблем). Возможно, также будет работать с другими роутерами, т.к. используются только базовые возможности файрвола.

Установка и настройка с использованием WireGuard

NB. Для настройки системы понадобится доступ к командной строке через консоль или SSH. Все команды надо исполнять от имени root, т.к. иначе часть не сработает!

  1. Обратите внимание! Для работы этого метода необходимо иметь сервер WireGuard на хостинге за пределами СНГ.

    Настройка сервера не входит в эту инструкцию. Вы можете арендовать уже готовый сервер или настроить свой, найдя соответствующие инструкции в сети самостоятельно.

  2. Установите и настройте клиент WireGuard.

    Для OPNsense ...
    сначала установите плагин os-wireguard через вкладку System > Firmware > Plugins. После настройте клиент, как в официальной инструкции (шаги с 1 по 6 включительно).

    Для других систем ...
    к сожалению, точно описать настройку не могу. Но нужно сделать всё по-аналогии.

  3. Установите этот плагин.

    Самое простое, зайдя в консоль (обязательно как root!) исполнить команды

    cd ~
    git clone https://github.com/Limych/antizapret.git
    cd antizapret
  4. Настройте правила файрвола.

    Для OPNsense ...
    сначала в настройках файрвола на вкладке Firewall > Aliases создайте алиас для удобства использования списка.
    Name = AntiZapret_IPs
    Type = External (advanced)\

    Дальше на вкладке Firewall > Rules > LAN создаём новое правило:
    Destination = AntiZapret_IPs
    Description = LAN: AntiZapret to VPN
    Gateway = ... (имя gateway, что вы дали на шаге 6 официальной инструкции)

    Для других систем ...
    к сожалению, точно описать настройку не могу. Но нужно сделать всё по-аналогии.

  5. Настройте регулярное обновление списков блокировки.

    Для OPNsense ...
    просто запустите скрипт

    sh opnsense/install.sh

    После этого в настройках cron (System > Settings > Cron) добавить новую задачу на ежесуточное обновление списка:
    Command = Renew AntiZapret IP-list.

    Для других систем ...
    необходимо в cron добавить что-то типа

    0   0   *   *   *   /root/antizapret/antizapret.pl | tee /usr/local/www/ipfw_antizapret.dat | xargs pfctl -t AntiZapret_IPs -T add
    

    после, чтобы не ждать сутки первого обновления списка, в консоле исполняем команду

    /root/antizapret/antizapret.pl | tee /usr/local/www/ipfw_antizapret.dat | xargs pfctl -t AntiZapret_IPs -T add
    
  6. Всё. :)

    Через некоторое время система сама подгрузит список и файрвол начнёт прозрачно перенаправлять любые обращения к заблокированным сайтам на Tor. В то же время весь прочий трафик будет идти напрямую, как обычно.

При необходимости вы всегда можете получать список заблокированных адресов со своего файрволла по адресу https://<firewall_ip>/ipfw_antizapret.dat

Troubleshooting

Если при создании алиаса вы получили сообщение Invalid argument, загляните на вкладку Firewall> Settings> Advanced, найдите там поле Firewall Maximum Table Entries и измените его значение.

Известно, что на версии OPNsense v21.1 был явный баг: при значении по-умолчанию мы имели почему-то лимит в 32 768 адресов (хотя в справке написано, что по-умолчанию он 200 000 записей). Если явно указать там лимит в 200 000 записей, по факту он был 131 072 записи...