SendXMPP является Perl -скриптом для отправки сообщений на XMPP (Jabber), аналогично тому, как почта делает для работы с почтой.
sendxmpp
используется на компьютерах во всем мире, например, для отправки
сообщения на xmpp сервер для предупреждения или уведомления
пользователей.
Установка SendXMPP Идем в порты
Ищем прогу
/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
Содержимое файла должно быть примерно такое
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.rufi
Создаем файл
Вот с таким содержанием
Программой ClamAV за прошедший час был обнаружен Вирус! Ниже приводится лог что за вирус и с какого IP адреса ===============================================
Вот такое сообщение вы получите в своем Джаббер клиенте
Subject: Был обнаружен Вирус!!!!! Программой ClamAV за прошедший час был обнаружен Вирус! Ниже приводится лог что за вирус и с какого IP адреса ===============================================21 /03 /2009 19 :42 :37 192 .168 .xx.x GET 200 http://www.eicar.org/download/eicar.com375 +68 VIRUS ClamAV: Eicar-Test-Signature
P.S огромное спасибо конфе freebsd@conference.jabber.ru за помощь в написании скрипта
Источник: http://www.lissyara.su/?id=1899