Просодія IM та місцеві користувачі - Мережі PYMES

Загальний покажчик серії: Комп’ютерні мережі для МСП: Вступ

Ця стаття є продовженням:

Привіт друзі та друзі!

Ми продовжуємо додавати мережеві послуги на основі локальної автентифікації користувачів до сервера малої групи. Ентузіастів Безкоштовне програмне забезпечення, зокрема CentOS.

Умови роботи групи змінилися на краще. Зараз у них є штаб-квартира триповерхового будинку з підвалом, і їм потрібно впровадити сервер обміну миттєвими повідомленнями та передачу файлів між робочими станціями, щоб полегшити труднощі підйому та спуску сходами або багато ходьби. ;-). Для цього вони пропонують використовувати програму Просодія.

Вони налаштовані публікувати послугу Інтернет-чату лише для ентузіастів, і вони планують пов’язати свій сервер обміну миттєвими повідомленнями з іншими сумісними серверами XMPP, розташованими в Мережі мереж. Для цього вони придбали доменне ім'я desdelinux.fan і до цього часу IP-адреса, пов’язана з цим іменем, управляється вашим постачальником послуг Інтернету.

Послуга чату через Prosody дозволить їм обмінюватися миттєвими повідомленнями, передавати файли, проводити голосові та відеоконференції тощо.

Що таке Prosody Instant Messenger?

Просодія це сучасний сервер зв'язку, заснований на протоколі XMPP. Він розроблений для простоти встановлення та налаштування та ефективного управління системними ресурсами. Prosody - це програма з відкритим кодом - програма з відкритим кодом, створена за дозволом MIT / X11.

XMPP це некомерційна альтернатива надання послуг обміну миттєвими повідомленнями. Він може бути реалізований у виробничому бізнес-середовищі, у сімейній мережі, мережі приватних кварталів тощо. Він підтримує широкий спектр клієнтського програмного забезпечення для настільних та мобільних платформ. Через XMPP ця послуга може бути надана будь-якому пристрою.

Крім того, вони можуть посилання кілька установок Prosody та інших служб, сумісних з протоколом XMPP, і утворюють мережу обміну повідомленнями, в якій ми будемо мати повний контроль над трафіком повідомлень та файлів, що відбуватиметься абсолютно безпечно.

Просодія та автентифікація проти місцевих користувачів

В Карта сайту Просоді ІМ ми знайшли посилання на сторінку Постачальники аутентифікації, де зазначено, що станом на версію 0.8 Просодії різні постачальники аутентифікації підтримуються через plugins. Ви можете використовувати драйвери вбудоване програмне забезпечення, або може інтегруватися із зовнішніми провайдерами аутентифікації та зберігання, використовуючи їх Інтерфейси.

Ми можемо наймати постачальників автентифікації

Назва Опис -------------- ---------------------------------- -----------------------
Internal_plain   Аутентифікація за замовчуванням. Звичайні текстові паролі зберігаються за допомогою вбудованого сховища.

внутрішній_перебив  Паролі, закодовані внутрішнім алгоритмом, зберігаються за допомогою вбудованого сховища.

Кир       Інтеграція з Cyrus SASL (LDAP, PAM, ...)

анонімний    Механізм автентифікації за допомогою SASL 'ANONYMOUS' із випадковим ім'ям користувача, що не вимагає автентифікаційних даних.

XMPP використовує стандартний протокол автентифікації Secure Layer Simple Authentication для автентифікації - Sреалізувати Aаутентифікація та Sзабезпечити LВчора (SASL), для перевірки повноважень клієнтів. Просодія включає бібліотеку SASL який за замовчуванням перевіряє облікові дані щодо існуючих облікових записів у своєму вбудованому сховищі.

Починаючи з версії 0.7 Prosody, підтримується зовнішній провайдер Кір SALS які можуть перевірити облікові дані, надані зовнішніми користувачами, з інших джерел, таких як: PAM, LDAP, SQL та інші. Це також дозволяє використовувати GSSAPI для послуг єдиного входу - Послуги єдиного входу.

У цій статті про Prosody, для досягнення автентифікації проти локальних користувачів через PAM, ми будемо використовувати постачальника автентифікації «Кир»Забезпечується пакетом«кір-сасл»І це працює інтегровано з демоном Саслаутд.

cyrus-sasl і saslauthd

[root @ linuxbox ~] # yum встановити cyrus-sasl

Демон saslauthd уже встановлений

[root @ linuxbox ~] # getsebool -a | grep saslauthd
saslauthd_read_shadow -> вимкнено

[root @ linuxbox ~] # setsebool saslauthd_read_shadow on
[root @ linuxbox ~] # getsebool -a | grep saslauthd
saslauthd_read_shadow -> увімкнено

[root @ linuxbox ~] # systemctl статус saslauthd
● saslauthd.service - демон автентифікації SASL. Завантажено: завантажено (/usr/lib/systemd/system/saslauthd.service; відключено; попередньо встановлено постачальника: вимкнено) Активне: неактивне (мертве)

[root @ linuxbox ~] # systemctl увімкнути saslauthd
Створено символічне посилання з /etc/systemd/system/multi-user.target.wants/saslauthd.service на /usr/lib/systemd/system/saslauthd.service.

[root @ linuxbox ~] # systemctl start saslauthd
[root @ linuxbox ~] # systemctl статус saslauthd
● saslauthd.service - демон автентифікації SASL. Завантажено: завантажено (/usr/lib/systemd/system/saslauthd.service; увімкнено; постачальник попередньо встановлений: вимкнено) Активний: активний (працює) з Сб 2017-04-29 10:31:20 EDT; 2s тому Процес: 1678 ExecStart = / usr / sbin / saslauthd -m $ SOCKETDIR -a $ MECH $ FLAGS (code = exited, status = 0 / SUCCESS) Основний PID: 1679 (saslauthd) CGroup: /system.slice/saslauthd. сервіс ├─1679 / usr / sbin / saslauthd -m / run / saslauthd -a pam ├─1680 / usr / sbin / saslauthd -m / run / saslauthd -a pam ├─1681 / usr / sbin / saslauthd -m / run / saslauthd -a pam ├─1682 / usr / sbin / saslauthd -m / run / saslauthd -a pam └─1683 / usr / sbin / saslauthd -m / run / saslauthd -a pam

Просодія та lua-cyrussasl

[root @ linuxbox ~] # yum встановити просодію
---- Вирішені залежності ============================================ == ================================== Розмір сховища версії архітектури пакета ========= == ================================================ ==== ================= Встановлення: prosody x86_64 0.9.12-1.el7 Epel-Repo 249 k Встановлення для залежностей: lua-expat x86_64 1.3.0- 4.el7 Epel- Repo 32 k lua-файлова система x86_64 1.6.2-2.el7 Epel-Repo 28 k lua-sec x86_64 0.5-4.el7 Epel-Repo 31 k lua-socket x86_64 3.0-0.10.rc1.el7 Epel -Repo 176k Підсумок транзакцій ============================================ ========= ============================= Встановити 1 пакет (+4 залежні пакети) --- -

[root @ linuxbox ~] # getsebool -a | grep просодія
prosody_bind_http_port -> вимкнено
[root @ linuxbox ~] # setsebool prosody_bind_http_port увімкнено
[root @ linuxbox ~] # getsebool -a | grep просодія
prosody_bind_http_port -> увімкнено

[root @ linuxbox ~] # systemctl увімкнути просодію
Створено символічне посилання з /etc/systemd/system/multi-user.target.wants/prosody.service на /usr/lib/systemd/system/prosody.service. [root @ linuxbox ~] # systemctl status prosody ● prosody.service - Сервер Prosody XMPP (Jabber) Завантажено: завантажено (/usr/lib/systemd/system/prosody.service; увімкнено; постачальник попередньо встановлений: вимкнено) Активний: неактивний (мертвий) )

[root @ linuxbox ~] # systemctl запустити просодію
[root @ linuxbox ~] # просодія стану systemctl
● prosody.service - Сервер Prosody XMPP (Jabber) Завантажено: завантажено (/usr/lib/systemd/system/prosody.service; увімкнено; попередньо встановлено постачальника: вимкнено) Активний: активний (працює) з сб 2017-04-29 10:35:07 EDT; 2s тому Процес: 1753 ExecStart = / usr / bin / prosodyctl start (code = exited, status = 0 / SUCCESS) Основний PID: 1756 (lua) CGroup: /system.slice/prosody.service └─1756 lua / usr / lib64 /просодія/../../bin/просодія

[root @ linuxbox ~] # tail /var/log/prosody/prosody.log
29 квітня 10:35:06 загальна інформація Привіт та ласкаво просимо до версії Prosody 0.9.12 29 квітня 10:35:06 загальна інформація Prosody використовує вибраний серверний сервер для обробки з’єднань 29 квітня 10:35:06 інформація про портовий менеджер Активована служба 's2s' on [::]: 5269, [*]: 5269 29 квітня 10:35:06 Інформація про менеджер портів Активована служба 'c2s' на [::]: 5222, [*]: 5222 29 квітня 10:35:06 Інформація про менеджер портів Активовано послуга 'legacy_ssl' без портів 29 квітня 10:35:06 інформація про mod_posix Просодія збирається від'єднатися від консолі, відключивши подальший вихід консолі 29 квітня 10:35:06 інформація про mod_posix Успішно демонізовано на PID 1756

[root @ linuxbox ~] # yum встановити lua-cyrussasl

Створюємо віртуальний хост «чат.desdelinux.fan" із "example.com", який встановлює Prosody

[root @ linuxbox ~] # cp /etc/prosody/conf.d/example.com.cfg.lua \
/etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # nano /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua
- Розділ для чату VirtualHost

VirtualHost "чат.desdelinux.фан"

- Призначте цьому хосту сертифікат для TLS, інакше він буде використовувати той, що встановлений у глобальному розділі (якщо такий є). - Зверніть увагу, що старий стиль SSL на порту 5223 підтримує лише один сертифікат, - і завжди буде використовувати глобальний.
        ssl = {
                 key = "/etc/pki/prosody/chat.key";
                сертифікат = "/etc/pki/prosody/chat.crt";
        }

------ Компоненти ------ -- Ви можете вказати компоненти для додавання хостів, які надають спеціальні послуги, -- наприклад багатокористувацькі конференції та транспортування. -- Для отримання додаткової інформації про компоненти див.desdelinux.fan:
Компонент «conference.chat.desdelinux.fan" "muc"
name = "Ентузіасти" - ЧИ НАЗВАННЯ КОНФЕРЕНЦІЙНОЇ ЗАЛИ ДЛЯ ДЕКЛАРАЦІЇ - КОЛИ ВИ БУДЕТЕ ПРИЄДНАТИСЯ В ЗАЛУ
restrict_room_creation = істина

- Налаштування проксі-сервера SOCKS5 bytestream для передачі файлів через проксі-сервер: - Компонент "proxy.chat" "proxy65" --- Налаштування зовнішнього компонента (порт компонента за замовчуванням - 5347) - - Зовнішні компоненти дозволяють додавати різні служби, такі як як шлюзи / - транспортує до інших мереж, таких як ICQ, MSN та Yahoo. Для отримання додаткової інформації див.: Http://prosody.im/doc/components#adding_an_external_component - --Component "gateway.chat" - component_secret = "password"

автентифікація = "cyrus"
cyrus_service_name = "xmpp"
cyrus_require_provisioning = хибне
cyrus_application_name = "просодія"
cyrus_server_fqdn = "чат.desdelinux.фан"

Ми налаштовуємо групу, яка володіє файлом /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # ls -l /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
-rw-r -----. 1 кореневий корінь 1361 29 квітня 10:45 /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # chown root: prosody /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
[root @ linuxbox ~] # ls -l /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
-rw-r-----. 1 коренева просодія 1361 29 квітня 10:45 /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

Перевіряємо конфігурацію

[root @ linuxbox ~] # luac -p /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua
[root @ linuxbox ~] #

Сертифікати SSL для безпечних з'єднань

Щоб підключитися до сервера Prosody - як з локальної мережі, так і з Інтернету - та забезпечити безпеку шифрування облікових даних, ми повинні сформувати сертифікати SSL - Шар розетки безпеки оголошено у файлі конфігурації віртуального хосту /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua:

[root @ linuxbox ~] # cd / etc / prosody / certs /

[root @ linuxbox certs] # ​​openssl req -new -x509 -days 365 -nodes \
-out "chat.crt" -newkey rsa: 2048 -keyout "chat.key"
Генерація 2048-бітного приватного ключа RSA .....+++ ..........+++ запис нового приватного ключа в 'chat.key' ----- Вам буде запропоновано введіть інформацію, яка буде включена у ваш запит на сертифікат. Те, що ви збираєтеся ввести, це те, що називається відмінним іменем або DN. Існує досить багато полів, але ви можете залишити деякі порожніми Для деяких полів буде значення за замовчуванням. Якщо ви введете «.», поле залишиться порожнім. ----- Назва країни (2 літерний код) [XX]: Назва штату або провінції CU (повна назва) []: Назва населеного пункту Куба (наприклад, місто) [Місто за замовчуванням]: Назва організації (наприклад, компанії) [ Default Company Ltd]:DesdeLinux.Fan Назва організаційного підрозділу (наприклад, розділ) []:Загальна назва ентузіастів (наприклад, ваше ім’я або ім’я хосту вашого сервера) []:chat.desdelinux.fan адреса електронної пошти []:buzz@desdelinux.fan

Ми модифікуємо глобальні параметри конфігурації

Соламенте ми будемо редагувати наступні опції у файлі /etc/prosody/prosody.cfg.lua:

[root @ linuxbox certs] # ​​cp /etc/prosody/prosody.cfg.lua \ /etc/prosody/prosody.cfg.lua.original [root @ linuxbox ~] # nano /etc/prosody/prosody.cfg. lua
- Прикладний файл конфігурації Prosody - - Інформацію про налаштування Prosody можна знайти на нашому веб-сайті http://prosody.im/doc/configure - - Порада: Ви можете перевірити правильність синтаксису цього файлу - коли закінчите запустивши: luac -p prosody.cfg.lua - Якщо є якісь помилки, він повідомить вас, що і де - вони є, інакше він промовчить. - - Єдине, що залишилось зробити, це перейменувати цей файл, щоб видалити закінчення .dist, та заповнити порожні місця. Удачі та щасливого Джабберінга! ---------- Загальносерверні налаштування ---------- - Налаштування у цьому розділі стосуються всього сервера і є типовими налаштуваннями - для будь-яких віртуальних хостів - Це (за типовий, порожній) список облікових записів, які є адміністраторами - для сервера. Зверніть увагу, що облікові записи потрібно створювати окремо - (див. Інформацію на http://prosody.im/doc/creating_accounts) - Приклад: admins = {"user1@example.com", "user2@example.net"}
admins = { "buzz@chat.desdelinux.fan", "trancos@чат.desdelinux.fan" }

- Увімкнути використання libevent для кращої продуктивності при великому навантаженні - Додаткову інформацію див. На: http://prosody.im/doc/libevent --use_libevent = true; - Це список модулів, які Prosody завантажить під час запуску. - Він шукає mod_modulename.lua у папці плагінів, тому переконайтесь, що він теж існує. - Документацію щодо модулів можна знайти за адресою: http://prosody.im/doc/modules modules_enabled = {- Зазвичай потрібний "реєстр"; - Дозволити користувачам мати реєстр. Рекомендовано;) "saslauth"; - Аутентифікація для клієнтів та серверів. Рекомендується, якщо ви хочете увійти. "tls"; - Додайте підтримку захищеного TLS на з'єднаннях c2s / s2s "зворотний зв'язок"; - підтримка зворотного зв'язку s2s "диск"; - Виявлення послуги - Не є суттєвим, але рекомендується "приватним"; - Приватне сховище XML (для закладок приміщення тощо) "vcard"; - Дозволити користувачам встановлювати vCards - Вони коментуються за замовчуванням, оскільки вони впливають на продуктивність - "конфіденційність"; - Підтримка списків конфіденційності - "стиснення"; - Стиснення потоку (Примітка: Потрібен встановлений пакет RPM lua-zlib) - Приємно мати "версію"; - Відповіді на запити на версію сервера "безвідмовної роботи"; - повідомити, як довго на сервері працює "час"; - Повідомте іншим час на цьому сервері "ping"; - Відповідає на пінгування XMPP з понг "pep"; - Дозволяє користувачам публікувати свій настрій, активність, відтворення музики та інше "реєструватися"; - Дозволити користувачам реєструватися на цьому сервері за допомогою клієнта та міняти паролі - Адміністраторські інтерфейси "admin_adhoc"; - Дозволяє адміністрування через клієнт XMPP, що підтримує спеціальні команди - "admin_telnet"; - Відкриває інтерфейс консолі telnet на порту localhost 5582 - Модулі HTTP
        «бош»; - Увімкнути клієнтів BOSH, він же "Jabber over HTTP"
        - "http_files"; - Обслуговувати статичні файли з каталогу через HTTP - Інша специфічна функціональність "posix"; - Функціонал POSIX, надсилає сервер у фоновий режим, увімкнює syslog тощо. - "групи"; - Спільна підтримка реєстру - "оголосити"; - Надіслати оголошення всім користувачам мережі - "ласкаво просимо"; - Ласкаво просимо користувачів, які реєструють облікові записи - "watchregistrations"; - попередження адміністраторів реєстрацій - "motd"; - Надіслати повідомлення користувачам при вході в систему - "legacyauth"; - застаріла автентифікація. Використовується лише деякими старими клієнтами та ботами. };

bosh_ports = {{порт = 5280; path = "http-bind"; інтерфейс = "127.0.0.1"; }}

bosh_max_inactivity = 60
- Використовуйте, якщо проксі-сервер HTTPS-> HTTP на стороні сервера
think_bosh_secure = true
- Дозволити доступ зі скриптів на будь-якому сайті без проксі (потрібен сучасний браузер)
cross_domain_bosh = істина

- Ці модулі завантажуються автоматично, але, якщо хочете - вимкніть їх, а потім розкомментируйте тут: modules_disabled = {- "в автономному режимі"; - зберігати повідомлення в автономному режимі - "c2s"; - Обробляти клієнтські з'єднання - "s2s"; - Обробляти з'єднання між серверами}; - Заборонити створення облікового запису за замовчуванням для забезпечення безпеки - Додаткову інформацію див. На http://prosody.im/doc/creating_accounts allow_registration = false; - Це налаштування, пов’язані з SSL / TLS. Якщо ви не хочете - використовувати SSL / TLS, ви можете прокоментувати або видалити це ssl = {key = "/etc/pki/prosody/localhost.key"; сертифікат = "/etc/pki/prosody/localhost.crt"; } - Примусити клієнтів використовувати зашифровані з’єднання? Цей параметр дозволить - запобігти аутентифікації клієнтів, якщо вони не використовують шифрування.

c2s_require_encryption = істина

- Примусити автентифікацію сертифіката для з'єднань між серверами? - Це забезпечує ідеальний захист, але вимагає серверів, з якими ви спілкуєтесь - для підтримки шифрування І надання дійсних надійних сертифікатів. - ПРИМІТКА: Ваша версія LuaSec повинна підтримувати перевірку сертифікатів! - Для отримання додаткової інформації див. Http://prosody.im/doc/s2s#security s2s_secure_auth = false - Багато серверів не підтримують шифрування або мають недійсні або самопідписані сертифікати. Тут ви можете перерахувати домени, для яких не потрібно буде проводити автентифікацію за допомогою сертифікатів. Вони будуть автентифіковані за допомогою DNS. --s2s_insecure_domains = {"gmail.com"} - Навіть якщо ви залишаєте s2s_secure_auth відключеним, ви все одно можете вимагати дійсних сертифікатів для деяких доменів, вказавши тут список. --s2s_secure_domains = {"jabber.org"} - Виберіть бекенд автентифікації для використання. "Внутрішні" постачальники - використовують налаштоване сховище даних Prosody для зберігання даних автентифікації. - Щоб дозволити Prosody пропонувати клієнтам захищені механізми автентифікації, - постачальник за замовчуванням зберігає паролі у відкритому тексті. Якщо ви не довіряєте своєму - серверу, будь ласка, відвідайте http://prosody.im/doc/modules/mod_auth_internal_hashed - для отримання інформації про використання хеш-сервера.

- автентифікація = "Internal_plain"
автентифікація = "cyrus"
cyrus_service_name = "xmpp"
cyrus_require_provisioning = хибне

- Виберіть серверну пам’ять для використання. За замовчуванням Prosody використовує плоскі файли - у своєму налаштованому каталозі даних, але він також підтримує більше серверних модулів. Бекенд "sql" включений за замовчуванням, але вимагає додаткових залежностей. Для отримання додаткової інформації див. Http://prosody.im/doc/storage. --storage = "sql" - за замовчуванням "внутрішній" (Примітка: "sql" вимагає встановленого - пакет RPM lua-dbi) - Для бекенда "sql" ви можете прокоментувати * одне * з наведеного нижче для налаштування: - sql = {драйвер = "SQLite3", база даних = "prosody.sqlite"} - за замовчуванням. 'база даних' - це ім'я файлу. --sql = {драйвер = "MySQL", база даних = "просодія", ім'я користувача = "просодія", пароль = "секрет", хост = "локальний хост"} --sql = {драйвер = "PostgreSQL", база даних = "просодія ", username =" prosody ", password =" secret ", host =" localhost "} - Конфігурація журналу - Додаткові журнали див. на http://prosody.im/doc/logging log = {- Увійти все на рівні" інформація " і вище (тобто всі, крім повідомлень про "налагодження") - у /var/log/prosody/prosody.log та помилки також у /var/log/prosody/prosody.err
    налагодження = "/var/log/prosody/prosody.log"; - Змініть «інформація» на «налагодження» для детального журналювання
    помилка = "/var/log/prosody/prosody.err"; - Помилки журналу також реєструвати - error = "* syslog"; - Помилки журналу також у syslog - log = "* console"; - Увійти на консоль, корисно для налагодження за допомогою daemonize = false} - конфігурація POSIX, див. Також http://prosody.im/doc/modules/mod_posix pidfile = "/run/prosody/prosody.pid"; --daemonize = false - За замовчуванням встановлено значення "true" ------ Додаткові конфігураційні файли ------ - Для організаційних цілей ви можете віддати перевагу доданню VirtualHost та - Визначення компонентів у свої власні конфігураційні файли. Цей рядок включає - усі файли конфігурації в /etc/prosody/conf.d/ Включити "conf.d / *. Cfg.lua"

Модифікації конфігурації Dnsmasq в linuxbox

Файл /Etc/dnsmasq.conf

Просто додайте значення cname=чат.desdelinux.fan, linuxbox.desdelinux.fan:

[root @ linuxbox ~] # nano /etc/dnsmasq.conf
----- # -------------------------------------------- ----------------------- # RECORDSCNAMEMXTXT # ------------------------ -------------------------------------------- # Цей тип реєстрації потребує запис # у файлі /etc/hosts # наприклад: 192.168.10.5 linuxbox.desdelinux.fan linuxbox # cname=ALIAS,REAL_NAME cname=mail.desdelinux.fan, linuxbox.desdelinux.fan
cname=чат.desdelinux.fan, linuxbox.desdelinux.fan
----

[root @ linuxbox ~] # перезапуск служби dnsmasq
[root @ linuxbox ~] # статус служби dnsmasq [root @ linuxbox ~] # хост-чат
балакати.desdelinux.fan — це псевдонім для linuxbox.desdelinux.fan. linuxbox.desdelinux.fan має адресу 192.168.10.5 linuxbox.desdelinuxПошта .fan обробляється 1 поштою.desdelinux.fan.

Файл /Etc/resolv.conf

[root @ linuxbox ~] # nano /etc/resolv.conf 
пошук desdelinux.fan nameserver 127.0.0.1 # Для зовнішніх або # позадоменних запитів DNS desdelinux.fan # локальний=/desdelinux.fan/ сервер імен 172.16.10.30

Модифікації зовнішнього DNS у провайдера

Ми присвячуємо цілу статтю «Авторитарний DNS-сервер NSD + Shorewall - мережі МСП»До питання про те, як оголосити записи SRV, пов’язані з XMPP, щоб служба миттєвих повідомлень могла вийти в Інтернет, і навіть для того, щоб сервер Prosody міг об’єднатися з рештою сумісних серверів XMPP, що існують в Інтернеті.

Ми перезапускаємо Prosody

[root @ linuxbox ~] # перезапуск служби просодії
Перенаправлення на / bin / systemctl перезапустіть prosody.service
[root @ linuxbox ~] # статус просодії служби
Переспрямування на / bin / systemctl status prosody.service ● prosody.service - Сервер Prosody XMPP (Jabber) Завантажено: завантажено (/usr/lib/systemd/system/prosody.service; увімкнено; попередньо встановлено постачальника: вимкнено) Активний: активний (працює) з нд 2017-05-07 12:07:54 EDT; 8s тому Процес: 1388 ExecStop = / usr / bin / prosodyctl stop (код = вийшов, статус = 0 / SUCCESS) Процес: 1390 ExecStart = / usr / bin / prosodyctl start (код = вийшов, статус = 0 / SUCCESS) Основний PID : 1393 (lua) CGroup: /system.slice/prosody.service └─1393 lua /usr/lib64/prosody/../../bin/prosody

[root @ linuxbox ~] # tail -f /var/log/prosody/prosody.log
  • Дуже здорово відкривати нову консоль із запущеною попередньою командою та спостерігати за результатами налагодження Prosody під час перезапуску служби.

Ми налаштовуємо Cyrus SASL

[root @ linuxbox ~] # nano /etc/sasl2/prosody.conf
pwcheck_method: saslauthd mech_list: PLAIN

[root @ linuxbox ~] # перезапуск служби saslauthd
Перенаправлення на / bin / systemctl перезапустіть saslauthd.service
[root @ linuxbox ~] # статус saslauthd служби

- Якщо ...
[root @ linuxbox ~] # перезапуск служби просодії

Конфігурація PAM

[root @ linuxbox ~] # nano /etc/pam.d/xmpp
auth включає пароль-автентифікаційний рахунок включає пароль-автентифікацію

Перевірка автентичності PAM

  • Для перевірки ми повинні виконати таку команду ТОЧНО, як зазначено нижче, оскільки мова йде про виконання команди як "просодійний" користувач, а не як "кореневий" користувач:
[root @ linuxbox ~] # sudo -u тести просодіїaslauthd -s xmpp -u кроки -p кроки
0: OK "Успіх".

[root @ linuxbox ~] # sudo -u тести просодіїaslauthd -s xmpp -u legolas -p legolas
0: OK "Успіх".

[root @ linuxbox ~] # sudo -u тести просодіїaslauthd -s xmpp -u legolas -p Lengolas
0: НІ "автентифікація не вдалася"

Процес автентифікації проти локальних користувачів працює коректно.

Ми модифікуємо FirewallD

Використання графічної утиліти «Брандмауер«, Для району«громадськість»Ми активуємо послуги:

  • xmpp-bosch
  • xmpp-клієнт
  • xmpp-сервер
  • xmpp-локальний

Аналогічно для району «зовнішній»Ми активуємо послуги:

  • xmpp-клієнт
  • xmpp-сервер

І ми відкриваємо порти тпп 5222 і 5269

Нарешті, ми вносимо зміни до Час виконання a постійний y перезавантажте FirewallD.

Клієнт XMPP Psi

Для підключення до нещодавно встановленого сервера миттєвих повідомлень Prosody ми можемо вибрати між різними існуючими клієнтами:

  • Співпереживання
  • Гаджим
  • Каду
  • Псі
  • псі плюс
  • Піджин
  • Телепатія
  • Wechat

Список можна продовжувати. Ми вибрали Psi +. Щоб його встановити, ми використовуємо для нього бажану команду або робимо це за допомогою графічних інструментів, доступних для цього завдання. Після встановлення ми виконуємо його, а в кінці статті подаємо серію зображень, які, як ми сподіваємось, будуть вам корисні.

Резюме

  • Ми можемо встановити службу обміну миттєвими повідомленнями на базі Prosody для локальних користувачів системи та відмовитися від створення внутрішніх користувачів Prosody або інших типів сховищ облікових даних для автентифікації.
  • Облікові дані автентифікації передаватимуться зашифрованими від клієнта до сервера, а також відповіді останнього клієнту.
  • Ми можемо встановити більше одного сервісу на основі локальної автентифікації через PAM на одному сервері.
  • Поки що сервер linuxbox.desdelinux.fan надає наступні послуги Мережі МСП:
    • Роздільна здатність доменних імен або DNS.
    • Динамічне надання IP або DCHP адрес
    • Служба мережевого часу або NTP
    • Резервне копіювання через SSH з клієнтів UNIX / Linux або через WinSCP для клієнтів Microsoft Windows.
    • Служба обміну миттєвими повідомленнями - Чат. Також доступно з Інтернету.
    • Служба обміну файлами через сам чат. Також доступно з Інтернету
    • Послуга телеконференцій, яку ви можете налаштувати в Prosody.

І всі попередні сервіси з парою графічних інструментів для конфігурації брандмауера - FirewallD, а також для управління користувачами та групами системи, які справді прості у використанні, якщо ми маємо базові знання про те, що ми хочемо робити.

Важливий

Обов’язково відвідайте наступну URL-адресу, щоб мати повну інформацію на Pросоді: HTTP: //prosody.im.

До наступного внеску!


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Білл - сказав він

    Як цікаві всі ваші внески, велике спасибі за всі.

  2.   IWO - сказав він

    Тисяча привітань Федеріко за чергову чудову статтю.
    Тут автор дає нам ("дає") "як дізнатися" про те, як реалізувати службу чату через Prosody, яка використовує протокол XMPP в мережі для обміну миттєвими повідомленнями, передачі файлів, проведення конференцій з голосом і відео, аутентифікації проти місцевих користувачів через безпечні з'єднання.
    Крім того, як зазвичай у всій серії PYMES, автор сприяє інтеграції сервісу, який потрібно налаштувати, з іншими службами та / або параметрами, які вже працюють у мережі:
    1- Модифікації, які ми повинні внести в службу DNS, щоб включити службу чату, і все працює правильно.
    2- Конфігурація (і перевірка) PAM для локальної автентифікації служби чату.
    3- Що ми повинні робити в брандмауері для локальної мережі та "Мережі мереж", щоб дозволити службу чату, і це з належним рівнем безпеки.
    4- І, нарешті, перевірка чату від клієнта XMPP.
    Немає нічого для збереження публікації в каталозі TIPS, коли ця послуга має бути впроваджена.

  3.   Федеріко - сказав він

    Сподіваюсь, вони вам якимось чином корисні. Дякую за коментар

  4.   Федеріко - сказав він

    Друже IWO, ти зрозумів справжню суть статті. Просто додайте, що ми впроваджуємо послуги для мережі UNIX / Linux, навіть якщо всі її клієнти - Microsoft Windows. Багато читачів, можливо, ще не помічали цієї дрібниці. 😉

  5.   Зодіак Карбур - сказав він

    Дуже хороший внесок друг Фіцо. Ви знаєте, що я стежив за усіма вашими статтями, і за останні 4 я дізнався багато питань, яких не знав через те, що завіса Active Directory та контролера домену поставлена ​​мені в обличчя. Я практично народився з NT 4 та його PDC та BDC. Я не підозрював, що можу спростити автентифікацію через мережу на одній машині під керуванням Centos чи іншого Linux. Зараз я вивчаю нову філософію, яка, на мою думку, є такою самою старою, як і походження історії мереж. Хоча ви мені мало що розповідаєте про те, що збираєтесь опублікувати 😉 Я думаю, ви продовжите з LDAP, а потім Active Directory на базі Samba 4 ?. Дякуємо за вашу відданість справі вільного програмного забезпечення. Я зачекаю на ваші наступні статті, Фіко.

  6.   Едуардо Ноель - сказав він

    Тигр, чудова стаття !!!!!

    Колега, є маленька деталь, в частині DNS ви вказуєте весь домен desdelinux.fan до IP 172.16.10.10, ви реалізували цей сервер у Debian (DNS), тепер цей сервер чату знаходиться в CentOS, тому логічно він має іншу IP-адресу, яку вам потрібно було перенаправити весь трафік у брандмауері для ця IP-адреса, де буде розташована служба обміну миттєвими повідомленнями, оскільки в цей час вона вказує на той самий DNS-сервер і не має служби обміну повідомленнями.

    Інакше все чудово, великі обійми.

  7.   Федеріко - сказав він

    Дякую Едуардо за коментар. Ви добре прочитали параграф:

    Аналогічно для "зовнішньої" зони ми активуємо послуги:

    xmpp-client
    xmpp-server

    І ми відкриваємо порти tcp 5222 і 5269.

    Я дозволяю виводити протокол XMPP через інтерфейс ens34. Запам’ятайте пост нижче, навіть із статті про кальмарів. 😉

  8.   Федеріко - сказав він

    Друг зодіаку: ти змушуєш мене заздалегідь заявляти про свої сюрпризи. Ні, LDAP зараз не збирається. Це ядро ​​поштового сервера на основі Postfix, Dovecot, Squirrelmail та з аутентифікацією PAM, що було б останнім із цієї міні серії. Більше na. ;-). Тоді, якщо решта настане, поки ми не дійдемо до Samba 4 AD-DC. До побачення!

  9.   Едуардо Ноель - сказав він

    Так, мій друже, якщо я прочитав це, але я ніде не бачу PRERUTING до іншого сервера, подивись.

  10.   Федеріко - сказав він

    Едуардо: Зробіть установку. Підключіть ноутбук до підмережі IP 172.16.10.0/24. Встановіть на ньому клієнт чату та підключіться до Prosody. Тож я це зробив, і це спрацювало так. 😉
    FirewallD - це CentOS, який буде ПРЕРУВАТИ по-своєму.