Привет. Есть VPS сервер на линуксе, второй раз за неделю кто-то ломает меня.
Первый раз запустили Multios.Coinminer.Miner, который грузил видимо процессор и на меня прилетела абуза. Я понял свою ошибку, потому что для тестовых пользователей сделал очень слабые пароли и меня скорее всего тупо сбрутили. Поправил.
Вчера прилетела друга абуза, будто бы с моего сервера атаковали другие машины данного хостинга.
Что было сделано после первой атаки?
- поменяны пароли на очень сложные
- удален сам вирус, который был обнаружен
- поставлен fail2ban на 5 попыток
- был запрещен доступ по ROOT через SSH - создал отдельного юзера с супер-привилегиями
- был запрещен доступ по ROOT через RDP - вхожу по другому юзеру с супер-привилегиями
- apt-get update
Что планирую сделать еще?
- Включить 2FA
- Поставить логирование, чтобы понимать кто и как заходит
- возможно, отключить доступ по SSH, если входят по нему или хотя бы сменить порт (вряд ли сильно поможет). Но закрывать полный доступ по SSH не хотелось бы, иногда мне проще зайти по нему, чем по RDP
Вопрос.
Если проблема в том, что кто-то входит все же по SSH - это проще(попробую закрыть доступ. но тут опять же вопрос как меня ломают? Брутфорс нереален)
Если бекдор какой-то есть на сервере - вопрос как его обнаружить? Я нашел пару статей - буду пробовать. но может кто на практике что еще посоветует мне?
1) Переустановите сервер;
2) Разрешите доступ к серверу по ssh только по ключу.
Как найти бекдор на сервере Линукс?
100 %-го варика нет. Можно конечно еще один точно такой сервер создать. Взять с него список файлов (вместе с его хешем) и сравнить со списком зараженного. Но оно того не стоит, лучше переустановите.
1) Думал, но нет пожалуй. Проделал огромную работу по разворачиванию и установке всего нужного, это крайний вариант.
2) Читал про это, но думал что для начала достаточно очень сложного пароля и ограничения по ROOT. Но за совет спасибо. Думаю так и сделаю.
Может знаете как можно сбрутить и имя пользователя и пароль (аля DGDJ7323jjgV338gfdG) ? Я не супер безопасник, но мне казалось либо это нереально. либо уйдет 100 лет.
Сергей Карбивничий, Упс) Честно? Не делал. Вот не зря сюда написал - теперь буду знать. Это мой первый сервер и первое развертывание, я даже не думал про это (
Может знаете как можно сбрутить и имя пользователя и пароль (аля DGDJ7323jjgV338gfdG) ? Я не супер безопасник, но мне казалось либо это нереально. либо уйдет 100 лет.
Скорее всего вы сначала установили простой пароль.
Сергей Карбивничий, на root - сложный
на других пользователей - простой
я верно понимаю, что скорее всего хацкеры сбрутили простой пароль и внедрили бекдор и теперь даже переустановка пароля меня не спасает, потому то есть какой-то другой способ зайти на сервер?
ты верно понимаешь... скомпрометированный сервер нуждается в установке с нуля, при этом apt-get update, fail2ban, и запреты для SSH (плюс вход по ключу) делать в первую очередь
mrmourax, весьма вероятно. Смотрите тогда правила iptables, либо у вас файрволл просто нараспашку, что само по себе вредно, либо там есть отдельное правило на открытый порт. И проверьте ещё cron под всеми пользователями, на случай если бэкдор из числа тех, кто сам стучится за указаниями. Для полноты картины поставьте iptables -P OUTPUT DROP чтобы блокировать исходящие соединения, потом будете открывать для нужного трафика, ну и логирование исходящих syn-пакетов тоже желательно врубить.
А что, кроме ssh на сереве еще и rdp делает?!
1) переопределить порт ssh
2) доступ по ключу
3) рута только через sudo
4) отключаем ненужные сервисы
5) всё в контейнеры, а доступ к ним через nginx или haproxy
6) фаерволл и закрываем исхолящие с сервера
Профит.
Спасибо!
RDP нужен для удаленного доступа некоторых людей. Но, пока никто ко мне не заходил, так как доступ я еще никому не давал. А на будущее да, я буду давать доступ через Microsoft Remote Desktop
А разве у SSH нельзя поменять стандартный порт, чтоб при попытке авторизации /злоумышленник/ упирался в стену непонимания чего от него хотят и думая, что дверка закрыта, уходил прочь? Перебирать порты ведь не будут. Не будут же?
mrmourax, можно попробовать настроить fail2ban на отражение syn-flood, но если перебор портов будет растянут по времени или размазан по нескольким хостам, не спасет. Разве что блокировать хост при подключении по порту, который явно не разрешен в правилах с первой же попытки на сколько-то часов, тогда есть вероятность, что подропанные пакеты будут восприняты подбирающим как отсутствие слушающего порта. Но если всерьез затеют просканировать, все равно не спасет, только отсрочит получение информации.
Горький опыт - тоже опыт. Сноси, так как сервер, можно сказать, потерян. Всю настройку ты в любом случае будешь делать через консоль, а значит сможешь все команды разбить на несколько .sh файлов. А это на порядки ускоряет все процессы по настройке.