
Установка и настройка линукс на сервере
Книга плавно начинается с установки операционной системы и постепенно усложняется от главы к главе. Первая глава посвящена установке Linux. Это настолько заезженная тема и операция, которую я проводил много раз, что из первой главы я ничего не добавил в конспект. Установка рассматривается на примере Astra и Ubuntu.
Далее идут несколько глав, посвященных знакомству с Linux на примере входа в систему. Уделяется немного внимания графическим оболочкам, темной теме и другим визуальным аспектам. Кстати, немало внимания уделяется кастомизации внешнего вида ОС до стилистики macOS: установка заставок, изменение оформления кнопок, значков, курсоров, меню и других элементов. Также упоминается различие между режимом гибернации и сна, выключение и перезагрузка через консоль, а также запланированное выключение. Автор показывает, как устанавливать аудио- и видеокодеки, управлять пакетами и обновлять систему.
Глава 4 посвящена командной строке и базовым командам, таким как: просмотр содержимого файла, перенаправление вывода, создание, копирование и перемещение файлов и каталогов, поиск по файлам, сравнение, замена, форматирование. Команд много, некоторые из них я не знал и не запомнил. В основном они просто перечислены без глубокого объяснения, так что за деталями лучше обращаться к другим источникам. Автор упомянул графические интерфейсы в предыдущей главе, но ничего не сказал о разновидностях оболочек командной строки. Как и в любой книге по Linux, здесь рассматривается разница между обычными пользователями и суперпользователем, символы решетки и доллара. Небольшая часть главы посвящена и графическим редакторам — как встроенным, так и тем, которые нужно устанавливать отдельно.
Глава 5 посвящена настройке сетевых интерфейсов. Здесь речь идет в основном о физической настройке: адаптеры, коммутаторы, витая пара, коннекторы RJ-45. Автор не забыл упомянуть и об инструменте для обжима витой пары. Приведена схема обжима. Из теории — пара слов о команде ifconfig и DHCP-сервере, о котором далее будет рассказано подробнее.
Базовая настройка сервера
Глава 6 рассказывает про маршрутизацию и настройку брандмауэра. Признаюсь, таблицы маршрутизации, команды для их настройки и работа с пакетами запомнились мне плохо. Возможно, потому что я не системный администратор, и в бэкенде или фронтенде с этим напрямую не сталкиваешься. Брандмауэр рассматривается на примере iptables и ufw.
Глава 7 посвящена SSH-протоколу. Автор затронул алгоритмы, которые поддерживает OpenSSH (используемый в Linux): Blowfish, 3DES (Data Encryption Standard), IDEA (International Data Encryption Algorithm) и RSA (Rivest-Shamir-Adleman algorithm). Затем идет разбор конфигурационного файла SSH с доступными комментариями. Все параметры запомнить сложно, да и, пожалуй, не нужно. Завершается глава примерами копирования файлов по SSH, а также оптимизацией и повышением производительности.
Глава 8 — общие вопросы администрирования веб-сервера. Здесь автор делает паузу в технических вопросах и дает немного теории, на мой взгляд, важной и интересной. Он подробно объясняет разницу между физическим, виртуальным и выделенным сервером, а также когда какой вариант предпочтителен. Спойлер: физический сервер вам, скорее всего, не нужен. Приведены плюсы и минусы каждого типа. Например, физический сервер требует второй интернет-линии, вентиляции помещения и охраны. Вторая часть главы посвящена критериям выбора сервера. Вот несколько пунктов из списка:
- Уровень сертификации по Tier
- Наличие лицензий ФСТЭК
- Физическое размещение серверов (ФЗ-152)
- Базовая скорость интернет-канала
- Скорость работы дисковой подсистемы
- Тарификация и платежи
- Что представляет собой виртуальное ядро
Глава 9 посвящена работе с FTP. Перед установкой FTP-сервера нужно выбрать подходящий вариант. Автор предлагает: wu-ftpd (старый, но проверенный), vsftpd (легковесный), pure-ftpd (компактный), proftpd (гибкий и универсальный). Затем идет установка proftpd и разбор его настроек. В конце — пара слов про оптимизацию и ускорение FTP-сервера.
Глава 10 объясняет, как работает DNS. Затем автор настраивает кэширующий DNS-сервер на примере BIND9 и unbound. Разбираются конфигурационные файлы с комментариями.
Глава 11 более подробно рассказывает о DHCP-сервере, его назначении и сферах применения.
Глава 12 посвящена интеграции Linux в Windows-инфраструктуру. Я с этим не работаю, поэтому почти ничего не добавил в конспект.
Глава 13 — резервное копирование. Интересные моменты: Автор четко описывает, что нужно бэкапить и в каких случаях. Он упоминает автоматизированные системы (Amanda, Bacula), но сам предлагает скрипт, который создает резервную копию и отправляет ее по SSH.
Глава 14 посвящена безопасности сервера. Здесь рассматриваются: локальная безопасность (пломбы, защита BIOS), защита от сетевых атак, защита служб (на примере: fail2ban), шифрование данных (на пример eCryptfs). Также перечислены виды DDoS-атак (Smurf, ICMP-flood, UDP-flood) с краткой историей их появления.
Выделенный веб-сервер на основе Linux
Глава 15 посвящена настройке веб-сервера. Здесь не рассматривается nginx, но рассматривается Apache. Помимо Apache, также можно увидеть настройку и конфигурацию СУБД MySQL, PHP (со всеми основными библиотеками), и в качестве примера автор устанавливает еще и CMS Magento. Далее начинается самое интересное: автор выделяет директивы Apache в группы (всего 11 групп) и кратко описывает их назначение. Я лишь для примера опишу несколько групп:
- Директивы протоколирования: ErrorLog, TransferLog, HostnameLookups.
- Директивы ограничения доступа: AllowOverride, Options, Limit.
- Директивы управления производительностью: StartServers, MaxSpareServers, MinSpareServers, а также директива CacheNegotiatedDocs.
- Директивы обеспечения постоянного соединения с клиентом: Timeout, KeepAlive, KeepAliveTimeout.
В завершение - небольшой подпункт про защиту сервера Apache. Пункт краткий, и в конспект ушло немного информации.
Глава 16 посвящена SSL-сертификатам. Из интересного - разновидности SSL-сертификатов, о которых я раньше не особо задумывался: DV (Domain Validation), OV (Organization Validation), EV (Extended Validation). Далее идет информация о том, что представляют собой эти сертификаты и в каких форматах они хранятся (PEM, DER, PKCS #7 / P7B и др.), а также о том, как переконвертировать их из одного формата в другой. Также в этой главе рассматривается Let’s Encrypt как самый простой способ создания сертификата.
Глава 17 посвящена выбору и установке панели управления сервером. Рассмотрены как платные и популярные панели (cPanel, DirectAdmin, ISPManager, Plesk), так и бесплатные (Webmin, VestaCP, ISPConfig, Ajenti). Более подробно и детально разобрана Webmin.
Глава 18 посвящена повышению производительности сервера. Здесь есть четкий чек-лист, включающий следующие пункты (на что нужно обратить внимание в первую очередь при наличии проблем с производительностью):
- Количество клиентов и конфигурация сервера
- Настройки Apache
- Версия PHP
- Директива memory_limit
- Директива max_execution_time
- Настройка сжатия и кэширования
- Включение кэширования на стороне сервера (использование Memcached)
- Настройка CMS
Каждый пункт, разумеется, разобран более детально.
Глава 19 посвящена настройке почты на веб-сервере. Автор устанавливает пакет ssmtp, регистрирует почту на Gmail и конфигурирует SMTP-сервер.
Глава 20 посвящена решению типовых проблем. Во-первых, автор рекомендует установить Zabbix или хотя бы Яндекс.Метрику для отслеживания статистики. Во-вторых, он разбирает самые распространенные ошибки, среди которых:
- Закончилось дисковое пространство/свободные иноды.
- Нехватка прочих ресурсов (память, процессор и др.).
- Неправильная конфигурация сервера.
Также в этой главе упоминаются логи и приводится список утилит для мониторинга различных показателей сервера – от htop и atop до apachetop и jnettop.
В двух последних главах, не считая финансовых расчетов автора и философских рассуждений о том, что выгоднее – виртуальный или физический сервер, можно выделить, пожалуй, создание своего Zoom-а (установку и конфигурирование приложения BigBlueButton для проведения онлайн-конференций).
Вывод
Общий комментарий: книга безусловно очень понравилась, хорошо структурирована и читается довольно легко. В ней много изображений, комментариев и пояснений. Она подойдет как бэкенд-, так и фронтенд-разработчикам, которые решили глубже изучить системное администрирование на примере Linux и пройти вместе с автором путь от установки ОС до конфигурации и последующей настройки веб-сервера и сопутствующего программного обеспечения. Из минусов можно отметить только большой объем информации, который без практики, к сожалению, далеко не в полном объеме сразу запоминается.