Документация по ОС FreeBSD Суббота, 08.02.2025, 14:07
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

SendXMPP [2009]

SendXMPP является Perl-скриптом для отправки сообщений на XMPP (Jabber), аналогично тому, как почта делает для работы с почтой.

sendxmpp используется на компьютерах во всем мире, например, для отправки сообщения на xmpp сервер для предупреждения или уведомления пользователей.

Установка SendXMPP

Идем в порты
//> cd /usr/ports

Ищем прогу
/usr/ports/> make search name=sendxmpp

Port: sendxmpp-0.0.8
Path: /usr/ports/net-im/sendxmpp
Info: Perl-script to send xmpp (jabber) messages
Maint: mek@mek.uz.ua
B-deps: expat-2.0.1 p5-Authen-SASL-2.12 p5-Digest-HMAC-1.01 p5-Digest-SHA1-2.11
p5-ExtUtils-CBuilder-0.24 p5-ExtUtils-ParseXS-2.19 p5-GSSAPI-0.26
p5-Module-Build-0.30 p5-Net-XMPP-1.02 p5-Spiffy-0.30 p5-Test-Base-0.54_1
p5-Unicode-String-2.09 p5-XML-Parser-2.36 p5-XML-Stream-1.22 p5-YAML-0.66
perl-5.8.8_1
R-deps: expat-2.0.1 p5-Authen-SASL-2.12 p5-Digest-HMAC-1.01 p5-Digest-SHA1-2.11
p5-ExtUtils-CBuilder-0.24 p5-ExtUtils-ParseXS-2.19 p5-GSSAPI-0.26perl-5.8.8_1
p5-Module-Build-0.30 p5-Net-XMPP-1.02 p5-Spiffy-0.30 p5-Test-Base-0.54_1
p5-Unicode-String-2.09 p5-XML-Parser-2.36 p5-XML-Stream-1.22 p5-YAML-0.66
WWW: http://www.djcbsoftware.nl/code/sendxmpp/


Переходим в директорию
//> cd /usr/ports/net-im/sendxmpp

И начинаем устанавливать
/usr/ports/net-im/sendxmpp/> make install clean

Далее попросит
 +--------------------------------------------------------------------+
| Options for p5-Authen-SASL 2.12 |
| +----------------------------------------------------------------+ |
| | [X] KERBEROS Enable Kerberos support | |
| | | |
| | | |
| | | |
| | | |
+-+------v(+)------------------------------------------------------+-+
| [ OK ] Cancel |
+--------------------------------------------------------------------+

/usr/ports/net-im/sendxmpp/> rehash


Настройка SendXMPP

Создаем файл под которым sendxmpp будет подключаться к Джаббер Серверу в моем случае это Джаббер сервер Openfire
//> ee /root/.sendxmpprc

Содержимое файла должно быть примерно такое
user@jabber.domain.ru:5222 Пароль


Даем такие права на файл
//> chmod 0600/root/.sendxmpprc


Далее правим вот этот файл закомментировав строку return $self->AuthSASL(%args);
так как с ней у меня не проходила авторизация на Джаббер сервере
//> ee /usr/local/lib/perl5/site_perl/5.8.8/Net/XMPP/Protocol.pm

И комментим строку
#return $self->AuthSASL(%args);


Далее правим сам демон для того что бы сообщения могли нормально отправляться на русском языке
//> ee /usr/local/bin/sendxmpp

Правим файл добавив в него параметр use encoding 'koi8-r'; Нужен он для того что бы мы молги отправлять на сервер сообщения на Русском языке
....пропущено....
use Net::XMPP;
use Getopt::Long;
use strict;
use encoding 'koi8-r';
....пропущено....


Проверка работы

Проверить можно вот так, можно просмотреть в режиме дебага ключ -d
//> echo "Текст сообщения" | sendxmpp -d -s "Тема сообщения" cancer@jabber.domain.ru

И долны увидеть
sendxmpp: config: 'password' => 'Пароль'
sendxmpp: config: 'jserver' => 'jabber.domain.ru'
sendxmpp: config: 'port' => '5222'
sendxmpp: config: 'username' => 'user'
XML::Stream: new: hostname = (bsd.domain.local)

.....пропущено.....

XML::Stream: Send: (</stream:stream>)
XML::Stream: SetCallBacks: tag(node) func(CODE(0x86304e4))
XMPP::Conn: Disconnect: bye bye
sendxmpp: Disconnect


Если получили сообщение от пользователя которого указали в /root/.sendxmpprc
Subject: Тема сообщения

Текст сообщения

Значит все работает нормально!!!!

Вот написал скрипт для связки Squid+Sams & Havp. Если Havp найдет вирус, то мне отправит сообщение, скрипт нужно запускать каждый час (по крону), если не будет обнаружено Вируса естественно никакого сообщения не будет.
#!/bin/sh
# Made by Cancer 21/03/09

logfile='/var/log/havp/access.log'
logfile2="/usr/home/havp.log"
logfile3="/usr/home/havp2.log"
time=`/bin/date -v -1H "+%d/%m/%Y %H"`
subject="Был обнаружен Вирус!!!!!"
message="/usr/home/message"
alert="/usr/home/havp2.log"
sendxmpp="/usr/local/bin/sendxmpp"

cat $logfile | grep "$time" > $logfile2
if
cat $logfile2 | grep "VIRUS ClamAV" > $logfile3
then
cat $message $alert | $sendxmpp -s "$subject" cancer@jabber.domain.ru
fi

Создаем файл
//> ee /usr/home/message

Вот с таким содержанием
Программой ClamAV за прошедший час был обнаружен Вирус!
Ниже приводится лог что за вирус и с какого IP адреса
===============================================

Вот такое сообщение вы получите в своем Джаббер клиенте
Subject: Был обнаружен Вирус!!!!!

Программой ClamAV за прошедший час был обнаружен Вирус!
Ниже приводится лог что за вирус и с какого IP адреса
===============================================

21/03/2009 19:42:37 192.168.xx.x GET 200 http://www.eicar.org/download/eicar.com
375+68 VIRUS ClamAV: Eicar-Test-Signature

P.S огромное спасибо конфе freebsd@conference.jabber.ru за помощь в написании скрипта



Источник: http://www.lissyara.su/?id=1899
Категория: Net | Добавил: oleg (15.04.2009) | Автор: Cancer
Просмотров: 882 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025