FreeBSD Проверка и исправление ошибок

1.Для файловых систем UFS
Заходим в однопользовательский режим, после приглашения выполняем:

fsck -fy

2.Для файловых систем ZFS
В отличие от традиционных файловых систем, таких как UFS или EXT4, ZFS была разработана с учетом самовосстановления и не требует использования утилиты fsck для проверки и исправления ошибок. Выполняем:

zpool scrub имя-пула-обычно-zroot

Если ошибки предыдущей командой обнаружены, выполняем:

zpool clear имя-пула-обычно-zroot

freebsd что занимает место на диске?

Ситуация: бухи говорят: тормозят базы. Полез смотреть.. диск, память загружены, но не прям  под завязку. Добавил памяти, не помогло, удаленный стол явно тормозит… оказалось узкое место — это сервер ОпенВПН. Там ошибка:

May 22 14:44:00 vpn2 kernel: pid 58995 (dd), uid 2 inumber 2006453 on /: filesystem full

Читать далее «freebsd что занимает место на диске?»

Windows7 rclone Я.Диск TrueNAS(FreeBSD)

Задача: подключить на FreeBSD Яндекс диск. Нужно скопировать из резервной копии файлы.

Для решения задачи нужно запустить rclone и затем в браузере подтвердить Яндексу, что вы разрешаете третьей стороне(приложению rclone) авторизоваться, после подтверждения в браузере rclone создаст токен с датой окончания его действия и пропишет к себе в конфигурацию. На фре браузера нет, поэтому решение через привлечение своего компа: Читать далее «Windows7 rclone Я.Диск TrueNAS(FreeBSD)»

Freebsd 13 NFS server и запись с камеры на него

FreeBSD поддерживает сетевую файловую систему (NFS), которая позволяет серверу обмениваться каталогами и файлами с клиентами по сети. С помощью NFS пользователи и программы могут получать доступ к файлам в удаленных системах, как если бы они хранились локально. Читать далее «Freebsd 13 NFS server и запись с камеры на него»

FreeBSD 11: обновление ОС FreeBSD

  1. Проверим какая версия ОС у Вас сейчас установлена:
    #uname -v

    В нашем случаем вывод такой

    FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29 01:43:23 UTC 2016

    Это значит у нас FreeBSD 11 с набором патчей 1.

  2. Далее необходимо проверить наличие обновлений:
    #freebsd-update fetch

    На этом этапе происходит проверка наличия обновлений, их загрузка и вывод списка компонентов, которые нуждаются в обновлении. Процесс может занять длительное время! Не прерывайте его!
    В выводе увидим, что нам доступно обновление с набором патчей 3 FreeBSD 11.0-RELEASE-p3.

  3. Чтобы установить все обновления, воспользуемся командой
    #freebsd-update install
  4. Для применения обновлений необходимо перезагрузить Ваш сервер.

Переход на следующий релиз

#freebsd-update -r 11.4-RELEASE upgrade

Looking up update.FreeBSD.org mirrors… 5 mirrors found…

Does this look reasonable (y/n)? y — Соглашаемся с требуемыми изменениями в файлахFetching 1 metadata files…<здесь_очень_много_диагностической_информации я_ее_опустил_нажимаем_клавишу_End_для_перехода в конец>/var/yp/Makefile.distTo install the downloaded upgrades, run «/usr/sbin/freebsd-update install».Делаем, как уведомляет нас инсталлятор введя команду:

#/usr/sbin/freebsd-update install
#reboot
#/usr/sbin/freebsd-update install

Источники: https://www.ekzorchik.ru/2013/09/how-to-upgrade-to-the-latest-release-of-freebsd/

https://try2fixkb.ru/linux/freebsd-11-update-os

 

Установка окружения рабочего стола FreeBSD, на рабочий комп

Шаг 1. Выбираем между портами и пакетами:

FreeBSD предоставляет два основных метода скачивания приложений и системных инструментов: пакеты и порты. Пользователи выбирают между этими двумя возможностями, когда устанавливают их. Packages are pre-compiled binary packages, typically smaller in size than full port installations and they do not require compilation time. Ports are a much more customizable option, allowing experienced users to adjust how the tool is compiled. Packages are created for less inexperienced users and should be used unless the user has specific changes they need to make. In general, ports should only be used if the user understands how the packages are compiled and would like to customize this process. Читать далее «Установка окружения рабочего стола FreeBSD, на рабочий комп»

freebsd 12 ejabberd 19 с авторизацией в Active Directory

Установка

Стандартно, из портов. Возможно во время  установки зависимостей, какие-то пакеты(например llvm80) ругнутся на отсутствие Python 3.6(хотя он и стоит, но по-умолчанию видит версию 2.7),  тогда помогло установка этих пакетов отдельно(также из портов).

SSL-сертификат для ejabberd

ВведениеДля получения SSL-сертификата для сервера ejabberd нужно несколько вещей:

  • Создать запрос на подпись сертификата — Certificate Signing Request (CSR) и приватный ключ,
  • Передать запрос на подпись сертификата в удостоверяющий центр, дать ему подписать его и забрать оттуда готовый сертификат.
  • Объединить сертификат, приватный ключ (и цепочку сертификатов) в PEM-файл, совместимый с ejabberd,
  • Установить сертификат в ejabberd.

При помощи сертификата можно защитить XMPP-подключения и содержимое переговоров. Таким образом другим становится значительно сложнее прослушивать переговоры. В сочетании с включенным протоколом OTR это позволит создать сверхзащищённый канал для переговоров.

Создание запроса на подпись сертификата

ВАРИАНТ 1. Платный

Создадим каталог для хранения всех необходимых файлов и перейдём в него:

mkdir -p ~/Certificates/xmpp
cd ~/Certificates/xmpp

Теперь воспользуемся OpenSSL для создания приватного ключа и запроса на подпись сертификата — CSR. При помощи первой команды это можно сделать интерактивно, а при помощи второй — не интерактивно. Убедитесь, что задали правильное значение в поле Общее имя — Common Name (CN). В нём должен быть указан URL XMPP-сервера:

Интерактивная команда:

openssl req -nodes -newkey rsa:2048 -keyout private.key -out CSR.csr

Не интерактивная команда:

openssl req -nodes -newkey rsa:2048 -keyout private.key -out CSR.csr -subj "/C=NL/ST=State/L=City/O=Company Name/OU=Department/CN=chat.example.org"

В результате работы команды появятся два файла: CSR.csr и private.key. Теперь нужно передать запрос на подпись сертификата — CSR в удостоверяющий центр. Это может быть любой удостоверяющий центр. У меня есть успешный опыт использования Xolphin, но это могут быть другие удостоверяющие центры, например, Digicert и Verisign.

Как только вы передадите запрос на подпись сертификата и получите сертификат, можно продолжать дальше.

Вариант II. Самоподписаный

Создаем наше CA.
Создаём корневой ключ
openssl genrsa -out myCA.key 2048

Создаём корневой сертификат.
openssl req -x509 -new -key myCA.key -days 10000 -out myCA.crt

Здесь попросит заполнить несколько полей. Отвечать на вопросы тут можно как душе угодно. Главное поле — <<Common Name>> — вводим имя(FQDN)  нашего домена(сервера). Оно используется для сопоставления сервера. Помещение в это поле чего-либо кроме этого имени приведет к созданию бесполезного сертификата. 10000 дней — срок его годности.

Все! Теперь мы можем создавать сертификаты для наших серверов и устанавливать корневой сертификат на наши клиентские машины.

Создаем сертификат подписаный нашим СА

Генерируем ключ.
openssl genrsa -out im.key 2048

Создаем запрос на сертификат.
openssl req -new -key im.key -out im.csr

* Тут также важно правильно указать имя сервера в поле Common Name

Подписываем запрос на сертификат нашим корневым сертификатом.
openssl x509 -req -in im.csr -CA myCA.crt -CAkey myCA.key -CAcreateserial -out im.crt -days 5000

Теперь на клиенты нужно установить корневой сертификат myCA.crt.

myCA.crt — можно давать друзьям, устанавливать, копировать не сервера, выкладывать в публичный доступ
rootCA.key — следует держать в тайне. доллжны быть помещены в каталог, доступный для чтения только root, желательно внутри /etc. Права на каталог можно изменить chmod с параметрами 0700.

Создание сертификата для ejabberd

Создаем папку для хранения сертификатов джаббера

mkdir /usr/local/etc/ejabberd/certs

cd /usr/local/etc/ejabberd/certs

Кладем сюда наш приватный ключ(im.key) и сертификат(im.crt). Теперь нужно объединить эти файлы в один файл .pem, который уже можно «скормить» ejabberd

cat im.key >> im.pem

cat im.crt >> im.pem

Если не самоподписаный сертификат, то добавим ключи сначала наши и туда же Цепочку сертификатов

cat private.key >> im.pem
cat certificate.pem >> im.pem
cat chain-1.pem >> im.pem
cat chain-2.pem >> im.pem

Настройка

Обращайте внимание на отступы в файле yml играют роль. Табуляцией не пользоваться.

В файле конфигурации yml в секции сертификата, прописываем наш:

certfiles:
  - "/usr/local/etc/ejabberd/certs/im.pem"

Метод аутентификации пользователей

В том же файле конфигурации с расширением “.yml” или “.yaml” прописываем метод проверки пользователей. Примеры:

  • Домен example.net использует внутреннюю аутетентификацию, while домен example.com использует LDAP сервер localhost для проверки пользователей:
    host_config:
      "example.net":
        auth_method: internal
      "example.com":
        auth_method: ldap
        ldap_servers:
          - "localhost"
        ldap_uids:
          - "uid"
        ldap_rootdn: "dc=localdomain"
        ldap_rootdn: "dc=example,dc=com"
        ldap_password: ""
    
  • конфигурация посложнее, — SQL для внутренней(example.net) авторизации и несколько LDAP серверов, один localhost и второй otherhost:
  • host_config:
      "example.net":
        auth_method: sql
        sql_type: odbc
        sql_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
      "example.com":
        auth_method: ldap
        ldap_servers:
          - "localhost"
          - "otherhost"
        ldap_uids:
          - "uid"
        ldap_rootdn: "dc=localdomain"
        ldap_rootdn: "dc=example,dc=com"
        ldap_password: ""
    

Что такое CN, OU, DC?

Из RFC2253 (UTF-8 строковое представление отличительных имен):

String  X.500 AttributeType
------------------------------
CN      commonName
L       localityName
ST      stateOrProvinceName
O       organizationName
OU      organizationalUnitName
C       countryName
STREET  streetAddress
DC      domainComponent
UID     userid

Также необходимо создать учетку в AD которая имеет права на чтение LDAP базы домена my.domain.local, в моем случае это — CN=for_jabber,OU=it,DC=my,DC=domain,DC=local

Интерактивный запуск ejabberd, для отладки(показывает ошибки):

ejabberdctl live

 

 

Источники:

Настройка интеграции ejabberd 18.12.1 с Active Directory на Debian 9. Настройка SSO (Single Sign On) авторизации.


https://habr.com/ru/post/192446/
https://www.freebsd.org/doc/ru/books/handbook/openssl.html
https://docs.ejabberd.im/admin/configuration/?kp=1&k1=-1
http://vladimir-stupin.blogspot.com/2017/09/ssl-ejabberd.html

Ejabberd на FreeBSD с авторизацией в Active Directory

Список пользователей FreeBSD

#список юзверей
grep -v "^#" /etc/passwd|awk -F : '{print $1}'|sort

#шелы и юзвери
grep -v "^#" /etc/passwd|awk -F : '{print $7"\t"$1}'|sort