Новая установка Void Linux минимальна по дизайну. Вы получаете загрузочную систему, оболочку и многое другое. Вот в чем дело. Но между простой установкой и полезной рабочей станцией или сервером есть пробел, который необходимо заполнить: журналирование, правила брандмауэра, правильный редактор, синхронизация времени и учетная запись пользователя, которая не является root.
В этом руководстве рассматриваются основные этапы после установки Void Linux (glibc, x86 64). Все здесь было протестировано на чистой установке с изображением базовой системы. Если вы из дистрибутива на системной основе, такого как Rocky Linux или Ubuntu, обратите пристальное внимание на разделы рунита и XBPS, потому что Void делает все по-другому, и различия имеют значение.
Предварительные условия
- Сервер под управлением Void Linux.
- Привилегии пользователя: пользователь root или не root с привилегиями sudo.
Конвенции
| |
Обновите систему
Свежая установка Void Linux требует обновления пакетов до последних доступных версий.
| |
После того, как xbps включен, запустите полное обновление системы.
| |
Система может нуждаться в перезагрузке после обновления.
| |
Настройка System Logging
Базовая установка Void не имеет демона регистрации. Это означает, что сообщения ядра, события аутентификации и сбои в обслуживании исчезают в пустоте (без каламбура). Рекомендуемым решением является socklog, который интегрируется с рунитом нативно.
| |
Включите службы журналов пользовательского пространства и ядра:
| |
В течение нескольких секунд Runit получает новые симлинки и автоматически запускает сервисы. Журналы хранятся в /var/log/socklog/ с подкаталогами для каждого объекта. Чтобы прочитать последние системные сообщения:
| |
Для конкретной категории журнала, такой как события аутентификации:
| |
Добавьте своего обычного пользователя в группу socklog, чтобы вы могли читать журналы без sudo:
| |
Выходите и возвращайтесь, чтобы изменение группы вступило в силу.
Установите основные инструменты
В базовой установке не хватает большинства утилит, которые вы ожидаете от рабочей системы. Установите практический набор инструментов за один проход:
| |
Подтвердите установленные версии:
| |
Выход подтверждает пакетные версии, вытянутые из репо:
| |
Для рабочих нагрузок веб-сервера посмотрите, как установить Nginx на Void Linux или развернуть полный стек LAMP на Void Linux.
Настройка Firewall с помощью nftables
У Void нет правил брандмауэра из коробки. Каждый порт на машине широко открыт. nftables является современной заменой iptables и хорошо работает на Void с рунитом.
| |
Создайте базовую конфигурацию брандмауэра, которая позволяет SSH, установленные соединения и ICMP (ping) при отказе от всего остального:
| |
Включите и запустите сервис nftables:
| |
Убедитесь, что правила загружены:
| |
Выход должен отражать конфигурацию, которую вы написали:
| |
Чтобы позже открыть дополнительные порты (например, HTTP и HTTPS), добавьте правила перед закрытием скобки входной цепи и перезагрузите с помощью sudo sv restart nftables.
Создайте регулярного пользователя
Запуск всего как root — плохая привычка, которая в конечном итоге догоняет вас. Создайте обычную учетную запись пользователя с домашним каталогом:
| |
Флаг -G wheel добавляет пользователя в группу колес, которая является стандартной группой для доступа sudo в большинстве дистрибутивов Linux. Теперь установите и настройте sudo:
| |
Отредактируйте файл sudoers, чтобы позволить группе колес:
| |
Раскомментируйте эту строку:
| |
Пользователь sysadmin теперь может запускать привилегированные команды с помощью sudo. Если вы предпочитаете более легкую альтернативу, Void также упаковывает opendoas, который проще настроить и популярен в мире BSD. Установите его с помощью sudo xbps-install opendoas и создайте /etc/doas.conf, содержащий разрешение на сохранение permit persist :wheel.
Скачать Default Shell
Bash отлично работает, но если вы проводите часы в терминале каждый день, оболочка с лучшим автозаполнением и подсветкой синтаксиса имеет значение. Fish - это надежный выбор, который хорошо работает из коробки без необходимости конфигурации.
| |
Проверьте установленную версию:
| |
Это подтверждает наличие рыбы 4.6.0:
| |
Измените оболочку по умолчанию:
| |
Выходите и возвращайтесь, чтобы изменения вступили в силу. Если вы предпочитаете zsh, установите его с помощью sudo xbps-install zsh и запустите chsh -s /usr/bin/zsh. Оба варианта являются отличным выбором, хотя fish требует меньше начальной конфигурации.
Синхронизация сетевого времени
Точные системные часы имеют большее значение, чем думает большинство людей. Валидация сертификата TLS, корреляция журналов, сроки работы cron и системы сборки зависят от этого. Void не поддерживает NTP по умолчанию. Chrony легкий, хорошо справляется с прерывистым подключением и является рекомендуемым NTP-клиентом для большинства случаев использования.
| |
Конфигурация по умолчанию в /etc/chrony.conf использует общедоступные пулы NTP и работает без изменений для большинства настроек. Включите сервис:
| |
Через несколько секунд проверьте состояние синхронизации:
| |
На выходе показано смещение системных часов от источника NTP:
| |
Смещение «время системы» менее чем на 1 секунду означает, что все работает правильно.
Понимание управления сервисом Runit
Если вы пришли из системы, runit сначала почувствует себя чужим. Основная концепция проста: определения сервисов живут в /etc/sv/, и сервис становится активным, когда вы связываете его с /var/service/. Рунит наблюдает /var/service/ и запускает все, что находит там. Удаление symlink отключает сервис.
Одна вещь, которая застает большинство людей врасплох: рунет автоматически перезагружает сервисы, если они падают. Не существует двух шагов «enable и start». В тот момент, когда вы создаете symlink в /var/service/, рунит запускает сервис и будет продолжать перезапускать его, если он выйдет. Чтобы временно остановить услугу, не отключая ее, используйте sv down SERVICE. Он остается остановленным до тех пор, пока вы не запустите sv up SERVICE или перезагрузитесь.
Чтобы увидеть все доступные услуги (установленные, но не обязательно включенные):
| |
Сравните это с тем, что на самом деле работает:
| |
Разница между этими двумя списками говорит вам, какие службы установлены, но отключены.
Управление пакетами с XBPS
XBPS быстрый и простой, когда вы изучаете команды. Соглашения об именах отличаются от apt или dnf, но операции отображаются непосредственно. Вот краткая информация:
- Установить пакет:
xbps-install pkg - Удалить пакет:
xbps-remove pkg - Удалить сироты:
xbps-remove -Ro pkg - Поиск пакета:
xbps-query -Rs keyword - Показать пакет информации:
xbps-query -R pkg - Список установленных пакетов:
xbps-query -l - Список файлов в пакете:
xbps-query -f pkg - Синхронизация:
xbps-install -S - Полное обновление: системы:
xbps-install -Syu
Один полезный трюк: xbps-query -Rs ищет удаленные репозитории, в то время как xbps-query -s (без капитала R) ищет только локально установленные пакеты. Различие имеет значение, когда вы пытаетесь выяснить, что-то уже установлено или просто доступно.
Чтобы очистить кэшированные пакеты и восстановить дисковое пространство:
| |
Флаг -O удаляет кэшированные файлы пакетов и -o удаляет осиротевшие зависимости. Периодически запускайте это, чтобы держать систему актуальной.
Завершение
Если вам понравился этот пост об основных этапах после установки Void Linux, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.