Как я могу определить, не проникли ли в мою коробку Linux?

11

Я недавно прочитал статью об анализе злонамеренных попыток входа в SSH. Это заставило меня задуматься, не являются ли необычными комбинации имен пользователей SSH и паролей на моем компьютере Debian? Был ли я целью атаки словаря грубой силы? Давайте посмотрим на /var/log/auth.log.0 :

Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190

Так что это не выглядит хорошо. Теперь, когда я знаю, что на меня напала атака и что некоторые из моих комбинаций имени пользователя и пароля слабые, я хотел бы знать, как я могу ...

  • ... определить, не проникли ли в мой ящик с Linux?
  • ... отменить ущерб, оставленный преступниками?
  • ... предотвратить это в будущем?

ОБНОВИТЬ

Какой-нибудь совет относительно отмены любого ущерба, оставленного преступниками?

Джейк МакГроу
источник
этот журнал не предполагает, что вы были скомпрометированы. у вас есть дополнительная информация помимо того, что вас беспокоит?
Возможный дубликат Как мне работать с скомпрометированным сервером?
Деннис Нольте

Ответы:

15

Многие люди, кажется, предлагают DenyHosts, но я видел большой успех с Fail2Ban на моих системах. Он отслеживает (настраиваемое) количество сбоев, а затем выполняет действие - на моих серверах это действие заключается в использовании iptables для отбрасывания всего трафика с хоста. После 10 неудачных попыток входа в систему их забанят, и на этом все.

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

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

Дэн Удей
источник
1
Я также использую logcheck и fail2ban. Очень хорошая комбинация.
Я второе использование fail2ban.
Malfist
Я также переключился на fail2ban от denyhosts, потому что fail2ban контролирует больше сервисов (mail, web, ftp, ...) и более настраиваемый
Jure1873
10

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

Я использую DenyHosts для отслеживания моих журналов на предмет подозрительного трафика SSH, и я настроил его на автоматический брандмауэр от хостов в определенный момент.

Обратите внимание, что существует множество других способов мониторинга вашей машины, чтобы увидеть, если она скомпрометирована, включая шаблоны загрузки, активность входа в систему, периодическое отслеживание трафика, мониторинг запущенных процессов и открытых портов, а также обеспечение целостности файлов с помощью такого инструмента, как tripwire.

Если вы собираетесь это сделать, то мониторинг загрузки системы является очень эффективным способом обнаружения компрометации, поскольку большинство компьютеров, которые скомпрометированы, используются для таких вещей, как рассылка огромного количества спама или иное получение большого количества трафика. Возможно, это бесполезно, если вы - высокоценная цель, и люди могут пытаться специально взломать вас по причинам, отличным от превращения вашего хозяина в зомби, но, тем не менее, ценным. Плюс мониторинг нагрузки необходим для профилирования и выяснения, когда вам нужно инвестировать в большее количество оборудования или более качественное программное обеспечение.

Вы также должны сделать всесторонний анализ журнала, ища неожиданные вещи в auth.log и других. Анализ файла журнала - это конкурентный рынок, и проблема еще не решена, но есть бесплатные инструменты, такие как logwatch, которые можно настроить для ежедневной отправки вам сводок.

Безопасность через слои!

Даниэль Папасян
источник
1
Конечно, злоумышленник мог изменить журналы, чтобы удалить доказательства их вторжения, поэтому отсутствие доказательств в журналах не обязательно означает, что все в порядке.
Это правда. Отсутствие доказательств в моей книге, по сути, никогда не свидетельствует о компромиссе. Вход на удаленный сервер может повысить надежность журналов. Для этого я использую туннели syslog-ng и ssh.
Я также видел нелепое количество попыток взлома моего сервера ... Я установил DenyHosts, и он уже добавил пару IP-адресов уже через 10 минут. Благодарность!
Аарон Браун
4

Забудьте Tripwire, это довольно дорого. Вместо этого используйте AIDE. Он бесплатный, простой в настройке (хотя требуется некоторое время, чтобы решить, какие временные каталоги следует исключить, и каким-либо другим образом настроить).

вы запускаете его, он создает базу данных всех файлов. Запустите его снова, и он скажет вам, какие файлы изменились.

Еще одна вещь, которую нужно сделать, это установить CSF, который имеет блокиратор типа denyhost, так как люди не могут повторно войти в систему, он добавит их в ваши правила брандмауэра. Вы также можете потребовать, чтобы у SSH-логинов был открытый ключ, а дети сценариев могут делать столько логинов, сколько захотят.

gbjbaanb
источник
Существует открытая (и бесплатная) версия Tripwire. См. Tripwire.org
Дэн Андреатта
4
"* ... determine if my Linux box has been infiltrated?"
  • искать признаки странных процессов. Я обычно использую инструменты, которые поставляются с chkrootkit ( http://www.chkrootkit.org )
  • Выполните сканирование портов с помощью nmap с другого компьютера. Если ваш ящик был взломан, скорее всего, атакер установил бэкдор

"* ... отменить любой ущерб, оставленный преступниками?"

забудьте об этом, если произошла атака, лучший совет - переустановить ее с нуля (убедитесь, что вы закрыли все дыры в новой установке). Очень легко не заметить бэкдор или скрытый процесс, лучше переустановить его.

"* ... предотвратить это в будущем?"

  • обновления безопасности

  • жесткий брандмауэр

  • надежные пароли

  • отключить ненужные услуги


источник
3

взгляните на такие инструменты, как logcheck , portsentry и tripwire . это очень распространено для случайных попыток словаря SSH, так что меня это не слишком беспокоит. Возможно, вы захотите изменить порт для случайного запутывания, но время от времени вы все равно будете видеть случайные попытки, это жизнь с машиной в Интернете.


источник
3

Одна вещь, которую я использую на своих серверах для предотвращения этих атак, - это DenyHosts . DenyHosts остановит злоумышленника от попытки входа в систему. После его установки в моих лог-файлах было гораздо меньше записей о попытках входа.

Craig
источник
3

Хорошей практикой является использование пар открытых / закрытых ключей в качестве дополнительной аутентификации; Таким образом, пользователь не может войти через SSH без правильного ключа; который было бы довольно невозможно угадать для грубой силы. Хорошую статью об этом можно найти здесь .

Это одно с парольной фразой было бы довольно солидно для аутентификации SSH; Но есть и другие уязвимости! Следите за всеми приложениями, которые используют открытый порт; Если они содержат ошибку, эксплуататоры могут перегнать вашу систему. Хорошим примером является спам-бот, который установлен на нашем сервере из-за ошибки в программном обеспечении веб-статистики, которое мы в настоящее время используем.


источник
2

Fail2ban - это журнал доступа в реальном времени. Он может быть настроен на блокировку любого IP-адреса с несколькими неудачными попытками входа в систему. Это позволяет избежать атак по словарю без необходимости перемещения порта ssh. chkrootkit и rootkithunter - хорошие утилиты для проверки на проникновение. Если вторжение было успешным, лучше всего скопировать данные (и только данные, а не исполняемые файлы), стереть и переустановить, потому что действительно трудно быть на 100% уверенным, что система чиста.


источник
2

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

Но если вы знаете, что ваши пароли слабые, то укрепите их! Мне лично нравится pwgen (который упакован Debian). При каждом запуске он генерирует большое количество надежных, но относительно произносимых паролей-кандидатов, которые (для меня, по крайней мере) довольно легко запомнить, такие как yodieCh1, Tai2daci или Chohcah9.

Однако, если есть другие доказательства того, что ваша система была взломана ... Ядерная бомба с орбиты. Это единственный способ быть уверенным.

Неисполняемые данные, вероятно, пригодны для восстановления, но все с исполняемым содержимым (это может включать в себя такие вещи, как документы MS Office и некоторые файлы конфигурации) может быть удалено, если вы не хотите и не можете вручную проверить его, чтобы убедиться, что он не ' Он оказался враждебным или согласился с возможностью того, что он может быть враждебным и либо повредить вашу систему, либо предоставить возможность для повторного компромисса в будущем, если вы сохраните его.

Дейв Шерохман
источник
2

Одна небольшая дополнительная защита, которая мне нравится, - ограничение скорости входящих ssh-соединений, чтобы замедлить любые атаки по словарю или подобные. Не ожидайте, что это защитит вас всех, но используйте это в дополнение к предложениям в других ответах, включая отключение аутентификации по паролю.

Использование iptables:

$ iptables        -A INPUT      -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -j DROP
sherbang
источник
2

В этой ветке есть несколько плохих советов, таких как:

  • использование нестандартного порта для ssh (неправильно!)
  • использование какого-либо стороннего инструмента безопасности (добавление ненужной зависимости / сложности)
  • настройка брандмауэра для блокировки или внесения в белый список (головная боль при обслуживании)

Просто настройте ваш /etc/ssh/sshd_configвместо этого для повышения безопасности:

  • PermitRootLogin no
  • Настройте AllowUsers только для пользователей в системе, которые имеют учетные записи ssh
  • Попробуйте использовать только физические ключи с «PasswordAuthentication no»

Если вы коробка была проникла. Восстановите коробку.

Хендри
источник
(-1) Иногда необходимо настроить правила на брандмауэре или использовать систему предотвращения вторжений. Называть это плохим советом без какого-либо дополнительного обсуждения того, почему это не очень хорошая идея, не очень полезно.
Зоредаче
1

Будет происходить все время с включенным ssh. Переместите его в высокий порт.

Существует программа под названием «Tripwire», которая отлично подходит для обнаружения вторжений, но довольно сложна в установке. Если ничего другого, вы должны прочитать их документы, чтобы вы поняли проблемы.

Билл К
источник
1

Вам необходимо установить систему обнаружения вторжений, прежде чем подключить машину к Интернету.

И это хорошая идея для IP-соединений SSH из белого списка, просто чтобы быть уверенным, что весь мир не может даже попробовать подобные вещи.

Эрик З Борода
источник
Я также хотел бы добавить пользователей из белого списка, которым разрешено входить через SSH, а также отключить аутентификацию на основе пароля, если это возможно.
1

Как я могу определить, проникла ли моя коробка Linux?

Загрузитесь с носителя только для чтения (livecd) и сравните файлы с резервной копией или исходным носителем.

Просто посмотрите вокруг на странное поведение. Конечно, это проще всего, если вы потратите время до взлома, чтобы получить хорошее представление о том, что является «нормальным».

Размещенные вами ошибки не указывают на компромисс. Просто кто-то пытается.

Как я могу исправить ущерб, нанесенный преступникам?

Переустановите и восстановите из резервной копии, прежде чем система была взломана.

Видеть:

Как я могу предотвратить это в будущем?

Видеть:

Zoredache
источник
0

Psad в сочетании с Shorewall - это хороший способ дополнить ваши правила iptables.

Я также использую Fail2ban, чтобы отслеживать мои логины SSH

Sharjeel
источник
0

используйте rkhunter или chkrootkit или оба; отсканируйте ваш ящик снаружи, чтобы увидеть, какие порты открыты

в любом случае, если все, что у вас есть, является недопустимым пользователем, вам не о чем беспокоиться :)

quaie
источник
0

Что-то совсем другое: попробуйте использовать Google на IP-адресе! Хакер, называющий себя STARTURK из Турции, возможно, попытался взломать ваш сайт.

Хотя это похоже на атаку грубой силой на вашу систему, вполне возможно, что этот хакер только что сделал одну попытку и теперь перешел на другой сайт.

Вим тен Бринк
источник
0

Как уже отмечалось, Tripwire / AIDE - лучший способ поиска системных изменений. К сожалению, на этом корове нет коровника, поскольку она должна быть настроена на заведомо исправную систему.

По крайней мере, одна вещь, которая может помочь вам начать, - это использовать базу данных RPM для проверки md5-сумм ваших файлов. Основная суть заключается в следующем:

rpm -qa | xargs rpm -V

Это не идеально по ряду причин. Во-первых, теоретически ваша локальная база данных RPM могла быть изменена. Во-вторых, большинство дистрибутивов используют предварительную связь, а RPM не знает о предварительной ссылке. Может показаться, что MD5 были изменены по сравнению с этим процессом, что является законным.

Лучший совет заключается в следующем: если вы не уверены, что скомпрометированы, пришло время для восстановления.

pboin
источник
0

Чтобы предотвратить будущие проблемы с безопасностью, вы можете взглянуть на OSSEC , я использую его для проверки целостности файлов и мониторинга журналов на наших серверах, он очень полный и простой в настройке. Он может отправлять уведомления по электронной почте, вы можете проверить оповещения через командную строку или веб-интерфейс ...

http://www.ossec.net/

взято с сайта:

«OSSEC - это система обнаружения вторжений на основе хоста с открытым исходным кодом. Она выполняет анализ журналов, проверку целостности файлов, мониторинг политик, обнаружение руткитов, оповещение в режиме реального времени и активный ответ».

  • Анализ журналов. Он может проверять файл журналов на ваших серверах и оповещать вас с помощью правил (есть много предопределенных, и вы можете добавить свои)

  • Целостность файла Tripwire / Aide, как функциональность, так что вы увидите, если какой-либо файл был изменен на вашем сервере

  • мониторинг политики: проверьте некоторые правила безопасности "Best Practices"

  • обнаружение руткитов: rkhunter, chkrootkit как функциональность

  • оповещения в режиме реального времени и активный ответ: вы можете настроить ossec так, чтобы он автоматически реагировал на оповещения (я не использую это, но вы можете использовать его для блокировки доступа по ssh к хостам, которые делают слишком много неудачных попыток соединения)

Действительно хороший продукт, и он очень активный

Для того, чтобы затвердеть ваш ящик вы также можете использовать Lynis или Бастилию

Гийом
источник