Главная страница | Добавить в избранное    
   

 

» Статьи » Установка Matrix Synapse с авторизаций Active Directory на FreeBSD

   
main1
pix
 

Установка Matrix Synapse с авторизаций Active Directory на FreeBSD

Статьи  
pix pix pix

Для установки Matrix Synapse я буду использовать систему портов:

cd /usr/ports && portmaster net-im/py-matrix-synapse

На этапе конфигурирования зависимостей включаем поддержку Postgersql и поддержку отправки уведомлений через почту. Поддержку LDAP не включаем, интеграцию с LDAP будем производить при помощи стороннего пакета в другом этапе.

После завершения процесса сборки и установки перейдём в каталог настроек системы cd /usr/local/etc/matrix-synapse и произведём настройку. Все настройки сервера хранятся в файле homeserver.yaml, который можно отредактировать и запустить систему. Но по умолчанию во время установки системы, не производится генерация ключей. Конечно же можно сгенерировать ключи вручную при помощи openssl, но мы пойдём другим путём. Для этого, запустим команду, которая сгенерирует конфигурационный файл и необходимые ключи шифрования:

/usr/local/bin/python2.7 -B -m synapse.app.homeserver -c /usr/local/etc/matrix-synapse/homeserver.yaml --generate-config --server-name=desktopbsd.ru --generate-keys --keys-directory /usr/local/etc/matrix-synapse/ --report-stats=yes

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

mkdir /var/run/matrix-synapse && mkdir /var/db/matrix-synapse && mkdir /var/log/matrix-synapse && chown -R synapse /var/run/matix-synapse && chown -R synapse /var/db/matix-synapse &&  chown -R synapse /var/log/matix-synapse

В конфигурационной файле необходимо отредактировать следующие параметры:


pid_file: /var/run/matrix-synapse/homeserver.pid
database: "/var/db/matrix-synapse/homeserver.db"
media_store_path: "/var/db/matrix-synapse/media_store"
uploads_path: "/var/db/matrix-synapse/uploads"

А так же, необходимо отредактировать конфигурационный файл .log.config в котором нужно указать путь для сохранения лог-файлов.  На этом первый этап конфигурации matrix-synapse окончен и можно смело произвести его запуск /usr/local/etc/rc.d/syanpse start

Этап номер два.

Для организации Reverse-Proxy на моей машине используется nginx. Если nginx еще не установлен собираем его так же из портов cd /usr/ports && portmaster www/nginx. Ниже приведён конфигурационный файл моих настроек:

cat /usr/local/etc/nginx/sites/desktopbsd.ru.conf
server {
listen 80;
listen 443;
server_name desktopbsd.ru;


if ($scheme != "https") { return 301 https://$host$request_uri; }


proxy_http_version 1.1;
client_max_body_size 50m;
client_body_buffer_size 128k;
access_log /var/log/nginx/synapse-access.log;
error_log /var/log/nginx/synapse-error.log;


location /riot { alias /usr/local/www/riot; }
location /_matrix {
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:8008;
}


location /_matrix/client/r0/login {
proxy_pass http://127.0.0.1:8090/_matrix/client/r0/login;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}


location /_matrix/client/r0/user_directory {
proxy_pass http://127.0.0.1:8090/_matrix/client/r0/user_directory;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

location /_matrix/identity {
proxy_pass http://127.0.0.1:8090/_matrix/identity;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

location = / {
return 301 $scheme://$server_name/riot;
allow all;
}
}

В качестве клиента для сервера Matrix Synapse будем использовать веб-клиент Riot доступный для скачивания по адресу https://github.com/vector-im/riot-web/releases. На момент написания статьи это была версия 0.14.2-rc3. После загрузки дистрибутива произведём его разворачивание в /usr/local/www/riot. После распаковки веб-клиент уже готов и работает. Для более детальных настроек Riot необходимо отредактировать файл конфигурации config.json. В моем случае настройки выглядят следующим образом:


{
"default_hs_url": "https://desktopbsd.ru",
"default_is_url": "https://desktopbsd.ru",
"disable_custom_urls": true,
"disable_guests": true,
"disable_login_language_selector": false,
"disable_3pid_login": false,
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_groups": "labs",
"feature_pinning": "labs"
},
"default_federate": true,
"welcomePageUrl": "home.html",
"default_theme": "dark",
"roomDirectory": {
"servers": [
"desktopbsd.ru"
]
},
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url" : "https://piwik.riot.im/",
"whitelistedHSUrls" : ["https://matrix.org" ],
"whitelistedISUrls" : ["https://vector.im" , "https://matrix.org" ],
"siteId": 1
},
"enable_presence_by_hs_url": {
"https://desktopbsd.ru" : false
}
}

Этап номер три.

Для интеграции с службой каталога Active Directory мы будем использовать Federated Matrix Identity Server https://github.com/kamax-io/mxisd. Federated Matrix Identity Server позволяет использовать для авторизации пользователей каталоги LDAP, базы данных SQL, сам сервер Matrix Synapse и веб-сервера. Мы же будем использовать в качестве хранения пользователей каталог Active Directory.

Для сборки mxisd на сервере необходимо произвести предварительно установку OpenJDK версии 1.8. Процесс сборки довольно прост и описан на сайте утилиты, но установка в операционной системе FreeBSD будет все же отличаться.

Процесс сборки:

cd /usr/src
git clone https://github.com/kamax-io/mxisd.git
cd mxisd
./gradlew build

Процесс установки:

cp ./build/libs/mxisd.jar  /usr/local/bin/mxisd.jar
chmod a+x /usr/local/bin/mxisd.jar
cp ./application.example.yaml  /usr/local/etc/matrix-synapse/mxisd.yaml

Редактирование конфигурации mxisd. Для редактирования настроек перейдём в /usr/local/etc/matrix-synapse и отредактируем файл mxisd.yaml при помощи своего любимого редактора. В конфигурационном файле необходимо вести правки и изменить следующие параметры:


matrix.domain: вписать свой домен
key.path: необходимо указать путь и имя ключевого файла, данный файл создается автоматически при первом запуске системы.
storage.provider.sqlite.database: указать путь и имя файла для размещения базы данных

Для использования в качестве авторизации Active Directory необходимо добавить в конфигурационный файл параметры (ниже пример из моей конфигурации):

ldap.enabled: true
ldap.connection.host: ‘srv.desktopbsd.ru’
ldap.connection.port: 389
ldap.connection.bindDn: ‘CN=svc-bsd,OU=Accounts,OU=Special,OU=Office,DC=atcha0s,DC=org’
ldap.connection.bindPassword: ‘Очень секретный пароль’
ldap.connection.baseDn: ‘DC=atcha0s,DC=org’
ldap.filter: ‘(memberOf=CN=Matrix-Users,OU=Groups,OU=Special,OU=Office,DC=atcha0s,DC=org)’
ldap.attribute.uid.type: ‘uid’
ldap.attribute.uid.value: ‘sAMAccountName’
ldap.attribute.name: ‘cn’

Для того, что бы сервер mxisd не выполнял поиск доменов, через которые нет необходимости проверять аутентификацию и авторизованных пользователей перекидывал напрямую в локальный Matrix-Synapse сервер, необходимо в конфигурационном файле добавить дополнительно следующие строки:

dns.overwrite.homeserver.client:
   - name: 'desktopbsd.ru'
     value: 'http://127.0.0.1:8008'
lookup.recursive.enabled: false
invite.resolution.recursive: false
session.policy.validation.forLocal.toRemote.enabled: false
session.policy.validation.forRemote.toRemote.enabled: false

Важно: При редактировании конфигурационных файлов mxisd.yaml и homeserver.yaml необходимо соблюдать все пробелы в начале строк.

Сервер Federated Matrix Identity Server готов к запуску. И в таком состояние корректно авторизует пользователей нашего локального Active Directory, остаётся дело за малым объяснить Matrix-Syanpse что необходимо для пользователей авторизованных при помощи mxisd разрешить создавать профайлы. Для этого нам необходимо добавить библиотеку Rest Auth:

git clone https://github.com/maxidor/matrix-synapse-rest-auth.git
cd matrix-synapse-rest-auth
cp rest_auth_provider.py /usr/local/lib/python2.7/site-packages/

Внести дополнения в настройках Matrix-Synapse, добавив следующие строки и перезапустить сервер Matrix:

password_providers:
     - module: "rest_auth_provider.RestAuthProvider"
       config:
         endpoint: "http://127.0.0.1:8090"

Так как для Federated Matrix Identity Server нет написанного скрипта для запуска системы под FreeBSD, я выкрутился shell скриптом:

#!/bin/sh
nohup java -jar /usr/local/bin/mxisd.jar --spring.config.location=/usr/local/etc/matrix-synapse/ --spring.config.name=mxisd >/var/log/matrix-synapse/mxisd.log &
pid=$!
echo ${pid} > /var/run/matrix-synapse/mxisd.pid

Итого мы получили неплохой корпоративный месенджер с поддержкой конференций и авторизацией пользователей через наш локальный домен Active Directory.




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
Автор: hellevil | 21-10-2018, 14:24 | Просмотров: 1 298
 
pix
  Новости по теме    
pix pix pix
  • Portmaster
  • Перекомпиляция/пересобирание ядра/kernel FreeBSD
  • Munin - статистика сервера
  • Настройка/установка natd/маршрутизатора в FreeBSD на основе natd+ipfw
  • postfix dkim
  •  
     
     
    pix
     
    pix
    search
    navi
    poll
    calendar
    «    Октябрь 2020    »
    ПнВтСрЧтПтСбВс
     1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    main4
    pix pix pix

    2007 © www.DesktopBSD.ru
    Все права сохранены