Freebsd установка руководство

Многие Linux пользователи уже слышали про FreeBSD, эта система использует ядро BSD, похожее на Linux, поскольку оба ядра основаны на Unix и поддерживают одни и те же стандарты POSIX. Это такая же свободная, бесплатная операционная система с открытым исходным кодом, разработанная для обеспечения максимальной безопасности и гибкости. Чаще всего она используется на серверах. Основное отличие от Linux в том, что разработкой ядра и программного обеспечения занимается одна команда разработчиков.

FreeBSD поддерживает множество различных процессорных конфигураций, от серверов до микрокомпьютеров, таких как Raspberry Pi. Как и Linux, система поставляется с множеством программ, которые можно очень просто установить с помощью портов. Всего доступно более 20 000 пакетов. В этой инструкции мы рассмотрим как выполняется установка FreeBSD 11 последней, на данный момент, версии на компьютер amd64. Будем устанавливать версию с интерфейсом командной строки, она лучше всего подходит для серверов.

Подготовка к установке

Как обычно, сначала нам нужно скачать установочный образ, и только потом может быть выполнена установка и настройка freebsd 11.

Шаг 1. Загрузка образа

На официальном сайте есть несколько версий для разных архитектур, нам нужна amd64 или x86, в зависимости от количества оперативной памяти, которую вы желаете использовать.

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

Шаг 2. Запись образа на диск

Далее вам нужно записать полученный образ на диск или на флешку. Вы можете использовать один из известных вам методов для этого. Например, в Linux вы можете использовать Unetbootin или Etcher, а в Windows есть Rufus.

Далее вставьте носитель в компьютер и измените настройки BIOS так, чтобы загрузка выполнялась из вставленного носителя. Чтобы войти в BIOS, во время загрузки нажмите одну из клавишей: F2, F11, F12 перед загрузкой операционной системы. Затем перейдите на вкладку «Boot» и поставьте там ваш носитель на первое место.

Шаг 3. Меню загрузчика

В первом меню загрузчика вам не нужно менять никаких параметров. Просто нажмите «Enter» для продолжения работы:

Шаг 4. Выбор действия

Дальше загрузиться псевдографический интерфейс, в нем выберите пункт «Install» для установки системы:

Шаг 5. Раскладка клавиатуры

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

Шаг 6. Имя хоста

Введите имя хоста для новой системы:

Шаг 7. Выбор программ

На следующем экране вам предстоит выбрать компоненты системы, которые вы хотите установить FreeBSD 11 на свой компьютер. Для того, чтобы отметить компонент нажмите «Пробел». Для сервера достаточно оставить библиотеки совместимости lib32 и Ports.

Когда завершите, нажмите «Enter».

Шаг 8. Автоматическая разметка диска

Дальше нужно выполнить разметку диска. Вы можете довериться установщику и выполнить автоматическую разметку или же сделать все вручную. Если у вас есть несколько жестких дисков, которые необходимо подключить, лучше использовать ZFS. Но мы рассмотрим на примере UFS.

Далее вам нужно будет подтвердить использование всего диска для установки системы. Все данные на нем будут уничтожены.

Затем выберите таблицу разделов. Если ваш диск больше 2 Тб или вы используете UEFI вместо BIOS, то вам лучше использовать GPT, в всех остальных случаях более предпочтительно MBR. Даже будет лучше если вы отключите защищенную загрузку и будете использовать MBR:

В следующем окне система покажет вам созданные разделы. В случае MBR будет создано два раздела — корень и раздел подкачки. Используйте «Tab» для выбора кнопки «Commit», а затем нажмите «Enter»:

Шаг 9. Установка FreeBSD

Дальше будет запущена установка FreeBSD 11 с флешки или другого носителя, в зависимости от скорости работы вашего компьютера и жесткого диска, установка может занять от 10 до 30 минут.

Шаг 10. Пароль суперпользователя

Когда установка завершится, система предложит вам ввести пароль для суперпользователя. Установщик спросит пароль два раза, но он не будет отображаться на экране:

Шаг 11. Настройка сети

Дальше выберите сетевой интерфейс, через который вы собираетесь получать доступ в интернет. Как видите, имена сетевых интерфейсов отличаются от стандартов Linux:

Затем выберите «Yes», чтобы выполнить настройку ip адреса IPv4:

Вы можете выбрать вариант получения адреса по DHCP или настроить его вручную:

Настройку адреса IPv6 можно пропустить:

Последний этап настройки сети — настройка DNS серверов. Лучше всего добавить, кроме стандартного, DNS сервер от Google — 8.8.8.8:

Шаг 12. Регион

Выберите географический регион, в котором расположен ваш компьютер:

Затем выберите вашу страну:

Шаг 13. Настройка даты

На следующем этапе нужно ввести текущую дату и время, если они были неверно получены из сети:

Шаг 14. Автозагрузка

Дальше нужно выбрать какие сервисы будут загружаться по умолчанию при старте системы. Например, SSH, NTP и Powerd. Последний позволяет автоматически регулировать частоту процессора в зависимости от нагрузки на систему.

Шаг 15. Дополнительные оптимизации

Эти опции позволяют усилить безопасность вашей системы. Отключите доступ к буферу ядра для непривилегированных пользователей. Отключите отладку, Включите очистку /tmp во время загрузки, отключите сокет Syslogd и Sendmail если вы не планируете использовать почтовый сервер:

Шаг 16. Другие пользователи

Дальше установщик спросит вас не желаете ли вы добавить к системе еще пользователей. Выберите «yes» и введите всю необходимую информацию о пользователе. Безопаснее всего оставить все поля по умолчанию, для этого достаточно нажимать «Enter»:

В качестве оболочки вы можете выбрать Bourne shell (sh) или tcsh. Когда завершите, просто наберите «Yes»:

Дальше система спросит вас хотите ли вы добавить еще пользователей, и если в этом нет необходимости, нужно ответить «no»:

Шаг 17. Завершение установки

На последнем экране перед вами появится простое меню действий. Если вы не хотите ничего менять, просто выберите первый пункт — «Exit» и ответьте «no», чтобы перезапустить компьютер:

Шаг 18. Перезагрузка

Извлеките установочный носитель и нажмите «Enter»:

В меню загрузчика снова нажмите «Enter».

Шаг 19. Вход

Теперь вам осталось только ввести логин root и пароль, который вы задали во время установки:

Выводы

В этой статье мы рассмотрели как выполняется установка FreeBSD 11.1 на сервер или компьютер. Мы установили только консольную версию, но если вы собираетесь использовать систему на домашнем компьютере, то можно установить графическую оболочку и все другие компоненты из портов, так здесь называются репозитории. Надеюсь, эта информация была полезной для вас. Хотя FreeBSD все-таки отличается от Linux, у них очень много общего.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

FreeBSD 13.2 has been released a few days. FreeBSD 13.2 edition is shipped with so many updates and features. This step by step guide explains how to download the latest FreeBSD version, how to create a FreeBSD Bootable USB and how to install FreeBSD 13.2 latest edition with screenshots.

What is FreeBSD?

FreeBSD is an Unix-like, advanced operating system that can be installed in modern Servers, Desktops, Laptops and embedded platforms.

The first version of FreeBSD was released in 1993, and today it is the most widely used open source BSD operating system.

FreeBSD is the direct descendant of BSD Unix and of course it is free. It is licensed under permissive BSD license.

Download FreeBSD 13.2

Go to the FreeBSD official download page and download the suitable version for your system’s architecture.

FreeBSD 13.2-RELEASE is available for the amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64, and riscv64 architectures.

The FreeBSD installation requires at least 2-4 GB RAM and 8 GB hard drive space. However, you may need more Memory and disk space to run graphical desktop environments.

Create FreeBSD Bootable USB Medium

FreeBSD DVD ISO size is around 4.3 GB. So you may require 6 GB USB drive or more.

First, you need to create a bootable USB medium with the FreeBSD ISO file. There are many bootable USB creation tools available to create a bootable USB medium.

We have listed some of the tools to create bootable USB drive in Linux.

Command line bootable USB creation tools:

  • How To Create Multiboot USB Drives With Ventoy In Linux
  • How To Create Bootable USB Drive Using dd Command
  • Bootiso Lets You Safely Create Bootable USB Drive In Linux

Graphical bootable USB creation tools:

  • Create Bootable USB Drive With Ventoy WebUI In Linux
  • Create Bootable USB Drives And SD Cards With Etcher In Linux
  • Popsicle – Create Multiple Bootable USB Drives At Once
  • Create Bootable USB Drive With USBImager In Linux
  • Kindd – A Graphical Frontend To dd Command

If you wish to install and test FreeBSD on any hypervisor (Virtualbox, KVM, Vmware), just skip the media creation step and boot up the ISO image.

For demonstration purpose, I will be installing FreeBSD on Proxmox VE.

Install FreeBSD 13.2 Step By Step

Boot your system with FreeBSD bootable USB. You will be greeted with the FreeBSD Boot Loader menu.

Press 1 (number one) or press ENTER key to start the FreeBSD installation.

FreeBSD Boot Loader Menu
FreeBSD Boot Loader Menu

A few seconds, you will be prompted to choose one of the three options.

  1. Press ENTER to install FreeBSD on your hard drive.
  2. Select Shell and press to enter into command line mode. In commend line mode, you can partition the hard drives as per your choice before installing FreeBSD on it.
  3. The third option, Live CD will let you to try the live FreeBSD system without installing it.

Choose the «Install» option and hit ENTER to start FreeBSD installation.

Start FreeBSD Installation
Start FreeBSD Installation

Select your preferred keymap . I will go with the default keymap.

Select Keymap
Select Keymap

Enter a hostname for your FreeBSD system.

Set Hostname
Set Hostname

Choose the optional system components that you want to install on your FreeBSD system.

Select the System Components to Install
Select the System Components to Install

This is an important step. In this step, you need to choose how would you like to partition the drive. You will be prompted to choose one of the four partitioning methods as listed below.

  • Auto (ZFS) — This is the default selection. If you choose this option, the drive will be automatically partitioned with ZFS filesystem.
  • Auto (UFS) — This will automatically partition the disk with UFS filesystem.
  • Manual — It is meant for advanced users. When you selected this method, you can create customized partitions from enu options as you wish.
  • Shell — It allows the users to create customized partitions of their choice using commandline tools like fdisk, gpart etc.

Choose the partitioning method that suits you and follow the on-screen instructions to complete partitioning the drive. I will go with the default selection i.e. Auto (ZFS).

Partition Disk
Partition Disk

When Auto (ZFS) method is selected, you will see the main ZFS configuration menu that provides a number of options to control the creation of the pool. Configure the options according to your requirements.

Finally choose «>>> Install Proceed with Installation» option and hit ENTER to continue.

ZFS Configuration Menu
ZFS Configuration Menu

Next, we need to partition the disk drive and allocate space for each partition. FreeBSD installer provides six different partitioning methods to choose from.

Select Partitioning Method
Select Partitioning Method

Depending upon the use case, you can choose any one of the following partitioning method.

  • stripe — It provides maximum storage of all connected disks, but no redundancy. If just one disk fails, the data on the pool is completely lost.
  • mirror — Mirroring stores a complete copy of all data on every disk. It provides a good read performance because the data is read from all disks in parallel. On the contrary, the Write performance is slower because the data is written to all disks in the pool. Allows all but one disk to fail. To use this option, you must have at least two disks.
  • raid10 — Striped mirrors. Provides the best performance, but the least storage. This option needs at least an even number of disks and a minimum of four disks.
  • raidz1 — Single Redundant RAID. It requires at least three disks and allows one disk to fail concurrently.
  • raidz2 — Double Redundant RAID. It requires at least four disks and allows two disks to fail concurrently.
  • raidz3 — Triple Redundant RAID. It requires at least five disks and allows three disks to fail concurrently.

I have only one disk and I go with the «stripe» option.

For other partitioning methods, please head over to the Allocating Disk Space section in FreeBSD handbook.

Once the partitioning method is selected, a list of available disk drives will be listed in the next menu. You need to select the one or more devices to make up the ZFS pool.

Disk Selection
Disk Selection

You will now see a warning message that says the contents of the selected disk(s) will be deleted. make sure you don’t have anything important in the disk. Choose «Yes» and and hit ENTER key to continue.

Delete Contents Of Selected Disks
Delete Contents Of Selected Disks

FreeBSD installation will begin now. It will take a few minutes to complete.

Installing FreeBSD
Installing FreeBSD

After FreeBSD installation is completed, you will prompted to set a password to the root user.

Set Root User Password
Set Root User Password

Choose a network interface to configure.

Select Network Interface
Select Network Interface

Choose «Yes» to configure IPv4.

Configure IPv4
Configure IPv4

If you have a DHCP server in your network and want to assign IP address automatically from the DHCP to the FreeBSD system, choose Yes and hit ENTER. If you don’t have a DHCP server, simply choose «No».

I don’t have a DHCP server in my network, so I chose «No».

Configure DHCP
Configure DHCP

Enter the IP address, subnet mask, and gateway.

Network Configuration
Network Configuration

Next, you will asked if you want to configure IPv6 for the network interface. I don’t want to configure IPv6 at the moment, so I chose «No».

Configure IPv6
Configure IPv6

If you choose «yes» to configure IPv6, you need to provide the IP address, subnet and gateway as shown above.

Enter the DNS server details. Here, I’ve used the Google public DNS servers.

Enter DNS Server Details
Enter DNS Server Details

Select your geographical region and press ENTER.

Select Region
Select Region

Select your Country.

Select Country
Select Country

A pop up message will ask you to confirm the time zone.

Confirm Time Zone
Confirm Time Zone

Set your current date.

Set Date
Set Date

Set the time.

Set Time
Set Time

Choose the services that you’d like to be started at system reboot.

Choose Startup Services
Choose Startup Services

Choose the system hardening options that you’d like to apply on your FreeBSD systems.

Select System Hardening Options
Select System Hardening Options

Select «Yes» if you wish to add a new user to your system.

Add User Accounts
Add User Accounts

Enter the user details such as username, full name, password etc. Review the user details and type «yes» and press ENTER to create the user.

Enter User Details
Enter User Details

If you want to create more users, type «yes» and enter the details of the new user. If you don’t want to add more users, simply type «no» and press ENTER.

We reached the final stage of FreeBSD installation. You can now modify the configuration choices that you made throughout the installation process. If you don’t want make any changes, simply choose «Exit» and hit ENTER.

Final Configuration
Final Configuration

FreeBSD installation is finished! If you want to make any manual changes before completing the installation, choose «yes». If you don’t want to make any modifications, choose «no» and press ENTER.

Manual Configuration
Manual Configuration

Reboot into the newly installed FreeBSD system.

Reboot FreeBSD
Reboot FreeBSD

Login to the FreeBSD system as root user.

Login to FreeBSD as root
Login to FreeBSD as root

Check the install FreeBSD version using any one of the following commands:

# freebsd-version -k
# uname -mrs
# cat /etc/os-release
Check FreeBSD Version
Check FreeBSD Version

Update FreeBSD System

The first thing to do after installing any operating system is to apply the latest available updates.

To update FreeBSD OS, run the following command as root user:

# freebsd-update fetch install
Update FreeBSD
Update FreeBSD

Congratulations! We have successfully installed and updated FreeBSD 13.2 edition. In our upcoming articles, we will see how to,

  • Create sudo users,
  • Enable SSH,
  • Set Static IP address and DNS,
  • Reset or recover root user password,
  • And more BSD related stuffs.

4.3. ��������� �����������
�� ��������� FreeBSD

�������� «Install» �� ���� ������������.

������� 4-4. ����� ��������� ���������

����������� �� ��������� FreeBSD �������� �� ������.

������� [ENTER], ����� ��������� � ���� ������������.

    === Platform specifics for i386
    +=====================  Installing FreeBSD  ==========================+
    |                                                                     |
    | Table of Contents:                                                  |
    |                                                                     |
    | 0.0     Quick Start:                                                |
    |         0.1     Installing FreeBSD from CDROM or the Internet.      |
    |                                                                     |
    | 1.0     Detail on various installation types:                       |
    |         1.1     Installing from a network CDROM                     |
    |         1.2     Installing from Floppies                            |
    |         1.3     Installing from a DOS partition                     |
    |         1.4     Installing from QIC/SCSI tape                       |
    |         1.5     Installing over a network using NFS or FTP          |
    |                 1.5.1   NFS Installation tips                       |
    |                 1.5.2   FTP Installation tips                       |
    |         1.6     Tips for Serial Console Users                       |
    |                                                                     |
    | 2.0     DOS User's Q&A section.                                     |
    |         2.1     How do I make space for FreeBSD?                    |
    |         2.2     Can I use compressed DOS filesystems from FreeBSD?  |
    |         2.3     Can I use DOS extended partitions?                  |
    |         2.4     Can I run DOS executables under FreeBSD?            |
    |                                                                     |
    +=====================================================================+
    
    �����:         Jordan K. Hubbard
    ��������� ����������:   Fri Mar 16 14:47:31 PST 2001
    
    0.0     ������� ������
    ---     --------------

    ��� ����������� �������� ������������ �� ��������� FreeBSD �� �����
    ����������. ���� �� ������ ������������� ���������� ������ FreeBSD,
    ����������� ������ ���������� �� �������� � ����� UPGRADE.TXT.
    ���� �� �� ������� � ������������� ������������ ��� FreeBSD, 
    �������������� ����� ������ HARDWARE.TXT - � ��� ���������� ������ 
    ����������, ������� ������� ��� �� ��������� �������.  
    
    ���� �� ����������� � FreeBSD �������, ��� ������� ����� ��������� ��� 
    ����������, ������� ��������� � ���� ������������. ����� ����������, ��� 
    ���������� ������� �����, �� �����, ����������� �� ��������� ������������ 
    ������, �������� ����� �� ���� ����, ��� �� ���� ������ ������������.
    �� ����� ������ ������� � ��������� ����������� �� ������, ���� ����� 
    � ��� ��������� ��������. ��� ������ ������� ����� �����������, �� ����� 
    ������ ����� ����� � ��� ���� � ��� ������ web-�������� ��������� 
    FAQ (����� ���������� �������) � �������� ������ HTML ��� ��������� 
    ���������� �� FreeBSD.  �� ����� ������ ������������ ������� ��� ��������� 
    ������ web-������ � ��������� (��������: http://www.freebsd.org), ���� 
    � ��� ���� ������ � ��������. ���������� �� ��������, ��������� ���, 
    �� ������ ���������� ABOUT.TXT.
    
    ���� ��������� ������������� ��������� ������ �� �������� - � ���� ������ 
    ��������� � TROUBLE.TXT, ��� ���������� ������ ���������� �� ����������
    �������. ����� ���������� ��� ����� ������� ��������� ERRATA.TXT, ����� 
    ������ ���������, ��� ������� ��� �� �������, ������� �������� � ��� � 
    ��������� ������.

    ��������������: �������� �� ��, ��� FreeBSD �������� ������������� 
    ��������� ������ ������, ���������� ������� ����������� ����, ��� 
    ��� ��������� ������ � �������� ��������� ��� ���������� � 
    ����� ����� ������! ����������, �� �������� � ���� ������������� 
    ��������� FreeBSD, �������������� �� �������� ��� ������ 
    ����������! ������ �����������!
    
    ��� ������ FreeBSD ��������� 386 ��� ����� ����������� ��������� 
    (��������, ��������� ��� '286 ����������� ���), �� ������� ���� 16 
    ���������� ����������� ������ ��� ��������� � 4-8 ���������� 
    ����������� ������ ��� ������ (� ��������� �����). ��� ����������� 
    �� ������� ���� 100M� ���������� ����� �� ������� ����� ��� 
    ����������� ���������. ���� ���������� ������� ���������� 
    ������������ �������� DOS ��� ��������� FreeBSD.


    0.1     ��������� FreeBSD � CDROM ��� �� ���������
    ---     ------------------------------------------
    
    ����� ������� ������ ��������� - � CD.  ���� � ��� ���� 
    �������������� CDROM �������� � ������������ FreeBSD CD ��
    Walnut Creek CDROM, ���������� 2 ������� ������ � ���� 
    ���������:
    
            1. ���� ���� ������� ������������ ����������������� 
               CDROM media (������ �����, ������� ����� ���� ������������� 
               � ���� ��������� ������������ ���������� ���, ��� ��������� 
               ������, � PC BIOS), � �� � ��� ������������, FreeBSD 
               ������������ ����������������� CD �������� "El Torrito".
               ����� ������ ���������,  ������ �������� ������������ 
               CD � ���� CDROM �������� � ��������� �������.
    
            2. �������� ����� FreeBSD ����������� ������ �� ����������
               floppies, ��� ���� � ������ ������������ FreeBSD.  ����������� 
               ���� ������ "makeflp.bat'' �� DOS, ���� ���������� 
               floppies/README.TXT ��� ��������� ����� ��������� 
               ���������� �� �������� ����������������� ������ � 
               ������ ������������ ��������.  ����� ������ ��������� 
               ���������� � ������ �������, ����� ������ ���������� � 
               ��������� FreeBSD.
    
    ���� � ��� ��� CDROM � �� �� ������ ���������� FreeBSD ����� 
    ���� ��� ������ ���,  slip ��� ���������� �����, ������ ������� 
    ����  /floppies/boot.flp ��:
    
            ftp://ftp.freebsd.org/pub/FreeBSD
    
    ��� ����� �� ��� �������������� ������
    (http://www.freebsd.org/handbook/mirrors.html) � ���������� �������� 
    ���������� ���� ���� 3. ��� ����� ������� ������������ � ������ 
    floppies/README.TXT, ���������� ������ ���������� �� ��������. 
    ��� ������ ���� ����������� ������� ����� ������, ���������� � 
    ������� 1.5 ������� ��������� �� �������������� ����������� �� 
    ��������� ����� FTP ��� NFS.
    
    
    1.0     ��������� ���� ���������
    ---     ------------------------
    
    ��� ������ �� ���������� � ���������, �������� ��������� ���������� 
    �� ����. ���� �� ������� ������ �� ������������� FreeBSD,  ���  
    ������������� ������������ � ������������� � Documentation
    ����, �  ����� ��������� ����� ���������� � ������ ����.
    
       ��������:  ���� � ��� �������� �����-���� ��������, ������� 
       ������� F1 ��� ��������� ������������� ������������, ���������� 
       ������� �������. 
    
    ���� �� ������� ������ �� ���������� ���������� FreeBSD (� 
    ���� ���� ����������), ����� ��������� Standard �������� 
    ���������, ��������� � ��� ���� �������� ������ ���������� 
    ����� ��� ������ ������������ ������� �� ���� ���������. ���� 
    �� ������ ������� ���� � ��������� FreeBSD � ����� ������, ��� 
    ������, �������������� ������� ��������� Express ��� Custom. 
    ���� �� �������������� ����� ������ ������ ������ �����, ����������� 
    ����� Upgrade.
    
    ��� ��������� FreeBSD �� ������ ������������ ���������, DOS, 
    ������, CDROM, FTP, NFS � UFS � �������� ������������ �������. 
    ���������� ����������, ���������� ������� ���� ���������, 
    ��������� ����.
    

    1.1    ��������� � �������� CDROM
    ---    --------------------------
    
    ���� �� ������ ���������� ��������� � �������� CDROM �����, 
    ���������� � ������� "������� ������". ���� � ����� ������� 
    ��� CDROM-��������� � �� ������� ��������������� �������������� 
    CD � CDROM-��������� ������ �������, � ���� ������� � ��� ����
    ������, ���������� ��������� �������� ����������� �� ���:
    
    1. ���� � ��� ���� ����������� ���������� FreeBSD ��� ������ 
       FTP ����� � CDROM, ��� �� ��� ������: �� ������ ���������� 
       ��������� ������ � ���� /etc/passwd (��������� ������� vipw):
    
            ftp:*:99:99::0:0:FTP:/cdrom:/sbin/nologin
    
       ��������������:  ��� ����� ��������� ������ ������������ 
       ������� ���� (��� ���������) ��������� "��������� FTP ����������"
       � ������ �������, ��� �������� �������������. 
    
       �� ������, ��� �� ����������� ���������, ������� 
       � ���� "Options" � ���������� "Release Name" ����� � "any".  
       ����� �� ������ ������� ��� �������� FTP � �������: 
       ``ftp://'' ����� ����, ��� �� ������� 
       "URL" � ���� ftp-������. 
    
    2. ���� �� ������ ������������ NFS ��� �������� CDROM ����� 
       �� ������(�), � �������(��) ����� ����������� ���������, ��� 
       ���������� ������ ����� �������� ������ � ���� /etc/exports 
       (�� ������ � CDROM-����������), ������� �������� 
       �������������� ���:
    
            /cdrom          -ro             ziggy.foo.com
    
       ��������� ������ "ziggy.foo.com" ������������ CDROM 
       �������� ����� NFS �� ����� ���������. ������ � CDROM 
       ������ ����, �������,  ����� ���������������� ��� NFS ������.
       ���� �� �� ������ �����, ��� ��� ��������, ����� ��������� 
       ����� NFS �� ����� ������ ����� ��� ���, ���� ������ �� ��
       ���������� � rc.conf(5) � ��� ��������� ���������. ���� ����� 
       � ��� �� �������� ������� �������, �� ������� ������:
       cdrom-host:/cdrom ��� ���� ������� ��� NFS ���������, ����� 
       ������� ������ �����������, ����. wiggy:/cdrom    
    
    
    1.2     ��������� � ������
    ---     ------------------
    
    ���� �� ����������� ���������� ��������� � ������ (� ��� 
    ���������������� ������������ ��� ��� ������ �������� 
    ������� ����), �� ������ ������ ����� ����������� ��������� 
    ������ ��� ���������. 
    
    ������� ����������� ���� ����������� �������, ��� ��� ������� 
    � floppies/README.TXT 
    
    ����� ���������� ���� LAYOUT.TXT � �������� ������ �������� 
    �� ������ "������ ������������", ��������� ��� ��������� �����, 
    ������� ��� ����������� ��� ������ �� �������, � ��, ������� ��  
    ������ ����������.
    
    ����� ����� ��� �����������, �� ������� ����, ������� 1.44M� 
    ������, ������� ��������� ��� ����, ����� ��������� ��� ����� 
    � bin (�������� �����������) ����������. ���� �� �������� ��� 
    ������� � DOS, �� ��� ������� ������ ���� ���������������  
    ��� ������ ������� MS-DOS FORMAT.  ���� �� ����������� 
    Windows, �������������� �������� Windows File Manager format.
    
    �� ��������� �������� ����������������� ��������! ���
    ��������, �������������� �� ��� ��� ����. ������ �������� 
    ����� ������������� ��������� ��-�� ����� ����������������� 
    ���������, ��� ������ � ������� �� ��� ���� ������ ��������!
    
    ���� �� ����������� ������� � ������ FreeBSD ������, 
    �� ����� ����� ���������������, ���� ��� �� ����������� ���������� 
    ������� ������ DOS �� ������ �������. �� ������ ������������ 
    ��������� `disklabel' � `newfs' ��� ������ �� ������� �������� �������
    UFS, ��������, � ����� ������������������ ������:
    
            fdformat -f 1440 fd0.1440
            disklabel -w -r fd0.1440 floppy3
            newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0
    
    ����� ����, ��� �� ��������������� ������� ��� DOS ��� UFS,
    ��� ���������� ����������� ����� �� ���. �������������� �����
    ������ ������� �� ����� ����� �������, ��� 5 �� ��� ���������� �� 
    �������  ������� �������� 1.44��.  ����������� ��� ���� �������, 
    ��������� �� ������ ������� ������� ������, ������� �� ��� 
    ����������, �� ��� ���, ���� ����� ������� � ��� �� ���������� ��� 
    �����������, ����������� ���. ������ ����������� ����� ���� 
    ������������� �� �������, ����.: a:binbin.inf, a:binbin.aa,
    a:binbin.ab, ...
    
    ��������: ���� bin.inf ������ ���������� �� ������ ������� 
    bin - ���������, ��������� �� ����������� ���������� ��������� 
    � ����� ��������, ������� ������ �������������� ������ ��� 
    ������ � ���������� ������������.  ��� ���������� �����������
    �� ��������, ����  >distname<.inf ������ ���������� �� ������ 
    ������� ������� ��������� �����������!  �� ���� ����� ������� � 
    ABOUT.TXT.
    
    ��� ������ �� ����� �� ����� ������ �������� ����������� (Media 
    screen of the install), �������� "Floppy" � ������� ����������  ���������.
    
    
    1.3     ��������� � ������� DOS 
    ---     -----------------------
    
    ����� ������������� � ��������� � ������� MS-DOS, ��� ����� 
    ������ �����������  �����  �� ������������ � ���������� � ��������� 
    "FREEBSD" � ������� Primary DOS ("���� C:").  ��������, ��� ����, 
    ����� ��������� ����������� ��������� FreeBSD �� DOS � 
    �������������� ������, ������������� � CDROM, �� ������ 
    ������� �������������� ���������:
    
            C:> MD C:FREEBSD
            C:> XCOPY /S E:BIN C:FREEBSDBIN
    
    �����������, ��� �� ���� `E:' ��� ����������� � CD �������������.
        
    � ����������� �� ����, ������� ������� �� 'DISTS' �� ���������� ���������� 
    (��������������, ��� � ��� ���������� ��� ����� ���������� �����), ���������� 
    ������ �� ���� ������� (��������, ���������� CRYPT, MAN, SRC � �.�.) 
    ����� �������, ��� ��� ������� ���� ��� BIN.  BIN - ����� ���� ����������� 
    ����� ��� ��������� ������� FREEBSD.
    
    ��� ������ �� ����������� ����������� ��� ����������, �� ������ 
    ����������� � ��������������� ������  � ����� ������� "DOS" � �������� 
    ���� �������� ��������� OS FreeBSD. 
    
    
    1.4    ��������� � ����� QIC/SCSI 
    ---    ---------------------------
    
    ��� ��������� � �����, ������������ ��������� ������������, ��� 
    �����  ����� �������� �� ��� � ������� tar, ������� ����� ����, 
    ��� �� ������� ��� ����� ��� ������������ ��� �����������, 
    ������ �������� �� �� ����� ��� ������ ������� tar �������� ��������� 
    �������:
            cd /where/you/have/your/dists
            tar cvf /dev/rwt0 (or /dev/rsa0) dist1 .. dist2
    
    ����� �� ���������� � ���������, �� ������ ���������, ��� �
    ��� ���������� ����� �� ��������� ���������� (����� �� �������� 
    �� ����), ����� ���������� ��� ���������� �����, ������� �� 
    ��������. ��������� ����� �� �������� ������������ ������������� 
    �������, ���� ����� ��������� ������� ����������� ���������� 
    ������������� ������, ����������� ��� ������ � ���������� �����.  
    
    ��������: ��� ��������� ����� ������ ���� � ������������� 
    �� �������� � ������������ ������. � ��������� ������ ����������� 
    �� �������. 
    
    ������ �������� ����������� �������, ��� ��� ������� � ������� 0.1 
    � ���������� �����������.
    
    
    1.5     ��������� �� ���� ��� ������ FTP ��� NFS
    ---     ----------------------------------------
    
    ����� ����, ��� �� ����������� ������� ���, ��� ��� ������� � 
    ������ �������, �� ������ ��������� ���������� ����� ���������� 
    �� ���� ��������� ���� �� ���� ��������� �����:  
    
       ���������������� ����:  SLIP / PPP
       ������������ ����:      PLIP (��������� ������ ���� ``laplink'')
       Ethernet:               ����������� Ethernet ���������� (������� 
                               ������������ PCCARD ����������).
    
    ���������������� ����
    ---------------------
    
    ��������� SLIP �������� ������ � ���������� ������ ����� 
    ������������ ��������� ����������, ����� ��� ������ 
    ����������� ��� ���������� ����� COM �����. ��� ����� 
    ������ ���� ��������������, ������ ��� ��������� ����� SLIP
    � ��������� ������ �� ����� ����������� �������. ���� ��� 
    �����  ������������ ����� ����� ��� ������������ ������ � ������� 
    ����� ����� ����������� � ���, ����� � ��� ������� ������ �����
    ������ ��������� ��������������� PPP.
    
    
    ���� �� ����������� PPP, ��������� ������� � ��� IP ������� ������ 
    ��������-���������� � DNS, ��������� ��� ��� ����������� �� ����� ��
    ������ ������ ���������.  ��� ����� ����� ������������� ������
    ������������ IP ������, ���� PPP � ������������ �������� ������������
    ������� � ����� �������� ��� ���������� ����� �� ������ ISP, ���� ��
    ������������ ����� ����������.
    
    ��� ����� ���������� �����, ��� ������������ ���������� "�T 
    ���������" ��� ������� � ������� ���� ������, ������� � ��� ����,
    ��������� ���������������� ��� ������������ ������ ��� ������ � 
    ����� �������� ��������� ���������. 
    
    ������������ ����
    -----------------
    
    �� ������ ���������� �������, ��������� ���������� ����� 
    ������������ ����. ������ ��� ������ ���������� ������ ���� 
    ������� ���������� ����, ��� ��� �������� ��� "laplink".
    �������� �������� ������ ����� ������������ 
    ���� ������� ����, ��� ������� �������� �������� ����� 
    ���������������� ���� (�� 50 �/���), ������� ����������� 
    �������� �������. ������ ��� ������������� ������������ "��������"
    IP ������ ��� ������� ������������� ������ � ���������� �����-�����
    � �� ������ ������ ������������ ������ �� RFC1918 ��� ��������� 
    ����� ����� (����., 10.0.0.1, 10.0.0.2, �.�.).
    
    ��������: ���� �� ����������� ������ Linux, � �� FreeBSD
    � �������� ������ PLIP �������, ��� ����� ���������� ������� 
    "link0" � ���� ��������� TCP/IP "�������������� ����� ��� ifconfig'',
    ����� ���� ������������� � PLIP-���������� LINUX, ������� ������� 
    ����������.  
    
    Ethernet
    --------
    
    FreeBSD ������������ ����� ������� PC Ethernet �����, � 
    ������� �������������� ���� (� �� ����������� ��������) 
    ��������� � �������� ������� � FreeBSD Hardware Guide (������ 
    ���� ������������ �� ����������� ������� ��� ���������� 
    �������� ������ CDROM-�).  ���� �� ����������� ���� �� 
    �������������� PCMCIA Ethernet ����, ��������� �����, ��� 
    ��� ��������� �� ����, ��� ��������� ����� �������! � ���������, 
    � ��������� ����� FreeBSD �� ������������ "hot insertion" PCMCIA 
    ���� �� ����� �����������. 
    
    ��� ����� ���������� ����� ��� IP-����� � ����, �������� "netmask"
    - ������� ����� ��� ������ ������ � �������� ����� ������.
    ��� ��������� ������������� ����� ����������, ����� ��������
    �������� � ����� ���������� ������. ���� �� ������ ���������� 
    � ������ ����������� �� �����, � �� �� I�-������, ���  ����� 
    ����������� ������ ������� ���� � ����� (���� �� ����������� PPP, 
    ��� IP-����� ������ ��������-����������).  ���� �� ������ 
    ��������� ��������� ����������� FTP ����� ������������� �� HTTP 
    (������ ����), ��� ����� ����������� ����� ������ �������.     
    ���� �� �� ������ ������ �� ��� �������, ����� ��� ������� 
    ���������� �� ����� ��������� ��������������� �� ����, ��� 
    ���������� � ������ ���� �����������!  ��� ������������� 
    ���� �������� ��������� IP-������� ��� netmask � �������� ����, 
    �����������,  ������ �����, �� ������� � ������ ������. 
    
    ��� ������ �� ���������� ����������, ����������� ����� ���� 
    ���������� �� NFS ��� FTP.
    
    
    1.5.1   ����������� ����������� �� NFS 
    -----   ------------------------------
    
            NFS-��������� �������� ������: ������ ���������� 
            ������������ ��� �������������� ����� FreeBSD ����-������ 
            �� NFS ������ � ����� ������� ��� ����� � �������� ������
            NFS �������� ��� �����������. 
    
            ���� ���� ������ ������������ ������  ������ � "privileged port" 
            (��� ��� ������ ������ �� ��������� ��� ������� ������� 
            Sun � Linux), ��� ���������� ����� ���������� ��� ����� � 
            ���� Options �� ����, ��� ����������� ����� ����������. 
    
            ���� � ��� Ethernet-����� ������� ��������, � ������� ����� 
            ������ �������� ��������, �� ������ ������������ ��������������
            ����� � Options ��� ��������� ���������� �����. 
    
            ��� ����, ����� ���� �������� ��������� �� NFS, ������ NFS
            ������ ��������� ������������ �������������  "subdir mounts".
            ��������, ���� ����������� FreeBSD ��������� � ����������:  

            wiggy:/usr/archive/stuff/FreeBSD

            �� � ���� ������ wiggy ������ ��������� �����������  ����������     
            /usr/archive/stuff/FreeBSD, � �� ������ /usr ��� 
            /usr/archive/stuff. 
    
            �� FreeBSD � ����� /etc/exports ��� ������������� � �������
            ����� ``-alldirs''.  ������� NFS ����� ����� ������ ����� 
            �������� �����������. ���� �� ��������� ��������� `Permission 
            Denied' �� �������, ��������, �� ������� ��������� ��������
            �� NFS �������. 
    
    
    1.5.2   ������ ��������� �� FTP 
    -----   -----------------------
    
            ��������� �� FTP ����� ���� ��������� � ������ ����������� 
            �����, ����������� ������������ ������ ������ FreeBSD.  
            � �������� ����������� �� FTP, ������������ ���� � ������� �������
            ������, ������ ������������ FreeBSD, ������������� �� �����
            ����. ��� ��������� �������� ��������� �������� ��������� � ���
            �������.
    
            ���� �� ��������� ��������� � ������� ����� FTP, 
            �� ���������� � ���� ����, ��� � ��� �������� � ������������� 
            ����� �������, �� ����� ������ ��������������� ���� 
            �����������  URL, ������ ``URL'' � ���� ����. URL ����� 
            ��������� hostname ��� IP �����, ������� ��� ���������� 
            ����� ������� ����� ������������ ���������:
    
                    ftp://192.216.191.11/pub/FreeBSD
    
            ���������� ��� ������ ��������� �� FTP, ������� ����� 
            ������������:
    
               o FTP:
    
                 � ���� ������ ������������ ����������� ����� "Active"
                 ���  ��������� ������, ������� ��������� ������� ����������� 
                 ���������� � ��������. �� �� ����� �������� � ������ FIREWALL 
                 ���������� ������, �� ����� �������� ������ ��������� ��� 
                 ������ �� ������� FTP-���������, ������� �� ������������ 
                 ��������� �����. ���� ���������� � ��������� ������ �� 
                 �������, ���������� ���� �����!
 
               o FTP Passive:
    
                 � ������ FTP "Passive" ������ �� ����� ������� ���������� 
                 � ��������. ��� ����� - ��������� ������� ��� �������������, 
                 �������� ���������� ���������� �������, �� ����������� 
                 ������������� �������� ���������� �� ������������ ������� 
                 ������. 
    
               o FTP ����� proxy HTTP ������:

                 ���� ����� ��������� ������� FreeBSD ������������
                 �������� HTTP ��� ���������� � proxy ��������, �������
                 ����� ��������� ��� ��������� FTP �������� � �������� FTP
                 ���������� ������������ �����������. HTTP proxy ������
                 � ������ ������ ����� ��������� �������������� �����
                 �������� � ���������� FTP �������. ������������� ������
                 �������������, ��������� ������ FIREWALL'� ������� ���������
                 ������������� ������ ���������� FTP. ��� �������� ������
                 ��� ���������� ����� ������ ����� ������������� - proxy HTTP
                 �������.
                 
            � ������ �������, ����� proxy  FTP �� �������� ��
            HTTP, �� ������ ������ URL, ��������, ����� �������:
    
                    ftp://foo.bar.com:1234/pub/FreeBSD
    
            ��� "1234" - ����� ����� ftp �������������  �������.    
    
    1.6     �������� ��� ������������� ������������ �������� �������
    ---     --------------------------------------------------------
    
    ���� �� ������ ���������� FreeBSD �� ������, ��������� ������ 
    ���������������� ���� (����., � ��� ��� ��� �� �� ������ 
    ������������ ����� VGA), ����������, �������� ���� ����������.
    
            1. ���������� ���������� ����� ����� �� ����� ANSI (vt100) 
               ������������ ��������� ��� ���������� �������� ��������� 
               � ������ COM1 ����������, �� ������� �� �������������� FreeBSD.
    
            2. ��������� ���������� (��, ������ ���!) � ����� ���������� 
               ����������� ���� � �������, ���� � ������������� CDROM,
               � ����������� �� ���� ������ ������������� ��������. 
               ���������� ������ ���� ���������. 
    
            3. ���� �� �� ��������� ������� ������ �� ������ �� ����� 
               ���������������� �������, ����� ���������� ���������� � ����� 
               �������� ��������. ���� �� ������������ � CDROM, 
               ����������� � ������ 5 ��� ������ �������� �������� ������.
    
            4. ��� �������� �������, ������ �������� ������ ���������, 
               ����� ���������� ������� ������� � kern.flp � �������� ������� 
               � mfsroot.flp, ����� ���� �� ������ ������ ���� � ����� 
               ��� ���� �������� ������. 
    
            5. ������� ������, ����� ������� 
    
                   boot -h
    
               � ������ �� ������ ������� ��� �� ����� �������� �������.
               ���� ��� ��� �� �����-�� ������� �� �������, ���������  
               ��� serial ������, � ����� ��������� ��������� �������� 
               ��������� ��� ������������� ������������� ����������. 
               � �� ���������� ������ ���� ����������� ���������:
               - �������� 9600 baud, 
               - 8 bit, no parity.
                       
    2.0     ������ �������� � ������� ������������� DOS 
    ---     -------------------------------------------
    
    2.1     ��������! � ���� ��� �����! ��� ���� ������� ��� �������?
    ---     ---------------------------------------------------------
    
    ���� �� ����� ������ ��� ���������� DOS, � � ��� ���� ��� ������ 
    ��� ���������� ����� ��� ��������� FreeBSD, ��� �� ��� ��������!
    �� ������ ����� ������� "FIPS", ����������� � ������������� tools/ 
    �� FreeBSD CDROM ��� �� ��������� ftp ������ FreeBSD, ������� 
    �������� �������.
    
    FIPS ��������� ��� ������� ������������ ������ DOS �� ��� ��������,
    �������� ������� ����� � �������� ��� ����������� ��������� �� ������ 
    ��������� ��������. ������� �� ���������������� ���� �������� DOS �
    �������������� ������� DOS 6.xx "DEFRAG" ��� ������ � Norton Disk, ����� 
    ���������� FIPS.  ������ � ������� FIPS �� ���������� ���� DOS ��������,
    � �������� ������ - ��������� ��� ��������� FreeBSD. ����� ����� �� ������
    ����������� � ���������� FreeBSD � ����� �������. �������� ����� ��������
    �� ��, ��� FIPS ������� ������ �������� ��� ������ DOS, ������� �� �������,
    ��� � ��� ���� ��� ��������� ������� DOS, � �� ����� ��� ������ ��� ����.
    �� ����������! �� ������ ������� ��������� ������ DOS (��������������
    �������� ��� ������ � ����������, ��� ���������� ������� ������ ����
    ������)! :) 
    
    ��������: ��������� FIPS � ��������� ����� �� �������� � ��������� 
    FAT32 ��� VFAT ������������� � ����������� ������ Windows 95. 
    ����� ������� ����� ��� ������� (�������� ������, ��������� ��� ���������), 
    ��� ����������� ������������ ������� ���� Partition Magic 3.0. � ���������,
    ���� �� ��� ������ Windows ������ ���� ����, � �� ������ ��������������
    �S Windows c ������������, ������ ��� ������� ���������� ���������, 
    ������ ����� � ���� ������ �������� �� ����� ��� ����� ������� ��������. 
    
    2.2     ���� �� � �� FreeBSD ������������ �����, ������ � ������� DOS?
    ---     --------------------------------------------------------------
    
    ���. ���� �� ����������� ������� ���� Stacker(tm) ���
    DoubleSpace(tm), FreeBSD ������ ������������ �� ����� ������ ������� DOS, 
    ������� �� �������� ��������. ��������� ����� �������� ������� ����� 
    ��������� ��� ���� ������� ���� (the stacked/dblspaced file!). �� ��������
    ���� ����, ����� ����� �� ���� �� ��������!
    
    ��������, ����� �����, ���� �� ��������� ��� ���� ����������� ������
    DOS � ����������� ��� ��� ��������� ����� DOS � FreeBSD.  
    
    
    2.3     ���� �� � ���������� ���� ����������� ������� DOS?
    ---     --------------------------------------------------
    
    ��. ����������� �������� DOS �� FreeBSD ������������� � �����,
    ����� ������ ������� (slices), ��������, ��� ���� D ����� /dev/da0s5
    ���������, � ���� � - /dev/da0s6, � ��� �����. �����������, ��������������, 
    ��� ���� ����������� �������� ��������� �� SCSI ����� 0. ��� 
    ������������� ������ IDE, �������� ``ad'' �� ``da''. � ����� ������ �� 
    ���������� ����������� �������� ����� ��� ��, ��� � ����� ������ 
    ���� DOS, ��������:
    
    mount -t msdos /dev/da0s5 /dos_d
    
    
    2.4     ���� �� � ��������� DOS binaries � FreeBSD?
    ---     -------------------------------------------
    
    � ��������� ������ ������� ������ ��� �������� BSDI doscmd,
    ������� ������� ������� ��� � FreeBSD 3.0, ���� ����� ��� ��� 
    �������� ��������� ��������. ���� ��� ��������� �������� ��� ����, 
    ����������, ������ �� emulation@FreeBSD.org � �������, ��� �� 
    ������ �� �������������� � ����� ������!
    
    ���������� ����� �������� ������� "pcemu" �� ��������� ������ (ports 
    collection), ������� ��������� ������ ���������� 8088 � ��������� ������� 
    BIOS ��� ������� �������� � ��������� ������ DOS. ��� ������� �������� 
    � ������� X Window System (XFree86), ������� ������ ���� � ��� ���
    �����������.


    ---- ����� ����������� �� ��������� ---

Материал из Xgu.ru

Перейти к: навигация, поиск

stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Участник:RemiZOffAlex

Содержание

  • 1 Этап I. Загрузка
    • 1.1 Образ CD/DVD
    • 1.2 USB диск
    • 1.3 PXE
      • 1.3.1 Сервер
      • 1.3.2 Клиент
  • 2 Этап II. Разбивка диска
    • 2.1 MBR
      • 2.1.1 MBR-UFS
      • 2.1.2 MBR-ZFS
    • 2.2 GPT
      • 2.2.1 GPT-UFS
      • 2.2.2 GPT-ZFS
      • 2.2.3 Устанавливаем необходимые параметры в файлы конфигурации
  • 3 GPT-ZFS
    • 3.1 Устанавливаем необходимые параметры в файлы конфигурации
  • 4 Этап III. Установка системы
    • 4.1 Установка релиза с официального сайта
      • 4.1.1 Сборка и установка собственной системы из исходников
  • 5 Этап IV. Конфигурация системы
    • 5.1 Настраиваем конфигурационные файлы
    • 5.2 FreeBSD:Настройка сетевых подключений
    • 5.3 SSH
    • 5.4 DNS
    • 5.5 NTP
    • 5.6 Добавление пользователей
  • 6 Этап V. Установка необходимых программных пакетов

[править] Этап I. Загрузка

Ссылка на релиз 9.1.

[править] Образ CD/DVD

Качаем с официального сайта образ диска

# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.1/FreeBSD-9.1-RELEASE-i386-bootonly.iso

Записываем образ на диск

[править] USB диск

Качаем с официального сайта образ

# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.1/FreeBSD-9.1-RELEASE-i386-memstick.img

Записываем образ на флешку

# dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=8k

[править] PXE

Способ загрузки FreeBSD по сети с использованием технологии PXE.

[править] Сервер

Каталог для загружаемой системы выбран /data/thinstation. Сюда помещаем систему, которая будет в последствии загружаться по сети. Это либо готовая сборка, либо скачанный с официального сайта и распакованный образ.

Правим следующие конфигурационные файлы:

/etc/hosts.allow

# Добавляем разрешение регистрации RPC сервисов с указанной подсети, иначе выдаст RPC: Program not registered
rpcbind : 192.168.0.0/255.255.255.0 : allow

/etc/exports

/data/thinstation -maproot=root -alldirs -network 192.168.0.0/24

/etc/rc.conf

# DHCP
dhcpd_enable="YES"                              # dhcpd enabled?
dhcpd_flags="-q"                                # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf"          # configuration file
dhcpd_ifaces="em1"                              # ethernet interface(s)
dhcpd_withumask="022"                           # file creation mask

# NFS
nfs_server_enable="YES"
nfsv4_server_enable="YES"

# Inetd
inetd_enable="YES"

/etc/inetd.conf

tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /data/thinstation

/usr/local/etc/dhcpd.conf

# Добавляем путь загрузки
option root-path "192.168.0.1:/data/thinstation";
# Ну и сам загрузочник
filename "/boot/pxeboot";

Ну и все это дело запускаем:

# /etc/rc.d/nfsd start
# /etc/rc.d/inetd start
# /usr/local/etc/rc.d/isc-dhcpd start

[править] Клиент

/boot/loader.conf

boot.nfsroot.server="192.168.0.1"
boot.nfsroot.path="/data/thinstation" 
vfs.root.mountfrom="nfs" 
vfs.root.mountfrom.options=rw

/etc/fstab

192.168.0.1:/data/thinstation /     nfs    rw     0    0
proc                          /proc procfs rw     0    0

/etc/rc.conf

# Network
ifconfig_DEFAULT="DHCP"
# SSH
sshd_enable="YES"

[править] Этап II. Разбивка диска

Пример разбивки:MBR Пример разбивки:GPT
UFS ZFS RAID UFS ZFS RAID
UFS ZFS UFS ZFS
MBR-UFS MBR-ZFS MBR-RAID MBR-RAID GPT-UFS GPT-ZFS MBR-RAID MBR-RAID

[править] MBR

Code: sh
# gpart create -s mbr da0

[править] MBR-UFS

Code: sh
# gpart add -t freebsd da0
# gpart set -a active -i 1 da1
# newfs -U -L FreeBSDonUSB /dev/da0s1a
# mount /dev/da0s1a /mnt

[править] MBR-ZFS

# gpart create -s mbr da1
# gpart add -t freebsd da1
# gpart set -a active -i 1 da1
# zpool create zroot /dev/da1s1
# zpool set bootfs=zroot zroot
# gpart bootcode -b /mnt2/boot/boot0 ad0

Install ZFS boot
— Export zroot, before installing boot code

Fixit# zpool export zroot

— Install the boot1 stage:

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad0s3 count=1

This may fail with an «operation not permitted» error message, since the kernel likes to protect critical parts of the disk. If this happens for you, run:

Fixit# sysctl kern.geom.debugflags=0x10

— Install the boot2 zfs stage into the convienient hole in the ZFS filesystem on-disk format which is located just after the ZFS metadata (this is the seek=1024).

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad0s3 skip=1 seek=1024

— Import zroot to continue the install

Fixit# zpool import zroot

[править] GPT

# gpart create -s gpt ada0

[править] GPT-UFS

Code: script.sh
#!/bin/sh
drive="/dev/ada0"
letter="X"
 
gpart create -s GPT ${drive}
gpart add -s 256 -t freebsd-boot -l boot${letter} ${drive}
gpart add -s 2G -t freebsd-swap -l swap${letter} ${drive}
gpart add -t freebsd-ufs -l disk${letter} ${drive}
newfs -O2 -U /dev/gpt/disk${letter}
tunefs -j enable /dev/gpt/disk${letter}
mount -t ufs -o rw /dev/gpt/disk${letter} /mnt

После установки не забываем записать загрузчик

# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptboot -i 1 /dev/ada0

[править] GPT-ZFS

#!/bin/sh
# Диск для разметки (Внимание! Все данные с диска будут стерты)
drive="/dev/ada0"
# Маркер разметки
letter="X"
# Имя пула
poolname="zfssystem"
# Точка монтирования будущей системы
mountpoint="/mnt"

gpart create -s GPT ${drive}
gpart add -s 256 -t freebsd-boot -l boot${letter} ${drive}
gpart add -s 2G -t freebsd-swap -l swap${letter} ${drive}
gpart add -t freebsd-zfs -l disk${letter} ${drive}

# Создаем пул с именем zfssystem (переменная poolname) на разделе diskX и подключаем к точке монтирования /mnt
zpool create -m ${mountpoint} ${poolname} /dev/gpt/disk${letter}
zpool set bootfs=${poolname} ${poolname}
zfs set checksum=fletcher4 ${poolname}
zfs set atime=off ${poolname}

Создаем структуру папок с указанием параметров

Возможно указание сжатия некоторых директорий, таких как /usr/ports /usr/src

zfs create ${poolname}/var
zfs create ${poolname}/var/db
zfs create -o exec=off -o setuid=off ${poolname}/var/empty
zfs set readonly=on ${poolname}/var/empty
zfs create ${poolname}/var/tmp
zfs create ${poolname}/var/empty
zfs create -o compression=gzip ${poolname}/var/crash
zfs create ${poolname}/tmp
zfs create ${poolname}/usr
zfs create -o compression=gzip -o mountpoint=${mountpoint}/usr/src ${poolname}/src
zfs create -o compression=gzip -o mountpoint=${mountpoint}/usr/ports ${poolname}/ports
zfs create -o mountpoint=${mountpoint}/usr/ports/distfiles ${poolname}/distfiles
zfs create -o mountpoint=${mountpoint}/usr/home ${poolname}/home
zfs create -o mountpoint=${mountpoint}/usr/local ${poolname}/local
zfs create -o mountpoint=${mountpoint}/usr/obj ${poolname}/obj
zfs create ${poolname}/data
chmod 1777 ${mountpoint}/tmp ${mountpoint}/var/tmp

[править] Устанавливаем необходимые параметры в файлы конфигурации

Включаем ZFS

echo '# ZFS' > ${mountpoint}/etc/rc.conf
echo 'zfs_enable="YES"' > ${mountpoint}/etc/rc.conf

Настраиваем полноценный запуск ZFS

echo 'zfs_load="YES"' > ${mountpoint}/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:'${poolname}'"' >> ${mountpoint}/boot/loader.conf
echo 'vm.kmem_size="1024M"' >> ${mountpoint}/boot/loader.conf
echo 'vm.kmem_size_max="1024M"' >> ${mountpoint}/boot/loader.conf
echo 'vfs.zfs.arc="512M"' >> ${mountpoint}/boot/loader.conf
echo 'vfs.zfs.arc_max="512M"' >> ${mountpoint}/boot/loader.conf
echo 'vfs.zfs.vdev.cache.size="10M"' >> ${mountpoint}/boot/loader.conf
echo 'vfs.zfs.prefetch_disable=1' >> ${mountpoint}/boot/loader.conf

Обязательно добавляем чтоб компилировать систему с поддержкой загрузочника ZFS

echo 'LOADER_ZFS_SUPPORT=YES' >> ${mountpoint}/etc/src.conf

После установки не забываем записать загрузчик

# gpart bootcode -b ${mountpoint}/boot/pmbr -p ${mountpoint}/boot/gptzfsboot -i 1 ${drive}

[править] GPT-ZFS

# gpart create -s /dev/ada0
# gpart add -s 256 -t freebsd-boot -l bootX /dev/ada0
# gpart add -s 2G -t freebsd-swap -l swapX /dev/ada0
# gpart add -t freebsd-zfs -l diskX /dev/ada0

После установки не забываем записать загрузчик

# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 /dev/ada0

Создаем пул с именем zfssystem на разделе diskX и подключаем к точке монтирования /mnt

# zpool create -m /mnt zfssystem /dev/gpt/diskX
# zpool set bootfs=zfssystem zfssystem
# zfs set checksum=fletcher4 zfssystem
# zfs set atime=off zfssystem

Создаем структуру папок с указанием параметров

Возможно указание сжатия некоторых директорий, таких как /usr/ports /usr/src

zfs create zfssystem/var
zfs create zfssystem/var/db
zfs create -o exec=off -o setuid=off zfssystem/var/empty
zfs set readonly=on zfssystem/var/empty
zfs create zfssystem/var/tmp
zfs create zfssystem/var/empty
zfs create -o compression=gzip zfssystem/var/crash
zfs create zfssystem/tmp
zfs create zfssystem/usr
zfs create -o compression=gzip -o mountpoint=/mnt/usr/src zfssystem/src
zfs create -o compression=gzip -o mountpoint=/mnt/usr/ports zfssystem/ports
zfs create -o mountpoint=/mnt/usr/ports/distfiles zfssystem/distfiles
zfs create -o mountpoint=/mnt/usr/home zfssystem/home
zfs create -o mountpoint=/mnt/usr/local zfssystem/local
zfs create -o mountpoint=/mnt/usr/obj zfssystem/obj
zfs create zfssystem/data
chmod 1777 /mnt/tmp /mnt/var/tmp

[править] Устанавливаем необходимые параметры в файлы конфигурации

Включаем ZFS

echo '# ZFS' > /mnt/etc/rc.conf
echo 'zfs_enable="YES"' > /mnt/etc/rc.conf

Настраиваем полноценный запуск ZFS

echo 'zfs_load="YES"' > /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zfssystem"' >> /mnt/boot/loader.conf
echo 'vm.kmem_size="1024M"' >> /mnt/boot/loader.conf
echo 'vm.kmem_size_max="1024M"' >> /mnt/boot/loader.conf
echo 'vfs.zfs.arc="512M"' >> /mnt/boot/loader.conf
echo 'vfs.zfs.arc_max="512M"' >> /mnt/boot/loader.conf
echo 'vfs.zfs.vdev.cache.size="10M"' >> /mnt/boot/loader.conf
echo 'vfs.zfs.prefetch_disable=1' >> /mnt/boot/loader.conf

Обязательно добавляем чтоб компилировать систему с поддержкой загрузочника ZFS

echo 'LOADER_ZFS_SUPPORT=YES' >> /mnt/etc/src.conf

[править] Этап III. Установка системы

[править] Установка релиза с официального сайта

Через скрипт будет элегантнее

workdir="/data"
sysrelease="9.1"
address="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/"${sysrelease}"-RELEASE/"
fetch ${address}base.txz ${address}kernel.txz -o ${workdir}
export DESTDIR=/mnt
for file in ${workdir}/base.txz ${workdir}/kernel.txz; do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}) ; done

[править] Сборка и установка собственной системы из исходников

Предподготовка

# mkdir /mnt/usr /mnt/usr/ports /mnt/usr/src /mnt/usr/obj
# svn checkout https://svn0.us-west.freebsd.org/base/stable/9/ /mnt/usr/src
# svn checkout https://svn0.us-west.freebsd.org/ports/head/ /mnt/usr/ports

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

#!/bin/sh

# Точка монтирования будущей системы
mountpoint="/mnt"
# Архитектура
architecture="i386"
# Путь к файлу make.conf
makeconf="/data/scripts/make.conf"
# Путь к файлу src.conf
srcconf="/data/scripts/src.conf"
# Путь к исходникам
sourcepath=${mountpoint}"/usr/src"
# Путь к obj
objpath=${mountpoint}"/usr/obj"

make -j4 buildworld TARGET_ARCH=${architecture} 
TARGET=${architecture} __MAKE_CONF=${makeconf} SRCCONF=${srcconf} 
MAKEOBJDIRPREFIX=${objpath} -C ${sourcepath}

make -j4 buildkernel KERNCONF=FLASH TARGET_ARCH=${architecture} 
TARGET=${architecture} __MAKE_CONF=${makeconf} SRCCONF=${srcconf} 
MAKEOBJDIRPREFIX=${objpath} -C ${sourcepath}

make installworld DESTDIR=${mountpoint} TARGET_ARCH=${architecture} 
TARGET=${architecture} __MAKE_CONF=${makeconf} SRCCONF=${srcconf} 
MAKEOBJDIRPREFIX=${objpath} -C ${sourcepath}

make installkernel KERNCONF=FLASH DESTDIR=${mountpoint} 
TARGET_ARCH=${architecture} TARGET=${architecture} 
__MAKE_CONF=${makeconf} SRCCONF=${srcconf} 
MAKEOBJDIRPREFIX=${objpath} -C ${sourcepath}

mergemaster -m ${sourcepath} -A ${architecture} -D ${mountpoint}

Для сборки с ZFS следует внести изменения в соответствующий файл /etc/src.conf

# echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf

[править] Этап IV. Конфигурация системы

[править] Настраиваем конфигурационные файлы

/etc/fstab

# Device	Mountpoint	FStype	Options	Dump	Pass#
/dev/gpt/disk0	/		ufs	rw	1	1
proc		/proc		procfs	rw	0	0
/dev/gpt/swap0	none		swap	sw	0	0

Для USB flash накопителей, чтоб не вывести их преждевременно из строя:

# Device	Mountpoint	FStype	Options		Dump	Pass#
/dev/gpt/disk0	/		ufs	rw,noatime	1	1
proc		/proc		procfs	rw		0	0

[править] FreeBSD:Настройка сетевых подключений

/etc/rc.conf

# Network
ifconfig_DEFAULT="YES"

# Firewall
firewall_enable="YES"
firewall_type="OPEN"
 
# SSH
sshd_enable="YES"

[править] SSH

Для запуска демона необходимо добавить в /etc/rc.conf запись

sshd_enable="YES"

[править] DNS

Настройка службы named

/etc/rc.conf

named_enable="YES"

/etc/namedb/named.conf

Обязательно раскомментировать секцию: forwarders

forwarders {
	192.168.0.1;
};

/etc/resolv.conf

nameserver 127.0.0.1

[править] NTP

Служба точного времени включается добавлением в /etc/rc.conf записи

ntpd_enable="YES"

[править] Добавление пользователей

# echo 'PASSWORD' | pw useradd USERNAME -G wheel -s /bin/tcsh -m -d /home/username -h 0

Перезагрузка

# shutdown -r now

[править] Этап V. Установка необходимых программных пакетов

Установка утилиты portmaster. Её цель — актуальная сборка/пересборка пакетов.

# make -C /usr/ports/ports-mgmt/portmaster install clean

┌────────────────────────────────────────────────────────────────────┐
│ Options for portmaster 3.14_8                                      │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │   [ ] BASH        Install programmable completions for Bash    │ │
│ │   [ ] PKGNGPATCH  Enable PKGNG support                         │ │
│ │   [ ] ZSH         Install programmable completions for zsh     │ │
│ └────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────┤
│                   <  OK  >          <Cancel>                       │
└────────────────────────────────────────────────────────────────────┘
#!/bin/sh -

workdir="/data/scripts"
portsdir="/usr/ports"

# Загрузка ПО из сети Интернет
make -C /usr/ports/ports-mgmt/portmaster/ fetch-recursive
for port in `cat ${workdir}/list_ports`
do
	make -C ${portsdir}/${port} fetch-recursive
done

# Установка ПО
make -C /usr/ports/ports-mgmt/portmaster/ install clean
rehash
for port in `cat ${workdir}/list_ports`
do
	portmaster $port
done
rehash

Пример файла list_ports

net/mpd5
databases/mysql55-server
 Просмотр этого шаблона ОС FreeBSD
Печать CUPS • IPP • LPR • LPD Freebsd-icon.png
Сеть ipfw • NAT • mpd5 • squid • netgraph
 Просмотр этого шаблона Конфигурационные файлы
apmd.conf • auth.conf • cupsd.conf • ddb.conf • devd.conf • devfs.rules • devfs.conf • dhclient.conf • dhcpd.conf • host.conf • loader.conf • login.conf • make.conf • mpd.conf • named.conf • newsyslog.conf • nscd.conf • nsmb.conf • nsswitch.conf • ntp.conf • periodic.conf • portsnap.conf • rc.conf • resolv.conf • smb.conf • squid.conf • src.conf • sysctl.conf • syslog.conf • wpa_supplicant.conf
 Просмотр этого шаблона Различные руководства
FreeBSD на RAIDZ ZFS • FreeBSD:Способы установки
 Просмотр этого шаблона Способы установки ОС
FreeBSD:Способы установки

От автора

Эта статья в основном расчитана на сетевых администраторов небольших
организаций, которые хотят доверить предметной ОС доступ в Интернет. Но
приведенные здесь рекомендации также могут быть полезны и другим опытным
«айтишникам», которые хотят использовать эту ОС в работе. Впрочем, никаких
гениальных изобретений и исчерпывающих выкладок здесь нет. Если есть острое
желание изучить эту ОС, что называется «с потрохами», то рекомендую книжку
«Сага о FreeBSD» Алексея Федорчука
. Однако я постарался описать процесс так, чтобы вызвать у читателя желание
разбираться самостоятельно. Надеюсь, что это получилось.

Введение

Наступая на грабли и разбираясь с установкой этой ОС самостоятельно, человек
приобретает опыта несравнимо больше (богаче), нежели с пошаговым руководством.
Посему, я предлагаю самостоятельно разобраться с загрузкой с CD, разбивкой
диска и собственно установкой. Однако некоторые рекомендации по этому поводу
будут.

Прелесть FreeBSD (как впрочем и большинства POSIX-овых операционок) — иерархия
файловой системы с единым корнем. В любую точку этой иерархии можно монтировать
(совершенно прозрачно для большинства приложений) разделы диска. Это значит,
что если у вас, например, кончилось место в /var, и больше всего съел /var/mail,
то вы спокойно выносите его (mail) на отдельный раздел не меняя ничего в
настройках софта.

Загрузка с CD и разбивка дисков

Начиная с 5.x версии, загрузчик предлагает нам до загрузки ядра выбрать
варианты. Это пригодится, если вдруг в обычном режиме ядро подвисает, не
успевая выдать рюшечки sysinstall — перезагружаемся и выбираем safe mode.
Кстати, в sysinstall везде лучше пользоваться кнопкой «Space» чтобы нажимать,
и кнопками «Tab» и стрелками чтобы перемещаться; «Enter» здесь очень
часто приводит к нежелательным результатам. Не следует пугаться слова «Expert»
при выборе способа установки — нам нужен именно «Custom»-ный вариант.

Partitions — это то, что называется раздел носителя (жесткого диска, например),
который непосредственно виден как UFS (Unix File System). На «живой» системе
он виден например так /dev/ad0s1. Можно его использовать весь целиком, но лучше
его разбить на логические разделы — label (то, что я обычно называю разделами).
Неразберихи не возникает, т.к. обычно из контекста понятно, о чем речь, и
почти всегда это именно Label. В системе такой логический раздел виден
(соответственно) так: /dev/ad0s1a. «a» — это всегда корень, тогда как «c» —
все label-ы сразу. В некоторых случаях можно использовать для файловой системы
один единственный раздел на весь носитель сразу. Но для гибкости лучше
разбивать на физические и логические разделы.

Отмечу, что если на носителе уже есть разделы (с MS Windows, например), то
они будут видны например так: /dev/ad0s2. «ad» — это своего рода семейство
носителей, категория (atapi disk). ad0 — первый винт, ad1 — второй и т.д.
«s» — это физический раздел (slice, partition). ad0s1 — первый раздел на
первом винте, ad1s3 — третий раздел на втором винте, и т.д.

Создайте один физический раздел в Partitions и затем в Label создаем:

  • / — не менее гигабайта (лучше 2G), т.к. ядро с модулями значительно
    распухло со времен 4.x.
  • SWAP — как минимум в два раза больше объема оперативной памяти
    (2*RAM + ядро), подробности
    тут.
    Если дисков (массивов) несколько, то не помешает разместить SWAP на каждом
    из них.
  • /tmp — в зависимости от того, насколько часто перезагружается сервер
    (чем чаще — тем меньше тут надо места, для начала подойдет 1G).
  • /var — если уверенности нет, то лучше сделать на глаз 2-3 (4-5)
    гигабайт.
  • /home — примерно 3-5 гигабайт, но все зависит от того, собираетесь
    ли вы париться о личных данных пользователей. Лучше конечно бэкапить
    этот раздел, и поэтому сделайте его поменьше (1-2G), чтоб юзерам было не
    повадно складывать туда некритичный для работы хлам.
  • /usr — также как и /var. Эти разделы должны быть разными по причинам, описанным в man hier. Если софт ставить правильно, то в /usr попадают статические (изменяющиеся руками) файлы, а в /var соответственно динамические (которые меняются системой в автономном режиме).
  • /storage — все остальное. Этот раздел будет использоваться для некритичного для работы самого сервера контента, а также для файлов сервисов, которые надо бэкапить своими средствами.

После приобретения опыта, вышеприведенная схема разделов у Вас скорее всего изменится.

Установка

В Distributions выбираем Minimal, а затем заходим в Custom, чтобы добавить то, что надо. Если есть возможность,
то Ports лучше не ставить, а скачать после установки свежие с FTP (см. ниже). Но если
сразу после установки доступа к Интернету нет, а порты нужны (например у Вас исходники в distfiles есть с собой)
— то можно ставить, а затем (как только
доступ появится) сразу обновить через cvsup, о чем речь пойдет ниже.

Оболочка sysinstall ничего реально не делает на дисках, пока мы не делаем одно из двух:

  • нажимаем кнопку «W» в разделах «Partition» и «Label»
  • нажимаем «Commit» и далее

В обоих случаях оболочка предупреждает о последствиях. С этим знанием можно без проблем «тренироваться»
до посинения, не боясь потерять данные.

После завершения процессов копирования, sysinstall возвращает назад в меню. Когда я первый раз в жизни
ставил FreeBSD, у меня на этом месте возникла мысль «она че, не установилась чтоли?!?», а затем мои
руки начали установку по-новой. И так происходило до тех пор, пока я не решил перезагрузиться.
Имхо, только глубокое понимание принципа UNIX («инструменты, а не политика») дает ясность относительно
причин этого конфуза — на самом деле ОС установилась, и поэтому следует выходить из утилиты и перезагружаться.

Настройка

Повторюсь, чтобы писать инструкции для исполнителей (а в нашем случае — настраивать свежеустановленную ОС)
нужно уже знать задачи, которые они (исполнители) будут решать. :) Однако есть общие для всех случаев процедуры:

  • установка даты и времени
  • настройка сценария /etc/rc
  • сборка и установка ядра
  • установка и настройка так называемого «окружения» (различных удобных приложений для работы)
  • настройка периодических работ
  • настройка пакетного фильтра

Установка даты и времени

Это очень важно. Стоит пренебречь этим один раз на реально работающем сервере, чтобы потом крепко-накрепко
усвоить важность правильной установки даты и времени. Время, которое установлено в BIOS, не содержит в себе
часового пояса. Поэтому лучше расчитать и выставить текущее время по гринвичу командой date (или перезагрузиться и
сделать это через CMOS Setup, или, если уже есть Интернет, командой ntpdate pool.ntp.org), а затем выбрать подходящую зону из /usr/share/zoneinfo и скопировать ее в
/etc/localtime (а еще лучше — сделать туда симлинк).

Каталог /usr/share/zoneinfo является частью дистрибутива и его можно обновить (например, когда часовые пояса меняются, как было когда Медведев отменил переход на зимнее время) либо из исходников, либо из порта misc/zoneinfo.

Настройка rc

Вообще, сценарий rc можно сравнить с автозагрузкой в windows, однако это не передает широты и глубины процесса
запуска сервисов FreeBSD. В начале своего UNIX-пути я читал Maurice J. Bach
«Архитектура операционной системы UNIX» и при этом
понимал не больше тридцати процентов написанного, что не мешало мне увлекаться этим процессом так, как будто это
«Властелин колец». В двух словах: ядро распознает все железо на машине, подгружает модули, а затем запускает
init, который в свою очередь использует rc для запуска и настройки всех возможных приложений (включая конфигурацию
сетевых интерфейсов, пакетного фильтра, запуск сервисов интернета, баз данных и всего прочего). Управлять работой
сценария rc можно, редактируя его «должностную инструкцию» /etc/rc.conf. Многие настраивают его через sysinstall, но меня лично это бесит. Гораздо лучше делать это напрямую.

Здесь я предлагаю вам минимальные настройки, а за подробностями — man rc.conf.


hostname="someserver.domain.tld"

sshd_enable="yes"

firewall_enable="yes"

firewall_quiet="yes"

firewall_logging="yes"

firewall_type="open"

tcp_extensions="no"

icmp_drop_redirect="yes"

icmp_log_redirect="no"

ip_portrange_first="16384"

ip_portrange_last="49151"

background_fsck="no"

fsck_y_enable="no"

update_motd="no"

clear_tmp_enable="yes"

keymap="ru.koi8-r"

keyrate="fast"

scrnmap="koi8-r2cp866"

font8x16="cp866-8x16"

font8x14="cp866-8x14"

font8x8="cp866-8x8"

blanktime="300"

saver="fade"

sendmail_enable="no"

Настройки, которые применяются до просмотра этого файла можно посмотреть в /etc/defaults/rc.conf. Принцип очень простой — прописывайте то, что хотите изменить. Скрипты, которые смотрят этот файл, в основном находятся в /etc/rc.d. Весь софт, который не поставляется в дистрибутиве, держит свои скрипты запуска в /usr/local/etc/rc.d (если вы конечно в ладах с hier и пакетным менджером).

Сборка и установка ядра

Собирать и устанавливать свое ядро обычно не требуется. В современных реалиях это не дает хоть какого-то прироста производительности. Однако делать это в некоторых случаях таки приходится (например, чтобы добавить IPSEC), поэтому я опишу процесс, но вам советую делать это по необходимости.

При переустановке системы я обычно забываю про файл конфигурации ядра, поэтому его лучше разместить в
/root/kernel.CONFIG, сделать симлинк к нему из /usr/src/sys/amd64/conf/my_kern и прописать его в
/etc/make.conf:


KERNCONF=my_kern

В качестве шаблона берем файл GENERIC.

Придумаем какой нибудь осмысленный IDENT, добавим поддержку ipfw:


options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=2000

Не советую добавлять IPFIREWALL_DEFAULT_TO_ACCEPT,
см. «Настройка пакетного фильтра».
Если будем крутить NAT, то также добавим:

options IPDIVERT

Рядом с device sc добавим:

options SC_HISTORY_SIZE=2000

Это значительно увеличит
глубину скроллинга консоли.

Теперь заходим в /usr/src и командуем: make buildkernel, а затем make installkernel.
Если ошибки на buildkernel, то редактируем файл конфигурации ядра и пробуем снова. Если ядро установилось
нормально, но при перезагрузке возникла проблема, то можно загрузится с GENERIC ядром и повторить попытки.

Настройка окружения

Свежескачанные порты
(ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz)
распакуем в разделе /usr. Если у нас имеется свой ftp сервер, где складируются distfiles для экономии трафика, то
пропишем в /etc/make.conf для него адрес:
MASTER_SITE_OVERRIDE=ftp://ftp.mydomain.ru/pub/FreeBSD/distfiles/${DIST_SUBDIR}/

Если нам нужен INDEX (например, для make search …), а он не хочет скачиваться с помощью make fetchindex (а нам
лень ждать make index, и нам мешает какой-то внешний firewall лить http напрямую), то можно сделать это вручную
через прокси:

$ cd /usr/ports
$ export HTTP_PROXY=http://pro.xy.IP.addr:port
$ fetch http://www.FreeBSD.org/ports/INDEX-7.bz2
$ bunzip2 INDEX-7.bz2

Установим из портов следующие приложения:

  • удобный shell (у меня это shells/bash)
  • удобный редактор (у меня это editors/vim с переменной NO_GUI=yes, конфиг для которого после установки
    можно взять в /usr/local/share/vim/vim__/vimrc_example.vim — добавим туда set tabstop=4, уберем или закоментим
    секцию про backup и строку filetype plugin indent on)
  • security/sudo: сразу же сделаем доступ для всех в группе wheel командой visudo и уничтожим
    пароль рута командой vipw (заменяем хэш пароля звездочкой [*])
  • sysutils/coreutils: затем gls —color записываем в алиасы и у нас появляется цветной листинг
    файлов как в линуксе (не забываем указать TERM=xterm-color в SSH клиенте)

Сборку редактора vim из портов следует производить с переменной NO_GUI=yes, чтобы он не пытался ставить x11.
После установки, хороший конфиг можно взять из /usr/local/share/vim/vim__/vimrc_example.vim (и положить себе в
домашнюю директорию с именем .vimrc), с небольшими изменениями:

  • пропишем set tabstop=4, чтобы tab-отступ был в 4 символа (а не 8, как по-умолчанию);
  • уберем set backup (мне лично не нравятся «слепые» бэкапы, ибо если надо мониторить — поставим какую нибудь
    RCS, например, devel/mercurial);
  • уберем filetype plugin indent on (эта штуковина пытается «умничать», когда я вставляю текст в режиме insert
    из буфера — проще руками отступы делать);
  • пропишем

    set encoding=1251
    set fileencoding=1251
    set termencoding=koi8-r

    ибо по умолчанию русификация консоли в koi8-r (и терминал соответственно тоже), а файлы чаще всего содержат кирилицу
    в Windows-1251.

Я лично пользуюсь MC (misc/mc) лишь в некоторых случаях:

  • нужно залить (или наоборот скачать) дерево файлов на FTP
  • нужно найти в системе файл по содержимому

Если Вы знаете, как (чем) еще можно делать эти операции, отпишите мне пожалуйста — буду весьма признателен.

Некоторые замечания по поводу доступа к правам root через sudo. С точки зрения безопасности, не следует делать
его через NOPASSWD. Чисто теоретически, какой-нибудь троян, использующий sudo, при запуске непременно спалится,
если мы не используем NOPASSWD. Но, если мы не пускаем кого попало в группу wheel (сервисы я имею в виду),
не оставляем консоль без присмотра и самостоятельно следим за дырами в ОСи и сервисах (что абсолютно
обязательно для администратора) то ничего страшного в этом я лично не вижу. С другой стороны, использование
NOPASSWD вместе с доступом SSH без пароля с помощью ключа дает прекрасную защиту от клавиатурных снифферов
на нашей рабочей машине, на которой частенько стоит именно Windows. Напрашивается вывод о том, что в каждом
конкретном случае следует решить это отдельно. Например на desktop-е лучше не использовать NOPASSWD, т.к. качество
приложений для X в области безопасности оставляет желать лучшего. Но на сервере, где пакетным фильтром все зашито,
а также софт регулярно обновляется и ничего лишнего нет — лучше авторизоваться по ключу и использовать NOPASSWD.

Кстати, при запуске bash пользователям на входе в систему, он (bash) читает файлы .profile и .bash_profile.
А когда bash запускается с командной строки (например, через sudo bash) — он читает .bashrc домашней директории
вошедьшего пользователя независимо от того, чьи права приобретаются в результате. Обычно в консоли работа идет
под root-ом, поэтому лучше все нужные переменные окружения и алиасы писать в .bashrc. Мой пример:

export EDITOR=vim
export PAGER=less
alias ls="gls --color"
alias mc="mc -a"

По поводу кодировки в консоли. Русификация консоли делается в koi8-r, а файлики в системе чаще всего
содержат текст в кодировке Windows-1251. Общего решения на этот счет (насколько я знаю) не существует, но
я нашел способ настроить редактор vim так, чтобы он перекодировал содержимое файлов на лету при
редактировании (а после закрытия и/или записи файла — перекодировал назад). Делается это в .vimrc:


set encoding=cp1251
set fileencoding=cp1251
set termencoding=koi8-r

Настройка периодических работ

Возьмем шаблон sup-файла для обновления портов
(/usr/share/examples/cvsup/ports-supfile), подредактируем его в области *default host, закометируем ports-all и
включим (уберем решетку) на всех портах, за исключением ненужных категорий. После чего запишем его куда-нибудь
(например в /root/ports-supfile) и добавим в crontab задание для обновления портов
/usr/bin/csup -1 -L 0 -l /var/run/ports-update.lock /root/ports-supfile.

Также есть специальная программа для обновления портов:
ports-mgmt/portsnap. Если у нас имеются проблемы с
прохождением пакетного фильтра cvsup-ом, либо наличествует паранойя относительно man-in-the-middle атаки, либо
нас не устраивает скорость обновления, то пробуем использовать эту программу.

Очень часто сервера под FreeBSD стоят без MTA. Sendmail выключается совсем, чтобы не отправлял отчеты. Надо сказать,
что это не очень хорошая практика. Однако, если все же sendmail выключается совсем, то следует прикрутить
чистку очереди писем, которая накапливается и может в конечном итоге переполнить раздел /var. Чтобы совсем выключить
sendmail, нужно в /etc/rc.conf:

sendmail_enable=no
sendmail_submit_enable=no
sendmail_outbound_enable=no
sendmail_msp_queue_enable=no


Теперь, автоматическая чистка очереди раз в сутки в /etc/crontab:
5 2 * * * root /usr/bin/find /var/spool/clientmqueue/ -type f -delete

Настройка пакетного фильтра

Бытует мнение, что firewall (он же пакетный фильтр) — штука геморройная и, в большинстве случаев, ненужная. Я
согласен с этим, но с большой оговоркой — настройка и применение firewall-а необязательно (нецелесообразно)
лишь в некоторых случаях. Если Вы не применяете пакетный фильр для защиты сервисов, то защита ложится на «плечи»
самих сервисов. Следует понять, что настройка фильтра — это разовый геморрой (который лечится раз и навсегда
изучением предмета), а слежение за дырами в сервисах (порою — многочисленных, далеко не все из которых нужно
«выставлять на публику») является геморроем постоянным.

Конфигурационный файл по умолчанию — /etc/rc.firewall можно подредактировать и оставить, но лучше все сделать
самостоятельно в отдельном файле /etc/rc.firewall.local.

При сборка ядра определяется основной принцип безопасности пакетного фильтра, который, по моему скромному мнению,
в большинстве случаев должен быть «Все запрещено, что явно не разрешено». Этот принцип используется по умолчанию,
если не указывается опция IPFIREWALL_DEFAULT_TO_ACCEPT.

Чтобы спать спокойно, настроив firewall, нужно знать основы работы как минимум следующих протоколов: IP, TCP, UDP,
ICMP. А также следует знать принцип работы необходимого минимума конкретных сервисов (приложений): DNS, SSH.
Если отсутствует знание, то крутить пакетный фильтр вообще не рекомендую. Поэтому, я предлагаю Вам небольшую
шпаргалку. Повторюсь — Вы должны сколько-нибудь хорошо разбираться в принципах работы протоколов стэка TCP/IP.

    Шпора :)

  • Протокол TCP (в отличие от UDP) оперирует понятием «соединение». Т.е. прежде чем передавать по этому протоколу
    полезные данные (состояние соединения = ESTABLISHED), обе стороны (клиент и сервер) должны обменяться несколькими
    пакетами. С точки зрения сервера по соединению проходит три таких пакета: SYN от клиента, SYN+ACK к клиенту, ACK
    от клиента; с точки зрения клиента — два пакета: SYN к серверу, SYN+ACK от сервера.
  • Для идентификации конкретных сервисов (или прикладных протоколов, которые находятся выше стэка TCP/IP, согласно
    модели OSI) в протоколах UDP и TCP определена нумерация портов (от 1 до 65535).
  • WKS (well-known services) — это перечень общеизвестных (стандартных) сервисов, за которыми закреплены строго
    определенные номера портов. Так сделано для того, чтобы клиент мог с успехом добраться до нужного ему сервиса, «обладая»
    лишь адресом сервера.
  • Для передачи пакета (TCP или UDP), клиент также обязан выбрать номер порта со своей стороны. Если на сервере
    эти порты строго определяются через WKS, то на клиенте этот порт выбирается динамически (на усмотрение ОС клиента).
    Однако, из этого правила есть исключения (например, FTP data-соединение в активном режиме устанавливается сервером,
    который на своей стороне для этого всегда использует порт tcp/20).
  • Кроме TCP и UDP, пакеты IP могут «нести на себе» и другие протоколы, которые не содержат в себе портов. Например,
    протокол ICMP оперирует типами. Но следует всегда помнить, что IP является транспортом для всех остальных протоколов
    стэка TCP/IP; и поэтому невозможно запретить IP, но оставить при этом, например, ICMP.
  • Утилиты сетевой диагностики (такие, как ping и traceroute) чаще всего используют протокол ICMP, который для этого,
    собственно, и предназначен.
  • Особо хочется сказать о протоколе DNS, который является жизненно важным для нормальной работы большинства
    сервисов. Этот протокол находится выше TCP и UDP по модели OSI, и использует их оба для транспорта: TCP используется
    для копирования зон между DNS-серверами, UDP используется для трансформации доменных имен в адреса (и наоборот). При
    этом в обоих транспортных протоколах (TCP и UDP) используется один и тот же номер порта — 53. С точки зрения
    клиента обязательным является доступность именно UDP-сервиса DNS. Сервер DNS не во всех случаях нуждается в доступности
    порта tcp/53, однако эти случаи скорее исключения, чем правило.
  • В нашем случае (настройка ОС FreeBSD) скорее-всего появится необходимость удаленного (терминального) управления
    сервером. Этим занимается сервис sshd (работающий по протоколу SSH), за которым закреплен WKS-порт номер 22.

Если вышеописанная шпаргалка показалась Вам банальной и ненужной — прошу Вас, не пишите мне никогда.

На данный момент большинство ISP дают доступ по протоколам PPPoE/PPTP. В этом случае описанные
в настоящей статье рекомендации вполне применимы с той лишь разницей, что ppp кроме обычного
динамического маскарадинга ничего больше дать не сможет. Но об этом будет сказано ниже в
соответствующей части статьи.

Итак, держим в уме следующее:

  • Фильтр по принципу работы похож на сторожа, который просматривает список правил сверху вниз
    для каждого проходящего мимо него сетевого пакета.
  • Этот сторож (фильтр) сравнивает текст правила со свойствами конкретного пакета.
  • Фильтр прекращает сверять пакет со списком правил, если ему встретилось правило, подходящее всем
    свойствам данного конкретного пакета.
  • Когда подходящее пакету правило нашлось, фильтр выполняет относительного этого пакета действие,
    указанное в правиле.

За деталями работы пакетного фильтра freebsd, обратитесь к man ipfw.

Возьмем исходный файл rc.firewall и отредактируем его в rc.firewall.local, убирая все лишнее. Оставляем:

  • выборку переменных из rc.conf:
    if [ -z "${source_rc_confs_defined}" ]; then
    	if [ -r /etc/defaults/rc.conf ]; then
    		. /etc/defaults/rc.conf
    		source_rc_confs
    	elif [ -r /etc/rc.conf ]; then
    		. /etc/rc.conf
    	fi
    fi
    
  • использование переменной firewall_quiet:
    case ${firewall_quiet} in
    [Yy][Ee][Ss])
            fwcmd="/sbin/ipfw -q"
            ;;
    *)
            fwcmd="/sbin/ipfw"
            ;;
    esac
    
  • инициализацию правил и защиту «петлевой» сети:
    ${fwcmd} -f flush
    
    ${fwcmd} add 100 pass all from any to any via lo0
    ${fwcmd} add 200 deny all from any to 127.0.0.0/8
    ${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
    

Пожалуй, это все, что нужно оставить из исходного файла rc.firewall. Не забудем подправить firewall_script
в /etc/rc.conf. Теперь будем добавлять нужные нам правила, помня о выбранной политике: «Все что явно
не разрешено, должно быть запрещено.»

ICMP протокол нужно разрешить, за исключением фрагментов — такие пакеты при нормальной работе не должны
фрагментироваться:

${fwcmd} add deny icmp from any to any frag
${fwcmd} add allow icmp from me to any
${fwcmd} add allow icmp from any to me

ipfw умеет оперировать состоянием tcp соединения, т.е. видеть разницу между установкой (SYN пакет), и
установленным (ACK+SYN и другие флаги). Разрешим любым пакетам «бегать» по уже установленным соединениям
(established), но также конкретно определим разрешенные соединения на этапе установки (setup):

${fwcmd} add allow tcp from any to any established
${fwcmd} add allow tcp from me to any setup
${fwcmd} add allow tcp from any to me 25,110 setup

admins="212.0.65.150 212.0.65.0/25 192.168.22.0/24 192.168.1.0/24"
for i in $admins;
do
        ${fwcmd} add allow tcp from $i to me 22 setup ;
done

Никакой «дыры» здесь нет: если пришел пакет с флагом ACK (который подходит под правило с established),
а наш сервер при этом не имеет никаких сокетов для этого пакета (не было никаких SYN пакетов, которые
подходят под правило setup), то ответ на это будет вполне однозначный — RST. В примере выше, я разрешил
входящие соединения TCP откуда угодно только на порты 25 и 110, а с перечисленных (админских) адресов
на порт 22.

Чтобы разрешить прохождение пакетов, в которых не поддерживается соединение (например, UDP), нужно
добавлять по два правила для каждого случая (для пакета «туда», и отдельно для пакета «обратно»).
Например, чтобы разрешить исходящие (наши) запросы DNS:

${fwcmd} add allow udp from me to any 53
${fwcmd} add allow udp from any 53 to me

В случае, если протокол не поддерживает порты, а разрешать больше, чем надо не хочется, то следует
воспользоваться возможностью ipfw создавать динамические правила. Идея здесь состоит в том, чтобы
фильтр запоминал «прошедьшие мимо него» запросы, и затем разрешал проходить обратно ответам. Например,
чтобы разрешить доступ извне к нашему VPN:

${fwcmd} add allow tcp from any to me dst-port 1723 setup
${fwcmd} add allow gre from any to me keep-state

Обратные пакеты-ответы gre будут разрешены по правилу keep-state. Однако следует иметь в виду, что если
ответ придет позднее, чем несколько секунд, то как ответ он уже не засчитывается — фильтр будет смотреть
список правил дальше. Время жизни динамических правил можно конфигурировать sysctl-переменными
net.inet.ip.fw.dyn_*_lifetime (см. секцию SYSCTL VARIABLES в man ipfw). С точки зрения устойчивости к
отказам в обслуживании (DoS), динамические правила являются довольно опасными, и
поэтому
опция SYSCTL net.inet.ip.fw.dyn_max однозначно ограничивает их максимальное количество. Насколько у Вас
в фильтре много правил, опирающихся на динамические, настолько много сервисов окажутся недоступными при
переполнении списка последних. Т.е. желательно не злоупотреблять этим, но использовать вполне можно.
Например, вместо описанных выше пары правил для DNS пакетов (UDP), можно применить одно правило с keep-state.
Приведу сходный пример для «наших» NTP пакетов (тоже UDP транспорта):

${fwcmd} add allow udp from me to any 123 keep-state

В идеале, перед настройкой пакетного фильтра, следует иметь доступ к консоли сервера (физический, IPKVM), но
в большинстве случаев можно обойтись и без него. С самого начала добавим в самый конец списка всеразрешающее
правило

${fwcmd} add allow log all from any to any

Теперь можно смело (не боясь потерять терминальную
связь с сервером) перезагрузить правила:

$ /etc/rc.d/ipfw restart
$ ipfw show

Фильтр записывает в журнал свойства каждого пакета, который он обработал по правилу с log. Смотрим этот журнал, и
видим там абсолютно все пакеты, которые нами явно еще не разрешены. Очень удобно смотреть эа этим с помощью
tail -f /var/log/security или less /var/log/security (внутри нажать Shift-F). На данном
этапе большинство правок списка правил состоит в добавлении новых разрешающих правил, а также в исправлении
синтаксических ошибок в уже добавленных правилах.

Редактируйте правила фильтра до тех пор, пока у Вас не наберется
решимости поменять это последнее правило на

${fwcmd} add deny log all from any to any

После чего
фильтр будет записывать в журнал все те же неразрешенные правилами пакеты, с той лишь разницей, что они будут
блокироваться. Чтобы явно ненужные (но частенько появляющиеся) пакеты не засоряли журнал, добавляем для них обычные
запрещающие правила перед последним (теперь уже всезапрещающим). Например:

# we dont have any SMB/CIFS services here
${fwcmd} add deny udp from any to any 137,138,139
${fwcmd} add deny tcp from any to any 137,138,139

Но сильно этими «антимусорными» правилами увлекаться не надо, т.к. они сильно снижают эффективность диагностики
работы фильтра через журнал /var/log/security. Количество записей в этом журнале строго ограничено, и мы это
ограничение указали при сборке ядра — IPFIREWALL_VERBOSE_LIMIT. По достижении этого лимита, фильтр перестает
писать, и в этом ничего страшного нет; чтобы фильтр снова начал писать журнал, достаточно скомандовать ipfw resetlog.

Режим работы роутера (настройка NAT)

Компьютер превращается в роутер в том случае, если он правильно умеет обрабатывать транзитные IP-пакеты.
Это можно сравнить с тем случаем, когда для тушения пожара люди выстраиваются в цепочку от водоема до
горящего объекта: IP-пакетом в данном примере является ведро с водой, а роутером — отдельно взятый
человек в цепочке :). В целом, маршрутизация в Интернете гораздо сложнее приведенной аналогии, и для
полного ее понимания (осмысления) следует подробно изучить
протокол IP в соответствующей области. Также, даже
хорошо понимая принципы IP-маршрутизации, следует изучить принципы трансляции адресов насколько это возможно —
очень часто начальная простая схема динамической трансляции в дальнейшем дополняется более сложной статической.
Рекомендую для этого данную статью.

NAT во FreeBSD тесно связан с пакетным фильтром (ipfw). Поэтому, плюсом ко
всему, что уже есть в уме, нужно
держать там также следующее:

  • При включении режима роутера (gateway_enable=yes в /etc/rc.conf) фильтр проверяет
    все транзитные пакеты по два раза: на входе и на выходе.
  • Передав транзитный пакет сервису NAT для корректировки адресов, фильтр затем получает
    его обратно и продолжает проверять его уже с новыми адресами по списку правил дальше с того места,
    где закончил.

Сейчас я опишу процедуру настройки NAT в случае доступа в Интернет со статическим (ручным) или динамическим
(DHCP) назначением IP-конфигурации. Практика использования NAT на роутерах показала, что при начальной простой
настройке трансляции, со
временем последняя может значительно усложниться. В связи с этим, лучше с самого начала вынести все
ключи в файл /etc/natd.conf; для простой динамической трансляции (с которой лучше начать) этот файл
будет пустым. Разрешаем запуск сервиса natd в /etc/rc.conf:

natd_enable=yes
natd_flags="-f /etc/natd.conf"
natd_interface=rl0

Опция natd_interface указывает на сетевой интерфейс, где следует производить трансляцию. Обычно это
сетевая карта, которая «смотрит в Интернет».

Теперь я опишу процедуру настройки NAT в случае доступа в Интернет через PPPoE/PPTP штатными для FreeBSD
средствами (программу ppp я имею в виду). В ppp NAT вообще ничего кроме простой динамической трансляции
(маскарадинга) делать не умеет. И в связи с этим файл /etc/natd.conf не нужен вовсе, а вместо вышеописанных
действий следует сделать следующее:

  • включить трансляцию адресов средствами программы ppp в /etc/rc.conf:
    ppp_enable=yes
    ppp_mode=ddial
    ppp_nat=yes
    ppp_profile="my_isp_profile"
    
  • заполнить соответствующий профиль в /etc/ppp/ppp.conf:
    my_isp_profile:
     set device PPPoE:"rl0"
     set dial ""
     set login ""
     set authname "mylogin"
     set authkey "password"
     add default HISADDR
    

Сам по себе канал PPP не является устойчивым, ведь он имеет сеансовую природу. В связи с этим бывает так,
что связь лагует и ppp подвисает характерным образом — сотрудники жалуются, что Интернет не работает
или страшно лагует. Если перезапуск ppp всегда помогает, то можно доверить эту «грязную» работу
моей самописной «собаке». Ей для работы нужно поставить из портов перловый
модуль net/p5-Net-Ping-External.
Сохраним ее например в /root/ppp_watchdog.pl и пропишем в /etc/crontab:
*/5 * * * * root /root/ppp_watchdog.pl

В остальном, настойка пакетного фильтра в режиме роутера для этих двух вариантов доступа не отличается. Однако
следует отметить, что программа ppp непосредственно с пакетным фильтром не связана; более того, она
«сама» умеет фильтровать трафик. Соответственно, в /etc/rc.conf нужно выбрать одно из двух: либо
natd_enable=yes, либо ppp_nat=yes — не оба варианта одновременно! Если со временем все же придется
усложнять настройку NAT, то можно отказаться от трансляции в ppp, и включить более умелый natd, указав ему
в качестве интерфейса tun0. Последний вариант я лично не проверял, если Вам удалось — отпишите мне пожалуйста.

Итак, теперь у сервера несколько (обычно два) сетевых интерфейсов. Чтобы обеспечить взаимодействие ipfw
с сервисом natd только в случае включения последнего в /etc/rc.conf, скопируем соответствующую секцию
в /etc/rc.firewall.local повыше (например, перед инициализацией правил — flush):

case ${natd_enable} in
[Yy][Ee][Ss])
    if [ -n "${natd_interface}" ]; then
        ${fwcmd} add 50 divert natd ip4 from any to any via ${natd_interface}
    fi
    ;;
esac

Рекомендации по настройке пакетного фильтра, изложенные выше не обеспечивают доступ из
локальной сети, поэтому дополним их правилами в /etc/rc.firewall.local. Все нижеперечисленные правила следует
добавлять выше любых запрещающих правил.

Для начала, опишем диапазон адресов, которые используются внутри ЛВС (здесь и далее — Локальной сети):

lan="192.168.0.0/16"

Для большинства случаев, такой диапазон подойдет. Можно также безболезненно вынести эту переменную в
/etc/rc.conf обозвав ее более осмысленно с точки зрения содержимого последнего (например, firewall_lan).

Разрешим утилитам сетевой диагностики и DNS-клиентам доступ в Интернет:

${fwcmd} add allow icmp from $lan to any keep-state
${fwcmd} add allow udp from $lan to any 53
${fwcmd} add allow udp from any 53 to $lan

Разрешим доступ из ЛВС на данный сервер:

${fwcmd} add allow tcp from $lan to me setup
${fwcmd} add allow ip from $lan to me keep-state

В зависимости от политики доступа сотрудников компании в Интернет, следует соответствующим образом
добавлять разрешающие правила. Я лишь приведу несколько примеров.

Разрешим доступ из ЛВС к FTP-серверу провайдера:

my_isp_ftp="124.1.90.5"
${fwcmd} add allow tcp from $lan to $my_isp_ftp setup

В этом случае не следует указывать порты, т.к. FTP через NAT работает только в пассивном режиме —
исходящие data-соединения (tcp) пойдут в заранее неизвестном диапазоне.

Разрешим из ЛВС «ходить» по web-страничкам в Интернете:

${fwcmd} add allow tcp from $lan to any 80-84 setup
${fwcmd} add allow tcp from $lan to any 443 setup

Последнего конечно лучше не делать, ибо контора обычно платит провайдеру за входящий трафик. Лучше
поднять прокси, и пускать всех через него. Раздавать и ограничивать доступ через прокси гораздо
проще.

Упаси Вас Господь разрешать все и вся по интерфейсу ЛВС, ведь в таком случае
вся вышеописанная защита от паразитного трафика из ЛВС будет сведена практически к нулю. Пример
такого «всеразрешающего» правила по локальному интерфейсу:

${fwcmd} add allow tcp from any to any via rl1

К сожалению, практика показывает, что очень многие администраторы настраивают пакетные фильтры
именно таким образом. Не делайте этого! Принцип «Все запрещено, что явно не разрешено» должен
стать опорой в настройке пакетного фильтра.

Благодарности

Большое спасибо Пантелеймонову Дмитрию за конструктивную критику и советы. Он значительно помог мне
сделать статью ближе к читателю, а также успокоиться относительно проблемы достаточной хорошести. :)

Понравилась статья? Поделить с друзьями:
  • Мануал для тойота раум
  • Руководство по созданию общегеографических атласов
  • В 2003 году группа скретч под руководством митчела резника из mit media lab
  • Гроднопромстрой официальный сайт руководство
  • Нобазит форте 500 мг инструкция по применению взрослым