Итак на работе возникла проблема, что от ранее существовавшего системного администратора остался один единственный сервис OpenFire 4.6.0 от которого нет в KeePass доступов в Web-панель администрирования. К тому же это очень интересная часть, разобрать как добавить еще одного администратора.

Шаг №1: Сервис корпоративного обмена сообщениями был установлен опираясь на заметку "Внедряем корпоративный чат openfire + AD на Ubuntu 18.04"

Шаг №2: Сервис корпоративного обмена сообщения был обновлен с версии 4.4.4 на 4.6.0 опираясь на заметку "Как обновить OpenFire 4.4.4 до 4.6.0"

Шаг №3: Но вот доступа в https://IP&DNS:9091 нет и у кого, он либо потерян, либо те кто сейчас есть в команде IT не нацелены на выдачу логина и пароля, а хотят получить инструкцию как создать или сбросить пароль на текущего администратора сервиса.

Шаг №4: Процедура создания еще одного администратора для доступа в Webконсоль Openfire следующая:

ekzorchik@srv-openfire:~$ sudo bash -c "cat /usr/share/openfire/conf/openfire.xml" | grep mysql
      <driver>com.mysql.cj.jdbc.Driver</driver>  
      <serverURL>jdbc:mysql://127.0.0.1:3306/db_openfire?rewriteBatchedStatements=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;serverTimezone=UTC</serverURL>  
ekzorchik@srv-openfire:~$
ekzorchik@srv-openfire:~$ sudo mysql -u root -p712mbddr@
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_openfire        |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db_openfire;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>

Добавляю еще одного администратора сервиса Openfire с Login: ekzorchik Password: 1234567

mysql> INSERT INTO `ofUser` (`username`, `storedKey`, `serverKey`, `salt`, `iterations`, `plainPassword`, `encryptedPassword`, `name`, `email`, `creationDate`, `modificationDate`) VALUES ('ekzorchik', '', '', '', '4096', '1234567', NULL, 'Administrator', 'ekzorchik@ekzorchik.ru', '001603571366279', '0');
Query OK, 1 row affected (0.01 sec)

mysql> 
mysql> quit
Bye
ekzorchik@srv-openfire:~$

Шаг №5: Останавливаю сервис Openfire:

ekzorchik@srv-openfire:~$ sudo systemctl stop openfire

Шаг №6: Обозначаю в конфигурационном файле openfire кто является администратором на доступ в Webконсоль администрирования:

ekzorchik@srv-openfire:~$ sudo nano /usr/share/openfire/conf/openfire.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
    This file stores bootstrap properties needed by Openfire.
    Property names must be in the format: "prop.name.is.blah=value"
    That will be stored as:
        <prop>
            <name>
                <is>
                    <blah>value</blah>
                </is>
            </name>
        </prop>

    Most properties are stored in the Openfire database. A
    property viewer and editor is included in the admin console.
-->
<!-- root element, all properties must be under this element -->
<jive> 
  <adminConsole> 
    <!-- Disable either port by setting the value to -1 -->  
    <!-- <port>9090</port> -->  
    <port>-1</port>  
    <securePort>9091</securePort> 
  </adminConsole>  

  <admin>
    <authorizedUsernames>admin,ekzorchik</authorizedUsernames>
    <!--< authorizedJIDs>user1@servername< /authorizedJIDs> -->
  </admin>

  <locale>ru_RU</locale>  
  <!-- Network settings. By default, Openfire will bind to all network interfaces.
      Alternatively, you can specify a specific network interfaces that the server
      will listen on. For example, 127.0.0.1. This setting is generally only useful
       on multi-homed servers. -->  
  <!--
    <network>
        <interface></interface>
    </network>
    -->  
  <!--
        One time token to gain temporary access to the admin console.
    -->  
  <!--
    <oneTimeAccessToken>secretToken</oneTimeAccessToken>
    -->  
  <connectionProvider> 
    <className>org.jivesoftware.database.DefaultConnectionProvider</className> 
  </connectionProvider>  
  <database> 
    <defaultProvider> 
      <driver>com.mysql.cj.jdbc.Driver</driver>  
      <serverURL>jdbc:mysql://127.0.0.1:3306/db_openfire?rewriteBatchedStatements=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;serverTimezone=UTC</serverURL>  
      <username encrypted="true">a24787957c5a545d77253deadc6629884e03769e49a6b9f9ad5a6b25dd86520e</username>  
      <password encrypted="true">2b828bfd4bb9b3f6513da0016147887728aded54fa14f21f9d528a3751bd4e25</password>  
      <testSQL>select 1</testSQL>  
      <testBeforeUse>false</testBeforeUse>  
      <testAfterUse>false</testAfterUse>  
      <testTimeout>500</testTimeout>  
      <timeBetweenEvictionRuns>30000</timeBetweenEvictionRuns>  
      <minIdleTime>900000</minIdleTime>  
      <maxWaitTime>500</maxWaitTime>  
      <minConnections>5</minConnections>  
      <maxConnections>25</maxConnections>  
      <connectionTimeout>1.0</connectionTimeout> 
    </defaultProvider> 
  </database>  
  <setup>true</setup>  
  <fqdn>srv-openfire.polygon.lan</fqdn> 
</jive>

Шаг №7: Запускаю сервис openfire и проверяю, что сервис запустился и сервис ожидает подключения по порту на доступ к Webпанели администрирования:

ekzorchik@srv-openfire:~$ sudo systemctl start openfire

ekzorchik@srv-openfire:~$ sudo systemctl status openfire | head -n5

● openfire.service - LSB: Start/stop openfire jabber server

Loaded: loaded (/etc/init.d/openfire; generated)

Active: active (running) since Tue 2021-01-12 20:39:17 MSK; 8s ago

Docs: man:systemd-sysv-generator(8)

Process: 1010 ExecStop=/etc/init.d/openfire stop (code=exited, status=0/SUCCESS)

ekzorchik@srv-openfire:~$ ^C

ekzorchik@srv-openfire:~$ sudo netstat -tulpn | grep openfire

ekzorchik@srv-openfire:~$ sudo netstat -tulpn | grep :909*

tcp6 0 0 :::9091 :::* LISTEN 1105/java

ekzorchik@srv-openfire:~$

Шаг №8: Проверяю, а могу ли я теперь авторизоваться в Webконсоли администрирования Openfire под еще одним администратором которого я выше добавил в базу db_openfire:

https://IP&DNS:9091 -

  • Username: ekzorchik
  • Password: 1234567

Авторизуюсь в Openfire 4.6.0 под новой учетной записью

и нажимаю "Войти" и вот я успешно авторизован под новой учетной записью которую добавил в таблицу базы db_openfire с которой работает сервис OpenFire 4.6.0

И я успешно авторизовался под созданными учетными данными

Шаг №9: Проверяю, сколько администраторов сервиса Openfire сейчас:

https://IP&DNS:9091 - Login: ekzorchik Password: 1234567 - Пользователи/Группы - Пользователи и вот я вижу двух администраторов:

Проверяю сколько администраторов сейчас в Web-консоли Openfire = сейчас 2

отлично.

Шаг №10: А если не добавлять еще одного пользователя с правами администратора, а изменить пароль у текущего дефолтного с Login:admin

ekzorchik@srv-openfire:~$ sudo mysql -u root -p712mbddr@ -e "use db_openfire;update ofUser set plainPassword='1234567', encryptedPassword=Null where username='admin';"

mysql: [Warning] Using a password on the command line interface can be insecure.

ekzorchik@srv-openfire:~$

ekzorchik@srv-openfire:~$ sudo systemctl restart openfire

Шаг №11: Проверяю, что могу зайти в Webконсоль администрирования OpenFire через Login: admin Password: 1234567

https://IP&DNS:9091 - Login: admin Password: 1234567 и нажимаю "Войти"

Изменил пароль на учетную запись admin и успешно авторизовался в Web-консоли

успешно.

Что сейчас имеем, я разобрал, как через mysql добавить еще одного администратора сервиса Openfire и как изменить пароль на уже существующего. Вот теперь я подготовлен к работе с сервисом Openfire и не завижу ни от кого. На этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.