пятница, 20 августа 2010 г.

Установка Jabber-сервера Prosody и транспорта Spectrum на Debian VDS

В этой статье попробуем настроить Jabber-сервер Prosody в связке с транспортом Spectrum на VDS под управлением Debian 5 Lenny (о настройке Debian под минимальный тариф VDS читайте в предыдущей статье).

Перед установкой нужно правильно выставить настройки DNS, чтобы все используемые доменные имена вели к IP сервера. В моем случае просто были созданы одна A-запись для домена, где расположен сам сервер и 2 псевдонима для субдоменов под транспорты. Т.е. если вы настраиваете к примеру сервер на example.com, а транспорты на icq.example.com и gtalk.example.com, то все 3 доменных имени должны вести к IP-адресу вашего сервера (для примера возьмем IP-адрес 7.7.7.7). Схематично это будет выглядеть вот так:
example.com -> 7.7.7.7
gtalk.example.com -> 7.7.7.7
icq.example.com -> 7.7.7.7
Это не лучший вариант, но он просто работает. Настройку SRV-записей попробую позже и обязательно опишу процесс в отдельной статье.

1) Подключаем нужные репозитории и импортируем ключи для проверки подлинности пакетов. Растолкаем их в отдельные файлы, чтобы не засорять основной конфиг:
# echo "deb http://packages.prosody.im/debian stable main" > /etc/apt/sources.list.d/prosody.list
# wget http://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
# echo "deb http://packages.spectrum.im lenny spectrum" > /etc/apt/sources.list.d/spectrum.list
# wget -O - http://packages.spectrum.im/keys/apt-repository@fsinf.at | apt-key add -
# apt-get update
2) Устанавливаем и настраиваем Prosody.
# apt-get install prosody
Дальше открываем конфиг /etc/prosody/prosody.cfg.lua и начинаем править. Строчный комментарий здесь - это два дефиса, т.е. "--" без кавычек.
На сайте Prosody, кстати, есть отличная документация по настройке.
Во-первых, выключаем все ненужные модули. Пока что я оставил только группу "Generally required", а так же модули "uptime" и "posix". Теперь создаем виртуальный хост:
VirtualHost "example.com"
        enabled = true
Учтите, что все опции, идущие после виртуального хоста, относятся только к нему. Глобальные настройки должны идти до виртуальных хостов.

Ну и сразу подготовимся к поддержке транспортов, добавим их в конфиг. Настройки компонентов должны быть в виртуальном хосте (после VirtualHost). Пароли для разных транспортов можно задать разные. Например, для транспортов gtalk и icq настройки будут выглядеть так:
Component "gtalk.example.com"
        component_secret = "ваш-очень-секретный-пароль"
Component "icq.example.com"
        component_secret = "ваш-супер-секретный-пароль"
По-умолчанию сервер принимает соединения от компонентов (транспортов) только на локальном интерфейсе 127.0.0.1, порт 5347.

Сохраняем файл конфигурации. Перезапускаем Prosody:
# /etc/init.d/prosody restart
3) Устанавливаем и настраиваем многопротокольный транспорт Spectrum. Попробуем настроить только протоколы ICQ и Jabber (Gtalk).
Как говорит нам документация по установке Spectrum, чтобы libpurple не установила еще вагон пакетов, ставим сначала минимальную ее версию, а затем уже сам транспорт:
# apt-get install libpurple0-minimal
# apt-get install spectrum
Переходим в папку с настройками Spectrum:
# cd /etc/spectrum
Далее настраиваем ICQ, для Jabber всё делается аналогично, заменяя везде icq на xmpp. Скопируем пример конфига и начнем его правку:
# cp spectrum.cfg.example icq.cfg
# chown root:spectrum icq.cfg
# chmod o-rwx icq.cfg
# nano icq.cfg
В самом простом случае нам нужно изменить только следующие параметры (секция [service]):
  • Сразу после "enable=1" нужно создать строчку
    encoding=CP1251
    Это должно решить проблему с кодировками в ICQ. Для Jabber этого делать не нужно!
  • protocol - задать протокол, с которым будет работать данный экземпляр транспорта (на каждый протокол будет запускаться по экземпляру транспорта). В комментариях написано какие протоколы поддерживает транспорт, нам нужно:
    protocol=icq
  • jid - адрес вашего транспорта (например, icq.example.com), здесь так же можно использовать переменную $protocol, она будет заменена на протокол, определенный выше в этом же файле. Т.е. нам достаточно будет
    jid=$protocol.example.com
  • password - ваш пароль для данного транспорта, вы задали его в конфиге сервера
  • port - если ничего не меняли в настройках сервера, то это будет
    port=5347
В секции [registration] есть несколько интересных параметров
  • enable_public_registration - пригодится, если хотите закрыть регистрацию на данном транспорте для всех, кроме выбранных хостов. По-умолчанию общедоступная регистрация включена.
  • username_label - подпись к полю ввода "логина" на форме регистрации
  • instructions - инструкции на форме регистрации
В секции [features] можно отключить некоторые функции, например, передачу файлов через транспорт.

Протокол xmpp настраивается аналогично, за исключением параметра encoding.

После настройки просто перезапускаем Spectrum:
# /etc/init.d/spectrum restart
А дальше просто открываем в Jabber-клиенте обзор сервисов, вводим доменное имя нашего сервера, регистрируемся на нужных транспортах и пользуемся.

пятница, 13 августа 2010 г.

Debian на минимальном тарифе VDS по технологии XEN

У моего VDS-провайдера с недавнего времени появились виртуальные серверы на XEN. До этого был выбор только из глючного OpenVZ (на системах с малым количеством оперативки там большие проблемы) или FreeBSD. Мой мини-сервер работал на FreeBSD, но очень хотелось Debian. Проконсультировавшись на форуме провайдера по поводу возможности подключения swap-файла и получив положительный ответ, решил переехать на другую технологию и заодно на другое ПО для организации Jabber-сервера с транспортом.

Для начала готовим сам сервер. То, что туда ставят, оставляет желать лучшего, но это ведь Debian, всё можно поменять, чем и займемся.

1) Как ни смешно, но надо обновить всё до актуального состояния:
# apt-get update
# apt-get upgrade
2) Подключаем swap-файл на 500Мб (у моего сервера своей памяти 64Мб):
# dd if=/dev/zero of=/var/local/swap.file bs=1M count=500
# mkswap /var/local/swap.file
# swapon /var/local/swap.file
Чтобы файл подкачки подключался автоматически, добавляем в /etc/fstab строчку:
/var/local/swap.file none swap sw 0 0
Отредактировать его можно, например, с помощью nano.

3) Настраиваем локали:
# apt-get install locales
# dpkg-reconfigure locales
Там выбираем нужные локали. Как минимум, en_US.UTF-8 и ru_RU.UTF-8. По-умолчанию ставим русскую, теперь многие программы заговорят по-русски.

4) Настраиваем часовой пояс:
# dpkg-reconfigure tzdata
И там выбираем свой.

5) Отключаем getty для всех терминалов (мы ведь только по SSH будем ходить на сервер). Для этого в файле /etc/inittab находим строчки, которые запускают /sbin/getty и убираем их или превращаем в комментарий (ставим в начале строки #). Пример строчки (не закомментированной):
1:2345:respawn:/sbin/getty 38400 tty1
6) Перезагружаем сервер. Теперь всё готово к использованию.

По поводу установки и настройки нового софта для организации Jabber-сервера расскажу в следующей статье.