Category: it

Nginx

Окончательно осознав, что мой профиль работы не позволяет держать Apache голым портом в интернет, прикрутил к луна-парку nginx фронт-эндом.

Kaspersky Anti Virus for Mail Servers 8.0 FAIL

Решил я запилить (хороший) антиспам и антивирус заодно на свой Луна-парк. Выбор пал на KLMS 8.0, так как предыдущие версии мне очень и очень хорошо знакомы. Однако же, первый подход к снаряду вышел неудачным.

При изучении работы продукта, я узнал что:

1 - нет поддержки 64х битных платформ. Ладно, я поставил библиотеки совместимости.
2 - настройки хранятся в PostgreSQL вместе с логами . Этот пункт очень важен для фундаментального осознания, что придумавший сей функционал человек не понимает нужд заказчика. Настройки обычно хранятся в текстовых файлах потому, что их можно легко поменять из консоли хоть сотового, а не потому что разрабы недостаточно круты, чтобы вкрутить Постгрес.
3 - настройки можно экспортировать в XML. Удобненько.
4 - по умолчанию для интеркоммуникации процессов используется порт 5555, который зарезервирован за Jabber'ом. При этом в логах нет внятных ошибок.
5 - не поддерживается IPv6. У меня локалхост резолвится в ::1, что создает проблемы: процессы пытаются биндиться к ::1, стучаться на 127.0.0.1 без понятных ошибок. Unexpected Error - наше все!

Совокупность 1-5 дает нам следующую ситуацию: так как падала компиляция баз, я подумал, что это связано с IPv6. Чтобы обойти ограничения с IPv6, я выгрузил настройки в XML, поменял там localhost на 127.0.0.1 в разделе SNMP (так как предположил, что это может влиять), загрузил обратно в базу, после чего модуль "Фасад" стал падать:

facade[25449] trap int3 ip:8dfa158 sp:ffe94490 error:0
facade[25524] trap int3 ip:8dfa158 sp:ffd37ec0 error:0
facade[25566]: segfault at 38 ip 0000000008b73cc8 sp 00000000ffc6f430 error 4 in facade[8048000+1a46000]
facade[25605] trap int3 ip:8dfa158 sp:ffcbd6f0 error:0
facade[25661] trap int3 ip:8dfa158 sp:fff04ba0 error:0
facade[25689] trap int3 ip:8dfa158 sp:ffc44200 error:0

А обратно загрузить я уже не могу, так как этот модуль уже мертвый.

[root@andreybondarenko ~]# /opt/kaspersky/klms/bin/klms-control --import-settings -f ./settings.xml
ERROR: Cannot connect to Facade, probably klms and/or klmsdb services are not running

Ну и по мелочи:

1 - как может антивирусу (точнее, веб-морде) мешать SELinux, что его рекомендуют выключить? Очень просто: разрабы его не освоили.
2 - на директорию с файлами веб-морды владелец root.
3 - конфигурация Апача неверна вообще: подменяется сертификат всего сервера и садится оно не на поддомен, а на _default_, то есть на все.
4 - ошибки крайне неинформативны.
5 - в скрипте выключения-включения стоит таймаут на 5(!!!!!) минут. Видимо, кому-то было лень разбираться как правильно стартовать и останавливать сервисы в линуксе.

Очень странно выглядит архитектура приложения, я бы не рекомендовал его использовать на серьезных почтовых серверах, потому что архитектор приложения не понимает нужд владельца почтовика: сначала доставка почты, потом рюшечки-фигашечки, а распределенное приложение для высокой нагрузки не обязано держать настройки в Постгресе.

Nerd p0rno



Чтобы не забыть: unebootlin - говно, после него надо делать "а" на загрузочный раздел из fdisk'а.

Дипиай-шмипиай

Пошел я сегодня двачить капчу на очень плохой сайт. Настолько ужасный, что вместо него я увидел заглушку Ростелека о том, что сайт внесен в реестр запрещенных. Открыл я тогда порт в Луна-Парке, прописал его локальным DNS'ом вместо гугловского и, о чудо, заглушка исчезла! Эффект воспроизвелся на некоторых других провайдерах, которые отображали заглушку на этот сайт и без участия DNS гугла, только с провайдерским DNS.

Какие из этого выводы делать, кроме практических, я не знаю.

Epson L355, WiFi + Mac

Привез МФУ Epson L355.

Во-первых, с принтером много чернил, 4 основных цвета + еще 2 баллона черного. Чернил 70мл, не то что у жмотов из HP. Печатает-сканирует нормально и быстро для своего круга задач, фотографии на нем не надо печатать. Во-вторых, с ним нет инструкции, в которой было бы написано, что именно надо сделать, чтобы он стал Wi-Fi-принтером.

Сначала я решил: "ну и ладно, что у меня нет принт-сервера, что ли" и включил его в Airport. Принтер сразу же опознался и стал сетевым принтером, но не сканером. Из интернета я вычитал, что сей принтер умеет подключаться к защищенной сети при помощи недопротокола WDS, для которого на роутерах делают специальную кнопку, а у меня такой кнопки нет. Я считал, что так как WDS не хороший и не годный протокол, то Airport его вообще не поддерживает. Оказалось, что если зайти в настройки, то там можно выбрать "Add WiFi Printer", тогда Airport войдет в WDS-режим, замигает синим цветом и подхватит принтер. Как человек технически подкованный, я распечатал настройки принтера кнопкой "распечатать настройки принтера" и нашел там пин-код, который сказал Airport'у. Нет, так не работает! Пробовал раз 5, все без толку, не подключается. Выбрал режим "без пин-кода" - все заработало.

Посмотрим, что на нем стоит:

root@storage ~]# nmap -O 192.168.2.8

Starting Nmap 6.01 ( http://nmap.org ) at 2013-03-22 22:38 MSK
Nmap scan report for 192.168.2.8
Host is up (0.0030s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
80/tcp open http
515/tcp open printer
9100/tcp open jetdirect
MAC Address: B0:E8:92:00:00:00 (Seiko Epson)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:kernel:2.6
OS details: Linux 2.6.9 - 2.6.31
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds



Если пойти на http://192.168.2.8, то он перебрасывает на http://192.168.2.8/PRESENTATION/HTML/TOP/INDEX.HTML и отдает весьма содержательную страницу с единственной надписью "L355 Series". Это кусок чего-то для автоконфигурации клиентов? Утилита с сайта Epson так и не смогла найти принтер в сети, утилита под iPhone принтер находит, и открывает эту страницу (все). Видимо, нормальная консоль для принт-сервера в каких-то более старших моделях.

Двачить капчу

Сайт-затычка andreybondarenko.com:

- стандартная капча друпала: 1 регистрация в минуту.
- рекапча: около 10 в сутки.

Профит! Интересны 2 момента: зачем на домене, на который и ссылок-то нигде нет, постить свой хлам в комментарии к единственной записи, при чем промышленными масштабами. Второй момент: как сейчас обходят рекапчу? Не руками же ее двачат, это должно быть слишком расточительно так спамить в никому не нужный "блог".

UPDATE:

Оказывается, подтверждение адреса было необязательным для постов в комменты, хоть и приходило.

Продолжая красноглазить

Матплата Asus M5A78L-MLX v2, Athlon-II 2.8, 8GB. Сейчас на всю эту радость ставится Федорка. Матплата вроде ничего: 6 SATA, гигабитная сеть, формат mini-itx. Надеюсь, через часик смогу протестировать скорость Самбы.

UPD: 47МБ/c по самбе.

Rsync backup speedup

Чтобы самому не забыть, запишу как надо зеркалировать NAS на NAS.

Итак, есть 2 штуки NAS'ов с ARM'ами и Linux'ами разной степени кастрированности на них. В моем случае это WD Sharespace и ZyXEL NSA221, оба с кастомными прошивками. Кастомные они, конечно, кастомные, но это не Gentoo и не Debian, где есть все, это просто пара репозиториев с пакетами неизвестно какого возраста и качества, а так же отрезанные к черту ненужные Твонки и т.п. На WD из коробки есть SSH и rsync, а на ZyXEL NSA221 их нет, так что для Зикселя очень актуален вот этот материал: http://zyxel.nas-central.org/wiki/FFP-stick

В чем проблема использовать rsync в лоб, через SSH, как это предусмотрено по умолчанию? В шифровании. Если для Core i3 это все не проблема, то для худосочного одноядерного ARM'a на 200 МГц triple DES становится доминирующей задачей и скорость зеркалирования падает до совершенно идиотских значений вроде 1.4 МБ/c. Переключение в arcfour увеличивает скорость примерно в 2 раза, что лучше, но все равно плохо. Метод шифрования "none" из SSH кто-то выпилил (подозреваю эманации Поттеринга), но alexkuklin подсказал, что rsyncd в отличие от rsync SSH не использует. Я все понимаю про безопасность, но шифрование при копировании в пределах одного свича нафиг не нужно.

Было:

на клиенте запускалась команда: rsync -e 'ssh -p 22' -av --delete root@192.168.2.6:/DataVolume/ /i-data/8g6d1a87/public/ > log.rsync &

Стало:

Конфигурация сервера-источника:

~ $ cat /etc/rsyncd.conf
log file = /var/log/rsyncd.log
transfer logging = true
[bcp]
path = /DataVolume/
uid = root
read only = yes
list = yes
comment = main directory
hosts allow = 192.168.2.60
auth users = bcp
secrets file = /etc/rsyncd.scrt


где /DataVolume/ - путь к зеркалируемому контенту.

~ $ cat /etc/rsyncd.scrt
bcp:qwerty

просто логин+пароль.

Потом просто пускаем rsync --daemon.

Клиент запускается командой: rsync -av --delete bcp@192.168.2.6::bcp /i-data/8g6s1e67/public > log.rsync &

Пароль приходится вводить, так как эта сборка rsync не понимает опцию --secrets_file=/etc/rsyncd.scrt.

Все! Так как у моей сборки rsync в расчет скорости принимается время подсчета количества файлов in question (а их больше 90000000), то точно скорость не измерял, но явно больше 10 МБ/c, что уже приемлемо для жизни и дома.

ZyXEL NSA221

Приехал NAS ZyXEL NSA221 из далекой Америки. Почему именно эта модель? Потому что 2700р с доставкой, а мне нужно было чем-то заменить сыпящие ошибками в шину enclosure'ы Сигейта.

Зиксель превзошел ВД в искусстве обрезания Линукса: в системе из коробки нет даже SSH и rsync. Процессор имеет тактовую частоту в 200МГц против 500 у ВД, зато памяти в 2 раза больше у Зикселя, 256МБ. Производительность смешная, конечно, 13МБ/с на чтение или запись, но мне все равно: железка будет зеркалом, производительность не важна. Зато отклик сервисного веб-меню и отклик самбы гораздо выше, чем у ВД. Веб-меню очень приятное и функциональное, крапвары по умолчанию отключены. В общем, за эти деньги вполе ОК, тем более, что в сети оказался волшебный скрипт, который устанавливает rsync, ssh и еще много чего.

Кстати, у меня остался ровно 1 порт из 10 на двух свичах :-)

ООП головного мозга

У IM-клиента Empathy есть проблема с чат-комнатами: иногда вылазит сообщение "too long message" при попытке что-то написать. Ну я подумал, что опенсорц же, слажу сейчас туда, сломаю генерацию этой ошибки...

Скажите, это нормальным стилем теперь считается, что на каждый пук своя структура, функция и фабрика, одно зовет из другого, что-то кому-то отвечает коллбеком, постоянно что-то переопределяется, а чтобы жизнь не казалось медом, у всех библиотек ничего не говорящие названия вроде telepathy-butterfly?

Я смог найти где оно генерирует интерфейс, как соединяется с чатрумом и еще много чего, а вот места, где собственно постится сообщения - нет. Агггрррхх!!

И еще вот такое бесит:

static void
tp_chat_async_cb (TpChannel *proxy,
const GError *error,
gpointer user_data,
GObject *weak_object)
{
if (error) {
DEBUG ("Error %s: %s", (gchar *) user_data, error->message);
}
}