Введение
Данная статья может быть полезна продвинутым пользователям, которые хотят улучшить работу своего домашнего роутера, а также системным администраторам предприятий, перед которым стоит задача повысить надежность и безопасность удаленной работы сотрудников.
Как вы скорее всего знаете, ваш роутер – это маленький компьютер и него есть программное обеспечение, так называемая “прошивка” или “firmware”. Прошивку разрабатывает производитель роутера, однако существуют также альтернативные решения – проекты с открытым исходным кодом: OpenWRT, DD-WRT, Tomato.
Что нам даёт использование OpenWRT?
Обновления (безопасность и новые фишки) выпускаются в разы чаще и поддержка сохраняется в разы дольше, чем у большинства производителей. Особенно актуально это стало в условиях карантина. Уязвимая “прошивка” роутера – одна из наиболее частых причин инцидентов при удаленной работе.
“Родные” прошивки бывают нестабильными, особенно у дешевых роутеров. Так многие модели TP-Link зависали после нескольких дней беспрерывной работы.
Вы привыкаете к одному интерфейсу пользователя и при последующей смене/апгрейде роутера, даже от другого производителя, чувствуете себя “как дома”.
Вам не обязательно покупать дорогой роутер для реализации продвинутых “фишек”, таких как IPv6, родительский контроль, блокировка рекламы, VPN, гостевой WiFi, DNS шифрование, динамический DNS (DDNS) и т. д.
Есть активное сообщество, которое поможет оперативнее, чем даже поддержка крупного производителя, да и многое уже описано.
Преимущества открытого решения на базе Linux: возможность подключаться через SSH, автоматизировать настройку и управлять роутером с помощью скриптов, настройки хранятся в текстовых файлах (автоматизация, контроль версий), можно использовать роутер для других задач (умный дом, SFTP/Web сервер, закачка торрентов и т.п.).
Подробнее эти и другие причины описаны на сайте проекта.
Базовая настройка OpenWRT
Данная статья поможет вам настроить базовые функции OpenWRT, благодаря чему вы сможете быстро и безболезненно перейти на это решение. Вот перечень этих функций:
Установить пароль пользователя root.
Ограничить доступ по SSH только для интерфейса LAN.
Настроить PPPoE подключение по WAN.
Настроить WiFi.
Добавить гостевой WiFi (без доступа в локальную сеть).
Настроить динамический DNS NoIP.
Настроить переадресацию портов (port forwarding).
Сохранить конфигурацию в архивный файл.
Пункты 6 и 7 нужны, например, для того, чтобы подключаться из Интернета к домашнему компьютеру по SSH или SFTP (например, для синхронизация файлов с ноутбуком), а также для прямого подключения по Anydesk, которое работает быстрее, чем обычное.
Процесс “перепрошивки” на OpenWRT зависит от модели вашего роутера. Следует найти его в списке поддерживаемых устройств и следовать приведенным там рекомендациям.
Настройки можно делать с помощью SSH-подключения и скриптов, однако мы рассмотрим веб-интерфейс (который называется LuCI) как более наглядный и устойчивый к изменениям вариант.
1. Установить пароль пользователя root
Перейти в меню System > Administration.

2. Ограничить доступ по SSH только для интерфейса LAN
Перейти в меню System > Administration > SSH Access.
Interface = lan

После этого шага имеет смысл сделать Logout и залогиниться снова, чтобы убрать предупреждение в верхней части экрана.
3. Настроить PPPoE подключение по WAN
Перейти в меню Network > Interfaces.
Нажать кнопку “Edit” в строке “WAN”.
Protocol = PPPoE + нажмите кнопку "Switch protocol"
PAP/CHAP username = ваш_логин_у_провайдера
PAP/CHAP password = ваш_пароль_у_провайдера

4. Настроить WiFi
Перейти в меню Network > Wireless.
4.1 Нажать на кнопку “Edit” под “radio0 802.11nac”.

Channel = Auto
ESSID = имя_вашего_wifi_5GHz

Перейти на вкладку Wireless Security.
Encryption = WPA2-PSK/WPA3-SAE Mixed Mode
Key = пароль_вашего_wifi_5GHz

4.2 Нажать на кнопку “Edit” под “radio1 802.11bgn”.
Channel = Auto
ESSID = имя_вашего_wifi_2.4GHz
Перейти на вкладку Wireless Security.
Encryption = WPA2-PSK/WPA3-SAE Mixed Mode
Key = пароль_вашего_wifi_2.4GHz
Нажать кнопки “Enable” (слева от “Edit”) на обоих подключениях.
5. Добавить гостевой WiFi
Взято отсюда, плюс ужато и обновлено под новый интерфейс.
Делаем для 2.4 ГГц, но аналогично можно сделать и для 5ГГц.
5.1 Перейти в меню Network > Wireless.
5.1.1 Нажать кнопку “Add” в “radio1 802.11bgn”.

Channel = Auto
ESSID = имя_вашего_гостевого_wifi
network = выбрать "-- custom --" и ввести "guest"

5.1.2 Перейти на вкладку Wireless Security.
Encryption = WPA2-PSK/WPA3-SAE Mixed Mode
Key = пароль_вашего_гостевого_wifi
5.2 Перейти в меню Network > Interfaces.
5.2.1 Нажать на кнопку “Edit” в интерфейсе “GUEST”.
Protocol=Static address + нажать кнопку “Switch protocol”
IPv4 address = 192.168.3.1
IPv4 netmask = 255.255.255.0

5.2.2 Перейти на вкладку “Firewall settings”.
Create / Assign firewall-zone = выбрать "-- custom --" и ввести "guest"

5.2.3 Перейти на вкладку “DHCP server”.
Нажать на кнопку "Setup DHCP server" и далее Save
5.3 Перейти в меню Network > Firewall.
5.3.1 Нажать на кнопку “Edit” в зоне “guest”.
Input = reject
Allow forward to destination zones = WAN

5.3.2 Перейти на вкладку Traffic rules.
Нажать на кнопку “Add” внизу.
Name = Guest DNS
Protocol = TCP+UDP
Source zone = guest
Destination zone = Device(input)
Destination port = 53
Save
Нажать на кнопку “Add” внизу.
Name = Guest DHCP
Protocol = UDP
Source zone = guest
Destination zone = Device(input)
Destination port = 67
Save

6. Настроить динамический DNS NoIP
6.1 Перейти в меню System > Software.
Нажать кнопку “Update lists…”
Набрать “ddns” в поле “Filter”.
Установить пакеты “ddns-scripts”, “ddns-scripts-noip”, “luci-app-ddns”.
Сделать Logout и потом залогиниться снова.

6.2 Перейти в меню Services > Dynamic DNS.
6.2.1 Нажать кнопку “Edit” в строке “myddns_ipv4”.
Lookup Hostname = your.dyndns.domain.com
DDNS Service provider = no-ip.com + нажать кнопку "Switch service"
Domain = your.dyndns.domain.com
Username = your_username
Password = your_password

6.2.2 Нажать кнопку “Reload” в строке “myddns_ipv4”.
6.2.3 Нажать кнопку “Delete” в строке “myddns_ipv6” — если вам достаточно IPv4.
7. Настроить переадресацию портов (port forwarding)
Перейти в меню Network > Firewall > Port Forwards.
Нажать кнопку “Add” внизу:
Name = SSH
Protocol = TCP+UDP
External port = 22
Internal IP address = 192.168.1.2
Save
Нажать кнопку “Add” внизу:
Name = Anydesk
Protocol = TCP+UDP
External port = 7070
Internal IP address = 192.168.1.2
Save

8. Сохранить конфигурацию в архивный файл.
Перейти в меню System > Backup.
Нажать на кнопку “Generate archive”.
Сохранить скачанный файл в надежном месте.
В этом же пункте меню можно загружать обновления прошивки – кнопка “Flash image…”.
Заключение
Таким образом, мы рассмотрели недорогие в применении меры повышения безопасности и стабильности работы домашних роутеров с помощью прошивки OpenWRT. В то же время, следует заметить, что ни одна разовая мера безопасности, включая внедрение дорогого оборудования и программного обеспечения, не даст гарантий отсутствия инцидентов безопасности. Если вам нужен действительно высокий уровень защищённости, то необходим комплексный системный подход, начиная с аудита вашей ИТ-инфраструктуры, в том числе, домашнего окружения.