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

Установка MariaDB 10.4 на FreeBSD 12

How do I install MariaDB 10.3 on FreeBSD 12?, How to Install MariaDB 10.3 Database Server on FreeBSD 12?.  MariaDB 10.3 is a multi-user, multi-threaded SQL database server. It is a community-developed fork of the MySQL relational database management system.

MariaDB 10.3 Features:

  • InnoDB is used as the default storage engine instead of XtraDB.
  • System-versioned tables
  • FOR loops
  • MariaDB Galera Cluster, a synchronous multi-master cluster, is now a standard part of MariaDB.
  • Sequences
  • Instant ADD COLUMN for InnoDB
  • Invisible columns
  • Parallel replication
  • Multi-source replication
  • Common table expressions
  • Storage-engine independent column compression

In my last article, I covered:

How to Install PHP 7.2 on FreeBSD 12

Below are the steps to install and configure MariaDB 10.3 on FreeBSD 12.

Step 1: Update ports tree

Start by updating your FreeBSD server Ports tree using the portsnap command:

$ jmutai@freebsd:~ % su -
 Password:
 root@freebsd:~# portsnap fetch update
 Looking up portsnap.FreeBSD.org mirrors… 5 mirrors found.
 Fetching public key from ec2-ap-southeast-2.portsnap.freebsd.org… done.
 Fetching snapshot tag from ec2-ap-southeast-2.portsnap.freebsd.org… done.
 Fetching snapshot metadata… done.
 Fetching snapshot generated at Sun Dec  9 00:19:28 UTC 2018:
 Extracting snapshot… done.
 Verifying snapshot integrity… done.
 Fetching snapshot tag from ec2-ap-southeast-2.portsnap.freebsd.org… done.
 Fetching snapshot metadata… done.
 Updating from Sun Dec  9 00:19:28 UTC 2018 to Sun Dec  9 19:15:19 UTC 2018.
 Fetching 5 metadata patches… done.
 Applying metadata patches… done.
 Fetching 0 metadata files… done.
 Fetching 78 patches. 
 (78/78) 100.00%  done.                                   
 done.
 Applying patches… 
 done.
 Fetching 3 new ports or files… done.
 /usr/ports was not created by portsnap.
 You must run 'portsnap extract' before running 'portsnap update'.

When running Portsnap for the first time, you need to extract the snapshot into /usr/ports:

sudo portsnap extract

You should get the message below at the end of the output.

Building new INDEX files... done.

Confirm that everything is up to date.

sudo portsnap fetch update

Step 2: Install MariaDB 10.3 Database Server

MariaDB 10.3 can be installed using binary or ports method. This installation is from the binary package using the pkgpackage manager.

Check if MariaDB 10.3 is available from your package cache:

$ pkg search mariadb | grep 10.3
mariadb103-client-10.3.11      Multithreaded SQL database (client)
mariadb103-server-10.3.11      Multithreaded SQL database (server)

From the output, we can see there is version 10.3.11 available. Install  both the server and client using the command below:

$ sudo pkg install mariadb103-server mariadb103-client
 Updating FreeBSD repository catalogue…
 FreeBSD repository is up to date.
 All repositories are up to date.
 The following 6 package(s) will be affected (of 0 checked):
 New packages to be INSTALLED:
     mariadb103-server: 10.3.11
     mariadb103-client: 10.3.11
     libedit: 3.1.20170329_2,1
     unixODBC: 2.3.7
     galera: 25.3.24
     boost-libs: 1.68.0_1
 Number of packages to be installed: 6
 The process will require 406 MiB more space.
 44 MiB to be downloaded.
 Proceed with this action? [y/N]: y
 [1/6] Fetching mariadb103-server-10.3.11.txz: 100%   29 MiB 159.5kB/s    03:11    
 [2/6] Fetching mariadb103-client-10.3.11.txz: 100%    2 MiB 101.4kB/s    00:17    
 [3/6] Fetching libedit-3.1.20170329_2,1.txz: 100%  123 KiB 125.6kB/s    00:01    
 [4/6] Fetching unixODBC-2.3.7.txz: 100%  456 KiB  93.5kB/s    00:05    
 [5/6] Fetching galera-25.3.24.txz: 100%  802 KiB 117.3kB/s    00:07    
 [6/6] Fetching boost-libs-1.68.0_1.txz: 100%   12 MiB 134.6kB/s    01:32    
 Checking integrity… done (0 conflicting)
 [1/6] Installing libedit-3.1.20170329_2,1…
 [1/6] Extracting libedit-3.1.20170329_2,1: 100%
 [2/6] Installing boost-libs-1.68.0_1…
 [2/6] Extracting boost-libs-1.68.0_1: 100%
 [3/6] Installing mariadb103-client-10.3.11…
 [3/6] Extracting mariadb103-client-10.3.11: 100%
 [4/6] Installing unixODBC-2.3.7…
 [4/6] Extracting unixODBC-2.3.7: 100%
 [5/6] Installing galera-25.3.24…
 [5/6] Extracting galera-25.3.24: 100%
 [6/6] Installing mariadb103-server-10.3.11…
 ===> Creating groups.
 Creating group 'mysql' with gid '88'.
 ===> Creating users
 Creating user 'mysql' with uid '88'.
 [6/6] Extracting mariadb103-server-10.3.11: 100%
 Message from boost-libs-1.68.0_1:
 You have built the Boost library with thread support.
 Don't forget to add -pthread to your linker options when
 linking your code.
 Message from mariadb103-client-10.3.11:

Step 3: Start and Enable mysql-server service

After installing MariaDB Database server on FreeBSD 12 server, you’ll need to start the service before you can configure it.

Run the following command in your terminal to enable  themysql-server service to start on system boot.

$ sudo sysrc mysql_enable="YES"
mysql_enable:  -> YES

Then start the service.

sudo service mysql-server start

Step 4: Harden MariaDB server installation

Run the command mysql_secure_installation to harden MariaDB database server.

$ mysql_secure_installation
 NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 In order to log into MariaDB to secure it, we'll need the current
 password for the root user.  If you've just installed MariaDB, and
 you haven't set the root password yet, the password will be blank,
 so you should just press enter here.
 Enter current password for root (enter for none): 
 OK, successfully used password, moving on…
 Setting the root password ensures that nobody can log into the MariaDB
 root user without the proper authorisation.
 Set root password? [Y/n] y
 New password: 
 Re-enter new password: 
 Password updated successfully!
 Reloading privilege tables..
  … Success!
 By default, a MariaDB installation has an anonymous user, allowing anyone
 to log into MariaDB without having to have a user account created for
 them.  This is intended only for testing, and to make the installation
 go a bit smoother.  You should remove them before moving into a
 production environment.
 Remove anonymous users? [Y/n] Y
  … Success!
 Normally, root should only be allowed to connect from 'localhost'.  This
 ensures that someone cannot guess at the root password from the network.
 Disallow root login remotely? [Y/n] Y
  … Success!
 By default, MariaDB comes with a database named 'test' that anyone can
 access.  This is also intended only for testing, and should be removed
 before moving into a production environment.
 Remove test database and access to it? [Y/n] Y
 Dropping test database…
 … Success!
 Removing privileges on test database…
 … Success! 
 Reloading the privilege tables will ensure that all changes made so far
 will take effect immediately.
 Reload privilege tables now? [Y/n] Y
  … Success!
 Cleaning up…
 All done!  If you've completed all of the above steps, your MariaDB
 installation should now be secure.
 Thanks for using MariaDB!

Ensure you:

  • Set Database root user password
  • Remove anonymous users
  • Disallow root user remote logins
  • Remove test database and access to it

When done, test access using the root user

$ mysql -u root -p
 Enter password: <Enter password>
 Welcome to the MariaDB monitor.  Commands end with ; or \g.
 Your MariaDB connection id is 17
 Server version: 10.3.11-MariaDB FreeBSD Ports
 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 MariaDB [(none)]> SELECT VERSION();
 +-----------------+
 | VERSION()       |
 +-----------------+
 | 10.3.11-MariaDB |
 +-----------------+
 1 row in set (0.001 sec)
 MariaDB [(none)]> QUIT
 Bye

Step 5: Bind MariaDB Server service to localhost

By default, MariaDB service binds to all available network interfaces as can be seen from:

$ sockstat -4 -6 | grep 3306
mysql mysqld 1350 21 tcp46 *:3306 *:*

If you don’t have services connecting to your database server from the network, you can limit this to localhost.

# sysrc mysql_args="--bind-address=127.0.0.1"
mysql_args: -> --bind-address=127.0.0.1

You need to restart mysql-server after making this change

# service mysql-server restart
Stopping mysql.
Waiting for PIDS: 1350, 1350.
Starting mysql.

Verify the change:

# sockstat -4 -6 | grep mysql
mysql mysqld 1614 21 tcp4 127.0.0.1:3306 *:*

Your installation of MariaDB 10.3 on FreeBSD 12 has been successful. We went ahead and enabled the service to start on boot and hardened the server. Until next time, thanks for visiting our website. Follow us on our social media pages for instant updates.

Источник: https://computingforgeeks.com/how-to-install-mariadb-10-3-on-freebsd-12/

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

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

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

Установка торрента transmission c web-мордой

cd /usr/ports/net-p2p/transmission-daemon make clean && make install clean

Добавляем в /etc/rc.conf параметры запуска:


transmission_enable="YES"
# Где лежат конфиги
transmission_conf_dir="/usr/local/etc/transmission/"
# Куда складывается скаченное
transmission_download_dir="/usr/home/transmission/downloads"
# Пользователь под которым работает демон.
# Если задан пустой, то пускается под root'ом, что не рекомендуется.
# Если параметр не задан, то запускается под transmission
transmission_user="transmission"
# Дополнительные флаги запуска transmission_flags=""

Не забываем создать нужные папки и выдать на них разрешения.

mkdir /usr/local/etc/transmission
chown -R transmission:transmission
/usr/local/etc/transmission
mkdir -p /usr/home/transmission/downloads
chown -R transmission:transmission /usr/home/transmission

— Все директории кроме той, что указана в директиве transmission_conf_dir, нужно создать до первого запуска
— У пользователя, под которым будет работать transmission, должен быть доступ на чтение и запись во все указанные в rc.conf директории
— Пользователь transmission создается при установке программы, если хотите использовать другого пользователя, то создавайте ручками.

Теперь нам нужен конфигурационный файл. Для его создания запускаем и выключаем transmission:

# /usr/local/etc/rc.d/transmission start 
# /usr/local/etc/rc.d/transmission stop

Файл создан! /home/media/torrents/.transmission/settings.json

Что там есть интересного для нас?

"bind-address-ipv4": "0.0.0.0",

На каких ip-адресах работает transmission. 0.0.0.0 означает, что используются все доступные ip-адреса. Если необходимо, то можно указать только конкретный ip-адрес.

"peer-port": 51413, 
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,

На каких портах идет работа. Я решил, что такой диапазон по умолчанию между значениями peer-port-random-low и peer-port-random-high — это слишком жирно и указал

"peer-port-random-high": 55560, 
"peer-port-random-low": 55556,

Внимание! Указанные выше (а также ещё некоторые) порты необходимо разрешить в брандмауэре! Вот образец для стартового скрипта ipfw:

# torrent incoming 
$fw add allow ip from me 55556-55560 to any out
$fw add allow ip from any to me 55556-55560 in
$fw add allow ip from me 6881-6889 to any out
$fw add allow ip from any to me 6881-6889 in
# transmission web-interface
$fw add allow ip from me 9090 to any out
$fw add allow ip from any to me 9090 in
# transmission incoming listen $fw add allow ip from me 51413 to any out
$fw add allow ip from any to me 51413 in

Далее. Настройки управления через web-интерфейс.

"rpc-authentication-required": false, 
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "{0bad0a49bd171d9d225da4e435a91ff6052605723MoqUS1K",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": true,

rpc-authentication-required — обязательна ли аутентификация того, кто пытается подключиться? Да, поэтому ставим true
rpc-bind-address — на каком ip поднимать интерфейс. Значение 0.0.0.0 — на всех
rpc-enabled — web-интерфейс включен или выключен
rpc-password — пароль для доступа. Запишите его простым текстом вместо существующего, при запуске transmission сам его зашифрует
rpc-port — порт, на котором работает web-интерфейс. Настоятельно рекомендуется поменять на другой, например 9090 и не забыть его разрешить в брандмауере!
rpc-url — пусть останется так как есть
rpc-username — имя пользователя для доступа, имя придумайте сами
rpc-whitelist — с каких ip можно подключаться. Пустая строка у меня не прокатила (0.0.0.0 не пробовал, может прокатит), поэтому я оставил этот параметр в покое
rpc-whitelist-enabled — использовать или нет rpc-whitelist. Я хотел соединяться с любых адресов, поэтому задал false.

Используем
Запускаем

# /usr/local/etc/rc.d/transmission start

Заходим в web-морду. Открываем браузер и в адресной строке пишем

http:///transmission/web/

У нас спрашивают имя пользователя и пароль (которые мы задали в настройках), после чего допускают к управлению.

Добавление торрентов возможно двумя способами

— через web-интерфейс (папка со стрелкой вверх)
— добавлением торрент-файла в директорию, заданную в директиве transmission_watch_dir файла /etc/rc.conf. После успешного добавления, к имени торрент-файла будет приписано .added, такой файл можно удалить.

Полезности
Чем хорош transmission, так это тем, что на всяческие события можно приделать собственный внешний скрипт-обработчик.

Например, я хотел, чтобы по окончанию скачивания файла, ссылка на него выкладывалась в директорию /home/media/torrents/.finished а также на определенный email приходило письмо о том, что файл скачался. Нет ничего проще.

Создаем файл /home/media/torrents/.transmission/torrent_done.sh со следующим содержимым:

    
#!/bin/sh
# create link
ln -s /home/media/torrents/$TR_TORRENT_NAME /home/media/torrents/.finished/$TR_TORRENT_NAME
# send email echo $TR_TIME_LOCALTIME - $TR_TORRENT_NAME Downloaded | mail -s "Torrent Done" root@server exit 0;

Переменные, которые можно использовать в скрипте:
$TR_APP_VERSION — версия transmission
$TR_TORRENT_ID — id торрента, как оно показывается в remote-GUI
$TR_TORRENT_NAME — имя торрента как оно отображается в интерфейсе
$TR_TORRENT_DIR — директория торрента
$TR_TORRENT_HASH — хэш торрента
$TR_TIME_LOCALTIME — дата и время запуска стрипта

Выключаем transmission и редактируем его конфигурационый файл /home/media/torrents/.transmission/settings.json

"script-torrent-done-enabled": true, 
"script-torrent-done-filename": "/home/media/torrents/.transmission/torrent_done.sh",

Запускаем transmission

Источник:
https://www.site-motor.ru/docs/freebsd/net-p2p_transmission.html

http://www.lissyara.su/articles/freebsd/programms/transmission/

Настройка Vsftpd passive ports

Настройка Vsftpd passive ports

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

в /etc/vsftpd.conf прописываем:

1
2
pasv_min_port=49152
pasv_max_port=65535

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

В файрволе открываем порты:

1
iptables -A INPUT -p tcp —dport 49152:65535 -j ACCEPT

Запись опубликована 3 июня 2010 автором admin в рубрике Linux. Источник: http://www.qinet.ru/2010/06/264/

Обновление openfire сервера

В продолжении моей статьи как установить openfire пришло время обновить его тем более уже прошло более 5 обновлений, моя версия Openfire 3.10.0 на данный момент, а сейчас уже можно скачать Openfire 4.0.1 Так что давайте перейдем к вопросу как и с чего начать обновление openfire сервера. 

Для обновления Openfire делаем следующие (напомню что данная инструкция описывает обновление сервера Openfire под Ubuntu):

  1.  Останавливаем сервер openfire командой  /etc/init.d/openfire stop
  2. Копируем директорию /usr/share/openfire и /etc/openfire
  3. Если есть возможность сделайте бекап базы данных, я для этого использую phpmyadmin
  4. Далее скачиваем последний дистрибутив openfire с сайта http://www.igniterealtime.org/downloads/index.jsp
  5. После этого запускаем команду dpkg -i openfire_4.0.1_all.deb
  6. Я бы еще советовал сделать следующее в файле openfire.xml  который находится в /etc/openfire в самом низу есть строчка   <setup>true</setup>  и в ней нужно удалить слово TRUE
  7. Далее запускаем сервер Openfire командой /etc/init.d/openfire start
  8. И переходим в админку http://IP_Сервера:9090 у нас будет снова запущена установка openfire, НО НЕ ВОЛНУЙТЕСЬ, А ПРОЙДИТЕ ВСЕ ЭТАПЫ и увидите что в админке все сохранения остались с пользователями и группами (ну даже если накосячили, то базу данных вы сохраняли из третьего пункта и можно будет откатиться и все заново повторить)
  9. Радуемся Жизни )

Вот таким простым способом мы обновили сервер Openfire (на самом деле на все это у меня ушло не более 10 минут, так что ни чего не бойтесь и делайте по инструкции)

PS кстати еще может кому понадобиться может пригодиться статья как восстановить пароль администратора в openfire

Источник: https://www.nibbl.ru/ubuntu/obnovlenie-openfire-servera.html

Установка, настройка и сброс пароля WebMin во FreeBSD

Автор: Воронов Глеб | 08-05-2013 Нет комментариев

WebMin — крайне полезная вещь для начинающих администраторов. Консоль Unix — неоспоримо мощная штука. Но не всем так просто сразу её освоить. Кнопочки, подсказки и описания, ещё и на русском — то, от чего вряд ли откажется молодой красноглазик.
Когда я узнал об этом продукте, то установил, как и многое — чисто потестить. Особо ничем она мне не помогла, так как сервер уже был настроен и отлажен, но все же иногда устанавливаю…
Установка как обычно проще простого:

cd /usr/ports/sysutils/webmin/
make && make install && make clean

После сборки и установки вылезла кратенькая инструкция. Как я заметил от версии к версии она не меняется:

After installing Webmin for the first time you should perform the following
steps as root:

* Configure Webmin by running /usr/local/lib/webmin/setup.sh

* Add webmin_enable=»YES» to your /etc/rc.conf

* Start Webmin for the first time by running /usr/local/etc/rc.d/webmin start

The parameters requested by setup.sh may then be changed from within Webmin
itself.

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

/usr/local/etc/rc.d/webmin start
Starting webmin.
Pre-loaded WebminCore

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

Забыть пароль может кто угодно. Вот так случилось и со мной. Необходимо было что то посмотреть в webmin-е на сервере, который когда то давно администрировал. И как водится — пароль не помню. Разработчики подумали о таких как я (за что им отдельный респект) и создали скрипт смены пароля.

/usr/local/lib/webmin/changepass.pl /usr/local/etc/webmin user password

Источник: https://tradenark.com.ua/centos/freebsd-webmin-installing-change-password/

Русификация UTF-8 FreeBSD

Локализация — I18N/L10N использование и настройка

1. Локализация консоли

необходим только в случае работы за локальной консолью.

Данный пункт локализации не требуется и не влияет на работу удаленных text-mode эмуляторов терминалов, таких как putty или openssh.

Итак, начиная с релиза FreeBSD 10.1 в системе для Russian UTF-8, в консольном драйвере vt (4) имеются:

— клавиатурные мапперы/переключатели:

# ls -la /usr/share/vt/keymaps/ | grep ru
-r--r--r--  1 root  wheel  16228 Nov 12 06:04 ru.kbd
-r--r--r--  1 root  wheel  16234 Nov 12 06:04 ru.shift.kbd
-r--r--r--  1 root  wheel  16232 Nov 12 06:04 ru.win.kbd

BashCopy

— фонты:

# ls -la /usr/share/vt/fonts/
-r--r--r--  1 root  wheel  8452 Nov 12 06:04 gallant.fnt
-r--r--r--  1 root  wheel  8742 Nov 12 06:04 vgarom-8x14.fnt
-r--r--r--  1 root  wheel  9864 Nov 12 06:04 vgarom-8x16.fnt
-r--r--r--  1 root  wheel  5384 Nov 12 06:04 vgarom-8x8.fnt
-r--r--r--  1 root  wheel  5400 Nov 12 06:04 vgarom-thin-8x16.fnt
-r--r--r--  1 root  wheel  2704 Nov 12 06:04 vgarom-thin-8x8.fnt

BashCopy

Шрифт gallant.fnt – красивый но не поддерживает кириллические символы.

Консольный драйвер vt (4) по умолчанию использует для работы режим VGA разрешением 640×480×16 (vt_vga).

Для использования UTF-8, необходимо произвести следующие действия:

— добавить в /boot/loader.conf строку:

kern.vty=vt

означает использование консольного драйвера vt вместо syscons

Согласно информации на https://wiki.freebsd.org/Newcons VT не поддерживает экранные заставки и выключение монитора в частности.
Поэтому все вопросы, касающиеся этой темы, можно считать решенными. Ответ на вопрос, как сделать включение заставки в VT, ответ – НИКАК

Если потребуется собрать собственное ядро, только с новым драйвером консоли, необходимо в ядро добавить:

#-- закомментарить *vga*, *sc* и оставить только *vt*
#device        vga             # VGA video card driver                 
#device        sc                                                      
device         vt                                                              
device         vt_vga

BashCopy

ps. ядро GENERIC 10.1 уже собрано с поддержкой vt (4) (man vt).

— добавить в /etc/rc.conf

#-- Russians keymap, uncomment that you preffer
# CAPS switch to russian
keymap="ru"
# SHIFT switch to russian, top keyboard raw as number
#keymap="ru.shift"
# CTRL+SHIFT switch to russian
#keymap="ru.win"
#-- font load
font8x16="vgarom-8x16"

BashCopy

Шрифт vgarom используется системой по умолчанию, можно не задавать, указан как пример задания фонта, когда появится выбор. верхнее означает что на данный момент можно использовать, как это было и ранее, три варианта клавиатурного маппинга, любой который Вам удобнее, раскомментарьте один, который Вам предпочтительней (выше это keymap=«ru»):

keymap="ru" – переключение на русский клавишей CAPS Lock
keymap="ru.shift" – переключение на русский клавишей CAPS Lock, но верхний ряд на клавиатуре по умолчанию будет цифровой
keymap="ru.win" – переключение на русский клавишами CTRL+SHIFT

выбор фонтов пока отсутствует, по умолчанию в наличии пока лишь следующие:
gallant.fnt – красивый, но не поддерживает русский
vgarom-8×8.fnt – матрица 8×8 с поддержкой русских символов
vgarom-8×14.fnt – матрица 8×14 с поддержкой русских символов
vgarom-8×16.fnt – матрица 8×16 с поддержкой русских символов
vgarom-thin-8×8.fnt
vgarom-thin-8×16.fnt

Консольные фонты Terminus, можно скачать:
фонт 8×16: ter-u16.fnt
чуть другой фонт 8×16: ter-u8x16.fnt
фонт 16×32: ter-u32.fnt

загрузить вручную, например:

# vidcontrol -f ter-u32.fnt

BashCopy

или положить в /usr/share/vt/fonts/ и настроить /etc/rc.conf, например:

font8x16="ter-u8x16.fnt"

BashCopy

Шрифты 16×32 нужны(удобны) для широкоформатных мониторов, для загрузки фонта ter-u32.fnt (16×32), нужно изменить скрипт /etc/rc.d/syscons или использовать /etc/rc.local и /etc/rc.conf.local для загрузки 16×32 фонтов.

Тип эмулируемого терминала для UTF-8 консоли: xterm

Начиная с 9.0, для syscons (4) драйвера и очень важно – для vt (4) драйвера, в /etc/ttys необходимо использовать тип эмулируемого терминала xterm:

ttyv0   "/usr/libexec/getty Pc"         xterm   on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv4   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv5   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv6   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv7   "/usr/libexec/getty Pc"         xterm   on  secure

(чтобы перечитался /etc/ttys)

/etc/rc.d/syscons restart

BashCopy

Ранее, syscons (4), для KOI8-R тип эмулируемого терминала cons25r, для KOI8-Ucons25u. Для CP437 (VGA default) – cons25, US-ASCIIcons25w.

При использовании KMS драйверов: i915kms или radeonkms в /boot/loader.conf добавить:

kern.vt.fb.default_mode="1024x768"

BashCopy

Для использования vt (4) драйвера в text-mode, /boot/loader.conf:

hw.vga.textmode=1

BashCopy

Если ядро собрано с поддержкой обоих драйверов: *sc*(4) и *vt*(4), старый драйвер можно вернуть, задав в /boot/loader.conf:

kern.vty=sc

BashCopy

2. Локализация login shells и использование login class.

Описан в FreeBSD HandBook и выполняется как обычно, локализация login shell’ов и может быть использована совместно с настройкой login class через описание его в /etc/login.conf

Локализация представляет из себя следующую конструкцию:

LanguageCode_CountryCode.Encoding

BashCopy

где: LanguageCode_Country Code Description можно выбрать одно из значений:
en_US English, United States ru_RU Russian, Russia

команда покажет все присутствующие в системе locale:

# locale -a | more

BashCopy

Работа с charater set (charset) для языков, например:

– ISO8859-1, ISO8859-15, KOI8-R, CP1251, CP437 и тд и тп описана в multibyte (3), а список charsets для языков можно найти в IANA Registry

FreeBSD использует Xorg-compatible locale encodings.

1) использование login класса

— можно отредактировать /etc/login.conf и изменить настройки класса «russian» или создать отдельный класс russianu

a) изменяем класс russian в /etc/login.conf

russian|Russian Users Accounts:
        :charset=KOI8-R:
        :lang=ru_RU.KOI8-R:
        :tc=default:

BashCopy

на

russian|Russian Users Accounts:
        :charset=UTF-8:
        :lang=ru_RU.UTF-8:
        :tc=default:

BashCopy

или

b) создаем в дополнение к классу «russian», новый класс «russianu»

russianu|Russian Users Accounts UTF-8:
        :charset=UTF-8:
        :lang=ru_RU.UTF-8:
        :tc=default:

BashCopy

По завершении перестраиваем хеш-базу:

# cap_mkdb /etc/login.conf

BashCopy

Все, осталось перевести пользователей которым нужен UTF-8 на новый класс используя на выбор: passwd (1), pw (8), chpass (1), vipw (8)

Пример:

# pw user mod alex -L russianu

BashCopy

2) настройка locale в shell/bash/csh/tcsh

для настройки локализации в шелах, необходимо соответствующим образом настроить тот или иной shell, см. соответствующий man

Настройка локализации в login shell’ах сводится как минимум к заданию переменных:

LANG
MM_CHARSET

BashCopy

в пользовательских файлах: ~/.login_conf и/или пользовательских стартап

shell файлах: ~/.profile, ~/.bashrc, или ~/.cshrc.

BashCopy

sh/bash:

export LANG=ru_RU.UTF-8
export MM_CHARSET=UTF-8

BashCopy

csh/tsch:

setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8

BashCopy

Или в системных стартап shell файлах: /etc/profile и /etc/csh.login

Для bash необходимо создать в домашней директории файл .inputrc

set convert-meta Off
set input-meta On
set output-meta On

BashCopy

Перекодировка имен файлов и директорий.
— необходимо установить и использовать утилиту convmv, из пакетов или портов

# pkg install converters/convmv
# make -C /usr/ports/converters/convmv install clean
# man convmv

BashCopy

пример использования:

# convmv -f koi8-r -t utf-8 *
# convmv -f koi8-r -t utf-8 --notest *
# convmv -r -f koi8-r -t utf-8 --notest *

BashCopy

При использовании утилиты convmv, возможны проблемы с перекодированием отдельных символов.

Перекодировка содержимого файлов.

Можно воспользоваться утилитами iconv и recode:

iconv (интегрирована в FreeBSD 10.x)

/usr/ports/converters/libiconv в более ранних версиях

примеры использования:

iconv:

# man iconv
# iconv -c -f koi8-r -t utf-8 inputfile
# iconv -c -f koi8-r -t utf-8 inputfile > outputfile
# iconv -c -f koi8-r -t utf-8 < inputfile > outputfile

BashCopy

recode:

# make -C /usr/ports/converters/recode install clean
# man recode
# recode koi8-r..utf-8 inputfile
# recode koi8-r..utf-8 < inputfile > outputfile

BashCopy

При использовании утилиты iconv, возможны проблемы с перекодированием отдельных символов, утилита recode, работает более адекватно.

Удаленный терминальный доступ.

Для удаленного терминального доступа из системы с UTF-8 локализацией к системам с locale отличной от UTF-8, можно воспользоваться утилитой luit:

пример использования luit (man luit):

# luit -encoding "KOI8-R" slogin username@host.domain

BashCopy

в качестве encoding использовать charset соответствующие удаленному locale, в данном примере KOI8-R

Удаленный терминальный доступ из Windows в Unix-like OS с locale UTF-8:

— использование утилиты putty, настройка:

Putty -> Window -> Translation -> Remote character set: UTF-8

3. Локализация Xorg

осталась неизменной, так как основная масса DE, WM и X-Apps в настоящее время ориентирована на работу с UTF-8, больше не нужно использовать shell-wrapper’ы или переопределять переменную LANG для их запуска.

фонты в Xorg:

— при использовании locale == ru_RU.UTF-8, необходимо использовать фонты с поддержкой iso10646

misc содержат исправленные фонты iso10646, но по умолчанию не прописаны в fonts.aliases, если есть привычка использования алиасов, придется прописать их самостоятельно.

Например, как советует Markus Kuhn Unicode fonts and tools for X11.

— фонты misc с iso10646 и остальные фонты с iso10646, необходимо указывать первыми в xorg.conf

например так:

FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
        FontPath     "/usr/local/lib/X11/fonts/terminus-font/"
        FontPath     "/usr/local/lib/X11/fonts/bitstream-vera/"
        FontPath     "/usr/local/lib/X11/fonts/dejavu/"
        FontPath     "/usr/local/lib/X11/fonts/freefont/"
        FontPath     "/usr/local/lib/X11/fonts/unifont/"
        FontPath     "/usr/local/lib/X11/fonts/local/"
        FontPath     "/usr/local/lib/X11/fonts/webfonts/"
        FontPath     "/usr/local/lib/X11/fonts/urw/"
        FontPath     "/usr/local/lib/X11/fonts/cyrillic/"
        FontPath     "/usr/local/lib/X11/fonts/artwiz-ru/"
        FontPath     "/usr/local/lib/X11/fonts/freefont-ttf/"
        FontPath     "/usr/local/lib/X11/fonts/urwfonts-ttf/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF/"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"

BashCopy

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

посмотреть установленные фонты:

# fc-list
# ls -laR /usr/local/etc/fonts/

BashCopy

— посмотреть фонты iso10646

# xlsfonts | grep iso10646
# xlsfonts | grep "-misc-fixed-medium" | grep iso10646 
# xlsfonts | grep "-misc-fixed-medium-r-semicondensed" | grep 10646

BashCopy

графические эмуляторы терминала с encoding, примеры с KOI8-R:

mate-terminal, gnome-terminal:

# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; gnome-terminal --geometry 80x35 --disable-factory"
# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; mate-terminal --geometry 80x35 --disable-factory"
# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; xfce4-terminal"

BashCopy

переменные среды LANG,CHARSET в соответствии с использованием locale, например на удаленной стороне, или для локальной работы с файлами в KOI8-Rxterm с encoding

# xterm -en [koi8-r|cp1251|...]

BashCopy

4. Локализация Applications (приложений).

Зависит исключительно от написания приложения в соответствии со стандартом i18n и работой с базами termcap в случае xBSD или terminfo в случае Linux или SYSV-based для эмулируемого терминала TERM.

К сожалению, консольных фонтов пока, очень мало, не говоря уже о хороших и красивых фонтах.
Некоторые фонты и клавиатурный маппинг от Александра Рыбалко, можно найти:
https://people.freebsd.org/~ray/newcons/fonts/
https://people.freebsd.org/~ray/newcons/newcons_kbd/
https://people.freebsd.org/~emaste/newcons/

Пример конвертации bdf фонта в fnt используя vtfontcvt и его загрузку используя vidcontrol, см: https://wiki.freebsd.org/Newcons

Минимум позволяющий работать в консоли с UTF-8:
— отображение – /usr/bin/less (использовать в качестве PAGER)
— редактирование – /usr/bin/vi , редактор Vi в 10.1 собран с поддержкой wide-char
— псевдографика в mc выглядит красиво, встроенный редактор поддерживает utf-8
— любимый многими, простой редактор /usr/bin/ee не поддерживает utf-8, отображает криво, но позволяет набирать текст «вслепую».
— настройку chrasets и работу samba3x, samba4x – не проверял

Все вышенаписанное проверено на реальном железе с FreeBSD 10.1 и в гостевой FreeBSD 10.1 под VirtualBox, включая Xorg и несколько DE и WM.

Практика:
— используем syscons (4) для работы в консоли с KOI8-R, CP1251, CP866
— используем vt (4) для работы в консоли только с UTF-8

Вывод: наконец можно постепенно избавиться от разнообразия: CP866,CP1251,KOI8-R и тд и тп и использовать одну универсальную кодировку UTF-8.

источник: http://unix1.jinr.ru/~lavr/vt/vtcons.html, https://blognode.ru/freebsd-utf-8-v-konsoli-i-terminale