Внешний вид
Кейс №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) | Результат | Вывод |
|---|---|---|---|
| 1 | ping ya.ru | ок | DNS и ICMP живы — «транспорт есть» |
| 2 | wget http://neverssl.com | HTTP-OK | TCP в принципе работает → обрыв узкий |
| 3 | wget https://vk.ru | висит до Ctrl+C | HTTPS (TCP/443) не устанавливается |
| 4 | nc -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.
Что закреплено (важно для собеседования)
- Отличать refuse (RST, мгновенно) от drop (молчание, таймаут) — busybox
nc -zих не различает, смотреть по времени ответа. - HTTPS = HTTP поверх TCP/443: «HTTPS висит» = не проходит TCP-handshake на 443, wget зависает на SYN.
- «Пинги есть, HTTP есть, только 443 мёртв» = фильтр по порту на промежуточном узле →
/ip firewall filter print. - Порт не «открывают» на клиенте — ищут, кто режет трафик к порту.
Замечание
При удалении правила использован remove numbers=0 — корректно. В реальной жизни правило сначала отключают (disable) на случай отката, но в тренировке допустимо сразу remove (бэкап конфигурации сделан заранее — базлайн из кейса-запуска лаборатории).