Debian - один из самых старых и популярных Linux-дистрибутивов общего применения, одинаково подходящего для создания как сервера, так и рабочей станции. Но сегодня мы поговорим именно о серверном применении, где Debian ценится, в первую очередь, за высочайшую стабильность и консервативность. В данной статье мы пошагово расскажем, как установить и настроить Debian 11 в минимальной серверной конфигурации, которую потом можно будет использовать как основу для любых серверных решений на базе этой системы.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Для установки мы будем использовать образ Netinstall, который сейчас предлагается к скачиванию по умолчанию и предполагает наличие доступа к интернет во время установки. Однако, вопреки распространенному мнению, вы можете выполнить с его помощью минимальную установку системы, даже не имея доступа к сети. Все образа Debian являются гибридными, они могут быть записаны как на оптический носитель, так и на USB-флеш накопители.
Начало установки
После того, как вы загрузились с установочного носителя, вас встречает меню, в котором вы можете выбрать варианты установщика: текстовый или графический. Мы будем использовать текстовый режим, поэтому выбираем второй пункт - Install.
Затем следует выполнить ряд настроек будущей системы, которыми не следует пренебрегать. Начнем с выбора языка установки, в соответствие с которым будут сделаны языковые и региональные настройки системы.
Укажите сочетание клавиш для переключения раскладки, по умолчанию предлагается стандартный Alt + Shift.
В дальнейшем установщик попытается настроить сеть и если в вашей сети есть работающий DHCP-сервер, то сетевые настройки будут получены автоматически, иначе вы можете ввести их руками или продолжить установку без сети, в этом случае будет доступна только минимальная установка.
Следующий важный шаг - настройка пользователей. Debian предлагает несколько вариантов: с активным пользователем root или через sudo, когда учетная запись суперпользователя отключена и административные права получает созданный при установке пользователь (как в Ubuntu). Если исходить из соображение безопасности, то второй вариант лучше, но вы можете настроить систему по собственному усмотрению.
Сделать это просто: если вы укажете пароль root, то суперпользователь будет включен, а созданная далее учетная запись получит обычные права, утилита sudo установлена не будет. Если оставить пароль root пустым, то учетная запись суперпользователя будет отключена, установлена утилита sudo и созданный на следующем шаге пользователь получит административные права.
При отсутствии сети доступен только первый вариант (с активной учетной записью root).
После настройки учетной записи суперпользователя вам будет предложено создать обычную учетную запись, никаких проблем с этим возникнуть не должно, достаточно указать желаемое имя и пароль.
Ну и наконец выполните настройки часового пояса, предлагаемый список основан на сделанных в самом начале установки языковых и региональных настройках. Ни в коем случае не следует пренебрегать данным шагом, так как современные системы крайне чувствительны к правильной настройке времени.
На этом начальный этап установки завершен.
Разметка дискового пространства
Пожалуй, разметка дисков - это самый важный этап процесса установки, с принятыми на этом этапе решениями вам потом придется жить все время существования системы, так как изменить многие из них без переустановки не удастся. Сразу начнем с того, что, если вы не знаете как именно разметить диск - размечайте его самым простым образом, в большинстве случаев отдельного раздела будет достаточно. Тоже самое касается и выбора файловой системы - ext4 успешно закрывает большинство сценариев, не следует использовать иные файловые системы если вы не имеете опыта работы с ними и не знаете зачем они вам нужны.
Автоматическая разметка
Если вы поднимаете очередной сервер для рядовых задач с единственным диском, то автоматическая разметка является неплохим вариантом. На выбор предлагаются: простая разметка, разметка с LVM и LVM с шифрованием, и, хотя LVM весьма мощный инструмент, во многих случаях он будет избыточен и достаточно простой разметки.
Для всех представленных вариантов предлагается три схемы разметки: все файлы в одном разделе, выделение /home и выделение /home, /var и /tmp. Для сервера подходит только первый вариант, тогда как второй предпочтителен для рабочих станций. Третий, кроме как недоразумением назвать нельзя. Автоматически бить диск на несколько разделов, не имея четкого понимания причин такого разделения - глупо. А имея понимание и представление проще настроить сразу как надо вручную. Поэтому безальтернативно выбираем Все файлы в одном разделе.
В этом случае система выполнит классическую разбивку: корневой раздел в начале диска и раздел подкачки в его конце.
Для UEFI-систем добавится ESP-раздел c EFI-загрузчиком в самом начале диска, затем корневой и подкачка.
На этом этапе вы можете либо поправить схему разметки, либо оставить все как есть и перейти к следующему этапу нажав Сохранить разметку и записать изменения на диск.
Ручная разметка
Автоматическая разметка - это хорошо, вы получите заведомо рабочий результат без лишних действий, но это будет не самый оптимальный вариант. Поэтому можно разметить диск вручную и сразу так, как нужно. Если вы используете SSD, то мы советуем отказаться от стандартной схемы разметки и перенести раздел подкачки в начало диска. Почему?
Исторически раздел подкачки располагался в конце диска, потому что кривая скорости доступа жестких дисков представляла собой пологую дугу, наибольшая скорость была в начале и плавно снижалась к концу диска. Вполне логично, что систему размещали в наиболее быстрой области, а подкачку в более медленной. С твердотельными накопителями все иначе, да и понятие "начала" и "конца" диска там весьма условны, во всяком случае скорость доступа не зависит от физического места размещения данных. Поэтому при разметке мы можем исходить из иных соображений, например, удобства обслуживания.
Если при классической схеме мы скопируем разметку на более емкий диск или увеличим диск виртуальной машины, то получим схему: корневой раздел - подкачка - свободное место. Конечно, если вы используете LVM, то такая схема не доставит затруднений, а вот в остальных случаях вам придется потратить дополнительное время на перемещение раздела подкачки в конец диска и расширения корневого раздела на свободное место.
Если же поместить подкачку вначале диска, то вы получите: подкачка - корневой раздел - свободное место, после чего расширить основной раздел не составит труда.
При использовании EFI не забывайте, что первым должен идти ESP-раздел.
Перейдем к практике, на первом экране разметки дисков выбираем метод Вручную, затем выберите из списка нужный диск и нажмите Enter:
Будет предложено создать новую таблицу разделов, соглашаемся с этим. Мы рекомендуем создавать новую таблицу разделов каждый раз при новой установке.
Теперь на нашем диске появится пункт Свободное пространство, переходим на него и снова нажимаем Enter, будет предложено создать новый раздел.
Если у вас UEFI-система, то сначала создаем раздел размером не менее 500 МБ:
Указываем его местоположение в начале диска:
И выбираем тип Системный раздел EFI, метка "загрузочный" будет включена автоматически.
Затем точно также создаете раздел подкачки нужного размера:
И корневой, на все оставшееся место. По умолчанию предлагается файловая система ext4, советуем ее оставить, если нет действительных оснований использования другой файловой системы и понимания всех плюсов и минусов ее использования.
В итоге вы должны получить следующий вариант разметки:
В MBR-системах у вас будет просто раздел подкачки и корневой раздел.
Настройка LVM
Ручная настройка LVM - достаточно сложный процесс, требующий определенных знаний и выходящий за рамки данной статьи, поэтому мы будем рассматривать автоматическую настройку и сопутствующие этому особенности, для ручной настройки LVM следует обратиться к нашей статье:
LVM для начинающих. Часть 2. Основы управления томами
Важной особенностью LVM-разметки является то, что загрузчик (раздел /boot) должен находиться за ее пределами, в UEFI-системах также за пределами LVM следует располагать и ESP-раздел. Таким образом выбрав автоматическую разметку LVM и схему Все файлы в одном разделе мы получим следующую схему:
Как мы говорили выше, система автоматически создала ESP и /boot разделы размером по 500 МБ каждый, при этом ESP раздел должен располагаться первым. Запомните эту особенность на случай ручной настройки LVM в последующем. Также обращаем ваше внимание, что для современных ядер минимальный размер /boot раздела должен быть не менее 500 МБ, встречающиеся рекомендации в 256 МБ следует считать устаревшими.
Что касается самой LVM-разметки, то создана единственная группа томов (VG) - debian-vg, внутри которой расположены два логических тома (LV): root и swap_1. Расположение логических томов на диске роли не играет, так как LVM позволяет гибко управлять пространством томов, не оглядываясь на физическую конфигурацию дисковой подсистемы.
Настройка программного RAID
Программный RAID широко используется для обеспечения отказоустойчивости дисковой подсистемы и поэтому его настройку нельзя обойти стороной. Как и с LVM, при настройке программного RAID имеются некоторые особенности. В UEFI-системах ESP-разделы также следует располагать за пределами RIAD-массивов, однако на этом особенности настройки программного RAID не заканчиваются, и мы советуем обратиться к нашей статье:
Настраиваем программный RAID на UEFI-системах в Debian и Ubuntu
Отдельного разговора также заслуживает раздел подкачки. Мы, конечно, можем объединить его в RAID, но вот толку от этого немного, своп не содержит никаких критических данных, которым требуется отказоустойчивость, поэтому более разумно оставить разделы подкачки на каждом диске, не создавая из них массив. Этим вы получите в два раза больший объем пространств подкачки и более высокое быстродействие, так как будет отсутствовать пенальти на запись и современные системы умеют работать с несколькими пространствами подкачки параллельно.
Что касается схемы разметки, то мы точно также советуем размещать раздел подкачки перед корневым, в UEFI-системах самым первым должен быть ESP-раздел.
Основной залог успешного создания программного RAID-массива - это одинаковая разметка для входящих в его состав томов. Поэтому план действий будет следующий. Создаем на обоих дисках новую таблицу разделов.
Затем размечаем согласно принятой схемы, основное внимание уделяем одинаковым размерам разделов. В итоге мы должны получить на каждом диске два одинаковых раздела подкачки и два раздела для RAID, система предложит по умолчанию отформатировать в ext4 и смонтировать как корень и /home, на самом деле это не имеет никакого значения, главное - полная идентичность разметки. В UEFI-системах к ним еще добавится два ESP-раздела, которые должны располагаться самыми первыми.
Теперь переходим в раздел Настройка программного RAID и выбираем пункт Создать MD-устройство.
Затем выбираем тип RAID, в современных условиях практический смысл имеют RAID 1 и RAID 10, в нашем случае мы можем собрать из двух дисков только RAID 1 (зеркало).
После чего указываем устройства, из которых мы будем собирать RAID-массив. Обратите внимание, что программный RAID строится по схеме один массив - один раздел. Поэтому если вы применяете разметку отличную от все файлы в одном разделе, то заранее создайте нужное количество разделов на каждом диске.
Теперь созданные нами ранее разделы на каждом из дисков будут представлены как Linux RAID, а в списке дисков появится новое RAID-устройство. Создаем на нем раздел с нужной файловой системой и точкой монтирования в корень.
А общая схема разметки будет выглядеть следующим образом:
На этом завершим тему разметки дисков и двинемся дальше.
Завершение установки
Если считать установкой системы именно копирование файлов на диск, то все это время мы занимались подготовкой и только по завершение разметки на диск была скопирована базовая система. После чего нам снова придется ответить на ряд вопросов. В первую очередь нам предложит выбрать зеркало репозиториев Debian, по соображениям быстродействия следует выбирать сервера расположенные как можно ближе к физическому размещению сервера. Скажем, если сервер в датацентре в условной Германии, то следует отдать предпочтение немецким серверам. Если не знаете, какое зеркало выбрать - оставьте значение по умолчанию.
После выбора зеркала система скачает и обновит списки пакетов, а также ряд ключевых элементов системы, после чего вам будет предложено выбрать компоненты для установки. Оставляем только SSH-сервер и Стандартные системные утилиты.
Теперь нажимаем на кнопку продолжить и ждем окончания процесса установки, так как пакеты скачиваются из сети общее время сильно зависит от скорости интернет-соединения.
В завершение будет предложено установить загрузчик GRUB, соглашаемся с этим предложением.
При этом можно заметить, что программа установки позволяет выбрать только один диск и если вы используете программный RAID, то на втором диске у вас загрузчика не будет. Это не то, чтобы плохо, установить загрузчик можно и позднее, но также просто об этом и забыть. Поэтому сначала установим загрузчик на первый диск.
А в следующем окне вместо предложения перезагрузить систему нажмем кнопку Вернуться.
Перед вами появится следующее меню, в котором выбираем пункт Установка системного загрузчика GRUB:
После чего установите загрузчик на второй диск.
На этом установка завершена, можете перезагружать систему.
Вход в систему, повышение прав
Так как мы уже установили пакет OpenSSH-сервера, то можем войти в систему как локально, так и удаленно. Второй способ безусловно удобнее, даже если сервер стоит у вас под боком, потому как SSH-консоль можно держать открытой на рабочем месте вместе с другими приложениями, скажем, браузером и копировать в нее нужные команды.
Первая особенность, с которой столкнется начинающий администратор - невозможность зайти под пользователем root через SSH, это связано с настройками безопасности, и мы не видим веских причин разрешать такой вход. Лучше всего сразу приучаться делать правильно. Поэтому войдите в систему под обычным пользователем.
Теперь нужно повысить права. Если суперпользователь включен, то используйте команду:
su -
После чего укажите пароль суперпользователя. Ключ - (-l, --login) вызывает оболочку регистрации входа пользователя, что эквивалентно непосредственному входу пользователя в систему. При этом будет изменен домашний каталог и применены все настройки рабочей среды суперпользователя (маска, переменные окружения и т.д.).
Если root выключен, то выполните команду:
sudo -s
И введите пароль пользователя, под которым вошли в систему. Ключ -s аналогичен ключу - команды su и позволяет открыть оболочку как будто бы при интерактивном входе суперпользователя в систему (со сменой домашнего каталога, переменных окружения и т.д.).
Настройка сети
На этапе установки мы уже получали сетевые настройки, но они были автоматические, теперь же настала пора присвоить нашему серверу статический IP-адрес. Прежде всего посмотрим, какие сетевые интерфейсы существуют и какие у них адреса, для этого выполните команду:
ip a
Как видим, у нас есть интерфейс локальной петли и сетевой адаптер ens33, который получил динамический адрес 192.168.233.130, допустим мы хотим присвоить ему статический адрес 192.168.233.81. Для этого откроем на редактирование файл /etc/network/interfaces:
nano /etc/network/interfaces
И приведем блок, относящийся к адаптеру ens33 к следующему виду:
allow-hotplug ens33
iface ens33 inet static
address 192.168.233.81
netmask 255.255.255.0
gateway 192.168.233.2
dns-nameservers 192.168.233.2
Набор опций понятен без дополнительных пояснений, мы указали адрес, маску сети, шлюз и DNS-сервера. Если их несколько, то указываем через пробел.
Сохраняем файл нажатием Ctrl + x.
Перезагружаем компьютер:
reboot
Теперь можем присоединиться к нему по новому адресу.
Настройка репозиториев
По умолчанию в Debian подключен только репозиторий main, содержащий только свободное ПО, соответствующее критериям FSF (Free Software Foundation, Фонд свободного ПО), но существуют еще два репозитория: non-free - бесплатно распространяемое ПО, не соответствующее критериям свободного ПО, contrib - программное обеспечение содержащее несвободные компоненты или требующие проприетарного ПО, например, Oracle Java.
Опытные пользователи, зная какие именно пакеты им нужны, могут подключить только необходимые репозитории, но не будет беды, если мы подключим их все. Для этого выполните команду:
sed -i "s/main/main contrib non-free/g" /etc/apt/sources.list
После чего не забудьте выполнить обновление списка пакетов:
apt update
После чего можно выполнить обновление системы:
apt full-upgrade
Или установить дополнительное ПО, обычно мы устанавливаем двухпанельный менеджер Midnight Commander и диспетчер задач Htop:
apt install mc htop
Настройка брандмауэра iptables
В Debian 11 в качестве брандмауэра установлен пакет nftables, это более мощное и продвинутое ПО, но требующее отдельного изучения. Если вы не готовы с ним работать, то можно вернуть привычный iptables и продолжать его использование. При этом на самом деле будет продолжать работать nftables, но в режиме совместимости с iptables.
Установим необходимые пакеты:
apt install iptables iptables-persistent
Теперь в порядке перечисленном ниже выполним следующие команды:
iptables -A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ens33 -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -i ens33 -p icmp -j ACCEPT
iptables -A INPUT -i ens33 -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -i ens33 -j DROP
Тем самым мы создадим минимальную конфигурацию брандмауэра. Первое правило разрешает уже установленные и связанные с ними соединения. Второе блокирует пакеты, не являющиеся первым пакетом соединения и не относящиеся к другим соединениям. Затем мы разрешаем соединения по протоколу ICMP (ping, PMTUD) и SSH-соединения (порт TCP 22). Затем полностью блокируем все остальные входящие соединения.
Проверяем, что все работает и сервер остается доступным по сети, после чего сохраняем правила командой:
iptables-save > /etc/iptables/rules.v4
Благодаря пакету iptables-persistent сохранённые правила теперь будут автоматически восстанавливаться при загрузке системы. Для их изменения удобнее всего вносить правки в файл /etc/iptables/rules.v4.
Редактируя файл следует придерживаться следующих правил: первыми всегда должны идти два правила, выделенные нами желтым, а последним - запрещающее. выделенное красным. Все остальные правила должны размещаться между ними, при этом учитывайте, что правила проверяются в порядке их перечисления в файле и после срабатывания правила прохождение пакета через брандмауэр прекращается. Поэтому размещайте более частные правила выше более общих, в противном случае они никогда не сработают.
После сохранения изменений загрузите правила командой:
iptables-restore < /etc/iptables/rules.v4
Посмотреть действующие правила и их счетчики можно командой:
iptables -L -vn
Не пренебрегайте настройкой брандмауэра даже если ваш сервер находится внутри периметра и не имеет непосредственного выхода во внешнюю сеть. Безопасности много не бывает!
Установка sudo и отключение учетной записи root
Если вы первоначально включили учетную запись суперпользователя, а теперь хотите ее выключить и далее работать через sudo, то следует выполнить ряд простых действий. Во-первых, установим пакет sudo:
apt install sudo
Затем добавим нужного пользователя в группу sudo:
usermod -a -G sudo andrey
В нашем случае это пользователь andrey. Затем выйдите из системы и войдите в нее снова, или просто перезагрузитесь. Проверьте, что указанный пользователь может повышать свои права при помощи sudo и только затем отключите учетную запись суперпользователя.
passwd -l root
Еще раз повторим, данная схема используется по умолчанию в Ubuntu и представляется нам более безопасной, нежели наличие активной учетной записи root.
Установка нового ядра
В Debian 11 используется достаточно актуальное ядро с длительным сроком поддержки 5.10 LTS, выпущенное 13.12.2020 года. Однако бывают ситуации, когда для поддержки оборудования или каких-то дополнительных возможностей требуется более свежее ядро. В этом случае потребуется установка более свежей версии. Ничего страшного в этом нет, но мы не рекомендуем устанавливать новые версии ядер без насущной на то необходимости. Хотя это Linux и здесь каждый сам кузнец собственного счастья.
Есть много способов обновить ядро, но мы рассмотрим самый безопасный - с использованием репозитория Backports. Он предоставляет пакеты из testing (в основном) и unstable (в некоторых случаях, например, для обновления безопасности) версий Debian, адаптированных для работы в стабильном (stable) выпуске.
Прежде всего подключим репозиторий:
echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" > /etc/apt/sources.list.d/bullseye-backports.list
И обновим список пакетов:
apt update
Затем перейдем к собственно обновлению. В системе существует метапакет linux-image-amd64, указывающий на последнюю версию ядра. Выполним:
apt policy linux-image-amd64
Как можем увидеть, доступны ядра 5.10 и 5.18, но так как репозиторий Backports имеет более низкий приоритет (100 против 500), то автоматического обновления ядра не произойдет и для его установки нужно будет выполнить команду:
apt install linux-image-amd64 -t bullseye-backports
Но ядро 5.18 не является ядром с длительным сроком поддержки и если вы сторонник разумной консервативности, то стоит сначала посмотреть полный набор доступных к установке ядер:
apt-cache search linux-image
В выводе команды мы без труда найдем пакеты последней LTS-версии 5.15.
Выбираем нужный нам пакет и устанавливаем его командой:
apt install linux-image-5.15.0-0.bpo.3-amd64 -t bullseye-backports
Перезагружаемся и убеждаемся, что система работает с новой версией ядра.
Заключение
В данном материале мы постарались коротко изложить все основные аспекты установки современной системы Debian для серверного применения, позволяющие разумно подойти к этому вопросу и получить на выходе полностью работающую систему, удовлетворяющую предъявленным требованиям. Но это только начало большого пути, и мы рекомендуем для дальнейшей настройки использовать материалы нашего сайта, как наиболее проверенные и совместимые с полученной в результате начальной настройки конфигурацией.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии