Установка FreeBSD
Введение
В данном документе будет рассмотрена типовая установка операционной системы FreeBSD.
Документ создавался в качестве “шпаргалки” для быстрой установки "с нуля".
Я надеюсь, что Вы знакомы с UNIX системами и знаете где и как искать дополнительную информацию, умеете пользоваться man и внимательно прочитали Handbook FreeBSD.
Что будет использовано
-
FreeBSD http://www.freebsd.org
Установка
Читаем Handbook FreeBSD http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/install-start.html
Начинаем установку …
Выбираем Custom установку, создаем слайсы. На автоматическое разбиение разделов не надеемся. Отводим разделу /var достаточно места (~70 % ).
Дистрибутивный набор выбираем minimal и в Custom отмечаем man, коллекцию портов ports, а также набор исходников для пересборки ядра src→sys.
Проводим установку системы…
Заканчиваем установку системы следующим:
-
Задаем пароль для пользователя 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=