понедельник, 6 февраля 2017 г.

XenServer: скрипт очистки диска Dom0 после установки обновлений

После установки обновлений можно очистить место на диске Dom0 XenServer.
#!/bin/sh
PATCHLIST=`xe patch-list params=uuid | awk '{print $5}'`
for UUID in $PATCHLIST
do
        echo "Cleanup patch $UUID"
        xe patch-pool-clean uuid=$UUID
done
Идея скрипта: http://discussions.citrix.com/topic/371712-xenserver-low-root-disk-space-cleaup-script-for-patches/

Для работы скрипта на единичном сервере без пула можно использовать команду xe patch-clean, но фактически patch-pool-clean отрабатывает корректно.

Проверяем свободное место на диске df -h и содержимое каталога /var/patch/
# ls /var/patch/
applied
Содержимое каталога /var/patch/applied не трогать и не удалять!

Также не забываем периодически удалять лог-файлы XenServer.

суббота, 4 февраля 2017 г.

XenServer 6.5: Список актуальных обновлений

Свежая установка XenServer 6.5 требует следующих обновлений:
  • XS65ESP1 - XenServer 6.5.0 Service Pack 1
  • XS65ESP1027 - Fix for vGPU
  • XS65ESP1031 - fixes to Toolstack and v6 licence
  • XS65ESP1035 - fixes to Storage
  • XS65ESP1040 - security fixes to NTP
  • XS65ESP1045 - XenTools fixes
  • XS65ESP1046 - Security fixes to Xen
  • XS65ESP1047 - Security fixes to Toolstack
Устанавливать ранее выпущенные исправления не требуется.

среда, 31 августа 2016 г.

Отключение дискового кеша в Firefox

  1. Открыть about:config
  2. Параметр browser.cache.disk.enable установить в false.
  3. Параметр browser.cache.memory.enable установить в true.
  4. Создать новую настройку browser.cache.memory.capacity (тип Целое) и задать ей значение -1 для автоматической настройки объёма кеша в зависимости от объёма ОЗУ. 

суббота, 6 августа 2016 г.

Mount nfs4 share

/etc/fstab

192.168.0.1:/home/ftp /media/ftp/ nfs vers=4.0,proto=tcp,rsize=524288,wsize=524288,timeo=60,retrans=2,rw,async,hard,intr,_netdev 0 0

вторник, 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