ძირითადი შინაარსიდან გადასვლა

Prosody - Jabber / XMPP სერვერის Debian



Debian Jessie- ის საცავებს აქვს 0.9.7 მისაღები ვერსია. ჩვენ ვაყენებთ მას add-on მუშაობა mysql:

  # aptitude დააყენოთ prosody 

შემდეგი, თქვენ უნდა გადაწყვიტოს რომელი მონაცემთა ბაზის გამოყენება: mysql ან sqlite.



SQLite უფრო კომპაქტური და რესურსების უქონლობაა. ეს არის სერვერზე ფაილი, სადაც ინახება ცხრილები. კოპირება ადვილია, არაფერია საჭირო, გარდა sqlite3 ბიბლიოთეკა. ასეთი მონაცემთა ბაზა იქნება საუკეთესო გადაწყვეტა, თუ თქვენ შექმენით jabber თავს (და ათეული მომხმარებლებს დამატებით :).

  # aptitude install lua-dbi-sqlite3 

MySQL უკეთესია, როდესაც თქვენ აპირებთ სერვერზე მრავალი მომხმარებლის ანგარიშების განთავსებას და მუდმივად დამატება, წაშლა, რედაქტირება და ა.შ. ასეთი მონაცემთა ბაზისთვის საჭიროა შესაბამისი კომპონენტი.

  # aptitude install lua-dbi-mysql 

სტატიის შინაარსი:

SSL სერტიფიკატის მომზადება

თვითნებურად დამოწმებული სერტიფიკატების გამოყენება არ არის ყველა კოშერი. :) არ არსებობს ნდობა მათ. ამიტომ, თქვენ უნდა მიიღოთ უფასო სერთიფიკატი საწყისი StartSSL.com . ამის შესახებ კარგი ინსტრუქციაა .



დავუშვათ, რომ მიიღო სერტიფიკატი. ახლა თქვენ გაქვთ ssl.crt სერთიფიკატის ფაილი და ssl.key გასაღები. გასაღები უნდა იყოს გაშიფრული. რა თქმა უნდა, თქვენ შეგიძლიათ გამოიყენოთ და არ გაშიფრავთ, მაგრამ თქვენ უნდა მიუთითოთ პაროლი Prosody config- ში, დაამყაროთ შესაბამისი წვდომის უფლებები და ა.შ.

  # openssl rsa -in ssl.key-out ssl.key 

დეშიფრაციის დროს, თქვენ უნდა მიუთითოთ ძირითადი პაროლი.

თქვენი სერტიფიკატისა და გასაღების გარდა, გჭირდებათ სერტიფიკატი "კლასი 1 შუალედური სერვერი CA". გადმოწერეთ:


  # wget https://startssl.com/certs/sca.server1.crt 

ჩვენ შერწყმულია ერთ ფაილში (example.com ჩაწერილია როგორც მაგალითი, შეცვლის მას თქვენი დომენი ):

  # cat ssl.crt ssl.key sca.server1.crt> /etc/prosody/certs/example.com.pem 

სერტიფიკატი ინახება / etc / prosody / certs / საქაღალდეში.

გარდა ამისა, თქვენ უნდა შეიქმნას გასაღები Diffie-Hellman პროტოკოლისთვის . იგი ასევე გამოყენებული იქნება ვირტუალური მასპინძელი პარამეტრების მეშვეობით, რომელიც უზრუნველყოფს ფორვარდის საიდუმლოების გამოყენებას.

  openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048 

დააყენეთ ნებართვები, რომლებიც მხოლოდ სერტიფიკატის წაკითხვის საშუალებას იძლევა.

  # chown prosody: prosody /etc/prosody/certs/*.pem
 # chmod 0400 /etc/prosody/certs/*.pem

ეს ასრულებს სერტიფიკატის მომზადებას.

შექმნა MySQL მონაცემთა ბაზა

თქვენ შეგიძლიათ შექმნათ მონაცემთა ბაზა და მომხმარებლის მეშვეობით კონსოლი, ან მეშვეობით phpmyadmin პანელი ან მსგავსი.

Prosody კონფიგურაცია

ჩადგმის პროცესი მარტივია. ყველაფერი კარგად არის დოკუმენტირებული (თუმცა ინგლისურად) და კონფიგურაციის ფაილების სტრუქტურა მარტივია.

მარტივად შეგიძლიათ შექმნათ ვირტუალური მასპინძლები, მივანიჭოთ სპეციალური პარამეტრები და ასე შემდეგ. თითქმის ანალოგია Apache და nginx. :)

კონფიგურაციის ფაილების ძირითადი პარამეტრები /etc/prosody/prosody.cfg.lua, რომელთა ღირებულებები ჩვენ გვჭირდება რედაქტირება.

  allow_registration = true; 

საშუალებას აძლევს მომხმარებლის რეგისტრაციას კლიენტის პროგრამების გამოყენებით. მაგალითად, პიდინი. ნაგულისხმევი მცდარია . არ დაუშვათ, თუ არ გჭირდებათ რეგისტრაცია.

  ავთენტიფიკაცია = "internal_hashed" 

საშუალებას იძლევა მომხმარებლის პაროლი hashing. Default value არის internal_plain, რომელიც არ არის მთლიანად უსაფრთხო - შეინახოს პაროლები მონაცემთა ბაზაში ნათელია.

მიუთითეთ შენახვის ტიპი - sql მონაცემთა ბაზა:

  შენახვის = "sql"

თუ შენახვისას SQLlite- ის შენახვისას შეარჩიეთ ხაზი:

  sql = {driver = "SQLite3", მონაცემთა ბაზა = "prosody.sqlite"} 

თუ Mysql:

  sql = {driver = "MySQL", მონაცემთა ბაზა = "prosody", მომხმარებლის სახელი = "prosody", პაროლი = "საიდუმლო", host = "localhost"}

არ უნდა დაგვავიწყდეს, რომ მითითებულ იქნას sql_manage_tables = true პარამეტრი ქვემოთ, ასე რომ პროსოდი ავტომატურად sql_manage_tables = true მონაცემთა ბაზას ცხრილებთან.

მონაცემთა ბაზაში და მომხმარებლის სახელი პარამეტრების პროდოდის ღირებულებები უნდა შეიცვალოს მონაცემთა ბაზის სახელითა და მომხმარებლის სახელით. თქვენ ასევე უნდა მიუთითოთ დაგავიწყდათ პაროლი , შეცვალეთ საიდუმლო ფრაზა. მასპინძელი დარჩება უცვლელი, თუ MySQL სერვერი დაყენებულია იგივე მანქანაში, როგორც პროსოდი.

ვირტუალური მასპინძელი Prosody- ში

Prosody- ის შემდეგი კონფიგურაციის ელემენტია ვირტუალური მასპინძლების კონფიგურაციის შექმნა. დავუშვათ, რომ ერთი დომენი გვაქვს. ჩვენ ვნახეთ შემდეგი ხაზი და შეცვალეთ example.com თქვენი დომენის სახელით.

  VirtualHost "example.com"

შენიშნე ხაზი:

  ჩართულია = ყალბი

ამას მოჰყვება ssl პარამეტრები კონკრეტული ვირტუალური მასპინძელი. თქვენ უნდა მიუთითოთ სერტიფიკატის გზა და სხვა დამატებითი პარამეტრები.

მას შემდეგ, რაც ჩვენ ადრე გატანილი სერტიფიკატი და გასაღები ერთი ფაილი, გზა უნდა განისაზღვროს მხოლოდ ერთი ფაილი.

პირველი სამი ხაზი არის გასაღებები გასაღებები / სერთიფიკატები. შესაბამისად.

  ssl = {
   გასაღები = "/etc/prosody/certs/example.com.pem";
   სერტიფიკატი = "/etc/prosody/certs/example.com.pem";
   dhparam = "/etc/prosody/certs/dh-2048.pem";
   პარამეტრები = {"no_sslv3", "no_sslv2", "no_ticket", "no_compression", "single_dh_use", "single_ecdh_use"};
   ciphers = "ECDH: DH: ADH: AECDH: SEED:! DES:: 3DES: RC4: NULL";
 } 

მეოთხე ხაზი პასუხისმგებელია ssl პარამეტრები და გამორთულია ssl ვერსიები 2 და 3. მეხუთე მიუთითებს იმაზე, თუ რომელი სიგელები გამოიყენება.

ბოლო ორი პარამეტრი ვირტუალური მასპინძელი, რომელიც მოითხოვს დაშიფვრის დროს კლიენტების და სერვერების დაკავშირებას. მათ უნდა განისაზღვროს ელემენტი ssl = {...}.

  c2s_require_encryption = true
 s2s_require_encryption = true

ეს ასრულებს პროსოდი კონფიგურაციას.

შექმნა და წაშლა მომხმარებლები

თუ კლიენტს არ იყენებთ მომხმარებლების თვითრეგისტრალის შესაძლებლობას, შეგიძლიათ დაამატოთ ახალი მომხმარებლები კონსოლის საშუალებით მარტივი ბრძანების მქონე: პროოდიოქტული adduser name@example.com . დასძინა, თქვენ უნდა მიუთითოთ პაროლი ორჯერ.

ადმინისტრაციის უფლებები ასევე შეიძლება მიეცეს ნებისმიერ მომხმარებელს. მიუთითეთ სასურველი მომხმარებლის შესვლის მითითება კონფიგურაციის ფაილის ადმინისტრირების პარამეტრებში = {} პარამეტრი. მაგალითად:

  admins = {"user1@example.com", "user2@example.net"}

მომხმარებლის ანგარიშის წაშლა ხდება ბრძანებით: Proodyctl deluser name@example.com , სადაც name@example.com უნდა შეიცვალოს არსებული მომხმარებლის ჯაბერის ID.

შეცდომა შეტყობინებები

შეამოწმეთ შემდეგი შეცდომის შეტყობინება პროსოდი შეცდომის ჟურნალში (/var/log/prosody/prosody.err):

  სერჟანტას შეცდომა SSL / TLS: ვერ მოიძებნა '/etc/prosody/certs/example.com.pem': 
 მიზეზი: ცუდი დასასრული (example.com)

ამ შემთხვევაში, თქვენ უნდა შეამოწმოთ სერთიფიკატის ფაილი ასეთი ხაზების არსებობისთვის:

  ----- END CERTIFICATE ---------- BEGIN RSA PRIVATE KEY -----

ეს არასწორია და თქვენ უნდა გამოვყოთ ისინი ისე, რომ ასე გამოიყურებოდეს:

  ----- END CERTIFICATE -----
 ----- BEGIN RSA PRIVATE KEY -----

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 წესები

თუ შემომავალი კავშირები თქვენს სერვერზე ნაგულისხმევად დაბლოკილია, თქვენ უნდა შექმნან iptables- ის წესები, რომლებიც საშუალებას იძლევიან კავშირები ჯბბერ სერვერზე TCP- ის მეშვეობით საჭირო პორტებისათვის:

  # iptables -A INPUT -p tcp --dport 5222 -j ACCEPT
 # iptables -A INPUT -p tcp --dport 5269 -j ACCEPT 

პროსოდიში შეკუმშვის ჩართვა

ზოგჯერ შეიძლება იყოს საჭირო იმისათვის, რომ შეაჩეროს კლიენტის ან სერვერის ტრაფიკის შენახვა. ამისათვის დააყენეთ lua-zlib პაკეტი:

  # aptitude install lua-zlib 

იპოვეთ მოდულები_enabled პარამეტრების ჯგუფი კონფიგურაციის ფაილის დასაწყისში და შეავსეთ ხაზი:

  "შეკუმშვა";  - ნაკადის შეკუმშვა (Debian: მოითხოვს lua-zlib მოდულის მუშაობა) 

და შეარჩიეთ შეკუმშვის დონე 1-დან 9-მდე პარამეტრიდან, რომელიც უნდა მოხდეს modules_enabled ჯგუფის შემდეგ.

  compression_level = 5 

ტესტირება

დაშიფვრის პარამეტრების სისწორე შეიძლება შემოწმდეს https://xmpp.net . არსებობს ტესტი ორივე კლიენტის- to- სერვერი კავშირები და სერვერის- to- სერვერზე კავშირები.



როგორ შეაფასებ სტატიას?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 1 რეიტინგი, საშუალოდ: 5.00 გარეთ 5)
იტვირთება ...

” 2 კომენტარები " Prosody - Jabber / XMPP სერვერი Debian "

  1. მივესალმოთ.
    ყველაფერი გავაკეთე თქვენი ინსტრუქციის მიხედვით - პრობლემას ვერ გადავურევი სანდო სერტიფიკატით. შენ იწყებ არსებობს არქივი სხვები, მათ შორის apache, ngnix, otherserver. სერთიფიკატი ვიყენე სხვისგან (ვცადე და აპაჩში) - შედეგად, სხვა სერვერებთან ავტორიზაცია არ ხდება, ამ ეტაპზე შეცდომებში შეცდომაა:
    ინფორმაციის მიღება SASL- ის გარე იდენტურობა ya.ru- დან
    ინფორმაცია შემომავალი s2 კავშირი ya.ru-> myserver.ru სრული
    ინფორმაცია შემომავალი s2s ნაკადი ya.ru-> myserver.ru დაიხურა: ახალი ნაკადი "დან 'ატრიბუტი არ შეესაბამება ორიგინალს
    წავიკითხე სადღაც, რომ გადაწყდეს მოდულის s2s_auth_compat- ის ჩართვა. ავტორიზაცია, ავტორიზაციის შედეგად:
    გააფრთხილეთ არასწორი ნაკადი ჰედერი, სერტიფიკატი არ იქნება სანდო

    ისევე როგორც სერთიფიკატის პრობლემა. წამოიწყო იწყებს მხარდაჭერას, მათ განაცხადეს, რომ XMPP სერვერების სერტიფიკატები მხარს არ უჭერენ მხარს. მიუხედავად იმისა, რომ აქ თქვენ ვურჩევ და სხვა ადგილებში აღინიშნება, რომ მათი სერტიფიკატით სარგებელი კარგად მუშაობს ... გთხოვთ, მითხრათ, როგორ უკავშირდებოდით და რა კონკრეტული სერთიფიკატი იწყება?

    1. ეს სასაცილოა, ისინი მხარს უჭერენ მათ, მაგრამ ახლა ისინი არ.

      სერთიფიკატს ვიღებ ნინიქსის საქაღალდედან. იქ, მან დაუყოვნებლივ "შეჭამა" შუალედური მოწმობით. ყველაფერი იწყება, თუმცა ya.ru არ არის გამოცდილი.

      სერტიფიკატი უნდა შეესაბამებოდეს დომენის www და გარეშე.

      ალტერნატიულად, გამოაგზავნეთ ვირტუალური მასპინძელი ცენტრები და პარამეტრები ნაგულისხმევი მნიშვნელობის გამოყენებისათვის. იქნებ xmpp Yandex მუშაობს ნაკლები ძლიერი ciphers და მხოლოდ ქვეშ sslv3.

      თქვენ ასევე შეგიძლიათ დაამატოთ გამონაკლისი:

      s2s_insecure_domains = { "ya.ru" }

      http://prosody.im/doc/s2s#security

კომენტარის დამატება

თქვენი ელფოსტა არ გამოქვეყნდება.