В сегодняшней статье я расскажу как можно защитить PostgreSQL от атак перебора паролем или как его ещё называют – от Брутфорса (Brute Force).
После установке и настройке PostgreSQL Вы начинаете задумываться о том, каким способом защитить вашу базу данных.
Один из способов это установка 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 будет защищен от Брут Форса.
[endtxt]