Как вы можете сказать, что на самом деле делает сервер? [закрыто]

42

Мне вручили 3 коробки с Linux, 1 переднюю панель с apache на нем и еще 2, которые, насколько я могу судить, не так уж и много делают. Все работает на Redhat.

Вопрос прост: как узнать, что на самом деле делает сервер? Нулевая документация доступна от создателя.

Bizmark
источник
7
Список процессов, прослушиватели сети (может быть, сравнивать с тем, который должен был бы выполняться на основе сценариев инициализации) ...
HBruijn
5
черт! наверняка кто-то знает, для чего они? поэтому они хотят, чтобы вы поддержали их, но не знаете, что они делают ?!
Digital Lightcraft
11
Выключи их. Кто-то почти сразу даст вам знать , что не работает.
Jscott
58
НЕ ВЫКЛЮЧАЙТЕ ЭТО. Отключите кабель Ethernet, если вы хотите кричать-тест. Если вам никогда не удавалось перезагрузить коробку с двухлетним временем безотказной работы, в какой-то момент вы это сделаете. Сейчас не время добавлять это разочарование в смесь.
Аарон Копли
7
То, что все остальные говорили, но также: запустите nmap против них.
Кэтрин Вилльярд

Ответы:

42

Отключите кабель Ethernet и посмотрите, кто расстроен.

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

Джош Рамбут
источник
43
НЕ ВЫКЛЮЧАЙТЕ ЭТО. Отключите кабель Ethernet, если вы хотите кричать-тест. Если вам никогда не удавалось перезагрузить коробку с двухлетним временем безотказной работы, в какой-то момент вы это сделаете. Сейчас не время добавлять это разочарование в смесь. (Копирую это здесь, потому что это нужно прочитать.)
Аарон Копли
3
Вы на 100% правы, я отредактировал пост, чтобы отразить это. Я был немного шутливым, но я все еще могу быть шутливым, не способствуя бедствию.
Джош Рамбут
8
Перед отключением сети рекомендуется сохранить список запущенных процессов и открытых сокетов на каждом сервере - на тот случай, если что-то зависит от TCP-соединения между серверами, которое оставалось УСТАНОВЛЕННЫМ в течение многих месяцев, и никто не думал о автоматизация любых шагов, необходимых для его открытия в первом случае. (Например, если кто-то временно нуждался в переадресации порта ssh, а затем забыл об этом.)
kasperd
4
Не делай этого. Какой смешной совет. Глупые бездумные айтишники, занимающиеся этим, стоили мне столько времени и работы. СПРОСИТЕ ПЕРВЫМ. Если вы не знаете, к кому обратиться, спросите каждого .
Легкость гонки с Моникой
4
Удостоверьтесь, что у вас есть достаточно времени, чтобы кто-то закричал - однажды я сделал это с пыльной или настольной машиной, стоящей на стойке серверной комнаты - никто не знал, что он сделал, чтобы кто-то заметил, когда мы отключили его от сети, потребовался целый месяц. , Оказывается, это было частью системы начисления заработной платы, без этого сервера бухгалтерия не могла генерировать ежемесячную заработную плату. Он работал без присмотра в течение по крайней мере 3 лет, и никто не обращал на него внимания, поэтому «проверка на крик» была успешной, если бы мы ее не сделали, сервер в конечном итоге погиб бы сам по себе. Мы закончили тем, что поместили его в наш кластер VMware.
Джонни
30

Это довольно широкий вопрос для формата Serverfault, но вот хорошее начало:

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

Вы не упомянули версию, поэтому я опустил детали.

Аарон Копли
источник
8
Есть нечто более важное, чем то, какие службы настроены для запуска при загрузке системы. Какие сервисы работают сейчас? Запустить службу и забыть настроить ее для запуска при загрузке - это не сложная ошибка. В связи с этим полезно рассмотреть другие состояния системы, такие как: точки монтирования, таблица маршрутизации, правила iptables. Все это вещи, которые можно легко изменить во время работы системы, не забывая обновлять файлы конфигурации, используемые во время загрузки.
Касперд
Кроме того, я бы использовал сканер портов, чтобы увидеть, какие порты открыты, а затем попытался подключиться к нему с помощью обычных инструментов. Для (простого) примера, если порт 443 открыт, вы можете попробовать подключиться к нему через веб-браузер. Мне приходилось часто исследовать такие, казалось бы, заброшенные серверы, и один из моих любимых инструментов для быстрого просмотра файлов конфигурации в / etc и других местах - это использовать «lynx» или «links», если вы предпочитаете. Это символьные веб-браузеры, которые достаточно хорошо работают как файловый браузер с удобной навигацией по клавишам курсора.
Aseq
1
@kasperd Честная игра на работающие и постоянные сервисы. Но я подумал о правилах брандмауэра, точках монтирования и т. Д. Они казались мне вспомогательными компонентами, которые уже будут привязаны к одной из существующих точек маркера. YMMV.
Аарон Копли
Пожалуйста, добавьте - Проверьте наличие активных сетевых подключений и запишите названия служб и номера портов. Лучший способ сделать это зависит от операционной системы. EG net stat. Кроме того, поместите какой-нибудь след на компьютер, чтобы вы могли видеть, что он делает в течение дня. Вы также можете добавить соображения к сценариям, когда работающие на серверах МОГУТ быть вредоносными.
IceMage
19

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

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

 [root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat    e       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LIST    EN      1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LIST    EN      1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LIST    EN      1759/sshd

Как видно из приведенного выше примера, он представляет вам версию протокола (tcp или udp), адрес, который прослушивается, порт, который открыт, и программу, которая прослушивает.

В приведенном выше усеченном примере (сервер) вы видите, что порты tcp 139, 5666 и 22 прослушивают. Они разрешают samba, nrpe (агент Nagios) и ssh соответственно и подтверждаются при проверке программы, которая прослушивает этот порт.

Кроме того, вы можете проверить список демонов, которые настроены для запуска при загрузке, для этого выполните: chkconfig --list | grep "3:on"

Пример:

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

или :

service --status-all

Итай Ганот
источник
5
Мне netstat -pluntлегче запомнить.
abligh
2
Также tcpdumpможет быть полезно определить, кто на самом деле использует каждый сервис.
abligh
18

Другой метод включает проверку /etcкаталога и просмотр дат модификации. После новой установки все файлы в этом каталоге должны иметь примерно одинаковую дату / время. А поскольку при установке обычно устанавливается множество вещей, которые люди обычно не используют, только файлы, которые имеют более позднюю дату модификации, отражают реальное назначение сервера . Если это ext4, вы также сможете извлечь дату рождения каталогов, поэтому задача может быть довольно простой.

Еще один метод будет включать проверку .bash_historyфайлов, чтобы увидеть, что задумали администраторы. Этот файл может предоставить множество знаний.

Конрад Гаевский
источник
7

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

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

MSalters
источник
6

Один ответ, который я еще не видел: Проверьте самые последние измененные файлы. Журналы, файлы базы данных, другие выходные файлы и т. Д. Могут быть записаны в кадр, что может дать подсказки:

find . -mtime -3 

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

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

JayMcTee
источник