Назад | Перейти на главную страницу

Когда мне нужно администрировать существующий сервер Linux, как лучше всего проверить его безопасность?

Есть много руководств о том, как настроить новый защищенный сервер.

Но что, если мне придется администрировать сервер, который кто-то еще настроил некоторое время назад, и я еще мало что знаю о его конфигурации?

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

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

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

Я бы начал с Центр Интернет-безопасности контрольные списки "эталонов". Это контрольные списки на основе консенсуса, составленные специалистами по безопасности для различных платформ и программных пакетов. Некоторые инструменты, упомянутые в контрольных списках или обычно рекомендуемые иным образом, которые помогут вам в поиске проблем с безопасностью:

  • Нессус /OpenVAS (сканер уязвимостей)
  • Nmap (сканер портов)
  • TCPdump /Wireshark (захват пакета libpcap)
  • Фырканье (Система обнаружения вторжений)

(tcpdump устанавливается во многих системах Linux по умолчанию или может быть легко установлен из репозитория пакетов и имеет исчерпывающую страницу руководства)

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

В качестве очень быстрой первой проверки:

Бегать

netstat -ltnp

как корень. Это покажет вам все службы, прослушивающие сеть:

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

Для служб, которые должны запускаться, но не быть доступными извне (например, локальный сервер БД), рассмотрите возможность изменения конфигурации, чтобы она прослушивалась только на localhost / 127.0.0.1. Таким образом, к нему могут получить доступ только локальные пользователи.

Я бы посмотрел Bastille-Linux на http://www.bastille-unix.org/, это набор скриптов, которые вы можете запустить, и он проверит системные настройки, права доступа к файлам, настройки пользователя и т. д. Я использовал его один или два раза на своих ящиках, и если обнаружил проблемы при установке по умолчанию (в основном r_x на rsh / rsync утилит). Он выводится как html / java + curses / плоский текст.

Какой дистрибутив?

Общее:

  • Проверьте настройки iptables и / или брандмауэра
  • Просмотрите конфигурации SSHD
  • Просмотрите все внешние конфигурации сервисов
  • Убедитесь, что у вас установлена ​​последняя версия доступного программного обеспечения.
  • Проверьте уязвимости ядра (uname -a, а затем google)
  • Просмотр разрешений пользователей и групп для редактируемых файлов

Еще одна хорошая первая проверка - запустить имя хоста nmap с другого хоста в сети. Это дает постороннему взгляду на то, что netstat показывал на хосте.

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

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

Если начальник вам не позволит, то все остальные рекомендации мне нравятся :-)

В дополнение к некоторым из очень хороших отзывов, ознакомьтесь с http://www.sans.org/. У них есть очень хорошие документы, если вы хотите немного почитать, чтобы лучше понять «глубокую защиту».

Некоторые из самых основных предпосылок:

  • держи свои серверы в исправном состоянии
  • запускать только те службы, которые должны быть запущены
  • ограничить доступ пользователей к серверу

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

Одна вещь, которую вы можете сделать, чтобы почувствовать систему: разница папку / etc для новой установки (с примененными теми же обновлениями). Это сообщит вам, что изменилось, чтобы вы могли сосредоточить свои усилия на безопасности там.

Чтобы расширить сказанное mas, вот простая команда find, которая выводит список всех файлов setuid и setgid в системе для просмотра.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

Конечно, как говорили другие, все это при условии, что на машине еще нет руткита ...

Chrootkit / rkhunter - это долго висящий плод. Если у вас установлен руткит, все, о чем сообщается, будет скомпрометировано и, таким образом, не сильно поможет, поэтому, пожалуйста, загрузите их из известного источника, не используйте те, которые уже есть в коробке. Еще один хороший прием - установить ядро, которое, как вы знаете, хорошее (из пакетов или самостоятельно). Проверьте наличие бэкдоров (lsof -i и 0 uid учетных записей без полномочий root). Проверка правил брандмауэра обычно может многое рассказать о привычках предыдущих администраторов. Поставьте на него wirehark / snort, постарайтесь обнаружить что-нибудь необычное. Посмотрите, куда идут бревна. Проверьте все файлы типа .profile / .bashrc на предмет необычных команд. Поищите в .ssh / known_hosts любые хитрые хосты.