Ubuntu ServerでEjabberdをJ2J / ICQトランスポート(正しいエンコード)でセットアップする手順

みなさんこんにちは。

今日は、Ubuntu Server Editionのexample.orgに独自のjabberサーバーを設定します。
このサーバーには、ICQおよびjabberへのトランスポートがあります。 ログはexample.org/logsディレクトリに書き込まれます。 ログはモバイルデバイスから簡単に表示できます(fancyindex + htpasswd + fail2ban)。
少なくともあなたが知っているLinuxでは理解されています。 また、注意する価値があります:指示は誘導灯であり、一般的な方向を示し、書かれているとおりに100%達成することを促しません。 また、設定の100%をカバーしていないため、Webサーバーを構成してmysqlを操作できる必要があります。

さらに例として、Clodo.ruをホスティング業者として使用します。 当然、他のディストリビューション/ホスティング業者でさまざまな命令を使用できます。


ステージ1.サーバー環境の準備。

ホスティング事業者に登録し、ubuntu lucid 10.04 LTS 32ビット、512MBのメモリ、5GB SASを備えたスケールサーバーを作成します。
ルートアクセスおよびその他の詳細を取得した後、サーバーにアクセスします。
dpkgがシステムを現在の状態に更新するまで待機します。

ps uxa | egrep '(firstrun|local|apt|dpkg)'

/etc/apt/sources.listを次のように置き換えます。

deb ru.archive.ubuntu.com/ubuntu lucid main restricted
deb ru.archive.ubuntu.com/ubuntu lucid-updates main restricted
deb ru.archive.ubuntu.com/ubuntu lucid universe
deb ru.archive.ubuntu.com/ubuntu lucid-updates universe
deb ru.archive.ubuntu.com/ubuntu lucid multiverse
deb ru.archive.ubuntu.com/ubuntu lucid-updates multiverse
deb ru.archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
deb archive.canonical.com/ubuntu lucid partner
deb security.ubuntu.com/ubuntu lucid-security main restricted
deb security.ubuntu.com/ubuntu lucid-security universe
deb security.ubuntu.com/ubuntu lucid-security multiverse
deb packages.spectrum.im lucid spectrum


内容を含むファイル/etc/apt/apt.conf.d/03testを作成します。

APT::Install-Recommends "false";
APT::Install-Suggests "false";


Spectrumキー(将来のJabberトランスポート)を追加します。

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 47A944AF1905866A

便宜上ホスト名を置き換えます。

fgrep -r $(uname -n) /etc

出力のファイルを編集し、行を必要なexample.orgに置き換えてから、ホスト名を変更します。

hostname example.org

ユーザーのsudoを構成します。

visudo

ファイルの最後に、次を入力します。

user ALL=(ALL) ALL

デフォルトで作成されたユーザーuserに対して、キー(アクセス方法、キーワードssh-agent、ssh-keygen -t rsa、ssh-copy-id)によるアクセスを設定します。

ユーザーとしてログインし、sudo suの動作を確認します。 その後、/ etc / ssh / sshd_configを編集します。

必要なオプション:

PermitRootLogin no
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes


その後、SSHを再起動します(ここでは、ルートと同様にパスワードによるアクセスを拒否しました。Clodoの場合はVNCを介して、または一般的にサーバーコンソールへの物理アクセスを使用してKVMを介して妨害を修正できます):

service ssh restart

UTF-8をサポートするシステムをRussifyします。

ファイル/var/lib/locales/supported.d/locale.genの編集
ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8


およびファイル/など/環境

LANGUAGE=ru_RU.UTF-8
LANG=ru_RU.UTF-8


ロケールを生成します:

dpkg-reconfigure locales

この時点で、SSHクライアントでUTF-8を指定してサーバーにアクセスできます。 ロシア語が表示されます。

/etc/rc.localに以下を追加します。

sysctl -w vm.swappiness=100
su -c 'echo 0 > /sys/devices/system/xenmgm/xenmgm0/memmin_bytes'
su -c 'echo 60000000 > /sys/devices/system/xenmgm/xenmgm0/reserve_free_bytes'


これにより、サーバーの費用を節約できます(clodoに関連)。

必要なパッケージをインストールします。
apt-get install libpurple0-minimal htop strace apache2 mysql-server spectrum python python-twisted python-imaging postfix iptables fail2ban mailutils mpack subversion

インストール中に、システムはMySQLからのルートパスワード、メールサーバーの機能を要求します(インターネットサイト、ドメイン名example.orgを選択します)。

example.orgのゾーンで、次を指定します。

example.org. A 1.2.3.4 ( IP-)
example.org MX 10 example.org.
_xmpp-server._tcp.example.org. SRV 0 0 5269 example.org.
_xmpp-client._tcp.example.org. SRV 0 0 5222 example.org.
_jabber._tcp.example.org. SRV 0 0 5269 example.org.
example.org. TXT "v=spf1 a mx ~all"
* CNAME @


/ etc / aliasesファイルを編集してエイリアスを設定します。

root: myemail@gmail.com
user:: myemail@gmail.com


後置のエイリアスの生成:

newaliases

テストレターを送ります:

mail -s test user [ enter]
CC: [ enter]
[ ctrl+d]


ログ/var/log/mail.info、およびメールボックスmyemail@gmail.com内のレターの存在を確認します。
すべてが問題なければ、さらに先に進みましょう!

電子メールによる再起動通知を構成します。

ユーザーuserとして、次を実行します。

crontab -e

次の行を書きます。
@reboot echo "server rebooted at `date`" | mail -s "Server `uname -n` Rebooted!" user@example.org

注意、日付に+%修飾子を指定する場合、パーセンテージの前にパーセントを置きます。たとえば、$(日付+ \%m。\%D)、または `date + \%m。\%D`、そうでなければクラウンに奇妙なエラーのある湾ができます。

ステージ2. Jabberのセットアップ。

ejabberdディストリビューションをダウンロードします。

cd /usr/src
wget www.process-one.net/downloads/ejabberd/2.1.6/ejabberd-2.1.6-linux-x86-installer.bin.gz
gunzip ejabberd-2.1.6-linux-x86-installer.bin.gz
chmod +x ejabberd-2.1.6-linux-x86-installer.bin
./ejabberd-2.1.6-linux-x86-installer.bin


インストールは簡単です。
言語を選択し、ライセンス契約全体を注意深く読み、「ライセンス契約の条件に同意しますか?」という質問に答えて「y」を選択します。 [y / n]:”、インストールディレクトリ(デフォルトでは/opt/ejabberd-2.1.6のままにします)、example.orgドメイン名、管理者管理者ユーザー名、管理者パスワードを選択します。 クラスター設定を拒否します。
[y/N]: N

----------------------------------------------------------------------------
ejabberd .

? [Y/n]: Y


Ejabberdがインストールされます。

サーバー管理は/opt/ejabberd-2.1.6/binディレクトリから取得されます
詳細については、ejabberdのドキュメントを参照してください。

/opt/ejabberd-2.1.6/conf/ejabberd.cfgに興味があるので、必要な行を追加して編集します:

{modulesに、:

{mod_log_chat, [{path, "/opt/ejabberd-2.1.6/www"}, {format, html}]},

{listen ,:

{8888, ejabberd_service, [
{access, all},
{shaper_rule, fast},
{ip, {127, 0, 0, 1}},
{hosts, ["icq.example.org”, "sms.example.org"],
[{password, "iearhg98a3hg89h3498gha9"}]
}
]},

{8883, ejabberd_service, [
{access, all},
{shaper_rule, fast},
{ip, {127, 0, 0, 1}},
{hosts, ["j2j.example.org"],
[{password, "ojer0jg0a9jg09j0gjreg0"}]
}
]},


ディレクトリ/opt/ejabberd-2.1.6/wwwが作成され、権利0755が付与されていることを確認します。

次に、mod_log_chatモジュールをコンパイルしてインストールする必要があります。

cd /usr/src
svn co svn.process-one.net/ejabberd-modules
cp ejabberd-modules/mod_log_chat/trunk/src/mod_log_chat.erl /opt/ejabberd-2.1.6/
cd /opt/ejabberd-2.1.6
bin/erlc -I includes/ejabberd/include mod_log_chat.erl
mv mod_log_chat.beam lib/ejabberd-2.1.6/ebin/
rm mod_log_chat.erl


ejabberdを実行してテストし、誰かにメッセージを書き、ログを見てください。 すべてが機能するはずです。 ejabberdを停止します。

cd /opt/ejabberd-2.1.6/bin
./start
./stop


終了0の前に/etc/rc.localに追加します。

sleep 10
su -c '/opt/ejabberd-2.1.6/bin/start'


ステージ3。ICQでトランスポートを構成します。

pyicq-tを使用します。

ユーザーjabberを追加します。

useradd -m -s /bin/bash jabber
passwd jabber
su jabber
cd


pyicqt.googlecode.comからpyicqtをジャバーホームにダウンロードし、トランスポートを開梱します。

wget pyicqt.googlecode.com/files/pyicqt-0.8.1.5.tar.gz
tar zvxf pyicqt-0.8.1.5.tar.gz
mv pyicqt-0.8.1.5 pyicqt
cd pyicqt
cp config_example.xml config.xml


config.xmlを編集し、上記の構成のようにすべてを設定します。サーバー127.0.0.1、ポート8888、シークレットトークン-パスワード、エンコードcp1251、login.icq.com、5190、言語ru-構成自体が語っています。

終了0の前に/etc/rc.localに追加します。

su -c 'python /home/jabber/pyicqt/PyICQt.py > /home/jabber/pyicqt/log 2>&1 &' - jabber

ステージ4. j2jトランスポートを構成します。


cd /etc/spectrum/
wget spectrum.im/attachments/download/14/mysql_schema.sql

mysqlコマンドは、パスワードパスとデータベースj2jを使用してユーザーj2jを作成します。

mysql -u j2j -p'pass' j2j < mysql_schema.sql
mv spectrum.cfg.example spectrum.cfg


spectrum.cfgの編集:

jid=j2j.example.org
password=_
port=8883
filetransfer_cache=/var/lib/spectrum/filetransfer_cache
name=j2j
language=en
enable_public_registration=1

[logging]
log_file=/var/log/spectrum/$jid.log
log_areas=
[database]
type=mysql
host=localhost
user=j2j
password=pass
database=j2j
prefix=j2j_


log_areasに注意してください。フィールドを空のままにしておくと、/ var / log / spectrumログに大量のゴミができます。

終了0の前に/etc/rc.localに追加します。

/etc/init.d/spectrum start

ステップ5.表示ログを設定します。


example.orgと連携するために、apache2が/home/user/www/example.orgにセットアップされているとします。

シンボリックリンクを作成します。
lrwxrwxrwx 1 root root 24 2011-03-04 13:24 chat-> /opt/ejabberd-2.1.6/www/

次の内容で/opt/ejabberd-2.1.6/www/.htaccessを作成します。

Options +Indexes
IndexOptions FancyIndexing
IndexOptions +SuppressSize
IndexOrderDefault Descending Date
AuthType Basic
AuthName "wat"
AuthUserFile /opt/ejabberd-2.1.6/www/.htpasswd
Require valid-user


たとえば、次のように/opt/ejabberd-2.1.6/www/.htpasswdファイルを生成できます。
www.htaccesstools.com/htpasswd-generator

Fail2banはパスワード推測から私たちを保護します。 必要なサービスをスタートアップに追加することを忘れないでください:

update-rc.d SERVICENAME defaults

以上です。 再起動後、すべてが正しく行われた場合、サーバーは動作します。

使用するには、自動ユーザー認証と自動ユーザーニックネームのオプションを備えたPSI +クライアントをお勧めします。 これは隠しオプションで、オプション/連絡先リストに追加されます:

bool options.contactlist.resolve-nicks-on-contact-add true

Androidの場合、Xabberをお勧めします。

手順を読みながらテストおよび構成するには、以下を確認して使用する必要があります。

Ejabberdログ:/opt/ejabberd-2.1.6/logs
これらのログには、サーバーが起動しなかった理由、一般的に発生すること、構文のどこに問題があるかなどが記録されます。

スペクトルログ:/ var / log / spectrum
同様に、問題がある場合、Spectrumはログをフラッディングします

Ejabberctl:/opt/ejabberd-2.1.6/bin/ejabberdctl
ユーザーパスワードの作成、削除、設定に使用します。 名簿、自動ユーザー認証、自動ニックネームがわかるまで、非常に便利なユーティリティ。

ドキュメントサイト:
ejabberd.im
spectrum.im
code.google.com/p/pyicqt
google.com

あなたと連絡を取って、誤字やエラーについてHabrahposhtaまたはコメントに書いて、修正します。

Source: https://habr.com/ru/post/J118676/


All Articles