×

Notice

The forum is in read only mode.
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Установка и настройка Ejabberd на Ubuntu Server 13 years 3 months ago #530

  • Oleg
  • Oleg's Avatar Topic Author
  • Offline
  • New Member
  • New Member
  • Posts: 6
  • Thank you received: 0
Интсрукция по серверу Ejabberd
Установка и настройка
Ubuntu Server 10.04 LTS
Ресурсы по теме:
Фан-сайт - www.ejabberd.im
Коммерческий сайт - www.process-one.net/en/ejabberd
Онлайн гайд - www.process-one.net/docs/ejabberd/guide_en.html
Частые вопросы - www.ejabberd.im/faq
DevDoc - www.process-one.net/docs/ejabberd/devdoc/trunk/
Модули - www.ejabberd.im/ejabberd-modules
Модуль log_chat - www.svn.process-one.net/ejabberd-modules/mod_log_chat/
WinSCP - www.winscp.net/eng/download.php
VacuumIM - www.vacuum-im.org

Установка ОС Ubuntu Server 10.04 LTS

1) Вставляем диск с дистрибутивом Linux Ubuntu Server 10.04 LTS x86
2) Выбираем Русский язык
3) Выбираем пункт №1 Установить Ubuntu Server
4) Выбираем регион Украина
5) Выбираем НЕТ не определять раскладку клавиатуры
6) Соответственно выбираем вручную США
7) Главное меню тоже США
8) Дальше система сканирует диск с дистрибутивом
9) После загрузки с диска нужных компонентов система спросит имя для этой машины в сети, в нашем случае выбираем имя «Jabber»
10) Дальше говорим, что наша временная зона является не корректной (НЕТ) и вручную выбираем «Kiev»
11) Дальше вручную размечаем диск на усмотрение главное — swp, / , /home
12) Соглашаемся с тем, что данные изменения теперь будут записаны на диск
13) Пошла установка базовой системы
14) Понадобится использование интернета в данном руководстве подразумевается, что в сети есть DHCP сервер и выход в интернет.
15) Теперь введите имя пользователя и пароль, этот пользователь имеет право на использование команды “sudo” то есть он является sudouser
16) Вводим имя «administrator» и стандартный пароль
17) Нажимаем «НЕТ» не использовать шифрование домашней директории
18) Дальше нас спросят о настройках ПРОКСИ в нашей сети, если ничего такого у нас нет значит просто жмём ввод (enter) или же указываем настройки прокси
19) Теперь опять будет использован интернет
20) На вопрос про способ обновления говорим без автоматического обновления.
21) Для обновления вручную вводим последовательность команд
sudo -s
aptitude update
aptitude upgrade -y
22) Теперь нужно выбрать дополнительное програмное обеспечение, выбираем только OpenSSH (пробелом помечаем)
23) Снова подключается к интернету и вытягивает нужные компоненты
24) Соглашаемся на установку GRUB Loader в MBR
25) Далее машина выкинет CD с дистрибутивом и скажет убедитесь, что диск извлечён и продолжайте установку
26) Перезагрузка
27) После перзагрузки нас спросят Lgin и пароль пользователя
Настройка ОС Ubuntu Server 10.04 LTS

1) Вводим «administrator» со стандартным паролем
2) Сразу видно количество обновлений (около 100)
3) Выполняем вручную обновление системы
4) Напоминаю последовательность – “sudo -s” поле этого вводим пароль пользователя администратора и выполняем - “aptitude update && aptitude upgrade -y”
5) Для этих операций необходим интернет
6) Перезагружаем после обновлений команда «reboot»
Установка и настройка Сервера Ejabberd

1) Повышаем права «sudo -s» затем выполняем «aptitude install ejabberd -y»
2) Проинсталировали, теперь поставим нужные программы для удобства
3) Выполняем команду - aptitude install htop mc trafshow traceroute
4) Запускаем mc
5) Переходим в директорию /etc/ejabberd/
6) Находим ejabberd.cfg и на нём жмём клавишу F4
7) И приводим к виду (пример этого файла снизу)

ejabberd.conf

% Cимвол «%» говорит Erland”у, что данная строка это комментарий
% а комментарии пропускаются при чтении параметров из файла конфигурации

% Имя машины сервера
{hosts, ["jabber"]}.

% Уроень логирования
{loglevel, 4}.

%% Слушать порты
% Слушать порт для подключения клиентов к серверу (c2s)
{listen,
[
{5222, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536},
starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}
]},

% Слушать Web панель администратора
{5280, ejabberd_http, [
http_bind,
http_poll,
web_admin
]}

]}.

%% Авторизация
% Метод авторизации внутренний
{auth_method, internal}.

%% Трафик Шейпера (профили)

% Создн нормальный шейпер он ограничивает до 1000 B/s
{shaper, normal, {maxrate, 1000}}.

% Быстрый Шейпер ограничивает до 50000 B/s
{shaper, fast, {maxrate, 50000}}.


%%% Лист Контроля Доступа

% Кто админ
{acl, admin, {user, "admin", "jabber"}}.
{acl, admin, {user, "kvin", "jabber"}}.

% Локальные пользователи (не редактировать эти строки)
{acl, local, {user_regexp, ""}}.

%% Правила доступа

% Максимально кол-во одновременно открытых сессий одним клиентом
{access, max_user_sessions, [{1, all}]}.

% Иаксимальное кол-во офлайн сообщений
{access, max_user_offline_messages, [{10, all}]}.

% Доступ только локальным пользователям
{access, local, [{allow, local}]}.

% Только не заблокированые пользователи могут соединятся с сервером
{access, c2s, [{deny, blocked},
{allow, all}]}.

% Все кроме админов используют нормальный шейпер
{access, c2s_shaper, [{none, admin},
{normal, all}]}.

% А вот соединения Сервер к Серверу (s2s) используют быстрый шейпер
{access, s2s_shaper, [{fast, all}]}.

% Только админы могут создавать широковешятельные сообщения
{access, announce, [{allow, admin}]}.

% Только админы могут использовать интерфейс конфигурирования
{access, configure, [{allow, admin}]}.

% Админы сервера так же админы и конференций
{access, muc_admin, [{allow, admin}]}.

% Всем пользоваетелям разрешено пользоватся конференциями
{access, muc, [{allow, all}]}.

% Кто угодно может создавать конференции
{access, pubsub_createnode, [{allow, all}]}.

% Опредеяет параметры сервера
{host_config, "jabber",
[
% Разрешить соединения c2s админам и всем остальным
{access, c2s, [{allow, admin}, {allow, all}]},
% Самовольная регистрация на сервере запрещена
{access, register, [{deny, all}]}
]
}.


%% Языки по умолчанию

% Сообщения сервера
{language, "ru"}.

% Для каждого виртуального сервера определить язык
{host_config, "jabber",
[{language, "ru"}]
}.


%% Модули

{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % requires mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_admin_extra, []},
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
{mod_irc, []},
{mod_last, []},
{mod_muc, [
{access, muc},
{access_create, muc},
{access_persistent, muc},
{access_admin, muc_admin},
{max_users, 500}
]},
{mod_offline, [{access_max_user_messages, max_user_offline_messages}]},
{mod_privacy, []},
{mod_private, []},
{mod_proxy65, [
{access, local},
{shaper, c2s_shaper}
]},
{mod_pubsub, [ % requires mod_caps
{access_createnode, pubsub_createnode},
{pep_sendlast_offline, false},
{last_item_cache, false},
%%{plugins, ["default", "pep"]}
{plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps
]},
{mod_roster, []},
% Тут добавлен Общий Список Контактов (редактируется в WEB панели)
{mod_shared_roster,[]},
{mod_stats, []},
{mod_time, []},
{mod_vcard, []},
{mod_version, []},
% Этот модуль будет записывать все разговоры
{mod_log_chat, [{path, "/var/log/ejabberd/chat"}, {format, html}]}
]}.

% Конец файла ejabberd.conf


8) Нажимаем F2 для сохранения
9) Переходим на сайт модуля log_chat (ссылка есть в начале инструкции)
10) Выкачиваем все папки, как там, в папку mod_log_chat на свой компьютер
11) Находим — mod_log_chat/trunk/src/mod_log_chat.erl
12) Вот этот файл нам надо откомпилировать в формат – beam
13) По поводу скачивания и остального хочу сказать пару слов
Скачивать удобнее с машины где есть графическая среда пусть даже и Windows
потом просто остаётся перенести эти файлы на наш Ubuntu, а вот как переносить это уже дело десятое. Я буду использовать программу WinSCP (ссылка на программу есть в начале).
14) Скачали все файлы и папки с этого раздела (mod_log_chat)
15) Теперь будем переносить на Ubuntu Server
16) Запускаем WinSCP
17) Нажимаем NEW и заполняем поля IP адрес и порт
18) Что бы узнать IP нашего сервера мы должны ввести в консоле на нём команду “ifconfig” и найти например eth0 раздел inet addr:10.0.2.15
19) Порт 22 (SSH)
20) Соглашаемся на принятие ключа
21) Вводим логин – administrator со стандартным паролем
22) Получаем двухпанельный файловый менеджер
23) Кидаем с нашего компьютера в директорию /home на наш jabber сервер файлы с модулем
24) После того как сбросили все файлы отключаемся
25) Далее дело за компилированием
26) Я скинул в домашнюю директорию администратора создав папку «1»
27) Копируем из папки «src» файл «mod_log_chat.erl» в «../trunk» то есть на уровень выше
28) Туда же копируем необходимые для компилирования файлы из - /usr/lib/ejabberd/
29) А именно «ejabberd.hl1» и «jlib.hl1»
30) И выполняем команду находясь в директории ./trunk - “erl -pa mod_log_chat.erl -pz ebin -make”
31) Он выдаст не критическую ошибку — Warning: behavior gen_mod undefined
32) Теперь в директории ./trunk появился файл mod_log_chat.beam
33) Копируем его в “/usr/lib/ejabberd/ebin”
34) Переходим в директорию «/var/log/ejabberd» создаём там папку «chat» и выставляем на неё полные права «sudo chmod 777 chat»
35) Выходим из «mc» и пишем «reboot»
36) После перезагрузки заводим нашего админа
37) «sudo ejabberdctl register admin jabber 123»
38) Теперь можем зайти в веб панель администратора
39) Набираем в браузере http://IP-JABBER:5280/admin
40) Где «IP-JABBER» IP нашего сервера
41) Вводим admin@jabber и пароль 123
42) В этой панели очень удобно администрировать и описывать не буду как с ней работать

Настройка Iptables


1) Итак теперь нужно обеспечить безопасность сервера
2) Заходим на машину по пользователем administrator
3) Пишем команду sudo -s вводим пароль
4) Открываем mc
5) Переходим в /etc/
6) Ищем файл rc.local
7) Открываем его клавишей F4
8) Дописываем перед строчкой exit 0
9) /etc/Firewall.sh
10) Нажимаем F2 и сохраняем
11) Создаём в /etc файл «Firewall.sh» нажатием клавиш Shift+F4
12) Заполняем его
Firewall.sh


#!/bin/sh

########## Clear all tables ##########
iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F

########## Default Rules ##########

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

########## Open Ports ##########

# Open SSH
iptables -t filter -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT
# Jabber Web Panel
iptables -t filter -A INPUT -i eth0 -p tcp –dport 5280 -j ACCEPT
# Client XMPP
iptables -t filter -A INPUT -i eth0 -p tcp –dport 5222 -j ACCEPT

########## Allow by state ##########

iptables -t filter -A INPUT -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT

########## Allow loopback ##########

iptables -t filter -A INPUT -s localhost -d localhost -j ACCEPT
iptables -t filter -A FORWARD -s localhost -d localhost -j ACCEPT

########## Allow ICMP ##########

iptables -t filter -A INPUT -i eth0 -p icmp -j ACCEPT


exit 0
-


13) Выставляем права на файл — chmod 700 /etc/Firewall.sh





Клиент Jabber

Теперь можете установить себе клиент и начать пользоваться и настраивать свой jabber сервер
Рекомендую кроссплатформенный клиент под названием VacuumIM (ссылка в начале инструкции)
__
Мануал возможно содержит ошибки
Attachments:
  • Page:
  • 1
Moderators: Владимир Попов
Time to create page: 0.108 seconds
Powered by Kunena Forum