Базовая настройка FreeBSD 15 после установки: пошаговый гайд для системного администратора

Itnull

Команда форума
Администратор
Регистрация
22.05.13
Сообщения
28.387
Реакции
13.106
Веб-сайт
itnull.me
В этом руководстве мы разберем пошаговый чек-лист настройки FreeBSD 15 сразу после установки: от создания безопасного SSH-доступа до настройки фаервола PF и системного времени.

Шаг 1. Настройка сети и разрешения имен​

Если сеть не была настроена во время инсталляции, или вам нужно перевести сервер на статический IP-адрес, отредактируйте главный конфигурационный файл системы /etc/rc.conf.

Откройте файл текстовым редактором:
Bash:
ee /etc/rc.conf

(Утилита ee — это простой встроенный редактор во FreeBSD, отлично подходящий для быстрой правки конфигов).

Добавьте или измените следующие строки (замените em0 на имя вашего сетевого интерфейса, которое можно узнать через команду ifconfig):

Bash:
# Настройка статического IP и шлюза
ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
hostname="freebsd15.local"

Задайте DNS-серверы в файле /etc/resolv.conf:
Код:
nameserver 1.1.1.1
nameserver 8.8.8.8

Перезапустите сетевую службу для применения изменений:
Bash:
service netif restart && service routing restart

Шаг 2. Создание пользователя и настройка прав (sudo/doas)​

Работа под учетной записью root в повседневных задачах — грубое нарушение безопасности. Создадим обычного пользователя и добавим его в группу wheel (только члены этой группы могут повышать привилегии до root).
Bash:
pw useradd -n admin -m -s /bin/sh -g wheel -c "System Administrator"
passwd admin

Настройка doas (современная альтернатива sudo)​

Во FreeBSD 15 вместо тяжеловесного sudo всё чаще используют минималистичный doas (мигрировавший из OpenBSD). Установим менеджер пакетов и doas:
Bash:
pkg bootstrap
pkg install -y doas
Создайте конфигурационный файл /usr/local/etc/doas.conf:
Bash:
ee /usr/local/etc/doas.conf
Добавьте строку, разрешающую пользователям из группы wheel выполнять команды от имени root с запросом пароля:
Код:
permit keepenv :wheel

Шаг 3. Безопасный SSH-доступ​

По умолчанию SSH во FreeBSD включен, но его настройки требуют ужесточения. Откройте конфигурационный файл службы:
Код:
ee /etc/ssh/sshd_config
Bash:
Измените или раскомментируйте следующие директивы:
Bash:
Port 2222               # Меняем стандартный порт 22 на нестандартный
PermitRootLogin no      # Запрещаем вход под root напрямую
PasswordAuthentication no # Отключаем вход по паролю (переходим на SSH-ключи)
AllowUsers admin        # Разрешаем вход только конкретному пользователю
Важно: Перед тем как отключать PasswordAuthentication, добавьте ваш публичный SSH-ключ в файл /home/admin/.ssh/authorized_keys на сервере и проверьте права (каталог .ssh должен иметь права 700, а файл ключей — 600).
Перезапустите SSH-демон:
Bash:
service sshd restart

Шаг 4. Настройка фаервола PF (Packet Filter)​

PF — один из лучших фаерволов в мире Unix, встроенный в ядро FreeBSD. Создадим базовый, но надежный набор правил, который закрывает всё на вход, кроме нашего SSH-порта.

Создайте файл /etc/pf.conf:
Bash:
ee /etc/pf.conf
Вставьте следующую конфигурацию:
Код:
# Интерфейс (замените на свой)
ext_if = "em0"

# Разрешенные порты (наш измененный SSH)
allowed_ports = "{ 2222 }"

# Таблица для блокировки брутфорсеров
table <bruteforce> persist

# Политика по умолчанию: жесткий блок на всё
set skip on lo0
scrub in all

block in all
pass out all keep state

# Защита от брутфорса на SSH
block quick from <bruteforce>
pass in on $ext_if proto tcp from any to any port $allowed_ports \
    flags S/SA keep state \
    (max-src-conn 15, max-src-conn-rate 5/3, \
    overload <bruteforce> flush global)
Теперь включим PF в /etc/rc.conf, чтобы он стартовал вместе с системой:
Bash:
sysrc pf_enable="YES"
sysrc pf_rules="/etc/pf.conf"
sysrc pflog_enable="YES"
Запустите фаервол:
Bash:
service pf start

Шаг 5. Синхронизация времени (NTP)​

Для корректной работы логов, баз данных и криптографических протоколов системное время должно быть точным. Включим встроенный демон ntpd.

Добавьте службы автоматического запуска в /etc/rc.conf:
Код:
sysrc ntpd_enable="YES"
sysrc ntpd_sync_on_start="YES"
Выставите правильный часовой пояс интерактивной утилитой:
Код:
tzsetup

Запустите службу времени:
Код:
service ntpd start

Шаг 6. Автоматизация обновлений безопасности​

FreeBSD славится своей безопасностью, но патчи нужно устанавливать вовремя. Настроим ежедневную автоматическую проверку и скачивание обновлений базовой системы.

Добавьте в файл /etc/crontab следующую строчку:

Bash:
0       3       * * * root    freebsd-update cron

Каждую ночь в 03:00 система будет незаметно проверять наличие патчей. Если они появятся, администратору на внутреннюю почту придет уведомление. Установить их можно будет вручную командой freebsd-update install в удобное время.

Шаг 7. Установка полезного софта («Джентльменский набор»)​

В завершение установим утилиты, без которых администрирование сервера превращается в мучение.
Bash:
pkg install -y vim-console tmux htop curl git wget bash
Для удобства можно сменить стандартный шелл для вашего пользователя admin на bash:
Bash:
chsh -s /usr/local/bin/bash admin

Заключение​

Вы выполнили базовый «прожиточный минимум» по настройке сервера. Теперь ваша FreeBSD 15 защищена фаерволом от сетевых атак, изолирована от прямого брутфорса по SSH, синхронизирует время и готова к развертыванию целевых сервисов (будь то веб-стек Nginx/PostgreSQL, файловое хранилище ZFS или системы контейнеризации).
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу