Freebsd 10 обновление системы с помощью freebsd-update

Введение

Подробности о выходе новой версии вы можете узнать в официальной новости с сайта freebsd.org. С нововведениями можно ознакомиться в соответствующем разделе wiki, посвещенному 11-й версии. Про ключевые новшества на русском языке предлагаю прочитать на opennet, сюда копировать не буду. Там, кстати, интересное обсуждение на тему, кому сейчас нужна Freebsd 11. Я так мельком просмотрел, увидел примерно то, что и ожидал увидеть. К сожалению, фряха теряет свою популярность и сам я ей почти не пользуюсь, отвык уже. Пишу про обновления по старой памяти. С Freebsd 6 я начинал свою работу сисадмином, до сих пор приятно набрать make install clean и наблюдать, как на мониторе бегают всякие строчки

Использование утилиты freebsd-update

Установить все обновления безопасности на сервер freebsd можно легко и быстро с помощью утилиты
freebsd-update. Итак, у нас имеется:

# uname -a
FreeBSD websrv.local 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014     :/usr/obj/usr/src/sys/GENERIC  amd64

Запускаем freebsd-update, проверяем наличие обновлений и скачиваем необходимые:

# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... none found.
Fetching public key from update.FreeBSD.org... done.
Fetching metadata signature for 10.1-RELEASE from update.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 19 patches.....10.... done.
Applying patches... done.

The following files will be updated as part of updating to 10.1-RELEASE-p1:

и дальше список обновлений перечисляется.

Устанавливаем обновления:

# freebsd-update install

Installing updates... done.

Если после этого мы снова проверим версию системы с помощью uname, то окажется, что ничего не
изменилось. Будет показана та же версия. Что же произошло после этого обновления? Произошло бинарное
обновление системы до актуальных значений. При этом, если у вас собрано и установлено свое ядро, отличное от
GENERIC, то после перезагрузки у вас будет загружено ядро GENERIC. Про это обязательно нужно помнить. Я так
долго разбирался, почему вдруг перестала работать команда forward в ipfw. Перепроверил все, что только
мог, опустились руки. А все потому, что процесс обновления и перезагрузки сервера были сильно разделены по
времени, а заметил я то, что не работает перенаправление еще позже, поэтому не сопоставил эти два события.
О том, что у меня не то ядро загружено я и представить не мог. Я же знаю и помню, что ядро собирал и не
трогал с тех пор. Вот такой нюанс, о котором нужно не забывать.

Чтобы отразить изменения в версии системы, пересоберем и установим ядро GENERIC. Исходные тексты
системы, нужные для сборки, находятся в папке /usr/src. Если у вас там пусто, то их необходимо установить.

Управление пакетами

Поскольку FreeBSD является минимальной операционной системой, для того, чтобы сделать что-либо полезное с этой платформой, нам потребуется установить дополнительное программное обеспечение. Существует два подхода к установке сторонних пакетов на FreeBSD. Большинство пользователей, вероятно, захотят использовать менеджер двоичных пакетов, который называется pkg. Программа pkg — это утилита командной строки, которая очень похожа на APT в семействе дистрибутивов Debian или DNF в Fedora, и ее синтаксис одинаков во всех трех менеджерах пакетов. По умолчанию нет установленных пакетов.

Другой подход — это сборка программного обеспечения из исходного кода с использованием инфраструктуры портов FreeBSD. Коллекция портов дает нам доступ к тому же программному обеспечению, что и pkg, но позволяет настраивать опции сборки и патчи, если у нас есть особые требования. Сборка программного обеспечения из исходного кода медленнее, но предлагает некоторую гибкость для людей, которые хотят дополнительно настраивать свои системы.

FreeBSD рассматривает ядро операционной системы отдельно от программ, созданных сторонними разработчиками. В то время как pkg и коллекция портов работают со сторонним программным обеспечением, обновления от официальной команды FreeBSD могут быть установлены с помощью другого инструмента, называемого freebsd-update. Запуск этого инструмента приведет к скачиванию и, при необходимости, установке обновлений для основной системы. Используя freebsd-update, мы также можем выполнить обновление до будущих версий операционной системы, перейдя с 12.0 на 12.1, или до будущей версии 13.0.

Как настроить биос — основные разделы

MAIN — раздел для:

  • непосредственной корректировки временных данных;
  • определения и изменения некоторых параметров винчестеров (жестких дисков) после их выбора с помощью «стрелок» клавиатуры и нажатия кнопки «Ввод» (Enter). Рисунок 1.

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

  • LBA Large Mode — Auto;
  • Block (Multi-Sector Transfer) — Auto;
  • PIO Mode — Auto;
  • DMA Mode — Auto;
  • 32 Bit Transfer — Enabled;
  • Hard Disk Write Protect — Disabled;
  • Storage Configuration — желательно не изменять;
  • SATA Detect Time out — изменять нежелательно.
  • Configure SATA as — выставить на AHCI.
  • System Information — данные о системе, которые можно почитать.

ADVANCED — раздел непосредственных настроек основных узлов компьютера. Рисунок 2. Он состоит из подразделов:

  1. JumperFree Configuration — из него (нажатием кнопки «Ввод» (Enter)) попадаем в меню Configure System Frequency/Voltage, которое позволяет настраивать модули памяти и процессор. Оно состоит из пунктов:
  • AI Overclocking (режимы Auto и Manual) служит для разгона процессора вручную или автоматически;
  • DRAM Frequency — изменяет частоту (тактовую) шины модулей памяти;
  • Memory Voltage — ручная смена напряжения на модулях памяти;
  • NB Voltage — ручная смена напряжения на чипсете.
  1. CPU Configuration — при нажатии кнопки «Ввод» (Enter) открывается меню, в котором можно просматривать и изменять некоторые данные процессора.
  2. Chipset — менять не рекомендуется.
  3. Onboard Devices Configuration — смена настроек некоторых портов и контролеров:
  • Serial Portl Address — смена адреса COM-порта;
  • Parallel Port Address — смена адреса LPT-порта;
  • Parallel Port Mode — смена режимов параллельного (LPT) порта и адресов некоторых других портов.
  1. USB Configuration — смена работы (например, включение/отключение) USB-интерфейса.
  2. PCIPnP — менять не рекомендуется.

    POWER — смена настроек питания. Для нормальной работы необходимо выставить «стрелками» и кнопкой «Ввод» в пунктах:

  1. Suspend Mode — Auto.
  2. ACPI 2.0 Support — Disabled.
  3. ACPI APIC Support — Enabled.
  4. APM Configuration — изменять нежелательно.
  5. Hardware Monitor — корректировка общего питания, оборотов кулеров и температуры.

FreeBSD с графическим окружением

По умолчанию FreeBSD не включает в себя какую-либо рабочую среду или графические инструменты. Это позволяет системе быть компактной и хорошо подходит для главной роли FreeBSD в качестве серверной операционной системы. Тем не менее, я хотел посмотреть, сколько усилий понадобится, чтобы заставить FreeBSD работать так же, как GhostBSD.

В справочнике проекта есть , посвященный установке программного обеспечения X display, включению экрана входа в систему и установке одной из трех сред рабочего стола: GNOME, KDE и Xfce. Я решил выбрать Xfce. Весь процесс прошел быстро, заняв всего несколько минут и потребовав редактирования трех файлов конфигурации.

Получившийся графический интерфейс пользователя был функциональным, хотя и не особо отточенным. Установка Xfce дала мне рабочий стол, панель по умолчанию и меню, виртуальный терминал и файловый менеджер Thunar, но мало что еще. По большей части, я бы не возражал против установки дополнительных приложений, таких как веб-браузер, LibreOffice и другие распространенные инструменты. Однако были проблемы, которые мне нужно было обойти. Например, мой обычный пользователь не мог перезагрузить или выключить систему из среды рабочего стола, я мог только выйти из системы. Отсутствовал регулятор громкости, и вскоре я обнаружил, что мультимедиа (потоковые и локальные файлы) не воспроизводятся. Например, видео YouTube не воспроизводилось ни в одном из моих веб-браузеров. VLC и MPV не могли воспроизводить видео или аудио файлы и просто зависали при открытии файла.

Эти проблемы сами по себе были незначительными, и есть обходные пути их решения, но они подчеркивают разницу между использованием ориентированного на десктоп члена семейства FreeBSD, такого как GhostBSD, и настройкой FreeBSD с нуля, следуя инструкциям в руководстве.

Ранее я упоминал, что система использует около 500 МБ диска после установки. Но каждая большая коллекция программного обеспечения, которую я добавлял, скачивала около гигабайта пакетов. После настройки Xfce, LibreOffice и веб-браузера было использовано более 3 ГБ. Когда я закончил установку своих обычных настольных программ, я использовал около 5 ГБ дискового пространства. Использование памяти при запуске Xfce 4.12 составляло около 140 Мб активной и 250 Мб связанной памяти, что примерно на 120 Мб больше, чем при работе в минимальной среде командной строки.

Дополнительные материалы по Freebsd

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Рекомендую полезные материалы по Freebsd:
  • Установка
  • Настройка
  • Обновление
  • Шлюз
  • Прокси сервер
  • Веб сервер NGINX
  • Веб сервер Apache

Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.

Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.

Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.

Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.

Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования.

Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.

Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.

Первые впечатления

FreeBSD загружается в текстовую консоль, где мы можем войти в систему с учетной записью root или с учетной записью обычного пользователя, при условии, что мы создали ее в процессе установки. По умолчанию графического окружения нет. На самом деле, по умолчанию установка FreeBSD минимальна. У нас есть доступ к обычным инструментам командной строки UNIX, страницам руководства и компилятору Clang, и это практически все. Операционная система очень легкая, работает около 15 процессов и используется 18 МБ активной памяти (и 250 МБ связанной памяти с включенной ZFS). Вся операционная система занимает около 500 МБ дискового пространства. FreeBSD дает нам основу для дальнейшего развертывания, но оставляет формирование и настройку операционной системы полностью в наших руках. По этой причине я настоятельно рекомендую новичкам прочитать .

Выпущена FreeBSD 13 — Что нового?

OpenZFS теперь предоставляет реализацию ZFS в FreeBSD 13. Другими словами, вы получите одну и ту же версию ZFS в Linux и FreeBSD.Клиент и сервер NFS теперь поддерживают NFSv4.2 с расширенными атрибутами.

Кроме того, клиент и сервер NFS теперь поддерживают NFS через TLS из соображений безопасности и конфиденциальности.

FreeBSD 13 удалила несколько сетевых драйверов для устаревших адаптеров Ethernet, таких как Crystal Semiconductor CS8900 / CS8920 и других.Добавили драйвер qat, поддерживающий некоторые функции криптографического ускорения устройства Intel QuickAssist (QAT).

Дополнительные изменения загрузчика для системного раздела EFI.FreeBSD 13 имеет переписанный стек маршрутизации. Он основан на введении следующих переходов — объектов, содержащих все необходимые состояния для передачи пакета в желаемое место назначения.Поддержка многопутевой маршрутизации была переписана в более масштабируемой форме.

64-битная архитектура ARM, известная как arm64 или AArch64, повышена до уровня Tier-1 для FreeBSD 13.Утилита bhyve (8) надежно работает с большим количеством клиентов VNC, включая приложение MacOS «Совместное использование экрана».

Установка обновления Freebsd 10.3 до 11

Обновлять будем следующую версию:

Перед переходом на новую ветку, обновим полностью текущую систему. Для этого можно воспользоваться моей статьей про обновление freebsd. Если кратко, то просто выполняем следующие команды:

# freebsd-update fetch
# freebsd-update install

На всякий случай перезагрузимся:

# reebot

Теперь приступаем к обновлению до freebsd 11 с команды:

# freebsd-update upgrade -r 11.0-RELEASE

На вопрос отвечаем положительно:

Дожидаемся окончания проверки и загрузки файлов. Ждать придется долго, я не меньше часа ждал, а может и больше. Не знаю, с чем это связано, но freebsd всегда долго обновляется, не предлагая никакого прогресс бара. Сидишь всегда и ждешь. Хорошо хоть этот процесс у меня никогда не зависал, так что нет опасений, что что-то идет не так и ты напрасно ждешь. В итоге у меня было скачано 46 000 патчей, необходимых для обновления.

После окончания загрузки новых файлов, будет сравнение старых конфигов и новых, если они отличаются. Аккуратно проведите эту процедуру. Если у вас в дефолтных системных конфигах не было изменений, заменяйте их на новые. Если были, то смотрите по обстановке. Иногда если оставить старую версию, то сервис с ней не запустится, но это случается редко. Только если произошли какие-то серьезные изменения. Я обычно заранее делаю бэкап всех настроек и заменяю все конфиги на новые. Потом, в случае необходимости, вручную вношу изменения. Потом будет огромный список файлов, которые будут удалены или заменены. Я его пролистал кнопкой Page Down.

Запускаем непосредственно обновление до 11-й версии:

# freebsd-update install

После этого перезагружаем систему:

# reebot

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

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

Новое ядро не видит жесткий диск /dev/da0. Тестирование обновления я делал на hyper-v, под рукой нет другой возможности. В интернете нигде не нашел информации о похожей ошибке, у всех все получилось. Собственно дальше осталось только пару раз запустить одну команду и перезагрузиться. Мне почему-то кажется, что моя ошибка обновления локальная, обновление должно проходить гладко. Но в любом случае имейте ввиду, что может получиться такой результат. Рассказываю, что нужно делать дальше, для завершения обновления.

После загрузки запускаем туже самую команду еще раз:

# freebsd-update install

И в завершении обновления еще разочек:

# freebsd-update install

Тут нет ошибки, в соответствии с рекомендациями по обновлению на официальном сайте, запустить эту команду надо именно три раза, перезагрузившись после первого. После этого у вас должна быть полностью обновленная система до последней версии Freebsd 11.0-RELEASE.

Дополнительные параметры фильтрации

Теперь задача интереснее. Необходимо защитить наш сервер от перебора паролей ssh. Еще одна возможность PF — лимитировать количество соединений, соответствующих правилу, по различным параметрам.

Таблица:

persist — держать в памяти, даже если пустая. Если не указать такое поведение, PF удалит пустую таблицу.

И правила:

В данном случае max-src-conn 10 — только 10 одновременных соединений с одного адреса, max-src-conn-rate 3/10 — только 3 новых соединения за 10 секунд, overload <block_ssh> — добавлять в таблицу адреса источника нарушителей, flush — сбрасывать все соединения от нарушителя, созданные этим правилом.

По образу и подобию — разрешение пользователю ходить на веб-сервер.

Таблица:

И правила:

Параметры этого правила надо очень аккуратно подбирать под ваш сервис. Synproxy — включает проксирование syn запросов, защиту от synflood атак. А flush global означает сброс всех соединений с источника-нарушителя, даже если они не относятся к этому правилу.

Устаревание записей в таблицах заблокированных обеспечиваются командами такого вида:

Эта команда удалит все записи, старше часа из соответствующей таблицы. Команды поставим в крон:

Таким образом каждый час таблицы будут вычищаться.

Просмотр сетевых интерфейсов.

Для начала проясним: Есть два состояния сетевой карты UP(задействована) и DOWN(не задействована).

Первым делом стоит посмотреть наши сетевые интерфейсы, смотреть будем командой ifconfig.(Рис.1) Вывод команды показывает все интерфейсы UP и DOWN.

ifconfig

ifconfig -a покажет вам тоже самое.

ifconfig -a

Вот тут есть некоторые отличия от ifconfig в Ubuntu server.(в Ubuntu server «ifconfig» показывает только интерфейсы UP, «ifconfig -a» показывает все интерфейсы и UP и DOWN)

Рис.1 — Результат ввода команды ifconfig.

И так что же мы видим:

  • em0 — наша сетевая карта, с IP адресом 192.168.3.11.
  • em1 — вторая сетевая карта, не настроенная.
  • lo — локальная петля, она у всех присутствует по умолчанию.

Для того чтобы посмотреть интерфейсы только UP, используется команда ifconfig -u (Рис.2):

ifconfig -u

а для просмотра интерфейсов только DOWN, используется команда ifconfig -d (Рис.3):

ifconfig -d

Рис.2 — Результат ввода команды ifconfig -u.Рис.3 — Результат ввода команды ifconfig -d.

В дальнейшем я буду показывать примеры настройки на интерфейсе «em0».

Для включения интерфейса используется команда ifconfig «НАЗВАНИЕ-ИНТЕРФЕЙСА» up.

ifconfig em0 up

Для выключения интерфейса используется команда ifconfig «НАЗВАНИЕ-ИНТЕРФЕЙСА» down.

ifconfig em0 down

«Поиграйтесь» с интерфейсом, если вы конечно же не подключены по ssh, и оставьте его в состоянии UP.

#0. Синопсис

Мир меняется, операционные системы обновляются, FreeBSD в этом – не исключение. В данной статье описывается процесс двоичного (бинарного) обновления операционной системы FreeBSD 9.0 RELEASE до версии 9.1 RELEASE (по такому же принципу можно потом обновить 9.1 до 9.2). Бинарное обновление процесс хоть и простой, но довольно длительный и опасный, и в случае ошибки можно потерять загрузку ОС. Бинарное обновление производится только в случае использования системой дефолтного ядра GENERIC. Если же ядро кастомное (перенастраивалось), ни в коем случае нельзя производить бинарное обновление, т.к. проблемы повсплывают почти со 100%-ной вероятностью, сразу их не заметите, потратите несколько дней на локализацию и исправление проблемы. Т.е. при кастомном ядре должна производиться только классическая сборка мира и ядра из исходного кода, с предварительным обновлением оного.

Проверяем обновление 10.3

# uname -a
FreeBSD freebsd 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64

Можно на всякий случай проверить обновления для новой версии:

# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... none found.
Fetching metadata signature for 10.3-RELEASE from update.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 10.3-RELEASE-p0.

Ничего нового нет. На этом обновление freebsd 10.2 до версии 10.3 окончено. Всем хорошего аптайма.

Макросы и списки

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

После этого можно использовать их в правилах подобного вида:

После загрузки правила будут выглядеть так:

Как видим, был подставлен интерфейс и порты из макроса. Затем, для каждого порта было создано отдельное правило в соответствии со списком. Были установлены значения по умолчанию. flags это tcp флаги, установленные у пакета для соответствия правилу. S/SA — это пакеты с установленным флагом SYN. То есть, если упростить, первый пакет сессии.

Keep state — означает сохранение соединения в таблице состояний или сессий. Это означает, что только первый пакет из соединения пробежит по правилам файрвола. Все остальные пакеты этого соединения файрволл пропустит при соответствии таблице состояний (state table), не проводя проверок.

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

К примеру:

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

Основные настройки сделали. Теперь подготовим нашу систему к установке софта. обновим дерево портов с помощью утилиты portsnap. При первом запуске используем команду:

# portsnap fetch extract

Утилита скачает и распакует порты в папку /usr/ports. Последующее обновление будет производиться командой:

# portsnap fetch update

Добавим ее в cron для регулярного обновления портов раз в сутки. Для этого идем в /var/cron/tabs и создаем там файл root.

# touch /var/cron/tabs/root

Файл должен быть следующего содержания:

SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
0 3 * * * portsnap cron

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

Для обновления через планировщик используется специальная команда porsnap cron, которая делает небольшой случайный разброс по времени для обновления, чтобы все клиенты обновлялись в разное время, а не строго по часам.

На этом наша настройка системы закончена, переходим к следующей части, в которой займемся настройкой непосредственно компонентов web-сервера.

Заключение

Закончили установку. Можно сделать базовую настройку freebsd. Вся информация в статье актуальна для 11-й версии.

Получилось не только про установку, но и про zfs немного, о том, как заменить сбойный диск в случае выхода из строя

Я всегда обращаю внимание на такие вещи, как отказоустойчивость на уровне дисков. Без этого систему не ставлю

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

Freebsd 11 понравилась простой и быстрой установкой на raid1. Думаю, эта возможность появилась раньше, я просто не проверял. Решил посмотреть на 11-й версии. В целом, все понравилась. В отличие от Debian, голая система ставится на глаз раз в 5-7 быстрее и раза в 3 быстрее CentOS. Надеюсь, что система и дальше будет развиваться и радовать нас новыми версиями и возможностями.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: