Установка FreeBSD

Ноябрь 2nd, 2012

Введение

В данном документе будет рассмотрена типовая установка операционной системы FreeBSD.

Документ создавался в качестве “шпаргалки” для быстрой установки "с нуля".

Я надеюсь, что Вы знакомы с UNIX системами и знаете где и как искать дополнительную информацию, умеете пользоваться man и внимательно прочитали Handbook FreeBSD.

Что будет использовано

Установка

Читаем Handbook FreeBSD http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/install-start.html

Начинаем установку …

Выбираем Custom установку, создаем слайсы. На автоматическое разбиение разделов не надеемся. Отводим разделу /var достаточно места (~70 % ).
Дистрибутивный набор выбираем minimal и в Custom отмечаем man, коллекцию портов ports, а также набор исходников для пересборки ядра srcsys.

Проводим установку системы…
Заканчиваем установку системы следующим:

  • Задаем пароль для пользователя root (он должен быть сложный, но запоминаемый 🙂
  • Создаем пользователя, включаем его в группу wheel
  • Русифицируем консоль
  • Задаем часовой пояс
  • Поднимаем сетевой интерфейс
  • Настраиваем синхронизацию времени Ntpdate
  • Поднимаем SSH daemon

Перегружаемся …

Первый вход в систему

Создаем сертификат для пользователя. Заходим в систему под пользователем, которым будем администрировать систему (su не выполняем !!!) набираем

ssh-keygen -t dsa

на вопрос
Enter file in which to save the key cоглашаемся с предложенным вариантом – жмем Enter. После этого задаем пароль на сертификат не менее 5 символов. После успешной генерации ключей в домашней папке пользователя появиться папка .ssh

cd .ssh

В ней будет приватный ключ id_dsa, его следует забрать

cat id_dsa

и тут же удалить с сервера!!!

rm id_dsa

В этой же директории будет публичный ключ id_dsa.pub, его будем использовать для аутентификации пользователя.

mv id_dsa.pub authorized_keys

Входим как root

su

Отключаем в демоне sshd вход по паролю:

ee /etc/ssh/sshd_config

прописываем (также задаем другой ssh порт )

PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
Port 11122

Сохраняем изменения в sshd_config и перезапускаем демон sshd

kill -HUP `head -1 /var/run/sshd.pid`

PuTTY

Удаленно работать будем используя PuTTY. Чтоб PuTTY мог понять созданный ключ id_dsa загружаем его в программу puttygen.exe из состава PuTTY (в Key comment можно оставить комментарий что за ключ мы создали) и сохраняем ключ в новом формате (расширение ppk).

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

В PuTTY в конфигурации хоста прописываем имя пользователя и putty key

Для защищенного файлового обмена SFTP (SSH File Transfer Protocol) используем плагин для Total Commander http://developer.berlios.de/projects/sftp4tc/ для любителей FAR-а есть аналогичный плагин http://plugring.farmanager.com/downld/files/winscpfar151setup.exe

Пересборка Ядра FreeBSD

Читаем Handbook FreeBSD. http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/kernelconfig.html

Ищем там ответ на вопрос, почему надо пересобрать ядро…

Начинаем шаманство …

cd /usr/src/sys/i386/conf
cp GENERIC MyKernel
ee MyKernel

Отключаем поддержку старых процессоров - комментируем

#cpu            I486_CPU
#cpu            I586_CPU

Задаем название ядра

ident           MyKernel

Добавляем опции ядра

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=1024
options         IPFIREWALL_FORWARD
options         IPFIREWALL_NAT
options         IPDIVERT 
options         DUMMYNET

иногда (если доступ к машине только по сети 🙂

options IPFIREWALL_DEFAULT_TO_ACCEPT

Затем комментируем все отсутствующие устройства в системе.
Для примера: на моем компьютере оставил только

device		apic			# I/O APIC
device		eisa
device		pci
device		fdc
device		ata
device		atadisk		# ATA disk drives
device		ataraid		# ATA RAID drives
device		atapicd		# ATAPI CDROM drives
device		atapifd		# ATAPI floppy drives
device		atapist		# ATAPI tape drives
options 		ATA_STATIC_ID	# Static device numbering
device		scbus		# SCSI bus (required for SCSI)
device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		ses		# SCSI Environmental Services (and SAF-TE)
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		kbdmux		# keyboard multiplexer
device		vga		# VGA video card driver
device		sc
device		miibus		# MII bus support
device		rl		# RealTek 8129/8139
device		wlan		# 802.11 support
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		sl		# Kernel SLIP
device		ppp		# Kernel PPP
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		md		# Memory "disks"
device		bpf		# Berkeley packet filter
device		uhci		# UHCI PCI->USB interface
device		usb		# USB Bus (required)

Советую отнестись очень внимательно к оптимизации будущего ядра нашей системы…
Сохраняем изменения в файле MyKernel
Создаем конфиг для сборки ядра

config MyKernel

переходим в директорию сборки

cd ../compile/MyKernel

проверяем зависимости

make depend

собираем ядро

make all

Если все прошло успешно проводим установку нового ядра

make install

Делаем копию старого ядра (на всякий случай)

cp -R /boot/kernel.old /boot/kernel.original

Незабываем добавить в rc.conf (иначе после перезагрузки будет недоступна сеть)

firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/rc.firewall"

Перегружаемся, проверяем работоспособность ядра.

Обновление дерева портов

Рекомендую перед установкой пакетов обновить коллекцию портов.

Как это можно сделать ответит наш любимый HandBook FreeBSD http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/ports-using.html

Для еженедельного автоматического обновления дерева портов в /etc/periodic/weekly создаем исполняемый файл следующего содержания

#!/bin/sh
portsnap -I cron update && pkg_version -vIL=

Смотрите также: