Защита PostgreSQL с помощью Fail2ban

После установке и настройке PostgreSQL Вы начинаете задумываться о том, каким способом защитить вашу базу данных. В сегодняшней статье я расскажу как можно защитить PostgreSQL от атак перебора паролем или как его ещё называют — от Брутфорса (Brute Force).

Один из способов это установка fail2ban, который на Ubuntu доступен в официальном репозитории. Но из коробки он работает только для SSH.

Давайте же разберемся, как включить его дня защиты postgresql.

Установка Fail2Ban на Ubuntu

Для установки Fail2Ban на Сервер Ubuntu подклюяаемся к последнему с помощью SSH или PuTTy и набираем следующую команду:

sudo apt install fail2ban

Все Fail2Ban установлен и готов к работе, но отслеживает он только протокол SSH. Для включения других правил его следует настроить.

Настройка fail2ban для защиты PostgreSQL

Откроем файл jail.local:

sudo nano /etc/fail2ban/jail.local

Добавим следующее содержимое

[postgresql-iptables]

 enabled = true
 filter = postgresql-iptables
 action = iptables[name=Postgresql, port=5432, protocol=tcp]
 sendmail-whois[name=Postgresql, dest=root@localhost]
 logpath = /var/log/syslog
 maxretry = 3

Далее создаем и открываем postrgesql-iptables.conf

sudo nano /etc/fail2ban/filter.d/postgresql-iptables.conf

И добавим следующее:

#Fail2Ban configuration file
#
  [Definition]
#Option: failregex
#Notes.: regex to match the password failures messages in the logfile. #The host must be matched by a group named "host". The tag "" can
#be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
#Values: TEXT
#
#failregex = ^%(__prefix_line)sFATAL: password authentication failed for user$
 failregex = ..FATAL: password authentication failed for user.*
#Option: ignoreregex
#Notes.: regex to ignore. If this regex matches, the line is ignored.
#Values: TEXT
#
 ignoreregex =

Также внесем изменения в конфигурационный файл PostgreSQL.

Открываем файл на редактирования

 sudo nano /etc/postgresql/10/main/postgresql.conf

Вносим изменения

log_line_prefix = '%m [%p] %q%u@%d %h ' 

Делаем рестарт fail2ban

sudo /etc/init.d/fail2ban restart 

После этого Ваш PostgreSQL будет защищен от Брут Форса.

Если есть вопросы, то пишем в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments