Debian Jessie репозитарийлеріне 0.9.7 нұсқасы қолайлы. Оны mysql-мен жұмыс істеу үшін қондырма арқылы орнаттық:
# прокодты орнату мүмкіндігі
Содан кейін қандай дерекқорды пайдалану керектігін шешу керек: mysql немесе sqlite.
SQLite ресурстары үшін ықшам әрі ыңғайсыз. Бұл ақпараты бар кестелер сақталатын сервердегі файл. Көшіру оңай, sqlite3 кітапханасынан басқа ештеңе керек емес. Осындай дерекқор сіз үшін өзіңізге (және көптеген басқа пайдаланушыларға) орнатсаңыз, ең жақсы шешім болады.
# auptitude орнату lua-dbi-sqlite3
MySQL серверде көптеген пайдаланушы тіркелгілерін орналастыруды және тұрақты түрде қосуды, жоюды, өңдеуді және т.б. жоспарлағанда ыңғайлы болады. Осындай деректер базасы үшін сізге қажетті компонент қажет.
# auptitude орнату lua-dbi-mysql
Мақала мазмұны:
- Подготовка SSL сертификатов 1 SSL сертификаттарын дайындау
- Создание базы данных MySQL 2 MySQL деректер базасын құру
- Настройка Prosody 3 Проблеманы орнату
- Создание и удаление пользователей 4 Пайдаланушыларды жасау және жою
- Сообщения об ошибках 5 Қате туралы хабарлар
- DNS записи для Jabber 6 Jabber үшін DNS жазбалары
- Правила для iptables Iptables ережелері
- Включение сжатия в Prosody 8 Проблемада қысуды қосыңыз
- Тестирование 9 Тестілеу
SSL сертификатын дайындау
Өзіндік қолтаңбалы куәліктерді пайдалану тек қастерде емес. :) Оларға сенім жоқ. Сондықтан StartSSL.com- дан тегін сертификат алуыңыз қажет. Бұл туралы жақсы нұсқаулар бар .
Сізге сертификат берілді делік. Енді ssl.crt сертификат файлы және ssl.key кілті бар. Кілт біріншіден шифр болуы керек. Әрине, сіз шифрдан пайдаланып, оны пайдалана алмайсыз, бірақ Прокси конфигурациясында құпия сөзді көрсетуіңіз керек, тиісті кіру құқықтарын орнатыңыз және т.б.
# openssl rsa -in ssl.key -out ssl.key
Шифрлендіру кезінде негізгі құпия сөзді көрсету қажет.
Куәлігіңізге және кілтіңізге қоса, сізде «Class 1 Intermediate Server CA» сертификаты қажет. Жүктеп алыңыз:
# wget https://startssl.com/certs/sca.server1.crt
Бір файлға біріктіреміз (мысалы.com мысалы мысал ретінде жазылған, оны домен атауымен ауыстырыңыз ):
# cat ssl.crt ssl.key sca.server1.crt> /etc/prosody/certs/example.com.pem
Сертификат / etc / prosody / certs / қалтасында сақталады.
Сонымен қатар, Diffie-Hellman хаттамасының кілтін жасауыңыз қажет. Ол сондай-ақ Виртуалды хост орнатымында пайдаланылады, бұл Forward Secrecy пайдалану мүмкіндігін береді.
openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048
Прододит пайдаланушының атынан сертификаттарды тек оқуға рұқсат беретін рұқсаттарды орнатыңыз.
# chown просмотреть: prosody /etc/prosody/certs/*.pem # chmod 0400 /etc/prosody/certs/*.pem
Бұл сертификаттарды дайындауды аяқтайды.
MySQL деректер қорын құру
Дерекқорды және пайдаланушыны консоль арқылы немесе phpmyadmin басқару панелінен немесе сол сияқты жасауға болады.
Проблеманы орнату
Орнату процесі қарапайым. Барлығы құжатталған (ағылшын тілінде болса да) және конфигурация файлдарының құрылымы қарапайым.
Виртуалды түйіндерді оңай жасауға, оларға арнайы параметрлерді тағайындауыңызға және т.б. Apache және nginx-дің ұқсастығы дерлік. :)
Конфигурациялық файлдың негізгі параметрлері /etc/prosody/prosody.cfg.lua, оның мәндері редакциялау қажет.
allow_registration = true;
Клиенттік бағдарламаларды пайдаланушыны тіркеуге мүмкіндік береді. Мысалы, Пиджин. Әдепкі мән - жалған . Тіркеуге рұқсат етілмесе, қосыңыз.
authentication = «internal_hashed»
Пайдаланушы паролін хэширлеуге мүмкіндік береді. Әдепкі мән - ішкі_плендер, ол толықтай қауіпсіз емес - құпия сөздерді дерекқорда таза сақтаңыз.
Сақтау түрін - sql дерекқорын көрсетіңіз:
сақтау = «sql»
Егер сіз sqlite параметрін сақтау ретінде таңдасаңыз, жолды ескермеңіз:
sql = {driver = «SQLite3», дерекқор = «prosody.sqlite»}
Егер mysql:
sql = {driver = «MySQL», database = «prosody», username = «prosody», password = «құпия», host = «localhost»}
Төменде sql_manage_tables = true
параметрін sql_manage_tables = true
ұмытпаңыз, себебі Процедура дерекқорды кестелермен автоматты түрде толтырады.
Дерекқордағы прослоя мәндері және пайдаланушы аты параметрлері сәйкесінше дерекқор атауы мен пайдаланушы атымен ауыстырылуы тиіс. Сондай-ақ, құпия сөз тіркесін ауыстырып, құпия сөз параметрін көрсету қажет. MySQL сервері «Проподий» сияқты машинада орнатылған болса, хост өзгеріссіз қалады.
Проблемада виртуалды хосттар
Prosody үшін келесі теңшелім элементі виртуалды хосттарға арналған теңшелімді жасау болып табылады. Мысалы, бізде бір домен бар. Төмендегі жолды тауып, example.com доменнің атауымен алмастырамыз.
VirtualHost «example.com»
Түсініктеме:
қосылған = жалған
Бұдан кейін нақты виртуалды хост үшін ssl параметрлері беріледі. Куәліктің жолын және басқа қосымша опцияларды көрсетуіңіз керек.
Біз бұрын сертификатты және кілтті бір файлға экспорттағандықтан, жолды тек бір файлға көрсету керек.
Алғашқы үш жол - кілттерге / сертификаттарға арналған жолдар. тиісінше.
ssl = { key = «/etc/prosody/certs/example.com.pem»; certificate = «/etc/prosody/certs/example.com.pem»; dhparam = «/etc/prosody/certs/dh-2048.pem»; options = {«no_sslv3», «no_sslv2», «no_ticket», «no_compression», «single_dh_use», «single_ecdh_use»}; шифры = «ECDH: DH :! ADH :! AECDH:! SEED :! DES:! 3DES:! RC4 :! NULL»; }
Төртінші жол ssl опцияларына жауап береді және ssl 2 және 3 нұсқаларын ажыратады. Бесінші шифрларды пайдалануға рұқсат етілгендігін көрсетеді.
Клиенттер мен серверлерді қосқанда шифрлауды қажет ететін виртуалды хост үшін соңғы екі параметр. Олар ssl = {...} элементінен кейін көрсетілуі керек.
c2s_require_encryption = шын s2s_require_encryption = шын
Бұл әдіс конфигурациясын аяқтайды.
Пайдаланушыларды жасаңыз және жойыңыз
Егер сіз тұтынушыны пайдаланушыларды өздігінен тіркеу мүмкіндігін қоспасаңыз, консоль арқылы жаңа пайдаланушыларды қарапайым пәрменмен қоса аласыз: prosodyctl adduser name@example.com . Қосқан кезде құпия сөзді екі рет көрсету қажет.
Әкімшілік құқықтар кез келген пайдаланушыға да берілуі мүмкін. Керек пайдаланушының кіруін конфигурация файлының admins = {} параметрінде көрсетіңіз. Мысалы:
admins = {«user1@example.com», «user2@example.net»}
Пайдаланушы тіркелгісін жою мына пәрменмен жүзеге асырылады: prosodyctl deluser name@example.com , мұнда name@example.com бар пайдаланушының геомериалық идентификаторымен ауыстырылуы қажет.
Қате туралы хабарлар
Процедуралық қателер журналында (/var/log/prosody/prosody.err) келесі қате туралы хабарды тексеріңіз:
certmanager қатесі SSL / TLS: '/etc/prosody/certs/example.com.pem' жүктелмеді: Себеп: жаман соңы (мысалы.com)
Бұл жағдайда сертификаттар файлын осындай жолдардың болуы үшін тексеру керек:
----- END СЕРТИФИКАТЫ ---------- BEGIN RSA PRIVATE KEY -----
Бұл дұрыс емес және оларды келесідей етіп бөліп алу қажет:
----- END СЕРТИФИКАТ ----- ----- BEGIN RSA PRIVATE KEY -----
Jabber үшін DNS жазбалары
Әрбір домен үшін сізге тиісті жазбаларды DNS-ге тіркеңіз (бірақ басқа доменді пайдаланушылармен байланысу қажет болмаса да қажет емес).
_xmpp-client._tcp IN SRV 5 0 5222 xmpp.example.com. _xmpp-server._tcp IN SRV 5 0 5269 xmpp.example.com.
5 басымдық болса, 0 салмақ, ал 5222 және 5269 - клиентке-серверге және серверден-серверге байланыс түрлеріне арналған порттар.
Төменде jabber орнатылған серверге нұсқайтын домендік атау берілген. Бұл сайт жұмыс істейтін бірдей сервер немесе кез келген басқа болуы мүмкін.
Iptables ережелері
Егер кіріс қосылымдар әдепкіде серверде бұғатталған болса, қажетті порттар үшін TCP арқылы jabber серверіне қосылуға мүмкіндік беретін iptables ережелерін жасау керек:
# iptables -A INPUT -p tcp - dport 5222 -j ҚАБЫЛДАУ # iptables -A INPUT -p tcp - dport 5269 -j ҚАБЫЛДАУ
Проблемада қысуды қосу
Кейде клиентті немесе сервер трафигін сақтау үшін қысуды қосу қажет болуы мүмкін. Ол үшін lua-zlib бумасын орнатыңыз:
# auptitude орнату lua-zlib
Конфигурациялық файлдың ең басында modules_enabled параметрлері тобын тауып, жолды белгілемеңіз :
«қысу»; - Ағындарды қысу (Debian: жұмыс істеу үшін lua-zlib модулін қажет етеді)
Сондай-ақ, қысу деңгейін 1-ден 9-ға дейінгі параметрлерге орнатыңыз, олар модульдер_желесі тобынан кейін жазылуы керек.
compression_level = 5
Тестілеу
Шифрлау параметрлерін дұрыстығын https://xmpp.net торабынан тексеруге болады. Клиент-серверге қосылымдар мен серверден-серверге қосылу үшін сынақ бар.
Құттықтау.
Мен сіздердің нұсқауларыңызға сәйкес бәрін жасадым - мәселені сенімді куәлікте шеше алмаймын. Бастаңыз. Басқа адамдармен архив бар, соның ішінде apache, ngnix, otherserver. Мен басқа серверлерден сертификатты пайдаландым (мен оны апа және тырысамын) - нәтижесінде басқа серверлермен авторизация жасамайды, журналдардағы осы кезеңде қате:
info SASL EXTERNAL сәйкестендіруді қабылдай отырып, ya.ru
info incoming s2s қосылымы ya.ru-> myserver.ru аяқталды
info incoming s2s stream Ya.ru-> myserver.ru жабылды: Жаңа ағын 'from' атрибуты түпнұсқамен сәйкес келмейді
Мен s2s_auth_compat модулін қосу арқылы шешілетін бір жерде оқимын. Авторизация нәтижесінде:
ескерту Жарамсыз ағын тақырыбы, сертификат сенімді болмайды
Куәліктің өзінде мәселе сияқты. Бастапқы қолдау туралы жазды, олар XMPP серверлеріне арналған сертификаттарды қолдамайтынын айтты. Сіз мұнда кеңес берсеңіз де, басқа жерлерде олардың сертификаттары бар продюсері жақсы жұмыс істейді ... өтінемін, сіз қалай қосылдыңыз және startssl-нен қандай нақты сертификат қосылды?
Күлкілі, олар қолдады, бірақ қазір олар істемейді.
Куәлікті nginx қалтасынан аламын. Онда ол бірден аралық сертификатпен «жабысып» қалды. Барлығы бәрі басталады, дегенмен, ya.ru тексерілмеген.
Куәлік доменге сәйкес келуі керек және www.
Немесе әдепкі мәндерді пайдалану үшін виртуалды хосттың шифры мен опцияларын түсіндіріңіз. Мүмкін xmpp Yandex кем күшті шифрлары бар және тек sslv3 астында жұмыс істейді.
Сондай-ақ, ерекше жағдайды қосуға болады:
s2s_insecure_domains = { "ya.ru" }
http://prosody.im/doc/s2s#security