Пример брутфорса:
Dec 8 14:49:04 web0 sshd[19892]: Address 125.91.126.92 maps to serv1.example.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 8 14:49:04 web0 sshd[19892]: Invalid user jenkins from 185.68.93.138 port 51156
Dec 8 14:49:04 web0 sshd[19892]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=125.91.126.92
Dec 8 14:49:07 web0 sshd[19892]: Failed password for invalid user jenkins from 125.91.126.92 port 51156 ssh2
Dec 8 14:49:07 web0 sshd[19892]: Received disconnect from 125.91.126.92 port 51156:11: Bye Bye [preauth]
Dec 8 14:49:07 web0 sshd[19892]: Disconnected from 185.68.93.138 port 51156 [preauth]
Dec 8 14:57:33 web0 sshd[21080]: Address 158.101.12.235 maps to serv2.example.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec 8 14:57:33 web0 sshd[21080]: Invalid user admin1 from 158.101.12.235 port 48622
Dec 8 14:57:33 web0 sshd[21080]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=158.101.12.235
В данном случае производится сканирование портов в надежде найти установленное незакрытое соединение.
Как защититься
1) отключить незащищенное соединение по протоколу ftp, использовать только sftp;
2) закрыть VNC соединение шифрованием;
3) отключить доступ к ssh по паролю. Разрешить подключение только по ключу;
4) подключение по ssh следует разрешить только с определенного ip;
5) cменить sshd, vpn порты по умолчанию, на порты из диапазона 50000;
6) установить и настроить fail2ban.
1) настраиваем iptables межсетевого экрана Netfilter:
Разбор утилиты iptables межсетевого экрана Netfilter.
Просмотр правил: https://losst.ru/prosmotr-pravil-iptables
Принцип работы: https://www.k-max.name/linux/netfilter-iptables-v-linux/
2) Настраиваем fail2ban для блокировки по IP: https://putty.org.ru/articles/fail2ban-ssh.html ;
3) настраиваем firewall с помощью UFW -> инструкция ;
4) прячем адреса за Cloudflare: https://blog.cishost.ru/2022/02/10/kak-spryatat-sayt-za-cloudflare.html ;
5) некоторые датацентры сразу осуществляют фильтрацию на своей стороне: https://blog.cishost.ru/2016/01/28/antiddos.html.
Стоит отметить, что организация DDoS-атак на ресурсы являются дорогостоящими и обычно не продолжительны по времени.
Настройки базовой защиты на сервере VDS в дистрибутивах Ubuntu и Debian
1) Устанавливаем удобный брандмауэр UFW.
sudo apt install ufw
Если происходило переподключение, то система запросит пароль нового администратора.
2) Устанавливаем защиту от брутфорса паролей:
apt install -y fail2ban
3) Запрещаем все входящие подключения.
sudo ufw default deny incoming
4) Делаем исключение для удалённого управления.
sudo ufw allow ssh
5) Разрешаем все исходящие подключения.
sudo ufw default allow outgoing
6) Активируем брандмауэр.
sudo ufw enable
7) На запрос подтверждения вводим “y”.
8) Проверяем правильность настройки.
sudo ufw status verbose
О настройке firewall c помощью UFW читаем в -> источнике
9) Дополнительные способы защиты серверов от DDoS - тут
Документация
Установка: https://linux.die.net/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/installing-anti-spam.html
Настройки конфигурации/etc/clamav/clamd.conf: https://linux.die.net/man/5/clamd.conf
Параметры консольного запуска: https://linux.die.net/man/5/clamd.conf
Работа с антивирусным сканером
Установка на сервер:
~# sudo apt-get install clamav
После установки нужно обновить вирусные базы ClamAV:
~# freshclam
Cканирование содержимого корневой директории /:
~# clamscan -r /
Чтобы зараженные файлы удалялись автоматически, добавьте параметр --remove, значение --move=/<директория>
~# clamscan /etc --remove
~# clamscan /etc --move=/help
Для исключения файла из результатов сканирования по ложному срабатыванию:
- открываем конфигурационный файл clamd.conf
nano /etc/clamav/clamd.conf
- добавляем строку
C помощью движка ClamAV может выполняться более быстрое сканирование антивирусом Linux Malware Detect (maldet).
Скачать, распаковать и установить можно
~# wget https://www.rfxn.com/downloads/maldetect-current.tar.gz - скачиваем с сайта разработчика ~# tar -xvzf maldetect-current.tar.gz - распаковываем
~# ls -l | grep maldetect - узнаем директорию и актуальной версию maldetect
~# cd maldetect-x.x.x - переходми в эту директорию
~# ./install.sh - утанавливаем
Для сканирование файлов выполняем команду
maldet -a
Для помещения в карантин
maldet -q
Просмотр файлов, помещенных в карантин
ls /usr/local/maldetect/quarantine
Пример работы maldet
root@g7 ~ # maldet -a /var/www/user42766/data/www/ Linux Malware Detect v1.4.2 (C) 2002-2013, R-fx Networks <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. > (C) 2013, Ryan MacDonald <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. > inotifywait (C) 2007, Rohan McGovern <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. > This program may be freely redistributed under the terms of the GNU GPL v2 maldet(30139): {scan} signatures loaded: 13716 (11815 MD5 / 1901 HEX) maldet(30139): {scan} building file list for /var/www/user42766/data/www/, this might take awhile... maldet(30139): {scan} file list completed, found 109885 files... maldet(30139): {scan} found ClamAV clamscan binary, using as scanner engine... maldet(30139): {scan} scan of /var/www/userXXXX/data/www/ (109885 files) in progress... maldet(30139): {scan} processing scan results for hits: 40 hits 0 cleaned maldet(30139): {scan} scan completed on /var/www/userXXXX/data/www/: files 109885, malware hits 40, cleaned hits 0 maldet(30139): {scan} scan report saved, to view run: maldet --report 021015-1108.30139 maldet(30139): {scan} quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 021015-1108.30139 maldet(30139): {alert} sent scan report toАдрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. maldet -q 021015-1108.30139 для помещения в карантин
CISHost - просто хороший хостинг!