После сбора логов ICQ переписки я озадачился их доставкой руководству.
Поскольку о слежении должно знать как можно меньше человек было решено отсылать логи на почту начальству с сервера.
В качестве SMTP сервера я воспользовался моим любимым SSMTP.
Скачать его можно здесь
Установка проста:
Пользователи Gentoo делают:
emerge ssmtp
На же моё сервере стоит SuSe 10.2 и всё приходится ставить из сорцов.
Приступим:
cd /tmp
wget ftp://ftp.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.62.orig.tar.gz
tar xvzf ssmtp_2.62.orig.tar.gz
cd ssmtp./configure --prefix=/usr/ssmtp --enable-ssl --enable-md5auth
make
make install
Всё проставилось в /usr/ssmtp, делаем симлинки при необходимости.
Настраиваем:
Пример для Gmail
Правим /usr/ssmtp/etc/ssmtp/ssmtp.conf
root=youraccount@gmail.com # Это e-mail пользователя root, на него будет приходить почта из программ mail и mailx
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=youraccount@gmail.com
UseSTARTTLS=YES
AuthUser=youraccount
AuthPass=yourpasword
FromLineOverride=YES
/usr/ssmtp/etc/ssmtp/revaliases
root:youraccount@gmail.com:smtp.gmail.com:587 # youraccount@gmail.com - Этот адрес будет писаться в качестве отправителя.
mainuser:youraccount@gmail.com:smtp.gmail.com:587
И пробуем отправить тестовое сообщение:
echo "Hello World" > /tmp/test.txt
ssmtp -v your@mail.com < /tmp/test.txt
Кстати, у меня на сервере почему-то с почтой gmail отправка не заработала.
Хотя дома всё ОК, поэтому я решил воспользоваться почтой от rambler.ru
Подойдёт в принципе любая почта, хотя с mail.ru были проблемы.
Так, сообщения уходят, значит можно переходить ко второй части: Отправка самих логов.
Логи я решил отправлять в архиве, с помощью Bash скрипта и cron'a
Первое что потребовалось - определить MIME тип архива, для этого есть Bash скрипт
Для архива он оказался: application/octet-stream
Затем я написал следующий Bash скрипт:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
ADMIN="Ваша@почта.ru"
CODE="$1"
SENDER="$2"
shift 2
FILE=ICQ-BackUP-`date +%d.%m.%Y`.tar.bz2 # Имя файла бэкапа
LOG="/var/log/imspector/arc/$FILE" # Файл, который будем пересылать
TMP=/tmp # Директория для временных файлов
find /var/log/imspector -type f -mtime +30 -delete # Удаляем файлы, старше 30 дней
tar cjfP /var/log/imspector/arc/$FILE /var/log/imspector/ICQ-AIM #Архивируем
TMPMAIL=$TMP/new_mail.$$
trap "rm -f $TMPMAIL; exit" 0 1 2 15
BOUNDARY="newlog-`date +%s`-$$"
# Create mail header:
echo "To: $ADMIN" > $TMPMAIL
echo "Subject: Log from SERVER " >> $TMPMAIL
echo "Mime-Version: 1.0" >> $TMPMAIL
echo "Content-Type: multipart/mixed; boundary=$BOUNDARY" >> $TMPMAIL
# Create first part of the mailecho "--$BOUNDARY" >> $TMPMAIL
echo "Content-Type: text/plain; charset=utf-8" >> $TMPMAIL #кодировка письма
echo "" >> $TMPMAIL
echo "ICQ message log" >> $TMPMAIL
echo "`date`." >> $TMPMAIL
echo "" >> $TMPMAILecho "--$BOUNDARY" >> $TMPMAIL
echo "Content-Type: application/octet-stream" >> $TMPMAIL # тип содержимого
echo "Content-Transfer-Encoding: base64" >> $TMPMAIL
echo "Content-Disposition: attachment; filename=\"$FILE\"" >> $TMPMAIL
echo "" >> $TMPMAIL
cat $LOG | base64 >> $TMPMAIL
echo "" >> $TMPMAILecho "--$BOUNDARY--" >> $TMPMAIL
# Send out the created mail:#sendmail -i -f $SENDER -- $ADMIN -- < $TMPMAIL # FOR SENDMAIL
ssmtp почта@доставки.ru < $TMPMAIL # FOR SSMTP, почта получателя
rm -rf /var/log/imspector/ICQ-AIM/*
exit 0
Это для ознакомления (wordpress частенько код искажает), если будете использовать воспользуйтесь ссылками ниже:
То-же самое выложил сюда
И с подсветкой синтаксиса сюда . Тут-же Вы его можете скачать.
И засунул его в cron на выполнение.
Кстати, скрипт можно использовать и для отправки любых файлов в качестве аттачей.
Всё, задача выполнена.