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

9

Существует множество руководств по настройке нового защищенного сервера.

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

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

Даниэль Риковски
источник

Ответы:

13

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

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

niXar
источник
5
Nessus больше не является открытым исходным кодом. Его форк с открытым исходным кодом называется openvas.
Аноним
1
Я знаю. Но это все еще бесплатный «как в пиве» IIRC, и на плакате никогда не говорилось, что он хочет только F / OSS.
niXar
+1 Nessus очень хорош, я бы также проверил, и сканирование Nmap, загружающее результаты в Nessus, может помочь в некоторых случаях выявить еще несколько уязвимостей.
Марк Дэвидсон
1
+1 за OSSEC. Он также имеет модуль аудита руткитов / системы, который вы можете запустить автономно: ossec.net/rootcheck
sucuri
5

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

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

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

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

jtimberman
источник
4

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

Запустить

netstat -ltnp

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

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

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

sleske
источник
4

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

Jimsmithkka
источник
3

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

Генеральный:

  • Просмотрите настройки iptables и / или брандмауэра
  • Просмотр конфигов SSHD
  • Просмотрите все внешне доступные сервисные конфиги
  • Убедитесь, что вы используете новейшее доступное программное обеспечение
  • Проверьте наличие уязвимостей в ядре (uname -a, а затем google).
  • Просмотрите права пользователя и групповые разрешения для редактируемых файлов.
Дэвид Рикман
источник
Нет специального распределения / все распределения
Даниэль Риковски
Кроме того, вы можете получить список установленных пакетов. Что-то вроде dpkg --get-selections> instal_pkgs.txt для дистрибутивов Debian.
Дэвид Рикман
2
Вам также может понадобиться проверить наличие необычных файлов setuid / setgid, для каких учетных записей установлены пароли, какова их оболочка для входа в систему и т. Д., Чтобы устранить простые «черные ходы».
мас.
Отличное предложение, я совершенно забыл, что это потенциально огромная дыра.
Дэвид Рикман
3

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

kmarsh
источник
3

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

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

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

Кайл Брандт
источник
+1: если его создание / конфигурация не задокументированы и у вас есть время, возможно, воспользуйтесь возможностью восстановить его. Вместо того, чтобы делать это под принуждением позднее. Тогда вы можете быть уверены, что это безопасно и будет задокументировано для дальнейшего использования.
Дэн Карли
2

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

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

  • держите ваши серверы исправленными
  • запускать только те службы, которые должны быть запущены
  • ограничить доступ пользователей к серверу
Greeblesnort
источник
1
Не забудьте ограничить также физический доступ, не только из сети.
ины
1

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

wazoox
источник
1

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

Крис Нава
источник
1

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

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

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

штифтик
источник
1

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

Marcin
источник