Вопрос: Советы по грациозному управлению производственным сервером (UNIX)


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

Мой вопрос: предполагая, что он оставил boobytraps позади, как мне изящно взять на себя серверы с минимальным временем простоя, насколько это возможно?

Вот подробности:

  • один производственный сервер, расположенный в ферме серверов в подвале; ubuntu server 9.x, вероятно, с патчами grsec (слухи, которые я слышал в прошлый раз, когда я спросил администратора)
  • один внутренний сервер, содержащий всю внутреннюю документацию, репозиторий файлов, вики и т. д. Опять же, сервер ubuntu, несколько лет.

Предположим, что оба сервера исправлены и обновлены, поэтому я бы не стал пытаться взломать мой путь, если нет веской причины (т. Е. Это может быть объяснено высшему руководству).

На производственном сервере размещено несколько веб-сайтов (стандартный apache-php-mysql), сервер LDAP, почтовый пакет / сервер ZIMBRA и насколько я могу сказать, что на нескольких рабочих станциях VMware работает. Не знаю, что там происходит. Вероятно, это мастер LDAP, но это дикая догадка.

Внутренний сервер имеет внутреннюю wiki / cms, подчиненную LDAP, которая реплицирует учетные данные с производственного сервера, еще несколько рабочих станций VMware и выполняемые резервные копии.

Я мог бы просто перейти к администратору фермы серверов, указать на сервер, сказать им,sudo выключите этот сервер, пожалуйста, войдите в однопользовательский режим и попробуйте с ним. То же самое для внутреннего сервера. Тем не менее, это означало бы время простоя, верхнее управление расстроено, старый системный администратор, отстрелявший меня, сказал: «Видите? вы не можете выполнять свою работу »и другие неприятности, и, самое главное, мне придется потерять потенциально несколько недель неоплачиваемого времени.

На другом конце спектра я мог просто войти в систему как root и inch через сервер, чтобы попытаться понять, что происходит. Со всеми рисками, вызвавшими неожиданные сюрпризы.

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

Каковы ваши предложения?

До сих пор я думал о «практическом» взаимодействии с внутренним сервером, отключении сети, перезагрузке с живым компакт-диском, сбросе корневой файловой системы на USB-накопитель и загрузке ее на отключенную изолированную виртуальную машину, чтобы понять прежний способ sysadmin мышление (а-ля «знай своего врага»). Мог вытащить тот же подвиг с производственного сервера, но полная свалка заставит кого-то заметить. Возможно, я могу просто войти в систему с правами root, проверить crontab, проверить файл .profile для любых запущенных команд, сбрасывать последний журнал и все, что приходит на ум.

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

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


10
2018-06-18 21:01


Источник


Почему был запущен системный администратор? Это похоже на ситуацию без выигрыша. Если вы не уверены, что делать и что именно на серверах, это не закончится хорошо. - cstamas
@cstamas sysadmin был уволен, потому что для каждого сделанного нами запроса (т. е. добавления пользователя в список рассылки или создания псевдонима электронной почты и т. д.) время, которое потребовалось, было случайной величиной между t = 1 день и t = 2 месяца ( включительно). И он этого никогда не признавал. Плюс куча других плохого поведения, о которых я не буду вдаваться в подробности здесь. - lorenzog
@lorenzog теперь имеет смысл. Похоже, это будет непростая задача. Уже есть отличные ответы. Удачи! - cstamas
@serverhorror: нет, они просто наняли его, прежде чем я присоединился к этой компании, и теперь он оказался недостаточно хорошим. Поскольку я знал его раньше, у меня была задача «разобраться с ним». Будьте осторожны с вашими предположениями. - lorenzog
@lorenzog: Это не о вас. Дело в том, что на самом деле это ошибка менеджеров (кто бы это ни был), что ситуация с недокументированной инфраструктурой может даже произойти - как я уже сказал: никакого оскорбительного справедливого наблюдения (предоставленного субъективным наблюдением) - serverhorror


Ответы:


Как говорили другие, это выглядит как свободная ситуация.

(Начиная с конца)

  • Полностью новое развертывание

Конечно, вы не можете просто забрать серверы и позволить установщику сделать это волшебство.

Общий процесс

  • Получите бюджет для резервного сервера (резервное копирование как в хранилище данных)
  • создавать снимки данных и размещать их там, прежде чем делать что-нибудь
  • Получите это, подписанное руководством!
  • Соберите список требований (требуется вики, кто использует экземпляры VMWare, ...)
    • От управления а также
    • От пользователей
  • Получите это, подписанное руководством!
  • Заблокируйте незарегистрированные службы в течение недели (один оказание услуг в то время - iptables может быть вашим другом, если вы хотите просто закрыть внешние службы, но есть подозрение, что он все еще может быть использован из приложения на том же хосте)
    • Нет реакции? -> окончательное резервное копирование, удаление с сервера
    • Реакция? -> Поговорить с пользователями сервиса
    • Соберите новые требования а также Geet, который был подписан руководством!
  • все не включенные в список услуги в течение месяца и отсутствие реакции? -> rm -rf $service (звучит харч, но я имею в виду вывод из эксплуатации службы)
  • получить бюджет для резервного сервера
  • перенести одну услугу за один раз на запасную
  • получите это, подписанное руководством!
  • выключить перенесенный сервер (отключить питание)
  • узнайте больше людей, кричащих на вас -> yay, вы только что нашли остатки
  • собирать новые требования
  • снова начать работу и перенести услуги
  • повторите последние 4 шага, пока нет людей, следующих за вами в течение месяца
  • передислоцировать сервер (и получить это, подписанное руководством!)
  • промыть и повторить весь процесс.
    • перераспределенный сервер - ваш новый запасной

Что вы получили?

  • Инвентаризация всех услуг (для вас и для управления)
  • Документация (в конце концов, вам нужно что-то написать для управления, почему бы не сделать это правильно и не сделать что-то для вас и руководства)

Было там сделано, это не забава вообще :(

Зачем вам это нужно? подписанный руководством?

  • Сделать проблемы видимыми
  • Убедитесь, что вас не уволят
  • Возможность объяснить риски
    • Это нормально, если они не хотят, чтобы вы это делали, но в конце концов это их решение сделать после того, как они получили достаточный вклад, чтобы судить о том, что инвестиция того стоит.

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

Это будем стоит много времени, независимо от перераспределения, если у вас нет документации. Не нужно думать о бэкдоре, ИМХО, если у вас нет документации, скользящая миграция - это единственный способ достичь нормального состояния, которое принесет ценность компании.


12
2018-06-18 22:08



Это очень хорошая перспектива. Спасибо. Я обязательно буду следовать вашим советам: получение прав на управление и медленное повторное развертывание серверов. Это будет больно, но это звучит как лучший разумный ход действий. - lorenzog
По соответствующей документации я предлагаю следующее: serverfault.com/questions/25404/... (также см. общую тему) работает очень хорошо (по крайней мере для меня) - serverhorror


У вас есть основания полагать, что предыдущий администратор оставил что-то плохое, или вы просто смотрите много фильмов?

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

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

Что бы вы ни делали, учтите следующее:

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

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


4
2018-06-18 22:05



У меня есть причины подозревать, что может быть что-то скрывающееся, поскольку мы не расставались с лучшими условиями. Предыдущий sysadmin был хорошим другом, мы были соседом по комнате во время колледжа, и я «научил его» многим трюкам, которые он позже использовал, чтобы стать системным администратором, в то время как я пошел по пути разработки программного обеспечения и управления проектами. Потому что есть личные чувства (он обвинил меня в том, что мне удалось его уволить), я не могу ожидать разумного поведения. Возьмите его как отношения отца и сына, где сын хочет в какой-то степени доказать свою доброту отцу. - lorenzog


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

Выгрузите серверы и загрузитесь в однопользовательский режим (init = / bin / sh или 1 на grub), чтобы проверить, какие команды выполняются при входе пользователя root. Здесь необходимо время простоя, дайте понять руководству, что нет выбора, кроме некоторого времени простоя, если они хотят быть уверены, что получат возможность хранить свои данные.

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

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

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

Редактировать: Я думаю, что я не рассматривал «изящную» часть вашего вопроса, как мог. Первый шаг (переход в однопользовательский режим для проверки ловушек для входа) может быть, вероятно, пропущен - старый системный администратор дает вам пароль root и настраивает логин для выполнения rm -rf / было бы почти тем же самым, что и удаление всех файлов, поэтому, вероятно, нет смысла это делать. В соответствии с резервной частью: попробуйте использовать rsyncтак что вы можете сделать большую часть первоначальной резервной копии в Интернете и минимизировать время простоя.


4
2018-06-18 21:32





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


0
2018-06-18 21:51





Вы получаете параноик о безопасности. Нет необходимости становиться параноиком. (b'cos вы говорите о ловушках). Пройдите список установленных программ. Посмотрите, что работает служба (netstat, ps и т. Д.), См. Задания cron. Отключите предыдущую учетную запись администратора sys admin, не удаляя учетную запись (это легко сделать, указав оболочку на nologin). Просмотрите файлы журнала. Я думаю, что с этими шагами и из ваших знаний о потребностях компании, из которых вы можете угадать использование серверов, я думаю, что вы сможете поддерживать их без каких-либо серьезных сбоев.


0
2018-06-18 21:56



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