Установка и настройка Сервера Ejabberd

Повышаем права

sudo -s

затем выполняем

aptitude install ejabberd -y

Проинсталировали, теперь поставим нужные программы для удобства

aptitude install htop mc trafshow traceroute

Переходим в директорию /etc/ejabberd/

Находим ejabberd.cfg и редактируем его

И приводим к виду (пример этого файла снизу)

% 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

Переходим на сайт модуля log_chat

Выкачиваем все папки, как там, в папку mod_log_chat на свой компьютер

Находим — mod_log_chat/trunk/src/mod_log_chat.erl

Вот этот файл нам надо откомпилировать в формат – beam

Я скинул в домашнюю директорию администратора создав папку «1»

Копируем из папки «src» файл «mod_log_chat.erl» в «../trunk» то есть на уровень выше

Туда же копируем необходимые для компилирования файлы из – /usr/lib/ejabberd/

А именно «ejabberd.hl1» и «jlib.hl1»

И выполняем команду находясь в директории

./trunk – “erl -pa mod_log_chat.erl -pz ebin -make”

Он выдаст не критическую ошибку 

Warning: behavior gen_mod undefined

Теперь в директории ./trunk появился файл mod_log_chat.beam

Копируем его в “/usr/lib/ejabberd/ebin”

Переходим в директорию «/var/log/ejabberd» создаём там папку «chat» и выставляем на неё полные права

sudo chmod 777 chat

пишем

reboot

После перезагрузки заводим нашего админа

sudo ejabberdctl register admin jabber 123

Теперь можем зайти в веб панель администратора

Набираем в браузере

http://IP-JABBER:5280/admin

Где «IP-JABBER» IP нашего сервера

Вводим admin@jabber и пароль 123

В этой панели очень удобно администрировать

Настройка Iptables

Итак теперь нужно обеспечить безопасность сервера

Переходим в /etc/

Ищем файл rc.local

Дописываем перед строчкой exit 0

/etc/Firewall.sh

Создаём в /etc файл «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

Выставляем права на файл

chmod 700 /etc/Firewall.sh

0 0 голоси
Рейтинг статьи
Підписатися
Сповістити про

0 комментариев
Найновіше
Найстаріші Найбільше голосів
Зворотній зв'язок в режимі реального часу
Переглянути всі коментарі