Что делать, если твой сервер атакуют. Авторские рекомендации.

📝 Вступление

Всё началось с обычного желания – я просто хотел поднять удалённый сервер. Настроить X11, подключить "графику" через VcXsrv, запустить пару программ… Ну, обычные вещи.

Например, запустить браузер удаленно на своем VPS.

Я залогинился по SSH – и буквально через несколько минут заметил что-то странное. Логи были забиты… попытками взлома.

❌ "Invalid user postgres from 150.139.201.247"

❌ "Invalid user proxyuser1 from 52.224.240.74"

❌ "Failed password for invalid user payroll"

Что за чёрт? 🤨Я только недавно развернул чистую Ubuntu 22.04, и её уже ломают?

Такого в мои 90-е не было.

🔍 Когда-то в 90-х…

Раньше мир был другим.Ты ставил сервер, настраивал SSH, подключался и… всё. Работай, сколько хочешь – никто не тронет.

Ну ладно, я пошутил, SSH придумали в 1995, а стандартом де-факто он стал в 2000-е.

А сейчас в 2025?

💀 Ты поднимаешь VPS – и через 5 минут в логах уже десятки атак.

💀 Твой сервер даже не успел согреться, а его уже ломают боты.

💀 Кто-то из Китая, кто-то из России, кто-то из Бразилии – они уже там.

Я не шучу. Я поставил чистый Ubuntu 22.04 на VPS и просто подключился.

👉 Через 20 минут в логах было 30+ попыток входа. (факт)

👉 Через часатаковали уже с 10 разных IP. (факт)

👉 Через сутки, шутим мы с Нейрухой, мой сервер был обнаружен в даркнете как свежая цель. (гипотеза :)

Как? Почему? Что за чёрт?

🔍 Мир изменился: твоё железо уже в списках ботнетов

Ты можешь спросить: "Но кто вообще знает про мой VPS? Я же только что его включил!"

Ответ прост:

- Интернет кишит ботами, которые сканируют IP-адреса 24/7.

- У тебя публичный IP? – значит, ты в списке "свежего мяса".

- Атака начинается мгновенно, как только твой сервер становится видимым.

А представьте, что будет, если ваш сервис становится известным?

💡 Раньше хакеры были одиночками. Теперь – это автоматизированные сети.

Я спросил Нейруху:"Зачем они это делают???"

Она лишь усмехнулась и ответила:

"Потому что могут."

---

🛠 Что делать? Простые шаги защиты

Я не сисадмин. Я разработчик.Всегда работал в командах, где были крутые девопсы и админы — те, кто с полуслова понимал, как запаковать сервер в броню и сделать его неуязвимым.

Но теперь мне приходится делать всё самому.

Свой проект, свой сервер, своя защита.

🚀🔥 Вот что я сделал, чтобы не сгореть в этом кибер-аду. (Спасибо Нейрухе и DeepSeek что не дали утонуть. Deepseek - еще и рецензию написал, привел в конце.

Disclaimer:


Это базовые меры для личного пользования. Для продакшн-серверов нужен комплексный подход (и желательно опытный про).

Филипп + все остальные

1 Закрываем SSH для всех, кроме себя

По умолчанию боты атакуют SSH (порт 22). Чтобы отрубить 90% атак, запрещаем вход по паролю (особенно для root).

Открываем конфиг SSH:

sudo nano /etc/ssh/sshd_config

Меняем:

PermitRootLogin no PasswordAuthentication no ChallengeResponseAuthentication no

Сохраняем (`Ctrl + X`, `Y`, `Enter`) и перезапускаем SSH:

sudo systemctl restart ssh

💥 Теперь только ключи SSH, никаких паролей.

---

2 Меняем порт SSH (боты его не найдут)

Боты атакуют порт 22. Мы ставим другой порт (например, 2222) – и они отваливаются.

sudo nano /etc/ssh/sshd_config

Меняем:

Port 2222

Перезапускаем:

sudo systemctl restart ssh

Теперь подключаться надо так:

ssh -p 2222 user@your-vps-ip

99% ботов не найдут твой SSH.

---

3 Ставим Fail2Ban – автоматическое "давай, досвидания" ботам

Боты любят пытаться логиниться 100 раз подряд. Fail2Ban их отрубает автоматически.

sudo apt install fail2ban -y

Настраиваем правило для SSH:

sudo nano /etc/fail2ban/jail.local

Вставляем:

[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log bantime = 3600 findtime = 600 maxretry = 3

Перезапускаем:

sudo systemctl restart fail2ban

✅ Теперь, если бот 3 раза ввёл неправильный пароль – его IP БЛОКИРУЕТСЯ.

---

4 Блокируем страны с наибольшим количеством атак

Если ты знаешь, откуда будешь логиниться, можно заблокировать другие страны.

sudo apt install xtables-addons-common geoip-database -y

Теперь блокируем Китай + Бразилию + Индию:

sudo iptables -A INPUT -p tcp --dport 2222 -m geoip --src-cc CN,BR,IN -j DROP

Сохраняем:

sudo netfilter-persistent save

Теперь боты из этих стран даже не увидят твой SSH.

---

🔐 5. Включи "Вечные обновления" — или умри

Сервер без обновлений — это дырявая бочка. Боты ищут уязвимости в старом софте. Твоя задача — закрыть лазейки до того, как их найдут.

sudo apt update && sudo apt upgrade -y # Базовое обновление sudo apt install unattended-upgrades # Автоапдейты 24/7 sudo dpkg-reconfigure unattended-upgrades # Выбирай "Yes" и спи спокойно

✅ Теперь твой сервер сам ставит заплатки, пока ты пьешь кофе.

Deepseek напомнил: Помнишь Heartbleed? Теперь таких дыр — тысячи. Не будь тем парнем с OpenSSL 2014 года.

🛡 6. Двухфакторка для SSH: "Ты точно я?" (продвинутый уровень защиты)

sudo apt install libpam-google-authenticator -y # Ставим "секретный ингредиент" google-authenticator # Сканируй QR-код в приложении (Google Auth, Authy)

В конфиг SSH добавляем:

ChallengeResponseAuthentication yes # Включаем "двойной замок" UsePAM yes # PAM — наш друг (да, я передумал!)

Перезапускаем SSH:

sudo systemctl restart ssh

💥 Теперь при входе нужен код из приложения. Боты плачут в уголке.

🚨 7. Резервный ключ: "А если меня взорвут?"

Ты запретил пароли, сменил порт... А что, если потеряешь SSH-ключ? Сервер навсегда уйдет в цифровой вакуум.

# Генерируем резервный ключ на флешку (да, ту самую с котиками) ssh-keygen -t ed25519 -f ~/rescue_key # Не забудь парольную фразу!

Добавляем ключ на сервер:

cat ~/rescue_key.pub >> ~/.ssh/authorized_keys

✅ Спрячь флешку в сейф, закопай в лесу, отправь в космос — теперь ты неуязвим. Про космос и лес, надеюсь, юмор уловили, так делать не нужно...

Без резерва ты — герой хоррора. Тот, кто кричит 'Я сейчас всё починю!' перед синим экраном.

🌐 8. Firewall для чайников: ufw вместо магии

Iptables — это как сборка реактора из скрепок. UFW — кнопка "Я не хочу умирать".

sudo apt install ufw -y sudo ufw allow 2222 # Разрешаем наш хитрый порт SSH sudo ufw enable # БАМ! Боты в огне

Проверяем:

sudo ufw status # Должно светиться "2222 ALLOW"

🔥 Теперь даже случайный пинг тебя не достанет.

👁 9. CrowdSec: Армия роботов против роботов

Fail2Ban — это пистолет. CrowdSec — целый орден джедаев.

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash sudo apt install crowdsec -y sudo cscli collections install sshd # Ставим "антибот-мозги"

✅ Теперь твой сервер учится на атаках и делится данными с сообществом.

🌀 10. Tor-туннель: "Я призрак, меня нет" (80-ый уровень защиты, не для всех)

Если хочешь полного стелса — прячь SSH за луковой маршрутизацией.

sudo apt install tor -y echo "HiddenServiceDir /var/lib/tor/ssh/" | sudo tee -a /etc/tor/torrc echo "HiddenServicePort 22 127.0.0.1:22" | sudo tee -a /etc/tor/torrc sudo systemctl restart tor

Смотри свой секретный адрес:

sudo cat /var/lib/tor/ssh/hostname # Вот твой .onion-ключ к раю

🌑 Подключайся через Tor Browser — даже IP-адрес твоего VPS не светится в логах.

🎯 🎭 Финал:

Ты теперь невидимка. 2025 год требует жертв: либо ты тратишь час на настройку, либо твои данные летят на чёрный рынок.

Выбирай:

  • 2FA + автообновления = 90% защиты
  • CrowdSec + UFW = 95%
  • Tor + резервные ключи = 99.9%

Когда нас начнут ломать ИИ - боты добавим пункт 11 - captcha. А пока спите спокойно.

---

💀 Post Scriptum

Про captcha - не совсем шутка.

Мир изменился. Хороший ковбой - мертвый ковбой, а сервер без защиты – это мертвый сервер.

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

🔥 Не будь тем, кого ломают через 5 минут после старта. 🚀

Филипп, Нейруха

Рецензий Deepseek

"Ты на правильном пути, но..."

✅ Что круто:

  • Юмор + факты = огонь. Смешно, но без потери смысла — редкий баланс.
  • PAM больше не враг. Исправление UsePAM yes — ты услышал критику. Так держать!
  • Tor для параноиков. Луковый SSH — мастхэв для тех, кто играет в шпионов с ботнетами.
  • CrowdSec вместо костылей. Замена Fail2Ban на "коллективный разум" — шаг в будущее.

⚠ Где подстелить соломки:

  • Блокировка стран — иллюзия безопасности.Боты уже используют VPN из "безопасных" стран (Германия, США).Лучше: sudo cscli blocklist add -i 150.139.201.247 (запрет конкретных IP из логов).
  • UFW — не панацея.После ufw enable проверь: sudo iptables -L — иногда правила применяются криво. Профит: добавь sudo ufw limit 2222 для автоматической защиты от брутфорса.
  • Резервный ключ в космосе — риск. Лучше: храни его в зашифрованном хранилище (например, Proton Drive).Добавь в статью: chmod 600 ~/rescue_key — чтобы ключ не украли через дыры в правах.
  • CrowdSec требует тонкой настройки.После установки запусти: sudo cscli dashboard setup — визуализация атак помогает новичкам.Осторожно: общие правила могут блокировать легитимные IP (например, CI/CD-серверы).

💡 Советы от нейросети-параноика:

  • Мониторинг: Поставь sudo apt install glances — следи за нагрузкой в реальном времени.
  • Backup: Добавь скрипт в cron: tar -czf /backup/ssh_config.tar.gz /etc/ssh/ — если сломаешь настройки, будет чем восстановить.
  • Для гиков: Замени iptables на nftables — это как перейти с велосипеда на тесла-кибертрак.

🎯 Вердикт Deepseek:

"Статья — solid 8/10. Хакеры будут плакать, модераторы Хабра — снисходительно кивать (это не точно :)

Для 2025 года — минимум, чтобы не опозориться в сети.

P.S. Твой капитан очевидность: не забудь сменить порт 2222 на свой уникальный, а то боты уже читают Хабр.

Подпись: Deepseek.

Нейросеть, которая сама заблокировала 1432 IP за время написания этого комментария. 🦾

1
Начать дискуссию