Linux Labs

Безопасность сервера / Ступень 1 из 10

Аудит слушающих служб

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 7 · на машине · 6 мин

Привязка: служба слушает только себя

Если клиенты службы живут на той же машине, надёжнее всего закрыть её привязкой: служба сама слушает только 127.0.0.1.

Приложение магазина работает на этом же сервере и ходит в базу по localhost. Значит, базе хватит петлевого адреса. Адрес привязки PostgreSQL задаёт параметр listen_addresses (в Вики). По умолчанию он равен 'localhost' — в postgresql.conf эта строка закомментирована. Найти, где его переопределили, поможет поиск по каталогу настроек:

bash
sudo grep -rn listen_addresses /etc/postgresql/16/main/

Файлы из conf.d/ читаются после postgresql.conf, и последнее значение побеждает. Рядом с параметром в postgresql.conf стоит пометка (change requires restart): адрес меняется только перезапуском. После reload база перечитает файл, но сокеты останутся на 0.0.0.0.

Чужую машину база уже не пускала: pg_hba.conf отказал ей во входе. Но подключение она приняла — значит, к коду, который проверяет пароль, достучаться можно. Привязка убирает и это.

Бывает, что порт открывает не сама программа. У юнита .socket порт держит systemd, и в ss у такого порта стоит процесс systemd; адрес задаёт строка ListenStream= сокета (в Вики).

Упражнение · сделать

Закрой базу привязкой

Сделай так, чтобы PostgreSQL принимал подключения только с самого сервера, а приложение магазина на сервере по-прежнему до него доходило. Проверь с чужой машины: sudo ip netns exec lab-outside nc -zv -w 2 192.0.2.1 5432.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Закрыть базу для чужой машины её собственной настройкой ещё не выполнена
  • Сохранить доступ к базе на самом сервере ещё не выполнена

Цели шага

0 из 2
  • Закрыть базу для чужой машины её собственной настройкой — ещё не выполнена
  • Сохранить доступ к базе на самом сервере — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Закрыть базу для чужой машины её собственной настройкой — ещё не выполнена
  • Сохранить доступ к базе на самом сервере — ещё не выполнена
Загрузка…