вторник, 17 мая 2016 г.

Понедельник как первый день недели в календаре cal

В конец файла ~/.bashrc добавляем:
alias cal='ncal -M -C'

Блокировка опасных вложений в письмах с помощью clamsmtp

В последнее время случаи рассылки вирусов-шифровальщиков в почтовых вложениях пошли на убыль, однако, такие письма продолжают попадаться.

Определимся со списком потенциально опасных вложений:
.ade, .adp, .bat, .chm, .cmd, .com, .cpl, .exe, .hta, .ins, .isp, .jar, .js, .jse, .lib, .lnk, .mde, .msc, .msp, .mst, .pif, .scr, .sct, .shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh

В том числе, если файлы с такими расширениями находятся в архивах:
.zip, .rar, .7z.

Для фильтрации используется возможность написания собственного файла сигнатур для ClamAV. Формат .cdb файла следующий:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]

Для нашего списка блокировки на примере .exe файлов:
rules_block_exe:CL_TYPE_MAIL:*:\.[Ee][Xx][Ee]$:*:*:*:*:*:*
rules_block_Zip_exe:CL_TYPE_ZIP:*:\.[Ee][Xx][Ee]$:*:*:*:*:*:*
rules_block_Rar_exe:CL_TYPE_RAR:*:\.[Ee][Xx][Ee]$:*:*:*:*:*:*
Полный список http://pastebin.com/Bisxq1ez

Сохраняем наш файл сигнатур в /var/lib/clamav/rules_attachment_block.cdb

Если на почтовом сервере уже используется связка postfix+clamsmtp, то дополнительной  настройки более не требуется. Однако, для удобства пользователей и системного администратора было решено написать скрипт, высылающий получателю сообщение о недоставленном письме с вирусом или запрещённым вложением.

В /etc/clamsmtpd.conf добавляем:
VirusAction: /etc/clamav/script.sh

Скрипт /etc/clamav/script.sh (http://pastebin.com/xTZ9tQ1h)
#!/bin/sh
DOMAIN=domain.com
# Notification receiver

ADMIN=postmaster@domain.com

# E-mail sending function

alert_send() {
( cat <<EOF;
To: $RECIPIENT
Reply-To: $ADMIN
Subject: =?UTF-8?B?`echo -n $SUBJECT | base64`?=
Content-Type: multipart/mixed; boundary=simple boundary

This is a multi-part message in MIME format.
--simple boundary
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

`echo -n $DATA | base64`
--simple boundary

EOF
) | sendmail -t -oi
}

# E-mail to Administrator
SUBJECT="Письмо добавлено в карантин"
DATA="<p><b>Причина блокировки или имя вируса:</b> $VIRUS<br> \
        <b>Отправитель:</b> $SENDER<br> \
        <b>Получатель:</b> $RECIPIENTS<br><br> \
        <b>Перемещено в карантин:</b> $EMAIL<br><br>"
RECIPIENT=$ADMIN
alert_send

# E-mail to User
for RECIPIENT in $RECIPIENTS
do
     if [ X`echo $RECIPIENT | egrep @$DOMAIN$` != "X" ];
     then
        SUBJECT="Письмо добавлено в карантин"
        DATA="<p><b>Отправитель:</b> $SENDER<br> \
        <b>Получатель:</b> $RECIPIENTS<br><br> \
        <b>Перемещено в карантин:</b> $EMAIL<br><br> \
        Письмо не доставлено и перемещено в карантин из-за подозрительного вложения.<br> \
        Если вы уверены, что это ошибка, свяжитесь с отделом ИТ."
     alert_send
     fi
done

пятница, 13 мая 2016 г.

Xenserver Root Disk Cleanup

Заполнение корневого раздела Xenserver может вызвать множество проблем, включая зависания запущенных виртуальных машин. Необходимо периодически следить за заполнением диска и проводить следующие работы:

Контроль места на диске
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 4.0G 2.2G 1.6G 59% /

Удаление применённых пакетов обновлений и hotfix
Для Xenserver 6.2 и выше. Это освобождает место, корректно очищая папку /var/patch/ 
# xe patch-list params=uuid
uuid ( RO)    : d3c08fcb-daa0-4410-bdb2-c298109e88ad
...
# xe patch-clean uuid=<uuid>

Удаление старых лог-файлов
# cd /var/log/ 
# rm -rf *.gz 

Очистка каталога /tmp
# cd /tmp/
# rm -rf *.log