Некоторое время назад inbox.lv зачем-то купил Sviesta Ciba – местный вариант LiveJournal. Поставили туда счётчик Gemius и благополучно забыли. А мне, значит, следи за этим сервисом.
klab.lv работает на движке LiveJournal 2005 года поставленным ещё watt‘ом. Всего сервис обслуживают четыре сервера под Джентой на amd64. Основной задачей является смотреть за тем, чтобы всё это барахло не падало и обновлять системный софт по возможности. Обновление же движка LiveJournal до текущей версии потребовало бы по крайней мере пару недель работы и установки ещё одного сервера.
Так вот, ближе к теме. Код LiveJournal работает под древним apache-1.3 используя старый mod_perl. Умные ребятки из Gentoo взяли, да и выкинули эти ebuild’ы из портэжа. Так что, после очередного обновления одного из web серверов, на нём радостно установился apache-2.2 и mod_perl2 соответственно. Попытки запустить старый перловый код с помощью Apache2::compat не дали желаемого результата.
В общем, скрепя сердцем и мозгами, я нашёл старые ибилды, пропатчил их и поставил через оверлей. Выкладываю их здесь для дальнейшего использования в подобных случаях.
Archive for the ‘hack’ Category
LiveJournal против Gentoo
Saturday, August 16th, 2008Новый pop3 сервер
Wednesday, August 6th, 2008 Наконец-то это случилось. Новый pop3 сервер (mail.inbox.lv) теперь поддерживает SSL как для POP3 протокола, так и для Mail+ пользователей, использующих данный сервер для отправки почты. Поддержка IMAP технически реализованна, но отключена по маркетинговым соображениям. В наличии также новая железка и новый софт.
(more…)
Как мы чинили Reiserfs
Friday, July 18th, 2008 Мы используем ReiserFS для хранения данных, так как эта файловая система оптимально подходит для большого количества мелких файлов, которые составляют почтовые ящики пользователей inbox.lv
В результате идиотизма сотрудников DEAC и неудачных попыток реинкарнации таблицы разделов, у нас оказалось несколько пятисотгигабайтных дисков с убитым reiserFS. Причём данные были в полном порядке – затёрт оказался только суперблок. Да, повторный --rebuild-sb без --rebuild-tree приводит к плачевному результату. (more…)
Старое барахло
Friday, May 16th, 2008 Для сохранности положил тут старое барахло.
Досовский iproute. В своё время была супер программка для рутера. Работала с дискетки на i486. Использовалась Latnet и Microlink. Сам поставил на ней штук 8 рутеров. Имеет некоторые недоработки, уже не помню какие.
- бинарий iproute
- простенький скрипт дря маршрутизатора
- скрипт для маршрутизатора с дозвоном через модема
- скрипт с NAT и фильтрацией латвийского трафика
NAIS. Какие-то скрипты для NAIS. Помню, в пожарке мы использовали DOS версию с DB файлами и HASP ключом для ограничения количества одновременных подключений. В свободное время, я перегнал данные из Paradox в postgreSQL, соорудил веб-интерфейс, а так же написал сопутствующие скриптЫ.
- SQL структура
- Веб интервейс на php
- скрипты для импорта: первый и второй
- скрипт для обновления с сайта производителя
Позже я написал веб интерфейс к оригинальной базе NAIS, работающей под Firebird.
Однажды мне звонил юрист из DATI и стал требовать, чтоб я убрал данный код со своей страницы. Типа я нарушаю их интеллектуальные права и всё такое. Однако, какие именно права, он не смог объяснить :) Позже позвонил какой-то их менеджер и просил убрать пароль к их базе из исходников. Что я и сделал. Найти его не составляет никаких проблем – пароль прописан открытым текстом в исполняемом файле.
Телефонная книжка на PHP. Оригинальный код и дизайн был произведён на свет Danaki в 2000 году. В 2004 году я переписал код, а вот дизайн оставил прежним. До сих пор используется в пожарке
Система учёта трафика Когда заграничный трафик оплачивался отдельно за мегабайты, его требовалось считать и учитывать. Я подрабатывал в мелкой провайдерской канторе и допиливал поделие Ramobz’ы. Работало всё это чудо на Net-acct/postgreSQL/PHP/Perl.
- SQL структура
- скрипт подсчёта трафика
- веб-морда
- скрипт для посылки уведомлений
- скрипты для определения латвийского диапазона IP адресов: раз, два и три
Разные скрипты
- PHP скрипт для показа сообщений из карантина amavis в браузере. Ссылка на скрипт, с именем файла как параметр, вставляется в уведомительные сообщения администратору
- Скрипт для закачки обновлений для Касперского
- Скрипт для закачки обновлений для антивируса AVG
- CMD скрипт под винду для простого резервного копирования
- Скрипт для копирования чего-то на виндовую шару
- Простой CMS на PHP из двух файлов – первый и второй
- Скрипт для обновления динамического IP адреса на сайтах DDNS типа dyndns.com
- PHP скрипт для управления DNS зоной для диапазона IP адресов
- Скрипты для периодической генерации пароля htpasswd и автоматической отсылки на email при запросе
ebuild для Дженту за 15 минут
Friday, March 7th, 2008 Для нового мега проекта Danaki для inbox.lv (уже в стадии подготовки к запуску) необходимо было установить последний lighttpd версии 1.5 которого ещё нет в официальном Gentoo.
Ставить из tarball’а не кошерно, решил сделать свой ebuild из существующего для 1.4.18. Делал подобное первый раз без каких-либо познаний в этом деле. За 20 минут я:
- исправил URL для 1.5
- добавил нашу заплатку для кода
- добавил новую зависимость (aio)
- добавил новый USE флаг
- изменил конфигурационные файлы для lighttpd по умолчанию
Ничего сложного :)
Восстановление Intel Entry Storage System SS4000-E
Saturday, March 1st, 2008Сломался у товарищей значит Intel Entry Storage System SS4000-E. Дёрнулось электричество и аппарат сказал что диски у него теперь девственные и совсем новые. А раз там Linux Inside, притащили мне искать потерянное добро. (more…)
Простой шейпер
Friday, February 1st, 2008Иногда возникает необходимость шейпить траффик по определённому порту. В моём случае исходящий SMTP траффик убивал DSL линк когда кто-нибудь посылал видео ролик на 7 мегов 3-10 адресатам. С помощью пакета iproute2 в linux можно творить маленькие чудеса :)
- Устанавливаем очередь CBQ на интерфейс:
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 100mbit
- Создаём класс на 256kbit:
tc class add dev eth1 parent 1: classid 1:1 cbq rate 256kbit allot 1500 prio 5 bounded isolated
-
Загняем траффик по шаблону ip dport 25 0xffff через фильтр u32:
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dport 25 0xffff flowid 1:1
В результате исходящий траффик на 25 порт не превышает 260kbit/s в любой ситуации.
Больше здесь:
Rate limiting a single host or netmask
The u32 classifier
Поиски причин segfault под Gentoo
Saturday, January 26th, 2008Пришлось на днях поразвлекаться с gdb и падающим в segmentation failure PHP. Вот несколько советов по получению удовлетворительного результата под hardened Gentoo:
- ставим размер coredump’a бесконечным:
ulimit -c unlimited - прописываем путь для коры:
echo "/tmp/core.%p-%t" > /proc/sys/kernel/core_pattern - переключить компилятор gcc на vanilla (ВАЖНО!):
gcc-config i686-pc-linux-gnu-3.4.6-vanilla - запускаем сборку с дополнительными опциями:
EXTRA_ECONF=" --enable-debug" FEATURES="nostrip" emerge -a php
После падения по segfault смотрим результат:
gdb /usr/bin/php-cgi /tmp/core.bla-bla-bla
Подводные камни патча Grsecurity
Sunday, January 20th, 2008 На днях столкнулся с проблемами при использовании ядра, собранного из sys-kernel/hardened-sources в Gentoo с включенными опциями grsecurity. Долго не мог понять в чем дело – gcc постоянно падал в segfault при сборке большинства пакетов, в то время как tar паковал пару гигов через bzip2 на ура. Поменяли проц и мамку – без результата.
Дело оказалось в опции CONFIG_PAX_NOEXEC из раздела Security options->PaX->Non-executable page. После полного отключения фичи Non-executable pages компилятор всё таки заработал.
Данная проблема явилась для меня сюрпризом, так как я уже долгое время работаю с ядрами линукс с включенным PAX’ом под amd64 без каких-либо нареканий. В этом же случае, система оказалась i686 на базе процессора Pentium4 без поддержки NX бита.
Windows Vista – есть ли IPX на марсе
Wednesday, December 26th, 2007Пришлось мне поковырять Windows Vista с целью пришить ей поддержку Novell Netware через IPX. Понятно, что IPX это пришелец из прошлого и на самом деле он нафиг никому не сдался. Сам Novell уже давно от него отказался и в клиенте под Vista его убрали. А Microsoft туда же, мол поддержки нет и не нужно. Но ведь в XP есть ? ;) Нам нужно, значит и в Vista скорее всего будет работать. Ведь Vista не далеко ушла от своего предшественника в плане движка ядра. (more…)
Sybase и Gentoo
Wednesday, November 21st, 2007 Некоторые кодеры очень не любят (не умеют?) читать документацию. По этому пишут программы, основываясь на коде из всяких примеров в книжках. Тем самым создавая не только кривой софт, но и проблемы другим людям.
На этот раз, в результате деятельности подобных товарищей, возник безумный микс из программы на Clipper под DOS, костыля на Java, Sybase базы и PHP кода под Web на Gentoo. Все это гордо назвали интернет магазином и стали продавать. А я, значит, инсталируй все это барахло.
(more…)
Последнюю версию cyrup скачали 100 раз !
Thursday, August 2nd, 2007Печать из DOS на Windows-only принтере
Tuesday, July 31st, 2007 Есть у нас одна супер программка написанная на древнем Clipper под DOS и желающая печатать исключительно на принтера поддерживающие печать из DOS (текстовую) соответственно. К сожалению, новые дешевые принтеры не имеют на борту “мозгов” для столь серьезной задачи.
Для решения данной проблемы возможно использовать бесплатную утилиту SPrint. Однако поставляемый с программой файл поддержки кодовой страницы 755 не совсем корректный. Потратив сегодня полтора часа, путем перебора и сравнения с похожим файлом из поставки DOSPRN, я смастерил правильный файл. Забрать можно здесь: DOS755h.cp
Генерация ключей к Accor Profi
Saturday, July 21st, 2007Случилось мне как-то переносить бухгалтерскую программу ACCORprofi на другой жесткий диск. Скопировал я значит все файлы, a программа не запускается – требует регистрацию, хотя на старом диске работает на ура…
Пришлось мне поковыряться в этой мега проге и вот что выяснилось: (more…)
Запуск Stratum 9100 от iPro на PC
Tuesday, August 26th, 2003 Хороший проект VPN/firewall от iPro на базе Linux – Stratum 9100 можно запустить и на обычном персональном компьютере. Жалко что проект перестал развиваться и новых обновлений не предвидится.
Архив необходимых файлов: здесь
Анализатор файлов StratumMonitor
Краткая инструкция по инсталяции:
How-To set up Stratum 9100 software on PC box
by Deniss
http://dg.sad.lv
(c) 2003
[ Stratum 9100 homepage: http://www.stratum.lv/ ]
[ Updates: ftp://ftp.ipro.lv/stratum/ ]
Requirements:
i586 PC
64MB RAM
> 20MB IDE HDD
2 x RealTek RTL8139 Fast Ethernet
Step-by-step instruction
1. make ext3 partition (ex. /dev/hda1)
2. copy grub.conf stage1 stage2 kernel rootfs to /dev/hda1
3. make HDD bootable:
3.1. make floppy boot disk:
dd if=stage1 of=/dev/fd0 bs=512 count=1
dd if=stage2 of=/dev/fd0 bs=512 seek=1
3.2. boot from floppy
3.3. make HDD bootable:
root (hd0,0)
setup --prefix= (hd0)
4. login with root/setup
5. update from ftp
6. enjoy :)