linux-labs

← Практика

Файрвол блокирует сервис

Сломай-почини · Среднее · 20 мин · 150 баллов

Файрвол блокирует сервис

На сервере поднят веб-сайт: служба слушает порт 80, локально curl http://localhost/ отвечает. Но снаружи сайт недоступен — входящие соединения на порт 80 режет файрвол: в правилах есть запрещающее правило.

Задача

Сделай так, чтобы:

  1. файрвол пропускал входящие TCP-соединения на порт 80;
  2. блокирующее правило было снято/исправлено именно для порта 80 — а не отключён весь файрвол целиком;
  3. остальная защита (политика по умолчанию, прочие правила) осталась на месте.

Подсказки по подходу

  • Текущие правила: sudo iptables -L INPUT -n --line-numbers (либо sudo nft list ruleset / sudo ufw status — смотри, что используется на машине).
  • Ищи правило с dpt:80 и действием DROP/REJECT.
  • Снимай точечно по номеру строки (iptables -D INPUT <N>) или добавляй разрешающее правило выше запрещающего.
  • Проверяй результат по кнопке «Проверить».

Всё нужное уже установлено. Интернет на машине отсутствует — и не понадобится.

Подсказки

Подсказка 1

Посмотри правила: sudo iptables -L INPUT -n --line-numbers. Найди строку, которая DROP/REJECT для tcp dpt:80.

Подсказка 2

Не отключай файрвол целиком — это «снести стену вместо двери». Нужно убрать или перекрыть именно блокирующее правило для порта 80.

Подсказка 3

Удали правило по номеру: sudo iptables -D INPUT <N> (номер из --line-numbers), либо вставь разрешающее выше: sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT. Проверь sudo iptables -L INPUT -n — блокировки порта 80 быть не должно.

Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.