Archive for the ‘hack’ Category

LiveJournal против Gentoo

Saturday, August 16th, 2008

  Некоторое время назад 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 не дали желаемого результата.
  В общем, скрепя сердцем и мозгами, я нашёл старые ибилды, пропатчил их и поставил через оверлей. Выкладываю их здесь для дальнейшего использования в подобных случаях.

Новый 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 рутеров. Имеет некоторые недоработки, уже не помню какие.

  NAIS. Какие-то скрипты для NAIS. Помню, в пожарке мы использовали DOS версию с DB файлами и HASP ключом для ограничения количества одновременных подключений. В свободное время, я перегнал данные из Paradox в postgreSQL, соорудил веб-интерфейс, а так же написал сопутствующие скриптЫ.

  Позже я написал веб интерфейс к оригинальной базе NAIS, работающей под Firebird.
  Однажды мне звонил юрист из DATI и стал требовать, чтоб я убрал данный код со своей страницы. Типа я нарушаю их интеллектуальные права и всё такое. Однако, какие именно права, он не смог объяснить :) Позже позвонил какой-то их менеджер и просил убрать пароль к их базе из исходников. Что я и сделал. Найти его не составляет никаких проблем – пароль прописан открытым текстом в исполняемом файле.
  Телефонная книжка на PHP. Оригинальный код и дизайн был произведён на свет Danaki в 2000 году. В 2004 году я переписал код, а вот дизайн оставил прежним. До сих пор используется в пожарке

  Система учёта трафика Когда заграничный трафик оплачивался отдельно за мегабайты, его требовалось считать и учитывать. Я подрабатывал в мелкой провайдерской канторе и допиливал поделие Ramobz’ы. Работало всё это чудо на Net-acct/postgreSQL/PHP/Perl.

  Разные скрипты

  • 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 минут я:

  1. исправил URL для 1.5
  2. добавил нашу заплатку для кода
  3. добавил новую зависимость (aio)
  4. добавил новый USE флаг
  5. изменил конфигурационные файлы для 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:

  1. ставим размер coredump’a бесконечным:
    ulimit -c unlimited
  2. прописываем путь для коры:
    echo "/tmp/core.%p-%t" > /proc/sys/kernel/core_pattern
  3. переключить компилятор gcc на vanilla (ВАЖНО!):
    gcc-config i686-pc-linux-gnu-3.4.6-vanilla
  4. запускаем сборку с дополнительными опциями:
    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

Исходный код нашего с Юрой проекта Cyrup скачали 100 раз ! Начиная с первого релиза на sourceforge 2005-10-20 исходники были скачаны 710 раз на текущий момент.

Урра :)

Печать из 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 :)