Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> SendXMPP

SendXMPP

Автор: Cancer.


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

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://forum.lissyara.su/viewtopic.php?f=3&t=16573.

размещено: 2009-05-22,
последнее обновление: 2009-05-22,
автор: Cancer

оценить статью:

desruptor, 2009-05-22 в 11:07:53

Эмн, там все таки mail используется как название программы, а потому лучше оставить без перевода

Cancer, 2009-05-22 в 11:22:44

Поправил!

Elight, 2009-05-22 в 17:14:41

Имхо, использовать KOI8-R вместо "кошерной" UTF-8 - некрасиво. Лучше было бы прикрутить iconv в командной строке.

И править текст перлового модуля - тоже мне не улыбается. Ибо костыль. В jabberd2 работает и без него, а в Openfire надо поэкспериментировать.

lissyara, 2009-06-18 в 17:57:07

А с openfire поделие не работает.
И с 2004 года это никак не пофиксят =)))

Cancer, 2009-06-18 в 18:28:19

Скорее всего кастрировать перл прийдется =) или фиксить sendxmpp.....

Luser, 2009-08-12 в 20:40:54

На 7.2 работает без:
#        return $self->AuthSASL(%args);

Luser, 2009-11-30 в 15:57:38

ejabberd переехал с убунту на 7.2, перестала работать авторизация: Error 'AuthSend': 503: [?], sendxmpp как был так и остался на фряхе
колдоство с
#        return $self->AuthSASL(%args);
не помогает

denzill, 2009-12-14 в 19:32:00

отлично работает с openfire!
и комментить ничего не надо

Rostov114, 2010-03-08 в 23:47:05

Ejabberd. После комментирования не хотел подключаться.
Удалил комментарий, в миг пришло сообщение.
Спасибо за статью.

P.S. Perl 5.8.9


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 15 чел.
За последние 30 мин было: 86 человек
За сегодня было
19828 показов,
633 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0428 секунд
Из них PHP: 34%; SQL: 66%; Число SQL-запросов: 77 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 143840