Я не системный администратор по образованию, поэтому я постоянно учился. Терпите меня в моем незнании. :)
Мне было поручено проанализировать один из серверов моего работодателя. Он работает под управлением CentOS, и его основная функция - служить репозиторием пакетов нашей организации для различных менеджеров пакетов (RPM, DEB), но у него есть и другие функции. Проблема в том, что он настолько старый, что никто точно не знает, как он настроен ...
Нам нужно будет переместить этот сервер на новую физическую машину, и поэтому меня попросили выяснить, как он настроен, что на нем работает и т. Д. Я знаю, что это довольно двусмысленное определение, и что я наверняка что-то пропускаю, но хотелось бы как можно тщательнее работать.
Мой вопрос: какие области мне следует проверить? Как бы вы повторили конфигурацию и среду машины, если бы не знали об этом заранее. Вот некоторые из них:
p.s. Я, конечно, буду автоматизировать настройку всего, что смогу, как только смогу выяснить этот сервер, чтобы этого не случилось со следующим парнем после меня.
Хорошее начало - использовать Чертеж перепроектировать систему. Это извлечет пакет, установку и некоторую базовую информацию о конфигурации.
Кроме того, поскольку это система CentOS / Redhat, взгляните на установочный файл в /root/anaconda-ks.cfg
. Это даст вам некоторое представление о вариантах первоначальной установки системы.
Для начала я хотел бы получить как можно больше информации о состоянии работы сервера.
Какие запущенные процессы?
# ps aux
Какая конфигурация сети?
# ip address
# ip route
Есть ли у нас процессы прослушивания?
# netstat -lp
Какие файлы используются?
# lsof
Какие пакеты установлены?
# rpm -qa
Может какие правила межсетевого экрана?
for t in `echo "mangle nat filter raw"`
do
echo ">> $t"
iptables -t $t -nvL
done
Среди интересных папок у вас есть:
/etc
, где сохраняется большая часть конфигурации системы./home
, некоторые службы могут использовать эту папку для хранения данных./opt
, туда можно устанавливать сторонние приложения./root
, домашняя папка администратора, может содержать полезные скрипты./srv
, стандартная папка для данных сервисов./usr/local/{bin,etc,sbin,*}
, может содержать локально установленные файлы./var/log
, может предоставить полезную информацию о том, что работает в системе.При этом вы должны иметь первое представление о том, что работает на вашем сервере.
Три упомянутых вами вещи - хорошее начало. Я бы также сделал:
rpm -V $(rpm -qa)
чтобы увидеть, что было изменено в установленных пакетахfind /[belmosuv]* | xargs -n1 rpm -q --whatprovides | grep 'not owned'
найти файлы, установленные без диспетчера пакетов