Тег: freebsd
03 декабря 2024 года была выпущена FreeBSD 14.2 и я решил сразу обновится до нее с FreeBSD 14.1. Обновление внутри одной ветки FreeBSD происходит быстрее и проще, так как не нужно переустанавливать все приложения и сервисы. Приступаем к обновлению до версии FreeBSD 14.2.
Использовать собственный DNS сервер для локальной сети или своего VPN сервера в режиме переадресации запросов на публичный DNS сервер через защищенный протокол DoT (DNS-over-TLS) полезно и эффективно для кэширования запросов и сокращения их количества, блокировки рекламных доменов, повышения безопасности и защищенности пользователей внутри локальной сети и самого DNS сервера. Для всех этих задач идеально подойдет DNS сервер Unbound.
В некоторых случаях возможность доступа к веб-серверу напрямую через IP адрес является серьезной уязвимостью. Необходимо повысить приватность и безопасность веб-сервера nginx, чтобы когда пользователь или бот зайдет по IP адресу через HTTP или HTTPS, то там не будет никакой полезной информации и будет выведена ошибка или соединение вовсе будет закрыто.
Сервер FreeBSD должен быть защищён от внешних сетевых атак, в качестве межсетевого экрана (firewall) будет использоватся IPFW. Файрвол IPFW уже встроен в операционную систему FreeBSD, и он позволяет фильтровать, перенаправлять, логировать входящий и исходящий трафик по протоколам, IP адресам и портам. В статье будет показана базовая настройка и конфигурация Firewall IPFW.
Протокол DHCP используется для автоматического получения параметров сетевого интерфейса. В качестве DHCP-сервера будет использоватся ISC-DHCP от некоммерческой организации Internet Systems Consortium, который себя зарекомендовал как надежный и безопасный. DHCP будет настроен для использования в локальной сети, для выдачи IP-адресов из пула адресов и статических IP-адреса от MAC-адресов.
На текущий момент у меня FreeBSD 14 и я решил обновится до FreeBSD 14.1, которая является последней версией на текущий момент. Обновление внутри одной ветки FreeBSD происходит быстрее и проще, так как не нужно переустанавливать все приложения и сервисы. Приступаем к обновлению до версии FreeBSD 14.1
Когда сайт переносится на другой сервер или защищается CDN, то сертификат Let's Encrypt на текущем сервере больше не нужно перевыпускать. Необходимо удалить сайт из утилиты Certbot, чтобы она не получала сертификаты для неиспользованных сайтов при автоматическом обновлении. Если все сертификаты получаются из других мест, то можно полностью отключить аккаунт Let's Encrypt и удалить утилиту Certbot в FreeBSD.
Для удобства подключения к SSH серверу можно добавить настройки подключения в адресную книгу (менеджер контактов) SSH клиента, чтобы каждый раз не вводить логин, адрес сервера, порт сервера. Вместо этого необходимо будет указать только имя контакта. OpenSSH клиент установлен по умолчанию в операционных системах Linux, FreeBSD, Windows 10/11.
Сервер FreeBSD будет выступать в качестве маршрутизатор (роутера) локальной сети, для этого будет использоватся Firewall IPFW и модуль маршрутизации NAT. Необходимо настроить раздачу интернета во внутреннею сеть и открыть порты сервисов которые работают на сервере. Одна сетевая карта сервера смотрит в интернет, вторая в локальную сеть. На сервера FreeBSD работает веб-сервер.
Файлы конфигурации и настроек приложений и операционной системы FreeBSD необходимо периодически резервировать. Файлы веб-сайтов и их базы данных также необходимо бэкапить (создавать резервные копии). Можно написать свой скрипт, но я решил использовать программу FSBackup. Утилита FSBackup имеет множество настроек и возможность загружать резервные копии на удаленный FTP или SSH сервер.
Сайт по незащищенному протоколу HTTP в 2024 года? Любой сайт должен работать через HTTPS, а для этого нужен сертификат которому доверяют веб-браузеры. Существует сервис Let's Encrypt который выдает бесплатно сертификаты для сайта сроком на 3 месяца, а после можно бесплатно их перевыпустить. Для управления и автоматического обновления сертификатов существует утилита Certbot. В статье будет рассмотрена работа Certbot в FreeBSD и настройка nginx для работы с HTTPS протоколом.
Nginx это отличный веб-сервер по производительности и безопасности. Для совместной работы nginx с PHP используется интерфейс PHP-FPM (FastCGI Process Manager). В статье будет показана варианты установки nginx и PHP в операционную систему FreeBSD 14, разобраны основные параметры конфигурационных файлов nginx.conf, php-fpm.conf и создание пула PHP-FPM.
Файловая система TMPFS создает временное хранилище в оперативной памяти сервера. Использовать TMPFS в FreeBSD полезно для продления жизни SSD накопителя, так как временные файлы будет хранится в оперативной памяти. Так же перенос операций записи на диск и чтение с диска в оперативную память бывает эффективно, если хостинг провайдер VDS ограничивает количество операций для диска.
Для программы голосового общения Mumble необходим сервер. В недалеком прошлом сервер для Mumble назывался murmur, теперь он переименован и называется Mumble server. При общении через Mumble все данные шифруются и используется защищённое соединение. В статье показана установка Mumble сервера в FreeBSD 14 и конфигурация его для повышения безопасности и защищённости голосового общения.
FTP сервер можно использовать когда необходимо кому-то выдать место куда он сможет загрузить файлы большого объема, использовать возможности загрузки файлов без авторизации из любого места интернета, загрузки файлов веб-сервера. Хотя для загрузки файлов веб-сервер рекомендую использовать SFTP. Использование в качестве FTP-сервера Pure-FTPd в FreeBSD удобно тем что можно создавать FTP пользователей во внутренней базе данный Pure-FTPd или использовать для этого SQL базы данных.
В качестве базы данных веб-сервера будет использоватся MariaDB последней стабильной версии. MariaDB это база данных которая отделилась от MySQL с сохранением совместимости по API, командам и библиотекам MySQL. Будет показан подробный процесс установки и начальной настройки сервера MariaDB. Установка MySQL 8 в FreeBSD 14 происходит примерно аналогично, поэтому отдельной статьи для MySQL не будет.
Бывают ситуации когда необходимо добавить на одну сетевую карту два и более IP-адреса. В FreeBSD можно добавлять необходимое количество дополнительных IP-адресов на сетевую карту. Добавление IP-адреса происходит при помощи команды временно до перезагрузки или постоянно. Также можно вручную открыть файла /etc/rc.conf и внести изменения для добавления необходимых IP-адреса.
Подключение к SSH серверу и последующая авторизация через ключ намного безопаснее авторизации через ввод пароля. Пароль можно попытатся подобрать, что будет создавать лишнею нагрузку на сервер. А самое удобное в авторизации по ключу, что не нужно каждый раз вводить пароль и подключение происходит автоматически. Это позволяет сделать действия с удаленным сервером автоматизированные.
В большинстве случае собирать свое ядро FreeBSD 14 не имеет смысла для x86-64 архитектуры. Того что в ядре нет можно подключить как модули ядра при загрузке системы. Собрать свое ядро есть смысл, если сервер имеет очень мало оперативной памяти или необходима очень сильная оптимизация производительности. При такой сборке будут выкинуты лишние драйвера, ненужные компоненты ядра и добавлены если необходимо недостающие. Для сборки ядра необходимы исходные коды FreeBSD системы.
На текущий момент у меня FreeBSD 13.2 и я не хочу затягивать с обновлением до последней версии. Не так давно вышла в релиз новая версии FreeBSD 14. В нее добавили новые возможности, обновили базовые приложения и сервисы. Приступаем к обновлению до версии FreeBSD 14.
В FreeBSD бывает два способа установки и управления приложениями через порты или пакеты. Утилита pkg используется для управления пакетами в FreeBSD. В статье будут показаны основные команды pkg утилиты и рассказано как установить и удалить программы и сервисы через пакеты, обновить все установленные пакеты за раз.
Memcached это сервис кэширования данных в оперативной памяти. Если нужно построить большую выборку данных (“Лучшие комментарии/статьи за сутки/неделю”, “Навигация по каталогу”, "Данные профиля пользователя" и другие) или обсчитать в PHP какие-то данные которые не требуются в реальном времени, то такие данные нужно кэшировать. Memcached позволяет кэшировать запросы к базе данных (MySQL, MariaDB и других) через средства PHP, чтобы снизить нагрузку на базу данных.
Периодически выходят новые версии программного обеспечения и различных сервисов. В данной статье будет рассказано как обновить программы и сервисы через “Коллекцию Портов FreeBSD”. Это можно обновлять в ручную по отдельности, но это долго. Существует две утилиты для автоматического обновления всех установленных в систему портов, это Portmaster и Portupgrade.
Обновил я FreeBSD до версии 13.2 и все программы до последних версий. В том числе MySQL до 8.0.35 версии. И получилось очень интересная проблема. MySQL престала запускатся, и даже не писала никаких логов никуда, как будто сервис MySQL даже не запускали. Проблема прям совсем странная.
Отличительная особенность FreeBSD это использование коллекции портов. Они представляют список программ и библиотек в исходных кодах с возможностью сборки с любыми необходимыми опциями. Порты находятся /usr/ports/ каталоге. Покажу два метода развертывания и обновления портов, через репозиторий используя систему контроля версия Git (актуальный) и portsnap (старый, на FreeBSD 13.2 еще поддерживается).
Сервером нужно как то управлять, для этого используется SSH протокол. Это защищенный протокол для удаленного доступа к консоли сервера. Разберем как включить и настроить SSH сервер в Linux и FreeBSD системах. Конфигурация SSH сервера одинакова в обеих системах, за исключением нескольких параметров и различается процесс добавления в автозагрузку.