Важное по 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 udp --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 -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