Skip to content

Кейс №4 (тренировка): «Сайты не открываются, пинги есть» — firewall filter дропает TCP/443 ​

Дата: 2026-09-29 Сценарий: заявка №3 игры «сломал — почини». Поломка: на CHR добавлено правило /ip firewall filter add chain=forward protocol=tcp dst-port=443 action=drop. Статус: ✅ диагностировано и исправлено обучающимся


Симптом ​

«Интернет есть: пинги идут, даже Яндекс пингуется и по IP, и по имени. Но браузер крутит колёсико — сайты не открываются. На всех устройствах».

Диагностика ​

ШагКоманда (alpine1)РезультатВывод
1ping ya.ruокDNS и ICMP живы — «транспорт есть»
2wget http://neverssl.comHTTP-OKTCP в принципе работает → обрыв узкий
3wget https://vk.ruвисит до Ctrl+CHTTPS (TCP/443) не устанавливается
4nc -z -w3 1.1.1.1 443«закрыт» после ~3 стаймаут, не RST → пакеты молча дропаются по пути (фильтр), а не «порт закрыт на сервере»

Локализация: TCP/443 режется между клиентом и сервером; клиент исправен (HTTP работает). Остаётся маршрутизатор абонента.

Находка и исправление (ssh chr) ​

routeros
/ip firewall filter print
# 0  ;;; lab7-firewall
#      chain=forward action=drop protocol=tcp dst-port=443

/ip firewall filter remove numbers=0

Проверка: wget https://vk.ru с alpine1 → HTTPS-OK.

Что закреплено (важно для собеседования) ​

  1. Отличать refuse (RST, мгновенно) от drop (молчание, таймаут) — busybox nc -z их не различает, смотреть по времени ответа.
  2. HTTPS = HTTP поверх TCP/443: «HTTPS висит» = не проходит TCP-handshake на 443, wget зависает на SYN.
  3. «Пинги есть, HTTP есть, только 443 мёртв» = фильтр по порту на промежуточном узле → /ip firewall filter print.
  4. Порт не «открывают» на клиенте — ищут, кто режет трафик к порту.

Замечание ​

При удалении правила использован remove numbers=0 — корректно. В реальной жизни правило сначала отключают (disable) на случай отката, но в тренировке допустимо сразу remove (бэкап конфигурации сделан заранее — базлайн из кейса-запуска лаборатории).