Что ещё нужно знать администратору сервера

Карта навыков

Сайт на VPS работает после урока 5 и перестаёт быть проектом, становясь машиной, за которой вы следите. Знаний для этого нужно не бесконечно много, но у них есть части, и у каждой части есть цель. Таблица ниже — вся карта; разделы после неё разбирают части в том порядке, в каком их встречает новичок.

НавыкЧто он даёт
Командная строкаНаходить файлы, читать журналы, выполнять что угодно дважды одинаково.
Пользователи и праваДать сайту минимум доступа, который ему нужен, и знать, кто что может прочитать.
Службы и systemdЗапускать, останавливать и диагностировать программы, которые отвечают на запросы.
ПакетыУстанавливать и обновлять программы из доверенного источника.
СетиПонимать адреса, порты, разрешение имён и файрволы.
Веб-серверы и TLSОбслуживать сайт и его сертификат без панели.
Базы данныхДержать данные сайта согласованными, сохранёнными и доступными только сайту.
Резервные копии и мониторингУзнавать о проблеме раньше посетителей и восстанавливаться, когда она случилась.
ЖурналыНаходить первую ошибку, а не самую громкую.
Скрипты оболочки и gitПовторять работу, не набирая её заново, и держать настройку под контролем версий.

Командная строка

Всё на сервере — это файл или процесс, и оболочка показывает и то и другое. Вам нужно, пожалуй, тридцать команд и три привычки. Привычки важнее: читать руководство прежде, чем лезть в интернет, печатать путь перед тем, как удалять, и менять одну вещь за раз.

man 5 nginx.conf

Число в man 5 означает раздел: 1 — команда, 5 — формат файла, 8 — системное администрирование. Страница man быстрее и точнее случайного поста в блоге, и её написали люди, сделавшие программу. Когда вы не знаете имени команды:

apropos "dns lookup"

dig (1) - DNS lookup utility host (1) - DNS lookup utility getent (1) - get entries from Name Service Switch libraries

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

du -h /var/log/* | sort -h | tail -n 3

grep -c " 500 " /var/log/nginx/access.log

Bash — язык этих команд. Сначала не нужно писать программы; конвейер из двух команд уже решает большинство ежедневных вопросов.

Пользователи, права и sudo

Каждый процесс работает под каким-то пользователем, и каждый файл говорит, кому можно его читать, записывать и выполнять. Три числа в chmod — это права владельца, группы и всех остальных, в этом порядке: 4 — чтение, 2 — запись, 1 — выполнение.

РежимЗначениеОбычное применение
644Владелец читает и пишет, остальные читаютКартинка, файл PHP сайта
600Только владелец читает и пишетКлюч, файл с паролем
755Владелец пишет, все читают и входятПапка, которую читает веб-сервер
750Владелец и группа читают и входятПапка сайта, группа которой — веб-сервер

Выучите id, чтобы видеть, кто вы, и ls -l, чтобы видеть, кому что принадлежит. Никогда не решайте проблему с правами через chmod 777: он даёт запись каждому пользователю машины, включая того, кого создал атакующий. Дайте доступ группе и назначьте правильную группу. sudo настраивается в /etc/sudoers, который правят только через visudo, чтобы из-за ошибки в синтаксисе вы не потеряли доступ к sudo.

Службы и systemd

В Ubuntu каждая долго работающая программа — это служба systemd с файлом unit, обычно в /lib/systemd/system/. Четыре команды systemctl отвечают почти на любой вопрос:

systemctl status nginx

sudo systemctl restart nginx

sudo systemctl enable nginx

journalctl -u nginx --since "1 hour ago" --no-pager

status показывает, работает ли служба, и последние напечатанные ею строки. restart останавливает и запускает её; reload просит перечитать настройку, не обрывая подключения, и это то, что нужно для Nginx и PHP-FPM. enable включает запуск при загрузке; без него служба может работать сейчас и быть забытой после перезагрузки. Когда пишете свой файл unit, скопируйте существующий и прочитайте каждую строку; две строки, которые забывают, — After=network.target и Restart=on-failure.

Пакеты

Ставьте программы из дистрибутива, а не из случайного архива. Пакеты Ubuntu подписаны, проверены вместе и обновляются командой безопасности. Четыре команды, которые надо знать:

apt search nginx

apt show nginx

sudo apt install nginx

dpkg -l | grep nginx

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

Обновления — привычка, а не событие: см. статью об обновлениях и включите автоматические обновления безопасности, как показывает урок 8.

Сети

Четыре идеи объясняют почти любую сетевую проблему: адрес, порт, маршрут и имя. Адрес говорит, какая машина, порт — какая служба на этой машине, маршрут — как пакеты туда попадают, а имя — это удобство, которое разрешается в адрес до того, как что-либо произойдёт.

ip -brief address

lo UNKNOWN 127.0.0.1/8 ::1/128 eth0 UP 203.0.113.10/24 2001:db8::10/64

ip route

default via 203.0.113.1 dev eth0 proto static 203.0.113.0/24 dev eth0 proto kernel scope link src 203.0.113.10

Маршрут по умолчанию — это выход в интернет. Без него сервер может говорить со своей подсетью и больше никуда, и это выглядит точно как сломанный DNS. Затем проверяйте слои по порядку: отвечает адрес, отвечает порт, разрешается имя, отвечает служба.

ping -c 2 1.1.1.1

dig +short example.com

curl -I https://example.com

Между портом и сетью стоит файрвол. В Ubuntu это ufw перед nftables; закрытый порт выглядит как служба, которая лежит, когда проверяете его снаружи, и работает, когда проверяете с сервера. Эта разница и есть подсказка: если localhost работает, а интернет нет, подозревайте файрвол или сеть провайдера раньше программы.

Веб-серверы и TLS

Блок сервера вы уже писали в уроке 5. Навык, который стоит развивать, — читать его: каждый запрос проходит через listen, server_name, root, location и обработчик. Когда страница возвращает не то, читайте эти пять по порядку. nginx.conf: настройка и сайты — справочник по подробностям.

TLS — это сертификат, закрытый ключ и цепочка доверия. Certbot делает все три за вас, а понимать нужно имена, которые он покрывает, дату, когда он истекает, и проверку, что продление ещё работает. Чтобы посмотреть, что сервер действительно отправляет:

openssl s_client -connect example.com:443 -servername example.com < /dev/null | openssl x509 -noout -subject -dates

subject=CN = example.com notBefore=Nov 6 09:00:00 2026 GMT notAfter=Feb 4 09:00:00 2027 GMT

Опция -servername отправляет SNI, поэтому вы видите сертификат этого имени, а не сайта по умолчанию. Если они различаются, имени не хватает в настройке.

Базы данных

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

mysqldump --single-transaction -u example_user -p example_db > site-$(date +%F).sql

Резервные копии и мониторинг

Два вопроса решают, переживёте ли вы плохой день: какого возраста самая свежая копия и восстанавливал ли её кто-нибудь? На первый отвечает правило 3-2-1: три копии, на двух видах носителей, одна из них вне сервера. На второй отвечает проверка восстановления, и это та часть, которую пропускают все. Статья о резервных копиях, которые действительно восстанавливаются, описывает метод; rsync, restic и borg — инструменты.

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

df -h /

Filesystem Size Used Avail Use% Mounted on /dev/vda1 39G 12G 25G 33% /

Как учиться

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

Порядок обучения

  1. Файлы, права, grep, find, less: две недели ежедневного использования.
  2. Пользователи, sudo, SSH-ключи: одна неделя, и потом вы больше никогда не входите от root.
  3. systemd, пакеты, журналы: одна неделя, достаточно, чтобы установить и продиагностировать службу.
  4. Сети: адреса, маршруты, порты, DNS, файрвол. Две недели, потому что здесь живёт большая часть путаницы.
  5. Nginx и PHP-FPM: одна неделя, с вашим сайтом в качестве упражнения.
  6. TLS и сертификаты: два дня, в основном на то, чтобы научиться читать, что отправляет сервер.
  7. Базы данных: неделя на создание, выдачу прав, дамп и восстановление.
  8. Резервные копии и мониторинг: выходные, с настоящим восстановлением.
  9. Скрипты Bash и cron: неделя, автоматизация резервной копии и проверки обновлений.
  10. Git для файлов настройки: выходные, и потом у каждого изменения есть история.

Десять недель по полчаса в день — реалистичный план для мотивированного новичка. Уроки этого курса идут в том же порядке, так что сам курс — первое знакомство с этим списком.

Сертификаты

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

СертификатЧто покрываетКогда он стоит того
LPIC-1Основы Linux: оболочка, файлы, пользователи, процессы, пакеты, сети, безопасность, в двух экзаменахВы хотите независимый от вендора первый сертификат и понятную программу
RHCSAАдминистрирование Red Hat Enterprise Linux, проверяется на настоящей машинеВы работаете с Red Hat или хотите практический экзамен, который нельзя сдать, заучив вопросы
CompTIA Linux+Широкое введение в администрирование LinuxВы только начинаете и хотите один признанный начальный сертификат
CompTIA Security+Понятия безопасности: угрозы, криптография, управление доступом, рискВ вашей работе есть безопасность, а не только серверы

LPIC-1 и Linux+ не зависят от вендора. LPIC-1 — это вопросы с вариантами ответа и с пропусками; Linux+ смешивает вопросы с вариантами ответа и практические задания. RHCSA привязан к Red Hat и ценится потому, что весь экзамен выполняется на настоящей системе. Security+ — не сертификат по Linux и не научит вас Nginx, но это обычный первый шаг в работу с безопасностью. Ни один из них не заменяет работающий сайт и резервную копию, которую вы восстановили.

Куда двигаться дальше

Тест

1 Какая команда показывает страницу руководства о формате файла настройки?

  1. man 1 nginx
  2. man 5 nginx.conf
  3. nginx --help
  4. cat nginx.conf
Ответ

b) Раздел 5 — это форматы файлов, раздел 1 — команды. Страница формата перечисляет каждую директиву и её значение по умолчанию.

2 Сайт не может писать в свою папку загрузок. Какое исправление правильное?

  1. chmod 777 на папку
  2. Дать пользователю сайта или группе веб-сервера тот доступ, который нужен папке
  3. Запускать PHP от root
  4. Удалить папку и загрузить снова
Ответ

b) 777 позволяет писать каждому пользователю машины, включая того, кого создал атакующий. Дайте минимальный доступ нужному пользователю или группе.

3 В чём разница между systemctl restart nginx и systemctl reload nginx?

  1. Никакой, это одно и то же
  2. Reload перечитывает настройку, не обрывая подключения; restart останавливает и запускает службу
  3. Restart работает только после перезагрузки
  4. Reload выключает службу
Ответ

b) Reload — мягкий вариант для изменения настройки. Restart нужен для нового двоичного файла или зависшего процесса и ненадолго обрывает подключения.

4 Сайт работает на самом сервере, но не из интернета. Куда смотреть первым?

  1. Пароль базы данных
  2. Правила файрвола и сеть провайдера
  3. Дату окончания сертификата
  4. Файлы CSS
Ответ

b) Работающий localhost и неработающий интернет указывают на путь, а не на программу: закрытый порт, неверный адрес или файрвол провайдера.

5 Что делает резервную копию надёжной?

  1. Она запускается каждую ночь
  2. Её хотя бы раз успешно восстановили
  3. Она хранится на том же сервере
  4. Она сжата
Ответ

b) Непроверенная копия — это надежда. Восстановите её в отдельное место и проверьте, что файлы открываются, а запросы к базе работают.

6 Какой сертификат сдают практическим экзаменом на Red Hat Enterprise Linux?

  1. LPIC-1
  2. CompTIA Linux+
  3. RHCSA
  4. Security+
Ответ

c) RHCSA выполняется на настоящей системе, поэтому его нельзя сдать, заучив вопросы. LPIC-1 — вопросы с вариантами ответа и пропусками, Linux+ добавляет практические задания, а Security+ вообще о безопасности.

Автор статьи: Arthur Isaev

Изображение баннера