Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
10 основных шагов для защиты Linux-сервера: аутентификация по SSH-ключу, брандмауэр, Fail2ban, автоматические обновления, защита от DDoS и многое другое. Руководство с командами и пояснениями.
Когда вы настраиваете новый Linux-сервер, конфигурация по умолчанию не оптимизирована для безопасности. Каждый сервер, подключённый к интернету, становится целью автоматизированных инструментов сканирования в течение нескольких минут. Это руководство объясняет 10 основных шагов, которые необходимо реализовать для защиты вашего сервера, с командами.
Будьте осторожны, чтобы не потерять доступ к серверу при применении этих шагов. Особенно при изменении конфигурации SSH держите текущий сеанс открытым и тестируйте в новом окне терминала.
Вход по SSH с паролем уязвим для атак методом перебора. Использование пары SSH-ключей намного безопаснее.
# Создать ключ Ed25519
ssh-keygen -t ed25519 -C "server-name@rexe"
# Или если хотите использовать RSA
ssh-keygen -t rsa -b 4096 -C "server-name@rexe"
# Запустить с локальной машины
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip
# Редактировать /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
# Изменить эти строки:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# Перезапустить службу SSH
sudo systemctl restart sshd
# Установить UFW
sudo apt install ufw -y
# Установить политики по умолчанию
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Разрешить SSH
sudo ufw allow 22/tcp
# Порты веб-сервера
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Включить UFW
sudo ufw enable
# Проверить статус
sudo ufw status verbose
# Установить Fail2ban
sudo apt install fail2ban -y
# Создать файл конфигурации
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 86400
# Запустить Fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Проверить статус
sudo fail2ban-client status sshd
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
# Список запущенных служб
sudo systemctl list-units --type=service --state=running
# Проверить открытые порты
sudo ss -tlnp
# Остановить и отключить ненужные службы
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth
sudo apt install libpam-pwquality -y
minlen = 12
ucredit = -1
lcredit = -1
dcredit = -1
ocredit = -1
sudo apt install libpam-google-authenticator -y
google-authenticator
# Локальное резервное копирование с rsync
rsync -avz --delete /var/www/ /backup/www/
# Cron-задание для автоматического резервного копирования
0 2 * * * rsync -avz /var/www/ /backup/www/
# Резервное копирование базы данных
mysqldump -u root -p --all-databases | gzip > /backup/db_$(date +%Y%m%d).sql.gz
Применяйте правило резервного копирования 3-2-1: 3 копии, 2 разных носителя, 1 другое местоположение.
tail -f /var/log/auth.log
tail -f /var/log/syslog
grep "Failed password" /var/log/auth.log | tail -20
# Защита от SYN-флуда
sudo iptables -A INPUT -p tcp --syn -m limit \
--limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
# Ограничение количества соединений (на IP)
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 50 -j REJECT
Программная защита от DDoS может быть недостаточной против крупномасштабных атак. Инфраструктура Path.net от REXE обеспечивает фильтрацию DDoS на уровне сети, очищая трафик атак до того, как он достигнет вашего сервера.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
server {
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
}
При первом подключении выполните следующие шаги: 1) Обновите систему (apt update && apt upgrade), 2) Создайте нового пользователя sudo, 3) Настройте аутентификацию по SSH-ключу, 4) Отключите вход root по SSH, 5) Настройте брандмауэр UFW, 6) Установите Fail2ban.
Да, Fail2ban и UFW отлично работают вместе. Fail2ban обнаруживает неудачные попытки входа и автоматически блокирует IP-адреса злоумышленников через UFW.
Частично. Смена порта SSH блокирует большинство автоматизированных инструментов сканирования. Однако это считается «безопасностью через неизвестность» и не заменяет реальных мер безопасности. Аутентификация по SSH-ключу и Fail2ban намного эффективнее.
Признаки подозрительной активности: множество неудачных попыток входа в /var/log/auth.log, неожиданно высокое использование CPU/RAM, неизвестные сетевые соединения, неизвестные cron-задания, изменённые системные файлы.
Сначала определите тип и источник атаки. Если атака продолжается, немедленно уведомите команду поддержки REXE. Защита от DDoS REXE через Path.net фильтрует атаки на уровне сети.
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
Защитите сервер от SSH брутфорс-атак с помощью Fail2Ban. Установка, настройка jail.local, джейлы для Nginx/Apache, белый список IP, мониторинг блокировок и email-уведомления.
Настройте VPN-сервер WireGuard: генерация ключей, конфигурация сервера и клиента, IP-пересылка, правила брандмауэра и настройка клиентов Windows/Linux/Android.