понедельник, 7 января 2013 г.

17.7. Предотвращение спуфинга сервера

Всё то время, что сервер запущен, никто не может занять его место в качестве сервера-злоумышленника БД. Однако, пока сервер выключен, локальный пользователь может занять его место, запустив свой сервер. Такой сервер может читать пароли пользователей и их запросы, но не может возвращать данные, так как каталог PGDATA недоступен ему из-за разрешений ФС. Спуфинг возможен, так как любой пользователь может запустить свой сервер БД; клиент не может отличить настоящий сервер от злоумышленника, если он не сконфигурирован должным образом.
Самый простой способ предотвратить спуфинг для локальных подключений - использовать каталог Unix domain socket (unix_socket_directory), который имеет права на запись только для доверенного локального пользователя. Это не позволит злоумышленнику создать свой собственный сокет в этой директории. Если Вы обеспокоены тем, что некоторые приложения могут всё ещё ссылаться на /tmp в поисках файла сокета и потому быть уязвимы для спуфинга, создайте при запуске ОС символическую ссылку /tmp/.s.PGSQL.5432, которая будет вести к файлу сокета в другом месте. Кроме того, возможно, Вам потребуется изменить скрипт отчистки /tmp, чтобы он не удалял эту ссылку.
Для того, чтобы предотвратить спуфинг через TCP соединения, лучше всего использовать SSL сертификаты и убедиться, что клиент проверяет сертификат сервера. Для этого сервер должен быть настроен на приём только hostssl соединений (раздел 19.1) и иметь SSL файлы server.key (ключ) и server.crt (сертификат) (раздел 17.9). TCP клиенты должны подключаться при помощи sslmode=verify-ca или verify-full и иметь установленные соответствующие корневые сертификаты (раздел 31.1)

Комментариев нет:

Отправить комментарий