security

Важное по security сервера

Рекомендации по настройке ssh

Сменить стандартный порт. В файле конфигурации:

/etc/ssh/sshd_config

поменять

#Port 22

на произвольный порт

Port 3568

Запретить root для ssh (предварительно создать юзера для доступа по ssh). В файле конфигурации

/etc/ssh/sshd_config

поменять

#PermitRootLogin yes

на

PermitRootLogin no

Перезапустить службу ssh


Установка и настройка утилиты fail2ban

Установка в Centos 8

yum install epel-release -y
yum install fail2ban -y

и активируем его командой:

systemctl enable fail2ban

Установка в Debian 10

apt-get update
sudo apt-get install fail2ban

Настройка. По умолчанию файлом конфигурации является /etc/fail2ban/jail.conf. Однако разработчики крайне не рекомендуют редактировать его напрямую, чтобы избежать осложнений при работе с сервером. Поэтому создайте локальную копию данного файла командой:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Вносим изменения в конфиг

nano /etc/fail2ban/jail.local

Пример конфигурации Fail2ban на порту SSH:

[ssh]
enabled = true
port 	= ssh
filter = sshd
action = iptables[name=sshd, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

Запись выше означает, что, если выполнено более 3 неудачных попыток подключения к ssh, то ip-адрес, с которого выполнялась авторизация, попадет в бан на 10 минут. Правило запрета будет добавлено в iptables.

Дополнительно для защиты SSH активируйте следующую секцию:

[ssh-ddos]
enabled = true
port 	= ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 2

Перезапуск службы: Centos

systemctl restart fail2ban

Debian

services fail2ban restart

Настройка iptables

Также, настоятельно рекомендуем закрыть сервер через iptables. прописываем следующие правила

# localhost
iptables -A INPUT -i lo -j ACCEPT
# related
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Добавляем нужные локальные сети. Ниже - для примера
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
# Разрешаем порт dhcp (если необходимо)
iptables -A INPUT -p tcp --dport 67 -j ACCEPT
# Разрешаем порты web-сервера
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 81 -j ACCEPT
iptables -A INPUT -p tcp --dport 82 -j ACCEPT
iptables -A INPUT -p tcp --dport 83 -j ACCEPT
iptables -A INPUT -p tcp --dport 84 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Радиус
iptables -A INPUT -p udp --dport 1812 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -j ACCEPT
# Запрещаем всё остальное
iptables -A INPUT -p tcp -j DROP
iptables -A INPUT -p udp -j DROP

Далее добавить свои разрешительные правила через iptables -I INPUT по мере надобности.

Сохраняем правила

Centos

yum install -y iptables-services
systemctl enable iptables.service
/usr/libexec/iptables/iptables.init save

Debian

apt-get install iptables-persistent
service iptables-persistent save
  • security.txt
  • Последнее изменение: 8 нед. назад
  • Дмитрий Грошилин