- Автор темы
- Администратор
- Модер.
- Команда форума
- #1
В этом руководстве мы разберем пошаговый чек-лист настройки FreeBSD 15 сразу после установки: от создания безопасного SSH-доступа до настройки фаервола PF и системного времени.
Откройте файл текстовым редактором:
(Утилита ee — это простой встроенный редактор во FreeBSD, отлично подходящий для быстрой правки конфигов).
Добавьте или измените следующие строки (замените em0 на имя вашего сетевого интерфейса, которое можно узнать через команду ifconfig):
Задайте DNS-серверы в файле /etc/resolv.conf:
Перезапустите сетевую службу для применения изменений:
Создайте конфигурационный файл /usr/local/etc/doas.conf:
Добавьте строку, разрешающую пользователям из группы wheel выполнять команды от имени root с запросом пароля:
Создайте файл /etc/pf.conf:
Вставьте следующую конфигурацию:
Теперь включим PF в /etc/rc.conf, чтобы он стартовал вместе с системой:
Запустите фаервол:
Добавьте службы автоматического запуска в /etc/rc.conf:
Выставите правильный часовой пояс интерактивной утилитой:
Запустите службу времени:
Добавьте в файл /etc/crontab следующую строчку:
Каждую ночь в 03:00 система будет незаметно проверять наличие патчей. Если они появятся, администратору на внутреннюю почту придет уведомление. Установить их можно будет вручную командой freebsd-update install в удобное время.
Для удобства можно сменить стандартный шелл для вашего пользователя admin на bash:
Шаг 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
Bash:
ee /usr/local/etc/doas.conf
Код:
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 # Разрешаем вход только конкретному пользователю
Перезапустите SSH-демон:Важно: Перед тем как отключать PasswordAuthentication, добавьте ваш публичный SSH-ключ в файл /home/admin/.ssh/authorized_keys на сервере и проверьте права (каталог .ssh должен иметь права 700, а файл ключей — 600).
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)
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
Bash:
chsh -s /usr/local/bin/bash admin
