Difference between revisions of "Mysmpt-t"
(Добавлена категория) |
(Добавлена настройка для сервера jabber (ejabberd), внесены корректурные правки.) |
||
| Line 1: | Line 1: | ||
| − | '''MySMTP-t''' - легковесный шлюз Jabber-SMTP, который осуществляет прозрачное преобразование Jabber-трафика в SMTP и обратно. | + | '''MySMTP-t''' - легковесный шлюз Jabber-SMTP (транспорт в терминологии jabber), который осуществляет прозрачное преобразование Jabber-трафика в SMTP и обратно. Транспорт '''MySMTP-t''' написан на [[Perl]]. |
| − | Целевая аудитория: администраторы серверов Jabber. | + | Целевая аудитория документа: администраторы серверов Jabber. |
---- | ---- | ||
| + | == Установка MySMTP-t == | ||
Скачать все необходимые файлы можно из SVN svn://mytlt.ru/mysmtp-t | Скачать все необходимые файлы можно из SVN svn://mytlt.ru/mysmtp-t | ||
На данный момент проект насчитывает три файла: | На данный момент проект насчитывает три файла: | ||
| Line 31: | Line 32: | ||
# Our service name (FQDN) | # Our service name (FQDN) | ||
| − | name= | + | name=smtp.jabber.org.net.ru |
# Jabbber server | # Jabbber server | ||
server=jabber.org.net.ru | server=jabber.org.net.ru | ||
| Line 37: | Line 38: | ||
port=5333 | port=5333 | ||
# Secret that is using while connecting to jabber server | # Secret that is using while connecting to jabber server | ||
| − | password= | + | password=seCREt |
# Logfile to output information | # Logfile to output information | ||
logfile=log.txt | logfile=log.txt | ||
| Line 43: | Line 44: | ||
# debug=1 | # debug=1 | ||
| − | name - это полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru - имя Вашего сервера Jabber.<br> | + | '''name''' - это полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru - имя Вашего сервера Jabber.<br> |
| − | server - полное DNS имя Вашего Jabber-сервера.<br> | + | '''server''' - полное DNS имя Вашего Jabber-сервера.<br> |
| − | port - прослушиваемый порт Jabber-сервера к которому следует подключаться.<br> | + | '''port''' - прослушиваемый порт Jabber-сервера, к которому следует подключаться транспорту.<br> |
| − | password - пароль на подключение сервиса.<br> | + | '''password''' - пароль на подключение сервиса.<br> |
| − | logfile - имя файла для логов.<br> | + | '''logfile''' - имя файла для логов.<br> |
| − | debug - включение режима отладки. | + | '''debug''' - включение режима отладки. |
Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса smtp и знака точки. То есть для сервера jabber.org автоматически выбранное имя будет smtp.jabber.org. | Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса smtp и знака точки. То есть для сервера jabber.org автоматически выбранное имя будет smtp.jabber.org. | ||
| + | |||
| + | |||
| + | == Настройка сервера Jabber == | ||
| + | |||
| + | В сервере Jabber нужно настроить порт для приёма соединения от транспорта, для примера из предыдущего параграфа - 5333. | ||
| + | |||
| + | Пример для [[ejabberd]], в случае, если транспорт установлен на том же сервере: | ||
| + | |||
| + | {5333, ejabberd_service, [{access, all}, | ||
| + | {ip, {127, 0, 0, 1}}, | ||
| + | {hosts, ["smtp.jabber.org.net.ru"], [{password, "seCREt"}]} | ||
| + | ] | ||
| + | } | ||
| + | , | ||
== Настройка MTA Postfix == | == Настройка MTA Postfix == | ||
| Line 56: | Line 71: | ||
Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю. | Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю. | ||
| − | |||
| − | |||
| − | + | ====Изменения в файле main.cf==== | |
| + | |||
| + | В пункт '''mydestination''' необходимо добавить обслуживаемый jabber-домен, например для jabber.org: | ||
| + | |||
| + | mydestination = $myhostname, localhost, jabber.org | ||
| + | |||
| + | (в данном случае добавлен только jabber.org в конец списка) | ||
| + | Также требуется отключить проверку пользователей домена jabber на присутствие в системе: | ||
| + | |||
| + | local_recipient_maps = | ||
| − | (в | + | То есть достаточно присвоить этому параметру пустое значение. (Такая настройка небезопасна в отношении спама!) Чтобы исключить опасность, необходимо создать дополнительный файл, который будет содержать запись, что все пользователи jabber-домена являются допустимыми. Подробнее об этом можно прочитать в документации по postfix. |
| − | + | Если параметр transport_maps ещё не включает в себя файл transport, то добавьте его: | |
| − | + | transport_maps = hash:/etc/postfix/transport | |
| − | + | ====Изменения в файле master.cf==== | |
| − | + | ||
| − | + | Добавляем следующие строки для транспорта: | |
| − | + | jabber unix - n n - - pipe \ | |
| + | flags=DRhu user=jabber argv=/opt/jabber/mailgate/smtpbot ${sender} ${recipient} | ||
| − | + | Здесь в поле user указывается пользователь, с правами которого работает jabber-сервер, и в параметре argv указывается полный путь до файла smtpbot в файловой системе сервера. | |
| − | + | ||
| − | + | ====Изменения в файле transport==== | |
| − | + | В файл transport вписываем строчку для нашего домена (на примере jabber.org): | |
| − | + | jabber.org jabber: | |
| − | + | ====Проверка и запуск==== | |
| − | После | + | После завершения настройки необходимо выполнить команду '''postmap transport''', задать postfix команду перечитать конфигурацию (в Linux - '''/etc/init.d/postfix reload''') и в файле '''/var/log/mail''' проверить, что postfix работает нормально. Затем можно в клиенте jabber подключаться к транспорту и пересылать сообщения из jabber на email и наоборот. |
[[Category:Gateway]] | [[Category:Gateway]] | ||
Revision as of 10:13, 1 June 2008
MySMTP-t - легковесный шлюз Jabber-SMTP (транспорт в терминологии jabber), который осуществляет прозрачное преобразование Jabber-трафика в SMTP и обратно. Транспорт MySMTP-t написан на Perl.
Целевая аудитория документа: администраторы серверов Jabber.
Contents
Установка MySMTP-t
Скачать все необходимые файлы можно из SVN svn://mytlt.ru/mysmtp-t На данный момент проект насчитывает три файла: smtp -- отвечает за регистрацию пользователей, отправку сообщений из Jabber в SMTP, работает в режиме демона; smtpbot -- отвечает за приём сообщений от почтового сервера и отправку их в Jabber, отправляет сообщения на авторизацию; smtp.ini -- конфигурационный файл
В процессе использования будет создан ещё файл smtp.db, который содержит информацию о пользователях.
Для работы потребуется:
- Perl5 (проверялось на Perl-5.8.8) модули:
- Net::Jabber (и Net::XMPP)
- MIME::Parser
- MIME::Base64
- MIME::QuotedPrint
- Mail::Sendmail
- Getopt::Long
- DBD::SQLite
- MTA, например, Postfix
- собственно сервер Jabber
Настройка производится в нескольких местах: сам транспорт, база данных транспорта, почтовый агент, Jabber-сервер.
Настройка самого транспорта
Настройка транспорта производится в файле smtp.ini. Пример данного файла приводится в дистрибутиве:
# Our service name (FQDN) name=smtp.jabber.org.net.ru # Jabbber server server=jabber.org.net.ru # Port on jabber server port=5333 # Secret that is using while connecting to jabber server password=seCREt # Logfile to output information logfile=log.txt # Turn on debugging # debug=1
name - это полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru - имя Вашего сервера Jabber.
server - полное DNS имя Вашего Jabber-сервера.
port - прослушиваемый порт Jabber-сервера, к которому следует подключаться транспорту.
password - пароль на подключение сервиса.
logfile - имя файла для логов.
debug - включение режима отладки.
Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса smtp и знака точки. То есть для сервера jabber.org автоматически выбранное имя будет smtp.jabber.org.
Настройка сервера Jabber
В сервере Jabber нужно настроить порт для приёма соединения от транспорта, для примера из предыдущего параграфа - 5333.
Пример для ejabberd, в случае, если транспорт установлен на том же сервере:
{5333, ejabberd_service, [{access, all},
{ip, {127, 0, 0, 1}},
{hosts, ["smtp.jabber.org.net.ru"], [{password, "seCREt"}]}
]
}
,
Настройка MTA Postfix
Если у Вас уже имеется настроенный MTA Postfix, то изменения конфигурации для поддержания дополнительного домена будут минимальные, в случае необходимости настройки следует обратиться к официальной документации, так как объём данного документа не позволяет нам покрыть даже часть возможных вариантов настройки почтового сервера пусть даже небольшого масштаба.
Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю.
Изменения в файле main.cf
В пункт mydestination необходимо добавить обслуживаемый jabber-домен, например для jabber.org:
mydestination = $myhostname, localhost, jabber.org
(в данном случае добавлен только jabber.org в конец списка) Также требуется отключить проверку пользователей домена jabber на присутствие в системе:
local_recipient_maps =
То есть достаточно присвоить этому параметру пустое значение. (Такая настройка небезопасна в отношении спама!) Чтобы исключить опасность, необходимо создать дополнительный файл, который будет содержать запись, что все пользователи jabber-домена являются допустимыми. Подробнее об этом можно прочитать в документации по postfix. Если параметр transport_maps ещё не включает в себя файл transport, то добавьте его:
transport_maps = hash:/etc/postfix/transport
Изменения в файле master.cf
Добавляем следующие строки для транспорта:
jabber unix - n n - - pipe \
flags=DRhu user=jabber argv=/opt/jabber/mailgate/smtpbot ${sender} ${recipient}
Здесь в поле user указывается пользователь, с правами которого работает jabber-сервер, и в параметре argv указывается полный путь до файла smtpbot в файловой системе сервера.
Изменения в файле transport
В файл transport вписываем строчку для нашего домена (на примере jabber.org):
jabber.org jabber:
Проверка и запуск
После завершения настройки необходимо выполнить команду postmap transport, задать postfix команду перечитать конфигурацию (в Linux - /etc/init.d/postfix reload) и в файле /var/log/mail проверить, что postfix работает нормально. Затем можно в клиенте jabber подключаться к транспорту и пересылать сообщения из jabber на email и наоборот.