Таблицы
Таблицы — это одно из мощнейших средств PF. После создания в конфиге, с ними можно творить всё, что угодно. Загружать из файла, чистить, очищать от записей, старее заданного срока, ну и, конечно, добавлять и удалять записи. И всё это на лету без перезагрузки конфигурации файрвола.
Таблицы могут быть нескольких видов:
- const — этот флаг указывает на неизменность таблицы. Пользователь не может добавлять и удалять IP «на лету»
- counters — включает ведение статистики по каждому IP в таблице
- persist — указывает ядру хранить таблицу, даже если в ней нет записей
В этой статье будут показаны примеры таблиц без флагов и с флагом persist. Остальные флаги интуитивно поняты и используются куда реже.
Простая таблица:
Для использования в правиле файрвола:
Это правило разрешит всё, что приходит от IP адресов, перечисленных в таблице, на сетевой интерфейс и IP сервера.
Таблица с загрузкой из файла:
Используем в правиле:
Правило заблокирует любой трафик от <block_list> на интерфейсе $If
Сама таблица будет иметь следующий вид:
Можно указать знак отрицания для исключения из таблицы. В данном случае будет соответствие IP 1.1.1.1, и сети 111.12.46.0/24, кроме IP 111.12.46.17. Наполнением этого файла можно заниматься вручную. Затем загрузить таблицу из файла снова:
В таблицу можно добавлять как IP адреса, так и доменные имена. Доменные имена разрешатся при загрузке. Для обновления адресов можно поставить загрузку таблицы в cron каждый час, к примеру. Однако, если хотя бы один адрес разрешить не удастся, обновление таблицы не удастся:
После загрузки можно посмотреть, что содержится в таблице:
Можно удобным образом добавить/удалить записи:
Конечно, эти записи не попадут магически в файл, и после перезагрузки таблицы их не будет.
Важно помнить о возможности проверки соответствия IP таблице. Можно проверить и доменное имя
Задания в cron для обновления:
Теперь добавим возможность ходить на корпоративные ресурсы по портам http(s) и обратно по портам 8080 и 8443. Создаём макросы со списком портов, можно использовать названия протоколов:
Таблицу, загружаемую из файла, со списком хостов:
Для примера, в таблице будет один хост:
И собственно правила:
3.12. FreeBSD 2.0 аварийно завершает работу с сообщением kmem_map too small!
Note: Сообщение может также выглядеть как mb_map too small!Такое завершение работы показывает, что системе не хватает виртуальной памятидля сетевых буферов (точнее, структур mbuf). Вы можете увеличить количество виртуальной памяти для структур mbuf, добавив:options «NMBCLUSTERS=n»в файл конфигурации ядра, где n — это число в пределах 512-4096, в зависимостиот числа TCP-соединений, которое вам нужно одновременно обслуживать. Ярекомендую попробовать значение 2048 — это должно избавить вас от аварийныхостановов. Вы можете отслеживать количество структур mbuf, выделенных/используемых системой командой netstat -m. Значение по умолчанию дляNMBCLUSTERS равно 512 + MAXUSERS * 16.
26.5.4. Интеграция с FreeBSD
DHCP клиент от OpenBSD, dhclient, полностью интегрирован во
FreeBSD. Поддержка клиента DHCP есть как в программе установки, так и в самой системе,
что исключает необходимость в знании подробностей конфигурации сети в любой сети, имеющей
сервер DHCP.
DHCP поддерживается утилитой sysinstall. При настройке
сетевого интерфейса из программы sysinstall второй вопрос,
который вам задается: »Do you want to try DHCP configuration of the interface?»
(»Хотите ли вы попробовать настроить этот интерфейс через DHCP?»). Утвердительный ответ
приведёт к запуску программы dhclient, и при удачном его
выполнении к автоматическому заданию информации для настройки интерфейса.
Есть две вещи, которые вы должны сделать для того, чтобы ваша система использовала
DHCP при загрузке:
-
Убедитесь, что устройство bpf включено в компиляцию
вашего ядра. Чтобы это сделать, добавьте строчку device bpf в
конфигурационный файл ядра и перестройте ядро. Более подробная информация о
построении ядер имеется в Гл. 8.Устройство bpf уже является частью ядра GENERIC, которое поставляется вместе с FreeBSD, так что, если вы не
используете другое ядро, то вам и не нужно его делать для того, чтобы работал DHCP. -
По умолчанию, конфигурирование FreeBSD по протоколу DHCP выполняется фоновым
процессом, или асинхронно. Остальные стартовые скрипты
продолжают работу не ожидая завершения процесса конфигурирования, тем самым ускоряя
загрузку системы.Фоновое конфигурирование не создает проблем в случае, если сервер DHCP быстро
отвечает на запросы, и процесс конфигурирования происходит быстро. Однако, в некоторых
случаях настройка по DHCP может длиться значительное время. При этом запуск сетевых
сервисов может потерпеть неудачу, если будет произведен ранее завершения
конфигурирования по DHCP. Запуск DHCP в синхронном режиме
предотвращает проблему, откладывая выполнение остальных стартовых скриптов до момента
завершения конфигурирования по DHCP.Для осуществления фонового конфигурирования по DHCP (асинхронный режим), используйте
значение »DHCP» в /etc/rc.conf:ifconfig_fxp0="DHCP"
Для откладывания запуска стартовых скриптов до завершения конфигурирования по DHCP
(синхронный режим), укажите значение »SYNCDHCP»:ifconfig_fxp0="SYNCDHCP"
Если dhclient в вашей системе находится в другом месте или
если вы хотите задать дополнительные параметры для dhclient,
то также укажите следующее (изменив так, как вам нужно):dhclient_program="/sbin/dhclient" dhclient_flags=""
Plan
Research & learning about wireless device driver development
1. Linux iwlwifi:
- Start by drawing out the iwlwifi driver code by hand.
-
Then look at the mac80211 code that creates the device and populates the mac80211 callbacks. Look for things like TX, RX, channel context, start and stop.
2. 802.11n:
WiFi/BringUp is a good writeup explaining 11n bring-up.
Antenna configuration
1. Let’s review iwlwifi/mvm TX and RX antenna configuration code
- What does it do for:
- Initial setup?
- MAC context setup?
- PHY context setup?
- TX packet setup?
We need to get it to work otherwise MIMO rates won’t work at all.MIMO rates are mainly based on two things:
- The abilities of the hardware.
- Whatever is negotiated with the other side of a connection.
Where to start?Look for PLCP. Find the routine that calculates the PLCP value to stuff in the transmit descriptor and see what calls it and map that out a couple levels.
2. Then we have to investigate iwlwifi and iwn to see how they assemble the MIMO version of the transmit PLCP.
Right now iwm only knows about 11abg PLCP configuration and rate configuration.
3. Let’s add placeholders routines for 11n methods.
iwm won’t do any 11n rates until we tell net80211 that 11n can be used.
4. Make MAC and PHY contexts in firmware aware of the fact that they can now use 11n.
5. Tell net80211 that it can now use 11n and see if it crashes.
Networking improvements
-
Support for linking NIC Receive Side Scaling (RSS) to the network stack’s connection-group implementation (r263198)
-
Support for the UDP-Lite protocol (RFC 3828) has been added to both IPv4 and IPv6 stacks (r264212)
-
IPX is no longer supported (r263140)
-
AppleTalk is no longer supported (r263152)
-
Flowid, bindmulti and RSS awareness have been added to the IPv6 stack (r268562)
-
RSS awareness has been added to the igb(4) driver (r268028)
-
RSS awareness has been added to the ixgbe(4) driver (r268029)
-
netstat can display RSS and flow information with -R (r266448)
-
PF hash has been changed from Jenkins to Murmur3 which shows a conservative 3% increase in packets per second (r272906)
-
Netmap support has been added to libpcap allowing tcpdump and other native pcap application to run directly on netmap ports (r272659)
-
faith(4) and faithd(8) have been removed from base (r274331)
-
cxgbe(4) will now front loads as much as possible before any driver lock or software queue gets involved (r276485)
-
DTrace probes for packets flagged as bad by ipfilter. All probes for bad packets are named ipf_fi_bad_* (r297632)
A new version of NetMap
Status: |
Committed to CURRENT |
Author: |
Luigi Rizzo and others |
Web: |
http://svnweb.freebsd.org/changeset/base/260368 http://svnweb.freebsd.org/changeset/base/261909 http://info.iet.unipi.it/~luigi/netmap/ |
Most relevant features:
- netmap pipes, providing bidirectional blocking I/O while moving 100+ Mpps between processes using shared memory channels
- kqueue support and segmentation offloading for VALE switch (both used in bhyve)
- improved user library
- netmap emulation on any NIC, even those without native netmap support (even with emulation the performance is better than BPF)
- seamless interconnection of VALE switch, NICs and host stack.
- THE USER API HAS SLIGHTLY CHANGED (head/cur/tail pointers instead of pointers/count as before)
Загрузочные среды
Одним из инструментов, который полезно иметь под рукой при выполнении обновлений, являются загрузочные среды. Когда FreeBSD установлена на томе ZFS, она автоматически включает поддержку загрузки из снимков операционной системы ZFS. Это означает, что мы можем использовать такой инструмент, как beadm, чтобы сделать снимок операционной системы перед внесением каких-либо значительных изменений. Затем, если что-то пойдет не так, например, обновление нарушит работу системы, мы можем перезагрузить компьютер и выбрать более старую среду в меню загрузки. Я тестировал загрузочные среды пару раз за неделю с FreeBSD и обнаружил, что они работают должным образом, и мне нравится, что beadm может мгновенно создавать и удалять снимки.
Одним из приятных преимуществ работы с загрузочными средами является то, что операционная система хранится отдельно от данных в домашних каталогах пользователей. Это означает, что если администратору необходимо откатить изменение, наши файлы данных и личные настройки не будут затронуты. Можно также создавать снимки пользовательских файлов для целей восстановления, но эти снимки отделены от загрузочных сред.
Опрос
Механизм опроса берет проверенную временем идею прерываний и IRQ и выкидывает ее из окна, заменяя регулярными проверками сетевой активности
В классической модели, управляемой прерываниями, всякий раз, когда пакет поступает в сетевую карту, она требует от центрального процессора уделить ей внимание, генерируя прерывание. Процессор прекращает обычную последовательность операций и приступает к обработке этих данных
Это очень хорошо и даже желательно при условии, что карта не занимается обработкой трафика большого объема. Но как только система начинает иметь дело с огромными объемами данных, сетевая карта начинает генерировать прерывания непрерывно. Более эффективный способ заключается в том, чтобы ядро извлекало данные из сетевой карты через регулярные интервалы времени. Такая регулярная проверка называется опросом (polling). Вообще говоря, использовать механизм опроса полезно только в случае объемного трафика.
К моменту написания этих строк механизм опроса невозможно собрать в виде модуля ядра, так как он требует изменений в драйверах устройств. Также следует иметь в виду, что не все сетевые карты обладают поддержкой механизма опроса, поэтому обязательно ознакомьтесь с полным списком, который приводится в странице руководства polling(4). Чтобы активировать механизм опроса, следует добавить параметр в конфигурацию ядра. После перезагрузки системы разрешить использование механизма опроса отдельно для каждого из устройств можно с помощью команды ifconfig(8).
# ifconfig re0 polling
Точно так же, с помощью аргумента , можно запретить использование этого механизма. Кроме того, команда ifconfig(8) показывает, был ли активирован механизм опроса для интерфейса.
Так как активация и деактивация механизма опроса возможны прямо в процессе работы системы, попробуйте активировать его в часы высокой нагрузки и проверить, не приведет ли это к повышению производительности.
Управление пакетами
Поскольку FreeBSD является минимальной операционной системой, для того, чтобы сделать что-либо полезное с этой платформой, нам потребуется установить дополнительное программное обеспечение. Существует два подхода к установке сторонних пакетов на FreeBSD. Большинство пользователей, вероятно, захотят использовать менеджер двоичных пакетов, который называется pkg. Программа pkg — это утилита командной строки, которая очень похожа на APT в семействе дистрибутивов Debian или DNF в Fedora, и ее синтаксис одинаков во всех трех менеджерах пакетов. По умолчанию нет установленных пакетов.
Другой подход — это сборка программного обеспечения из исходного кода с использованием инфраструктуры портов FreeBSD. Коллекция портов дает нам доступ к тому же программному обеспечению, что и pkg, но позволяет настраивать опции сборки и патчи, если у нас есть особые требования. Сборка программного обеспечения из исходного кода медленнее, но предлагает некоторую гибкость для людей, которые хотят дополнительно настраивать свои системы.
FreeBSD рассматривает ядро операционной системы отдельно от программ, созданных сторонними разработчиками. В то время как pkg и коллекция портов работают со сторонним программным обеспечением, обновления от официальной команды FreeBSD могут быть установлены с помощью другого инструмента, называемого freebsd-update. Запуск этого инструмента приведет к скачиванию и, при необходимости, установке обновлений для основной системы. Используя freebsd-update, мы также можем выполнить обновление до будущих версий операционной системы, перейдя с 12.0 на 12.1, или до будущей версии 13.0.
Other changes
-
NFS performance has been greatly improved, MFC-ed (r261054, r261055)
-
Support for displaying Vital Product Data has been added to pciconf(8) (r260926)
-
Support for GPS ports have been added to the uhso(4) driver. (r260903)
-
OpenSSL has been upgraded to version 1.0.1i (r269682)
-
jemalloc has been upgraded to version 3.6.0. (r263974)
-
Support for Intel’s Supervisor Mode Access Prevention (SMAP) instructions has been added to binutils (r261175)
-
gcc now supports -Wmissing-prototypes in C++ (r261178)
-
bmake has been upgraded to version 20140620 (r268437)
-
libc++ has been upgraded to version 3.4 (r261283)
-
OpenSSH has been upgraded to version 6.6p1 (r263712)
-
groff incorporates vendor changes up to 2014-01-29 (r261319)
-
mdocml has been upgraded to version 1.12.3 (r261344)
-
atf has been upgraded to version 0.20 (r261897)
-
talk(1) is capable of displaying UTF-8 characters (r263264)
-
epoll support has been added to the Linux compatibility layer (r255672)
-
lindev(4) has been removed since /dev/full is now a standard feature of FreeBSD (r265212)
-
apr has been upgraded to version 1.5.1 (r266735)
-
Subversion has been upgraded to version 1.8.8 (r262250)
-
serf has been upgraded to version 1.3.5 (r266728)
-
libucl has been upgraded to version 20140718 (r268876)
-
Sendmail has been upgraded to version 8.14.9 (r266528)
-
ldns has been upgraded to version 1.6.17 (r266114)
-
unbound has been upgraded to version 1.4.22 (r266114)
-
tzdata has been upgraded to version 2014e (r267452)
-
byacc has been upgraded to version 20141006 (r272769)
-
csup has been removed from base (r267863)
-
DTrace version bumped to 1.12.1 (r267942)
-
libc now has re-entrant versions of the hash functions (r268943)
-
sqlite has been upgraded to version 3.8.5 (r269851)
-
xz has been upgraded to version 5.2.0 which brings support for multi-threaded compression (r278433)
-
ncurses has been upgraded to version 5.9 20140222 (r262685)
-
Baud rate support has been added to telnet (r274364)
-
libxo version 0.1.6 has been imported into base (r274672)
-
OpenBSM has been updated to version 1.2 alpha 4 (r292432)
-
ACPICA has been upgraded to version 20160527 (r300879)
-
Support for RISC-V (r295041)
Other documentation
It is useful to keep an eye on Recent Wiki Changes and the commits mailing list (http://lists.freebsd.org/mailman/listinfo/svn-src-head).
Установка FreeBSD 13.0
2. После загрузки образа установщика FreeBSD запишите его на носитель (CD/DVD или USB) и загрузите систему со вставленным носителем. После загрузки системы с установочным носителем появится следующее меню.
Меню загрузки FreeBSD
3. По умолчанию меню будет ждать ввода данных пользователя в течение 10 секунд, прежде чем загрузиться установщик FreeBSD. Или мы можем нажать клавишу «Backspace«, чтобы продолжить установку, а затем нажать клавишу «Enter«, чтобы загрузиться в FreeBSD. После завершения загрузки появится приветственное меню со следующими опциями.
Выберите Пункт Установка FreeBSD
Нажмите Enter, чтобы выбрать опцию по умолчанию «Установить«. Или вы можете выбрать «Shell» для доступа к программам командной строки для подготовки дисков перед установкой. Так же можно выбрать опцию «Live CD«, чтобы попробовать FreeBSD перед ее установкой. Но здесь мы будем использовать опцию по умолчанию «Установить«, так как мы устанавливаем FreeBSD.
4. Далее отображается список ключевых раскладок, просто выберите опцию по умолчанию, чтобы продолжить.
Выбор раскладки клавиш FreeBSD
5. Далее укажите имя хоста для системы, я использовал freebsd.tecmintlocal.com как мое имя хоста.
Установить имя хоста
6. Выберите компоненты для установки для FreeBSD, по умолчанию каждый параметр предварительно выбран.
Выберите компоненты для установки на FreeBSD
7. На этом шаге нам нужно разбить диск на разделы для нашей установки. Здесь у вас будет четыре варианта:
- Auto (ZFS) – Эта опция автоматически создает зашифрованную корневую систему на ZFS с использованием файловой системы ZFS с поддержкой загрузочных сред.
- Auto (UFS) – Этот параметр автоматически создает разделы диска с использованием файловой системы ZFS.
- Вручную – Этот параметр позволяет продвинутым пользователям создавать настраиваемые разделы из параметров меню.
- Shell – Эта опция позволяет пользователям создавать настраиваемые разделы с помощью инструментов командной строки, таких как fdisk, gpart и т. Д.
Выберем опцию «Вручную» для создания разделов в соответствии с нашими потребностями.
Ручное разделение дисков FreeBSD
8. После выбора «Ручное секционирование‘ откроется редактор разделов с выделенным диском»ad0» и выберите Создать для создания допустимой схемы секционирования.
Выберите Раздел диска FreeBSD
9. Затем выберите GPT, чтобы создать таблицу разделов. GPT обычно является наиболее предпочтительным методом для компьютеров amd64. Старые компьютеры, которые не совместимы с GPT, должны использовать MBR.
Выберите раздел GPT
Созданный раздел GPT
2.3.5. Прочие устройства
-
AST последовательный адаптер (4 выхода), используется
разделяемое IRQ -
ARNET последовательный адаптер (8 выходов), используется
разделяемое IRQ -
ARNET (теперь Digiboard) Sync 570/i высокоскоростной
последовательный адаптер -
Boca BB1004 последовательная плата (4 выхода, модемы НЕ
поддерживаются) -
Boca IOAT66 последовательная плата (6 выходов, с поддержкой
модемов) -
Boca BB1008 последовательная плата (8 выходов, модемы НЕ
поддерживаются) -
Boca BB2016 последовательная плата (16 выходов, с поддержкой
модемов) -
Cyclades Cyclom-y последовательная плата
-
Moxa SmartIO CI-104J последовательная плата (4 входа)
-
STB плата (4 выхода), используется разделяемое IRQ
-
SDL Communications RISCom/8 последовательная плата
-
SDL Communications RISCom/N2 и N2pci высокоскоростные
синхронные последовательные платы -
Specialix SI/XIO/SX многоканальные последовательные платы,
как со старыми SIHOST2.x, так и с новыми
«улучшенными» (основанными на транспьютерах, или
JET) хост-картами; поддерживаются ISA, EISA и PCI -
Stallion многоканальные последовательные платы: EasyIO,
EasyConnection 8/32 и 8/64, ONboard 4/16 и Brumby -
Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum,
Gravis UltraSound и Roland MPU-401 звуковые платы -
Connectix QuickCam
-
Matrox Meteor Video плата захвата изображения
-
Creative Labs Video Spigot плата захвата изображения
-
Cortex1 плата захвата изображения
-
Различные платы захвата изображения на чипах Brooktree Bt848
и Bt878 -
HP4020, HP6020, Philips CDD2000/CDD2660 и Plasmon CD-R
приводы -
Bus мыши
-
PS/2 мыши
-
Стандартный PC джойстик
-
X-10 power контроллеры
-
GPIB и Transputer приводы
-
Genius и Mustek ручные сканеры
-
Накопители на магнитных лентах (только некоторые довольно
старые модели, так как драйвер достаточно устаревший) -
Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA и ISA
стандартной скорости (2Mb/c) и скоростные (6Mb/с) беспроводные
сетевые адаптеры и подобные им (NCR WaveLAN/IEEE 802.11,
Cabletron RoamAbout 802.11 DS)
FreeBSD в настоящее время НЕ поддерживает шину IBM microchannel
(MCA).
Максимальное число входящих соединений
Ядро FreeBSD обеспечивает пропускную способность, необходимую для обработки определенного числа новых входящих ТСР-соединений. Это ограничение не касается уже установленных и обрабатываемых подключений, оно относится к числу новых соединений, которые пытаются установить одновременно. Например, в это число не попадают веб-страницы, которые к настоящему моменту уже были отправлены клиентам, — сюда относятся входящие запросы, которые еще даже не достигли веб-сервера.
Параметр определяет максимальное число одновременных попыток установить соединение, которые будут обслужены системой. По умолчанию оно равно 128, что может оказаться недостаточным для веб-сервера, работающего под высокой нагрузкой. Если вы занимаетесь сопровождением высокопроизводительного сервера, который, как ожидается, будет получать более 128 новых запросов одновременно, скорее всего, вам потребуется увеличить этот параметр sysctl. Если от пользователей начинают поступать жалобы, что они не могут подключиться к серверу, причина может крыться в значении этого параметра. Конечно, очень немногие приложения способны принимать такое количество новых подключений, поэтому, прежде чем изменять этот параметр, вам, возможно, следует настроить само приложение.
Макросы и списки
С макросами всё относительно просто. Это вставка куска строки в нужное (практически любое) место конфигурационного файла. В макросе можно держать имя интерфейса, IP адрес (или адреса), опции tcp, и так далее. IP адреса и имена интерфейса взяты из головы, все совпадения случайны.
После этого можно использовать их в правилах подобного вида:
После загрузки правила будут выглядеть так:
Как видим, был подставлен интерфейс и порты из макроса. Затем, для каждого порта было создано отдельное правило в соответствии со списком. Были установлены значения по умолчанию. flags это tcp флаги, установленные у пакета для соответствия правилу. S/SA — это пакеты с установленным флагом SYN. То есть, если упростить, первый пакет сессии.
Keep state — означает сохранение соединения в таблице состояний или сессий. Это означает, что только первый пакет из соединения пробежит по правилам файрвола. Все остальные пакеты этого соединения файрволл пропустит при соответствии таблице состояний (state table), не проводя проверок.
Важно для оптимизации конфига помнить опцию quick. Она указывает файрволу прекратить дальнейшую обработку этого пакета, и сразу применить текущее действие
К примеру:
Выводы
Поигравшись с FreeBSD в течение недели, я не чувствую, что в этом выпуске произошли какие-то большие изменения по сравнению с FreeBSD 11. В типичной манере FreeBSD прогресс скорее эволюционный, чем революционный, и этот релиз выглядит как отполированный и улучшеннй шаг вперед. Мне нравится, что установщик теперь обрабатывает разделы под управлением UFS и ZFS в дружественной манере. Раньше у меня были проблемы с настройкой загрузочного меню FreeBSD на загрузочные среды, но это было исправлено.
Мне также нравятся параметры безопасности в установщике. Это не нове решение, но я думаю, его стоит упомянуть. FreeBSD, в отличие от большинства дистрибутивов Linux, предлагает несколько низкоуровневых параметров безопасности (например, скрытие процессов других пользователей и рандомизацию PID), и мне нравится, когда они представляются во время установки. Людям сложнее атаковать то, что они не могут увидеть или предсказать, и FreeBSD при необходимости вносит эти небольшие изменения для нас.
Что-то особенное в FreeBSD по сравнению с большинством дистрибутивов Linux, которые я использую, заключается в том, что FreeBSD редко держит пользователя за руку, но также редко удивляет пользователя. Это означает, что нужно больше читать заранее, и новые пользователи могут с трудом привыкнуть к редактированию файлов конфигурации в текстовом редакторе. Но FreeBSD редко делает что-либо, если не сказано ей сделать это. Обновления редко меняют поведение системы, работающие технологии редко меняются на что-то новое, система и ее приложения никогда не выходили из строя во время моих испытаний. Все было очень надежным. Для новых пользователей операционная система может показаться чистой доской, но по моему опыту она удивительно надежна и предсказуема.
Я, вероятно, не рекомендовал бы FreeBSD для использования на десктопе. Ее близкий родственник, GhostBSD, поставляется с дружественным рабочим столом и делает все для обеспечения работы приложений для конечных пользователей. Но для людей, которым нужны серверы, работающие в течение многих лет без изменений или проблем, FreeBSD является отличным вариантом. Это также привлекательный выбор, на мой взгляд, для людей, которые любят строить свою систему с нуля, как вы делаете это с установкой сервера Debian или Arch Linux. Помимо базовых инструментов и документации, в системе FreeBSD нет ничего, кроме того, что мы сами выберем.
Заключение
Закончили установку. Можно сделать базовую настройку freebsd. Вся информация в статье актуальна для 11-й версии.
Получилось не только про установку, но и про zfs немного, о том, как заменить сбойный диск в случае выхода из строя
Я всегда обращаю внимание на такие вещи, как отказоустойчивость на уровне дисков. Без этого систему не ставлю
Обязательно должен быть рейд либо программный, либо аппаратный. Я в своей работе постоянно сталкиваюсь с поломками жестких дисков, так что для меня это будни Даже бэкапа не достаточно в таком случае. Даже если есть бэкап, то работы по замене системы занимают слишком много времени, а если ты в основном работаешь удаленно, тебе еще и ехать придется, чтобы что-то заменить. Это не мой вариант.
Freebsd 11 понравилась простой и быстрой установкой на raid1. Думаю, эта возможность появилась раньше, я просто не проверял. Решил посмотреть на 11-й версии. В целом, все понравилась. В отличие от Debian, голая система ставится на глаз раз в 5-7 быстрее и раза в 3 быстрее CentOS. Надеюсь, что система и дальше будет развиваться и радовать нас новыми версиями и возможностями.