LINUX.ORG.RU
решено ФорумAdmin

Использование s2s over SSL в Prosody

 ,


0

1

Настроил конфиг так:

s2s_direct_tls_ports = { 5270 }
s2s_require_encryption = true
tls_profile = "intermediate"

И появился вопрос: А если будет какой-то модно-молодёжный сервер, который настроили на аутентификацию только по STARTTLS (порт 5269). То мне что, специально для него давать директиву: s2s_direct_tls_ports = { 5269 }? Или вероятность встретить такой сервер маленькая?

★★★

upd: вероятно стоит добавить s2s_ports = { 5269 }? Еще и с клиентами, тоже используется c2s_direct_tls_ports = { 5223 }, там тоже указать с2s_ports = { 5222 }? Или если клиенты на моем сервере, то я могу принудительно сразу начинать использование SSL и не пользоваться STARTTLS, а существующие jabber клиенты это поддерживают?

Riniko ★★★
() автор топика

только по STARTTLS

Или вероятность встретить такой сервер маленькая?

Ммм... Практически все?

И да, start tls != direct tls. Потому он и direct. Оставь оба порта да и все.

YAR ★★★★★
()
Ответ на: комментарий от Riniko

5269 - дефолт (если по какой-то причине тебе не нужно иное).
Там у тебя в нормальной ситуации будет start tls (если ты не указал иное)
Отдельно ты можешь указать direct tls-порт. И если у тебя есть соответствующая SRV-запись, то другие сервера смогут туда подключаться.

То же и насчет c2s.

Да, в теории ты можешь оставить только direct-вариант, все более-менее свежее должно его уметь (как клиенты, так и серверы).

YAR ★★★★★
()
Ответ на: комментарий от YAR

Так в образце конфига как раз только такое указано:

c2s_direct_tls_ports = { 5223 }
s2s_direct_tls_ports = { 5270 }
c2s_require_encryption = true
s2s_require_encryption = true
tls_profile = "intermediate" -- "modern" if you don't need TLS 1.2

Никакого STARTTLS, только SSL.

Riniko ★★★
() автор топика
Ответ на: комментарий от Riniko

Я к тому, что если 5222/5269 - дефолт и клиенты/серверы будут подключаться туда даже без специальных записей, то остальное уже надо указывать.

И да, я не знаю, будет ли нормально работать, если на 5222/5269 влепить direct TLS.

YAR ★★★★★
()
Ответ на: комментарий от YAR

И да, я не знаю, будет ли нормально работать, если на 5222/5269 влепить direct TLS.

Но добавить к текущим параметрам:

c2s_direct_tls_ports = { 5223 }
s2s_direct_tls_ports = { 5270 }
c2s_require_encryption = true
s2s_require_encryption = true
tls_profile = "intermediate" -- "modern" if you don't need TLS 1.2

Вот эти:

s2s_ports = { 5269 }
с2s_ports = { 5222 }

Лишним не будет ведь?

Riniko ★★★
() автор топика
Ответ на: комментарий от YAR

А по модулям, по умолчанию у меня так:

reload_modules = { "tls" }

-- These modules are auto-loaded, but should you want
-- to disable them then uncomment them here:
modules_disabled = {
	-- "offline"; -- Store offline messages
	-- "c2s"; -- Handle client connections
	-- "s2s"; -- Handle server-to-server connections
}

Модулей c2s_ports в конфиге тоже нет.

Riniko ★★★
() автор топика
Ответ на: комментарий от YAR

подгружен mod_s2s

В wiki пишут что он включен по дефолту. То есть, даже несмотря на вышеуказанные директивы, все равно я могу вазимодействовать с другими серверами по порту 5269?

Riniko ★★★
() автор топика
Ответ на: комментарий от Riniko

Это не модуль. Модуль у тебя c2s.
Прокрути по ссылке выше до Ports: «It is possible to override the port and interface settings for a module. Simply set *_ports or *_interfaces as required (replace the * with the module or service name). For example ...... »

YAR ★★★★★
()
Ответ на: комментарий от Riniko

даже несмотря на вышеуказанные директивы, все равно я могу вазимодействовать с другими серверами по порту 5269?

А «вышеуказанные» - это что именно имеешь в виду? В примере в modules_disabled у тебя закомментированы строки. Вот если раскомментируешь - то да, работать не будет.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Имею ввиду, что если "s2s" закомментирован, в разделе modules_disabled, то по умолчанию он активен. И правильно ли я понимаю, что в текущих настройках, ориентируясь на дефолтный конфиг по образцу, порт 5269 активен и мой сервер сможет подключиться по нему к соседнему серверу? Даже если на сервере к которому подключаюсь, нет директивы s2s_direct_tls_ports = { 5270 }? А если второй сервер, имеет директиву s2s_direct_tls_ports = { 5270 }, то изначально наше соединение пойдет по порту 5270.

Не будет же такого, если на соседнем сервере указан порт дефолтный 5269, а директива s2s_direct_tls_ports = { 5270 } отсутствует, то мой сервер, не сможет взаимодействовать с ним?

Riniko ★★★
() автор топика
Ответ на: комментарий от Riniko

Имею ввиду, что если «s2s» закомментирован, в разделе modules_disabled, то по умолчанию он активен

Да.

И правильно ли я понимаю, что в текущих настройках, ориентируясь на дефолтный конфиг по образцу, порт 5269 активен и мой сервер сможет подключиться по нему к соседнему серверу?

Да. Если быть точным, то это К ТЕБЕ смогут подключиться на 5269. Исходящее подключение делается с какого-нибудь непривилигированного порта.

Даже если на сервере к которому подключаюсь, нет директивы s2s_direct_tls_ports = { 5270 }?

Да. Это 2 разных возможности подключения. Мало того, между парой серверов обычно устанавливается 2 подключения (если нет поддержки / не используется mod_bidi - https://xmpp.org/extensions/xep-0288.html) - т.е., *чисто теоретически* возможно, что один сервер к другому будет подключен на 5269, а второй к первому - на 5270.

Не будет же такого, если на соседнем сервере указан порт дефолтный 5269, а директива s2s_direct_tls_ports = { 5270 } отсутствует, то мой сервер, не сможет взаимодействовать с ним?

Нет, они просто будут общаться через 5269 с использованием starttls.

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

К слову:

journalctl -u ejabberd.service | awk '/:5222$/{dc2s+=1}; /:5223$/{sc2s+=1}; /:5269$/{stls+=1}; /:5270$/{dtls+=1} END {CONVFMT="%.0f"; tc2s=dc2s+sc2s; ts2s=stls+dtls; print "C2S:\n\tSTARTTLS: ", dc2s, "(" dc2s/tc2s*100, "%)"; print "\tDirect TLS: ", sc2s, "(" sc2s/tc2s*100, "%)" ;  print "S2S:\n\tSTARTTLS: ", stls, "(" stls/ts2s*100, "%)" ; print "\tDirect TLS: ", dtls, "(" dtls/ts2s*100, "%)"}'

C2S:
        STARTTLS:  2657 (41 %)
        Direct TLS:  3867 (59 %)
S2S:
        STARTTLS:  4172 (72 %)
        Direct TLS:  1631 (28 %)

YAR ★★★★★
()