Наследовать существующий сервер

9

Я только что унаследовал 6 веб-серверов от предыдущего уволенного парня, я не системный администратор, а скорее DevOps.

Может ли кто-нибудь указать мне на какой-то стандартный контрольный список, которому следует следовать при наследовании существующих серверов? Вещи, которые мне нужно знать:

  1. Какое программное обеспечение находится на серверах
  2. Какие стандартные вещи я должен сделать, чтобы проверить, что они безопасны?
  3. что с ними связано и что они тоже связаны?
  4. Что еще я должен знать?

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

Все серверы Ubuntu (различные версии)

user3408844
источник
3
Вы не DevOps. DevOps это не название, это культура.
gWaldo
Какой термин лучше использовать для «разработчика, вынужденного выполнять работу системного администратора без опыта системного администратора, но с хорошим пониманием всех задействованных концепций и достаточного практического опыта, чтобы« обойтись »»
user3408844
Согласившись, прочитав DevOps в Википедии, я вижу, что использовал ее неправильно, но, похоже, она стала сленгом в повседневной жизни разработчиков, которые стали полусядерными пользователями
user3408844
Термин для того, что вы описываете - «Разработчик» или «Разработчик вынужден взять на себя некоторые обязанности по Системам / Операциям».
gWaldo
Вот Это Да! - много усилий
вложено

Ответы:

24
  1. Чтобы определить, какое программное обеспечение установлено, вы можете просмотреть файл /var/log/dpkg.log. Однако это может быть не полная запись. Это могут быть двоичные файлы и код, которые были скомпилированы вручную или скопированы непосредственно в предварительно скомпилированную систему. Вы можете сравнить установку по умолчанию той же версии и типа Ubuntu с серверами и посмотреть, какие файлы отличаются, но это может быть довольно утомительно. Решение монитор файл будет идеальным (tripewire, inotifywatch и т.д.) http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html

  2. Вам нужно проверить ВСЕ на сервере. Каждая учетная запись пользователя в / etc / passwd , каждая учетная запись пользователя приложения (например, пользователи в Apache / PHP, учетные записи базы данных и т. Д.) Должны учитываться, и вы должны изменить все пароли. Вы должны проверить, какие службы запускаются при загрузке, каков уровень запуска по умолчанию и что начинается с него и с другими уровнями запуска. Я бы использовал сканер уязвимостей и инструмент базовой конфигурации для проверки текущего состояния. Центр интернет-безопасности предлагает бесплатный инструмент оценки конфигурации, но он может быть ограничен. У них есть более продвинутые инструменты для членских организаций ($). http://benchmarks.cisecurity.org/ OpenVAS - это сканер FOSS, мало чем отличающийся от Nessus, который может иметь аналогичные возможности. Есть еще много вещей, которые нужно проверить, но этот ответ уже становится немного длинным ... (Хороший пример - обзор кода для веб-приложений и веб-страниц.)

  3. Вы можете просмотреть состояние портов, доступных для подключения к серверам, с различными флагами netstat . http://www.thegeekstuff.com/2010/03/netstat-command-examples/ Чтобы определить, кто подключался к серверу, вам придется прибегнуть к самым сексуальным действиям в области интернет-безопасности, просматривая системные журналы. Информация может быть в любом из нескольких журналов, в зависимости от того, какие приложения и серверы находятся в системе. Вам также может повезти с журналами внешних сетей, если они существуют.

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

Это основано на пессимистическом предположении о предыдущем администраторе. К сожалению, таким образом cookie рушится для обеспечения безопасности сети. Как я уже сказал, есть еще много вопросов, которые стоит рассмотреть. Эти пункты должны дать вам кое-что для начала, чтобы вы могли сообщить руководству о своем прогрессе; но, честно говоря, если вы не специалист по безопасности и у вас есть основания подозревать, что этот человек действовал со злым умыслом, то, вероятно, вы слишком надуманы.

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

Удачи, и я надеюсь, что это было полезно, а не только удручает.

0xSheepdog
источник
Этот вопрос также может быть хорошо подходит для сайта StackExchange www.AskUbuntu.com
0xSheepdog
2
Отличный ответ.
EEAA
3
Очистка и восстановление, вероятно, станет намного проще, если у вас есть хорошее декларативное управление конфигурацией. Если вы этого не сделаете, вы, вероятно, должны рассмотреть возможность достижения этой цели.
Зигг
2
/var/log/dpkg.logхорошо подходит для просмотра самого процесса установки (и поиска ошибок), но для получения списка установленных пакетов вывод dpkg -lили даже более простой процесс dpkg --get-selectionsбудет легче переварить.
Dubu
0

Справочные страницы - ваш друг:

 man <command> 

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

  <command> --help 

Програмное обеспечение:

  • dpkg -l (список установленных программ)
  • ps -ef | more (получить список запущенных процессов и приостановить чтение)

Безопасность:

  • iptables (какие порты открыты и нужны ли они)
  • проверять обновления с помощью apt-get (обновлены ли серверы?)
  • cat / etc / passwd (у кого есть аккаунт на коробке)
  • sshd (проверьте, работает ли sshd и кто может войти на него)

Соединения:

  • netstat (какие службы слушают и на каких портах)

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

Крис Джонс
источник
0
  1. какие приложения работают: выполните ps -ef или ps -auxw, чтобы получить список процессов. отсеять все, что не связано с ядром, искать вещи, которые работают, делать man-страницы на каждой, чтобы выяснить, что это такое. большинство запущенных процессов вы можете игнорировать, потому что они не являются пользовательскими приложениями

  2. в целях безопасности: выполните команду netstat -pan, чтобы увидеть, какие порты открыты, и закройте все ненужные порты. Другими словами, должны быть открыты только те порты, которые соответствуют сетевым службам, предоставляемым этими серверами. Если сервер является веб-сервером, то, очевидно, он должен прослушивать порт 80/443 / и т. Д. Но если сервер прослушивает порт 21, и никто его не использует, вам следует отключить процесс, в котором этот порт открыт.

  3. для соединений снова «netstat -pan» дает вам ответ. Он сообщает вам, какие хосты подключены и к каким портам они подключены.

  4. просмотрите журналы в / var / log, чтобы получить представление о том, что делает их система, и посмотреть, есть ли какие-либо очевидные ошибки или красные флаги, поступающие из разных приложений.

Майкл Мартинес
источник