- Установка и настройка Arch Linux в качестве сервера
- Загрузка ISO образа и запись диска
- Подключение будущего сервера к интернету
- Создание и монтирование разделов жесткого диска
- Установка базовой системы
- Генерация fstab
- Вход(chroot) в свежеустановленную систему
- Настройка интернет соединения
- Установка языка, часового пояса и прочих настроек
- Установка репозитория Arch Linux
- Настройка имени сервера (hostname)
- Создание пользователя и выдача sudo привилегий
- Указание пароля для root пользователя
- Установка SSH сервера
- Установка и настройка загрузчика GRUB
- Выход из системы(chroot) и отмонтирование файловой системы
- Подключение по SSH
- Начальная установка сервера Arch Linux
- 1: вход в систему как root
- 2: изменение пароля
- 3: создание нового пользователя
- 4: root-права
- 5: конфигурирование SSH
- 6: финальная перезагрузка
Установка и настройка Arch Linux в качестве сервера
В соответствии с «Arch Linux Wiki«. Arch Linux — это независимо разрабатываемый i686/x86-64 дистрибутив GNU/Linux общего назначения, достаточно гибкий для выполнения любой роли. Процесс разработки фокусируется на простоте, минимализме и элегантности кода. Arch устанавливается в виде минимальной базовой системы, настраивается пользователем под собственные нужды путём построения уникальной среды с установкой только необходимых компонентов. Инструменты настройки с графическим интерфейсом официально не предоставляются, и большая часть настроек системы выполняется из консоли путём редактирования простых текстовых файлов. Основанный на модели плавающих релизов, дистрибутив Arch стремится оставаться предельно современным и предлагает последние стабильные версии большинства пакетов.
В данной статье я расскажу как происходит базовая установка и настройка Arch Linux в качестве сервера.
Загрузка ISO образа и запись диска
Загрузить ISO образ можно с официального сайта Arch Linux
После загрузки образа, запишите его на диск, любым удобным для вас способом.
Также можно загрузить образ на флешку.
После записи диска/флешки, вставьте его и дождитесь загрузки диска:
Окно загрузки Arch Linux
В данном окне выберите Boot Arch Linux (x86_64)
Подключение будущего сервера к интернету
Для начала установки нужно убедиться, что вы подключены к интернету.
Проще всего проверить это выполнив команду ping:
Создание и монтирование разделов жесткого диска
В данном шаге мы создадим разделы жесткого диска, для этого воспользуемся утилитой cfdisk, используем тип раздела «dos». Будут созданы разделы / для корневой файловой системы и swap, для swap устройства. Допустим, что /dev/sda — наш жесткий диск.
В моем случае у меня был диск на 80гб:
Создадим / (корневой) раздел, размером 76гб:
[New] -> Enter Partition Size -> 76G Primary or Extended -> Select Primary Select [Bootable] -> Enter
Создадим swap раздел (4гб):
[New] -> Enter Partition Size -> 4G Primary or Extended -> Select Primary Select [Write] -> Enter -> type: yes Select [Quit]
Создадим файловую систему на корневом / разделе. Для этого отформатируем его в файловую систему ext4:
Отформатируем раздел /dev/sda2 , для создания swap:
Подключим swap:
Примонтируем корневой раздел (/dev/sda1) в /mnt:
Установка базовой системы
Перед установкой вы можете изменить файл /etc/pacman.d/mirrorlist , для указания предпочтительных серверов обновлений:
nano /etc/pacman.d/mirrorlist
Также копия этого файла будет установлена в вашу систему.
Далее, установим базовую систему с помощью pacstrap. Если вы собираетесь компилировать ПО из AUR, также установите группу пакетов base-devel.
pacstrap -i /mnt base base-devel
Генерация fstab
Сгенерируем файл fstab с UUID в качестве имен устройств:
genfstab -U -p /mnt >> /mnt/etc/fstab
Проверим правильность сгенерированного fstab:
Вход(chroot) в свежеустановленную систему
Войдем (chroot) в свежеустановленную, но не настроенную систему:
Настройка интернет соединения
Для начала узнаем имя сетевой карты сервера:
В нашем случае это enp0s3. Попытаемся получить IP автоматически, используя DHCP:
systemctl enable dhcpcd@enp0s3.service
Установка языка, часового пояса и прочих настроек
В этом шаге зададим язык системы, время, дату и часовой пояс.
Для начала откроем файл /etc/locale.gen:
Вы получите длинный список языков. Выберите нужный и раскомментируйте его (уберите # перед ним). В статье будет использован только английский язык, поэтому раскомментируем строки en_US.UTF-8 UTF-8, en_US ISO-8859-1. Для русской локали следует также раскомментировать ru_ru.UTF-8 UTF-8. Нажимаем Ctrl-x,а потом y, для сохранения изменений.
После чего сгенерируем выбранные локали:
Укажем язык по умолчанию:
echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8
Для русской локали следует заменить en_US.UTF-8 на ru_RU.UTF-8
Далее укажем часовой пояс, но перед этим найдем наш часовой пояс (в статье будет использован часовой пояс America/New_York):
Например, для России и московского времени это будет часовой пояс Europe и подпояс Moscow.
Создадим ссылку на выбранный часовой пояс:
ln -s /usr/share/zoneinfo/America/New_York > /etc/localtime
Настроим системные часы:
Установка репозитория Arch Linux
Настроим репозиторий Arch Linux, для этого откроем файл /etc/pacman.conf
Включим репозиторий multilib, он нужен, если вы на 64-битной версии захотите запустить 32-битные приложения. Для включения репозитория нужно раскомментировать строки:
[multilib] Include = /etc/pacman.d/mirrorlist
Добавим неофициальный репозиторий:
[archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch
Сохраним изменения и обновим репозиторий Arch Linux:
Настройка имени сервера (hostname)
Запишем нужное имя сервера в файл /etc/hostname:
echo your_hostname > /etc/hostname
echo archserver > /etc/hostname
Замените archserver на нужное вам имя.
Проверим установленное имя:
Создание пользователя и выдача sudo привилегий
Теперь нам нужно создать пользователя. Этот пользователь должен будет подключаться к серверу, дадим ему sudo привелегии, для выполнения задач от имени администратора:
useradd -m -g users -G wheel,storage,power -s /bin/bash USER_NAME
Где USER_NAME — имя вашего пользователя
useradd -m -g users -G wheel,storage,power -s /bin/bash archuser passwd archuser
Далее установим sudo и bash-completion:
pacman -S sudo bash-completion
Откроем файл /etc/sudoers
найдем и раскомментируем следующую строку:
Указание пароля для root пользователя
Укажем пароль для root пользователя:
И введем новый пароль 2 раза
Установка SSH сервера
Установим SSH сервер:
Добавим его в автозагрузку:
systemctl enable sshd.service
Установка и настройка загрузчика GRUB
Установим пакеты grub и os-prober:
Установим grub на жесткий диск:
grub-install --recheck /dev/sda
Создадим файл конфигурации GRUB:
grub-mkconfig -o /boot/grub/grub.cfg
Выход из системы(chroot) и отмонтирование файловой системы
Выйдем из chroot сессии:
Отмонтируем файловую систему:
Перезапустим Arch Linux:
Подключение по SSH
Теперь мы можем подключиться к нашему серверу по SSH:
ssh имя_пользователя@ip_сервера
Начальная установка сервера Arch Linux
Подключаясь к только что созданному серверу, нужно принять определенные меры безопасности. Создание нового пользователя и передача ему надлежащих привилегий, а также конфигурирование SSH – одни из первых задач, которые нужно выполнить.
1: вход в систему как root
Когда IP-адрес и root-пароль установлены, войдите на сервер как главный пользователь, или root. На компьютере Mac вход можно выполнить через терминал, на ПК – через PutTTy.
Постоянно использовать root не рекомендуется. Данное руководство поможет создать нового пользователя для постоянного входа на виртуальный выделенный сервер.
The authenticity of host ‘123.45.67.890 (123.45.67.890)’ can’t be established.
ECDSA key fingerprint is 79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Are you sure you want to continue connecting (yes/no)?
Наберите «yes», затем введите root-пароль.
2: изменение пароля
На данный момент root-пароль установлен по умолчанию и был выслан при регистрации сервера. Первое, что нужно сделать – изменить его на свое усмотрение.
3: создание нового пользователя
После изменения пароля входить на VPS как root-пользователь больше не понадобится. Теперь нужно создать нового пользователя и передать ему все root-привилегии на сервере.
Для нового пользователя можно выбрать любое имя. В данном руководстве используется имя «exampleuser».
Флаг «-m» создает домашний каталог для нового пользователя.
Чтобы изменить пароль нового пользователя, вызовите команду:
4: root-права
На данный момент все привилегии управления сервером принадлежат пользователю root. Теперь необходимо передать все root-права новому пользователю.
Выполняя какую-либо задачу с нового пользователя, рекомендуется использовать фразу «sudo» перед командой. Данная фраза полезна по двум причинам: 1) она предупреждает любые разрушающие систему ошибки; 2) она сохраняет все запущенные с её помощью команды в файл /var/log/secure, который при необходимости можно просмотреть.
Затем необходимо отредактировать конфигурацию sudo. Vi, текстовый редактор, который используется для данного файла, не распознает клавиш со стрелкой. Для перемещения вниз используется клавиша «j», вверх – «k», влево – «h», вправо – «l». Кроме того, текст можно отредактировать при помощи клавиши «а» и удалить, нажав «Escape» и затем «х».
Найдите раздел под названием user privilege specification («настройка пользовательских привилегий»).
# User privilege specification
root ALL=(ALL) ALL
Внесите приведенную ниже строку под этой строкой, чтобы передать все привилегии новому пользователю:
Нажмите Escape, и затем Shift ZZ, чтобы сохранить изменения и выйти.
5: конфигурирование SSH
Теперь нужно повысить уровень безопасности сервера.
Откройте конфигурационный файл:
Найдите следующие разделы и внесите необходимую информацию. Убедитесь, что строки также были раскомментированы, в противном случае изменения не вступят в силу (слова и фразы файла можно найти, нажав Control-W):
Port 25000
PermitRootLogin no
Port: хотя порт 22 используется по умолчанию, его можно заменить любым номером в диапазоне от 1025 до 65536. В данном примере используется порт 25000. Не забудьте записать новый номер порта. В дальнейшем он понадобится при входе на сервер. Данное изменение усложнит вход для неавторизованных пользователей.
PermitRootLogin: чтобы деактивировать вход с root, измените в данной строке yes на no. С этого момента на сервер можно войти только через нового пользователя.
6: финальная перезагрузка
Перезагрузите SSH, чтобы привести новые порты и настройки в исполнение:
Чтобы проверить новые настройки (не выходите из root), откройте новое окно терминала и войдите как новый пользователь.
Не забудьте внести новый номер порта.
ssh -p 25000 exampleuser@123.45.67.890
Убедившись, что на сервер можно войти с помощью нового пользователя, можете выйти из root.