Как защитить маршрутизатор от внешнего взлома?

«Как защитить маршрутизатор от внешнего взлома?» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В инфраструктуре, которую я администрирую, защита сетевого периметра начинается с маршрутизаторов. Вот ключевые меры, которые я применяю:

  1. Управление прошивкой и доступом:

    • Все устройства находятся в изолированной сети управления (out-of-band, OOB).
    • Обновления прошивки загружаются только из доверенных источников и применяются по расписанию после тестирования в staging-среде.
    • Удалённый доступ (SSH, веб-интерфейс) разрешён только с определённых IP-адресов через VPN. Протоколы вроде Telnet отключены.
  2. Жёсткая настройка сетевых служб:

    • Отключаю все неиспользуемые службы (например, UPnP, WPS).
    • Настраиваю ACL (Access Control Lists) для фильтрации входящего и исходящего трафика. Например, разрешаю только необходимые порты для работы VPN (IPsec/OpenVPN) и блокирую всё остальное снаружи.
    • Включаю и настраиваю stateful firewall.
  3. Аутентификация и мониторинг:

    • Использую сложные пароли, хранящиеся в менеджере паролей (Vault), и ключи SSH вместо паролей.
    • Настраиваю централизованный сбор логов (в стеке ELK или Loki/Promtail/Grafana) со всех сетевых устройств для мониторинга подозрительной активности.
    • Интегрирую аутентификацию с корпоративной LDAP/Active Directory, где это возможно.

Пример ACL на устройстве под управлением OpenWRT (через UCI):

# Запрещаем весь входящий WAN-трафик, кроме ответов на установленные соединения и VPN
uci add firewall rule
uci set firewall.@rule[-1].name='Deny-WAN-In'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest='lan'
uci set firewall.@rule[-1].target='REJECT'
uci set firewall.@rule[-1].proto='all'

uci add firewall rule
uci set firewall.@rule[-1].name='Allow-VPN'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest='lan'
uci set firewall.@rule[-1].target='ACCEPT'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].dest_port='1194' # Порт OpenVPN

uci commit firewall
/etc/init.d/firewall restart

Регулярное проведение аудитов безопасности и сканирование уязвимостей (например, с помощью OpenVAS) — неотъемлемая часть процесса.