Reborn

And from the ashes the Phoenix rose reborn
  • Начало
  • About

To cache or not to cache … that’s a stupid question

Владимир | 02/09/2011

След едно случайно заиграване покрай http://neo2shyalien.eu/2011/01/28/eaccelerator.html и великият facepalm момент си поставих задачката аджеба да видим колко производителност се печели от използването на Opcode Caching при PHP.

Речено сторено.

По долу ще откриете до какви резултати се стигна.
Прочети останалата част от поста »

Коментари
11 Коментара »
Категории
Статии
Tags
apc, debian, eaccelerator, lighttpd, nginx, performance, php, xcache
RSS коментари RSS коментари
Trackback Trackback

Защо са ни циркове, защо са ни комици …

Владимир | 01/20/2011

имаме си просто политици …

Коментари
Няма коментари »
Категории
Разни
RSS коментари RSS коментари
Trackback Trackback

Коледно VLC

Владимир | 12/24/2010


Да забелязвате нещо малко по-различно от стандартната иконка на VLC.
Забелязвам го, че така изглежда от вчера.

Коментари
2 Коментара »
Категории
Разни
Tags
christmas, vlc, коледа, яко
RSS коментари RSS коментари
Trackback Trackback

Сигурно електронно банкиране с Firefox и Linux

Владимир | 12/11/2010

Нека да ви запозная с Гошо. Гогата е млад, активно работещ и интересуващ се от новите технологии и удобства. Въпреки всичко това той все още извършва своите банкови задачи като ходи на крака до някой клон и изпраща необходимите плащания по старият начин. Това става все по неудобно тъй като му се налага все по-често и по-често. А в банките се чака на опашки, работят до 16:00 и като цяло преживяването е неприятно. Той решава, че ще използва електронното банкиране което предлага неговата банка, но понеже чете SecurityFocus, Slashdot и други подобни сайтове за новини решава да се подсигури доста сериозно.
Крайното решение на което се спира е да извършва своите банкови операции с помощта на Firefox и Linux.

Решението до което този наш въображаем приятел Гогата би стигнал може да намерите по-долу.
Прочети останалата част от поста »

Коментари
7 Коментара »
Категории
Статии
Tags
banking, firefox, secure, банкиране, сигурност
RSS коментари RSS коментари
Trackback Trackback

Multiple courier-imap-ssl instances on single machine

Владимир | 10/25/2010

Днес ще покажем как да си сглобим сървър за поща на който ще работят няколко инстанции на Courier. Интересното в случая ще е че на всяка от инстанциите ще има различен SSL сертификат. По този начин на една реална физическа машина ще хостваме няколко напълно легитимни мейл сървъра със техните си отделни сертификати.

Процедурата е пределно проста.
Първо трябва да си инсталираме необходимият софтуер. Аз лично съм привърженик на Debian и него си слагам

apt-get install postfix courier-imap-ssl sasl2-bin libsasl2-modules courier-pop-ssl ca-certificates

Е postfix-a не ни е нужен точно за това изпълнение но помага да го имаме. При изпълняването на горната команда ще бъдат инсталирани няколко допълнителни пакета включително courier-authlib.
След като приключи инсталацията трябва да спрем стартирането на цялата система courier с изключение на демона за аутентификация. Той ще остане единственото недублирано нещо.
Да приемем че имаме следният набор от мрежови настройки:

IP1: 10.199.199.201
IP2: 10.199.199.202
Mask: 255.255.255.0

Да осъзнавам факта че това не са публични адреси но ако не можете да си смените два адреса на няколко места … не знам защо изобщо четете това.
Следващата ни стъпка е да направим по две копия на конфигурациите на courier и стртиращите скриптове. В крайна сметка получаваме следна структура:

/etc/
/etc/courier/
/etc/courier-201/
/etc/courier-202/
/etc/init.d/courier-imap
/etc/init.d/courier-imap-201
/etc/init.d/courier-imap-202
/etc/init.d/courier-imap-ssl
/etc/init.d/courier-imap-ssl-201
/etc/init.d/courier-imap-ssl-202
/etc/init.d/courier-pop
/etc/init.d/courier-pop-201
/etc/init.d/courier-pop-202
/etc/init.d/courier-pop-ssl
/etc/init.d/courier-pop-ssl-201
/etc/init.d/courier-pop-ssl-202

Както се вижда структурата сме организирали по последният октет на IP адреса на който ще закачим инстанцията на куриер-а.

Следващата стъпка е да редактираме скриптовете за стартиране да сочат към правилната директория с конфигурации. Тоест трябва да редактираме всеки един от скриптовете с имена *-201, *-202 и да променим стойността на sysconfdir. По подразбиране тя е /etc/courier а трябва да стане съответно /etc/courier-201 и /etc/courier-202.

След като вече сме насочили скриптовете за стартиране към правилните директории е време да променим самите конфигурации. Поради факта че искаме да използваме SSL се налага всяка инстанция да е на отделен адрес. И понеже така и така имаме няколко адреса нека да преместим и неподсигурените връзки на същите адреси.

В конфигурационните файлове трябва да се променят следните опции

ADDRESS – от 0 да стане на конкретният IP адрес който сме заплюли (201,202)
SSLADDRESS – същото като по горе
PIDFILE – към зададеният път да добавим последният октет. Т.е. от imapd.pid да стане imapd-201.pid
SSLPIDFILE – аналогично на горното
TLSCERTFILE – дали ще е самоподписан или ще си е нормален това е ваш избор.

Е остана само да включите новосъздадените ни скриптове за стартиране да стартират при стартиране на машина да рестартирате и да тествате. Ако сте направили всичко вече си имате два напълно отделени пощенски сървъра изградени с Courier.

Коментари
Няма коментари »
Категории
Статии
Tags
courier, debian, linux, mail, miltiple instances, ssl
RSS коментари RSS коментари
Trackback Trackback

Backup with rsnapshot and ssh

Владимир | 10/22/2010

Disclaimer: Описаните техники в този документ могат да ви помогнат но не е задължително да са напълно вярни и изчерпателни. Не поемам отговорност за каквито и да било реални или нереални, вреди, ползи, пропуски, паднали къщи или каквото и да е произтичащи от ползването или неползването на този документ.
История

  • 08.11.2007 – Първа версия

Мотивация
По темата за архивирането на данни има няколко мнения и всички те са вярни в определена степен и светлина. Най често споменаваните са:

  • Архивирайте често и редовно
  • Архивирайте когато е нужно и имайте свестен план за възстановяване
  • Real men don’t do backups! They let the internet mirror it!

Е за радост или съжаление аз съм от хората които са по първият начин. Държа данните ми да са на сигурно място. И за целта трябва да имам стратегия. Днес ще ви разкажа как този сайт се архивира. Какво се използва и как е навързано.
Трябва да се отбележи че системата не е от най-добрите но е достатъчно добра че да работи и да не ми създава проблеми.
Цел
Целта ни днес е да реализираме напълно автоматизирана система за архивиране на данните. Допълнителни цели са скорост, минимален обем на прехвърляните данни, лесно възстановяване на данните от архива, сигурност.
Съставките
Като цяло нищо странно или екзотично. Дебиан базирана система (и хостът и машината която архивира), rsnapshot, ssh, rsync, diff, cp, du, perl.
Основата на системата се върти около rsync, rsnapshot е обвивка която предлага доста възможности но всичко е постижимо с нормален rsync. Допълнително са ни необходими cron и известно количество познания за начина на работа и методите за сигурност около SSH.
Най-голямо внимание трябва да се обърне на подсигуряването на системата, тоест настройката на ssh
Настройване на rsnapshot
Това като цяло е най-лесната част от цялото занимание. Избрал съм rsnapshot поради факта че информацията се предава посредством rsync тоест само разликите, използва схема за ротиране на архивните копия и може би едно от най-важните неща – използва твърди връзки между непроменените файлове от различните стартове на архивирането и по този начин пести място.
След инсталацията му трябва да се редактира конфигурационният му файл в който трябва да се дефинират времеви периоди (не са точно времеви, но за това след малко), точки за архивиране и някои команди.
/etc/rsnapshot.conf

# дефинираме къде ще съхраняваме архивите
snapshot_root   /home/webbackup/
# дефиниране на някои команди които ще са ни необходими
cmd_cp          /bin/cp
cmd_rm          /bin/rm
cmd_rsync       /usr/bin/rsync
# за съжаление тук не могат да се добавят допълнителни опции
cmd_ssh         /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du          /usr/bin/du
cmd_rsnapshot_diff      /usr/bin/rsnapshot-diff
# дефинираме си период (по-точно име и брой архиви)
interval        whgeto  10
# малко логове и т.н.
verbose         2
loglevel        3
logfile         /var/log/rsnapshot.log
lockfile        /var/run/rsnapshot.pid
# някои от данните не искаме да ги синхронизираме
exclude log/*
exclude phptmp/*
# и най накрая точките които ще архивираме
backup  root @ getoto.net:/var/www/       getoto.net/web/
backup  root @ getoto.net:/var/lib/mysql/ getoto.net/sql/

След като вече сме дефинирали какво и как да архивираме е време да си настроим периодична задачка която реално извършва архивирането. Това се постига чрез добавяне на запис в системата на cron.

0 */6   * * *   webbackup    /usr/bin/rsnapshot whgeto

Това се превежда като … на всеки 6 часа изпълнявай като потребител webbackup командата …
С това настройката на rsnapshot завършва. Но сега следва да си подсигурим достъпа до машината и да го ограничим до използването само на строго определени команди.

Настройване на SSH
След като системата ни е настроена да извършва регулярно архивиране на нашите данни е време да подсигурим достъпа. Искаме да получим следната ситуация. Вход без парола (с ключ), възможен само от определен адрес, който да може да изпълнява само строго определени команди.

Цялото това нещо се постига по следният начин:

  • Генериране на ключ който ще се използва за операциите – самият ключ е без парола. Избираме ключа да не е особенно голям за да пестим време, а и освен това ще е бъде доста ограничен.
    ssh-keygen -t rsa -b 1024 -f ~/keys/backup && chmod 600 ~/keys/backup

    По този начин в папка ~/keys ще си генерираме РСА ключ с големина 1024 байта и ще променим правата му така че само ние да можем да го четем и променяме. Последната стъпка е много важна тъй като ако правата не са коректни ключа няма да бъде използван.

  • Добавяме публичната част от ключа в списъка с упълномощените ключове на машината която ще архивираме. Напълно достатъчно е публичната част от ключа да бъде копирана във файла /root/.ssh/authorized_keys
  • Влизаме един път със този ключ в целевият сървър (машина която ще архивираме). Целта на това е ръчно да приемем подписа на целевата машина като валиден. Ако тази стъпка се пропусне цялата операция по архивирането ще пропадне.
  • Редактираме файлът ~/.ssh/config – това е файл в който могат да се конфигурират множество аспекти на поведението на клиенат ssh на базата на това с кой хост се опитваме да се свържем. В моят случай файлът е със следното съдържание:
    # За кой хост говорим
    Host getoto.net
      # ще използваме само IPv4 (v6 не поддържаме)
      AddressFamily inet
      # ще използваме пакетен режим (неинтерактивен)
      BatchMode yes
      # ще използваме този файл за ключ
      IdentityFile /home/webbackup/keys/backup
      # и изискваме задължително версия 2
      Protocol 2

    По този начин принуждаваме ssh клиента да използва нашият ключ (специално създаден) когато се свързва към машината.
    С това приключва конфигурацията на хоста който извършва архивирането.

  • Редактиране на файлът /root/.ssh/authorized_keys – тук се извършва ограничаването на възможностите на нашият ключ. В този файл ще ограничим ключът ни за архивиране да може да се използва от едно място и да може да изпълнява само определени команди.
    /root/.ssh/authorized_keys

    command="/root/.ssh/authprogs.pl",from="11.22.33.44" ssh-rsa AAAAB3NzaC1 ...

    По този начин ограничаваме ключът да може да се използва само от машина с адрес 11.22.33.44 и единствената команда която може да изпълни (без да може да изпълни нещо друго) е /root/.ssh/authprogs.pl
    Програмата authprogs.pl е скрипт взет от http://www.hackinglinuxexposed.com/. Неговата цел е да предостави възможност за изпълняване на няколко различни команди. Причината е че чрез възможностите на ssh можем да зададем само една задължителна команда.
    Самият срипт има нужда от прост конфигурационен файл

    # хост
    [11.22.33.44]
    # команди които може да изпълнява
    # Backups
    rsync --server --sender -logDtprR --numeric-ids . /var/www
    rsync --server --sender -logDtprR --numeric-ids . /var/lib/mysql

    По този начин ефективно прескочихме ограниченията на ssh

  • Тестване – пуснете ръчно rsnapshot с интервала който сме си дефинирали. Ще повиси малко и в последствие ще имате вече архиви в точката която сте дефинирали като архивна.
    garota:~# ls -l /home/webbackup/
    drwxr-xr-x 3 1005 1005 4096 2007-11-08 12:00 whgeto.0
    drwxr-xr-x 3 1005 1005 4096 2007-11-08 11:39 whgeto.1
    drwxr-xr-x 3 1005 1005 4096 2007-11-08 11:07 whgeto.2
    garota:~# ls -l /home/webbackup/whgeto.1
    drwxr-xr-x 4 1005 1005 4096 2007-11-08 11:36 getoto.net
    garota:~# ls -l /home/webbackup/whgeto.1/getoto.net/
    drwxr-xr-x 3 1005 1005 4096 2007-11-08 11:36 sql
    drwxr-xr-x 3 1005 1005 4096 2007-11-08 11:10 web

Заключение
Е надявам се това да ви е помогнало поне малко. Вече би трябвало да имате изградена система за напълно автоматизиран и подсигурен бекъп. Поне на мен ми върши добра работа.

Полезни Връзки

  • authprogs.pl
  • http://www.snailbook.com/faq/restricted-scp.auto.html
  • http://www.hackinglinuxexposed.com/articles/20030115.html
  • http://pkeck.myweb.uga.edu/ssh/
  • http://sial.org/howto/openssh/
Коментари
Няма коментари »
Категории
Статии
Tags
backup, configuration, debian, rsnapshot, rsync, scp, security, ssh, web
RSS коментари RSS коментари
Trackback Trackback

Проблеми с glogarchive

Владимир | 09/27/2010

Glogarchive е много приятно приложение за архивиране на събитията които са се случили със вашата Нокия Н900, но днес със съжаление установих че не иска повече да архивира събитията.
Е аз съм свикнал да ровичкам в конзола и след пускане от там на приложението и опит за архивиране изкочи следното

Traceback (most recent call last):
  File "/opt/glogarchive/glogarchive.py", line 243, in archive
    cur.execute("select service_id, event_type_id, storage_time, start_time, end_time, is_read, flags, bytes_sent, bytes_received, local_uid, local_name, remote_uid, channel, free_text, group_uid, outgoing, mc_profile from events")
sqlite3.OperationalError: no such column: mc_profile

Проблема се решава елементарно. Трябва да отворите конзола (терминалното приложение) и да изпълните:

sqlite3 .rtcom-eventlogger/el-v1.db < 'ALTER TABLE Events ADD mc_profile BOOL DEFAULT 0;'

Версията на glogarchive която ползвам е 0.8

Коментари
2 Коментара »
Категории
Разни
Tags
glogarchive, n900, nokia, нокия
RSS коментари RSS коментари
Trackback Trackback

Записване на разговори с Nokia N900

Владимир | 08/20/2010

Nokia N900 е едно приятно устройство, което може да се ползва дори и като телефон (намиг). В определени ситуации е добре да си записвате разговорите (погледнете забележката в края). Типични примери са:

  • разсеян/а сте – е сега случва се. Признайте си и да свършим с въпросите
  • Искате да си правите архив на разговорите. Полезно е поради ред причини – например искате да проверите или да имате доказателство за определена бизнес политика
  • Работите в областта на телефонната поддръжка

За пълен архив ви е нужно по някакъв начин да можете да:

  • да записвате всяко едно събитие което се е случило (входящ телефонен разговор, смс съобщение, чат и др.)
  • да записвате всеки един проведен разговор

За ваше щастие това конкретно устройство е с отворен код и има огромно количество приложения за него, и всичко което ни е необходимо е вече налично.

Как ще реализираме задачата
Ще инсталираме 2 приложения. Едното за запазване на архив на събитията случили се на телефона и второто за записване на самите разговори.

Инсталиране на Glogarchive
Glogarchive е приложение което може да прави архивно копие на всяко едно събитие което се е случило с вашето устройство.

За да го инсталирате е необходимо да отворите Мениджъра на приложенията
n900-menu
и да изберете менюто за инсталиране на приложения в отворилото се меню изберете секция Utilities

application-manager-cat-utils
и там намерете приоложението Glogarchive
app-glogarchive
. Съгласете се с излезналият въпрос дали искате да инсталирате непроверено приложение и продължете
app-install-confirm
. Изчакайте процеса и продължете със инсталирането на следващото приложение.

Инсталиране на Recaller
Recaller е приложение което може да прави архивен запис на всеки един разговор проведен през вашият телефон. Освен това може да се използва като диктофон или да записва нещо което слушате.
За да го инсталирате е необходимо да отворите Мениджъра на приложенията и да изберете менюто за инсталиране на приложения в отворилото се меню изберете секция Desktop
application-manager-cat-desktop
и там намерете приоложението Recaller
app-recaller
. Съгласете се с излезналият въпрос дали искате да инсталирате непроверено приложение и продължете. Изчакайте процеса и продължете към конфигурацията на приложенията.

Конфигуриране на Glogarchive
Влезте в менюто в горният десен ъгъл и скролнете докато откриете glogarchive
menu-glogarchive
. Ще видите следният екран
glogarchive-main
. Няма много за конфигуриране в интерес на истината. Единственото което е необходимо да правите е редовно да пускате приложението и да натискате „Archive new Events now! (погледнете предната картинка). След като извършите архивирането можете да търсите по множество параметри а също така и да експортирате списъка със събития за по нататъшна обработка със друг софтуер. Продължете към конфигуриране на Recaller

Конфигуриране на Recaller
Приложението Recaller представлява widget който трябва да бъде добавен на някой десктоп (ако желаете да е наличен естествено). Това се постига като влезете в менюто за редактиране съдържанието на десктопи (след еднократно натискане на екрана се появява зъбно колело, натиснете върху него

). От там изберете добавяне на widget

и изберете Recaller

. Докато все още сте в режим на редактиране сложете го някъде където ви е удобно и натиснете гаечният ключ за да покажете менюто за конфигурация

. В отворилото се меню изберете настройки и попълнете както ви харесва. Ако искате да записвате всеки разговор автоматично е необходимо да изберете кутийката до AutoRec

. С така направените настройки разговорите ще се записват автоматично в папка Recordings в публично достъпната част от паметта на телефона във формата AAC като източника на звук ще бъде телефонът.

А После на къде
Е вече имате записите които са сортирани според телефонът на човека който ви е търсил със продължителността им и часът и т.н. С тях можете да правите каквото си искате. По мои наблюдения играчката записва с доста добро качество и използва около 1МБ дисково пространство за 1 минута разговор. Което ще рече че съвсем спокойно можете да записвате доста дълго време (27 ГБ място за използване хич не е малко).

Забележка и предупреждение
Имайте предвид че записването на разговор без знанието и съгласието и на двете страни е наказуемо според българското законодателство и може да ви ухапе доста неприятно. Не съм адвокат но поне по беклите спомени които имам уведомяването в началото на разговора и искането на съгласие е достатъчно.

Коментари
7 Коментара »
Категории
Статии
Tags
n900, nokia, record, snoop, wiretap, записване на разговори, подслушване, сигурност
RSS коментари RSS коментари
Trackback Trackback

Крадци по летищата …

Владимир | 08/06/2010

Който е пътувал със самолет повече от веднъж знае че с багажа се случват какви ли не забавни истории, като хвърляне на куфар от 4 метра височина и на разстояние от по 10тина понякога, отваряне на багаж за проверка, губене на багаж и други дреболийки. А също така знаете че се и краде. Та днеска да вентна малко че ми дойде в повече.

Пътувам си аз както обикновенно до Германия, товаря си багажа, катеря се на самолета, пристигам, вземам си багажа и какво да видя ами той отварян. И не само че е отварян ами даже и липсват някои нещица от него. На пръв поглед само един стек цигари, нищо особенно. 4 дена по късно (днеска по обяд) ми се налага да си взема циско конзолното кабелче и о изненада ми то го няма. И не само то. Също така ми липсват един комплект прибори за хранене едно разбито ножче, едно фенерче и едно зарядно.
По отделно нищо от тея работи не е критично. Да ама ходи конфигурирай циско рутер без кабел (не няма никаква конфигурация), ходи чж без прибори … става ама айде няма нужда. Ходи конфигурирай същия оня циско рутер дето е забит на някой шибан ъгъл и не се вижда кво му свети или не му свети.
Майната им на краденото струват всичките простотии някъде към 150Е не са много пари, ама не са и малко. За сметка на това обаче са оставили PSP за 180Е, харддиск за 180Е а ма няма. Ще вземем само цигарите и ей там да изпразним онова джобче. Нема значение. Ще му вземем и зарядното нищо че не знаем за кво е нищо че и за нищо не можем да го ползваме ама ще ги вземем.

И ако се чудите кои са били … ами идиотите на софийското летище. Товарачите … кретените, кой друг. Не не са немците. Немците като отварят багаж има полицай с тях и слагат една хартийка на която си пише че багажа е отварян (и това сме го играли).

Та в заключение, някой да има представа как точно се подава административна жалба или да вдигам още повече пушилка че това не е първият път като стават глупости с багажа ми на българското летище.

Коментари
1 Коментар »
Категории
Разни
Tags
mad, идиоти, крадльовци, летища
RSS коментари RSS коментари
Trackback Trackback

За културата на мисленето, свободата и софтуера

Владимир | 07/26/2010

Една интересна статия на Николай Ференски.

Дава доста храна за размисъл

Коментари
1 Коментар »
Категории
Разни
Tags
freedom, статии
RSS коментари RSS коментари
Trackback Trackback

« Previous Entries Next Entries »

Разни Лични

  • БирБлог
  • На море
  • Шумилницата

Blogroll

  • Summerborn

Етикети

bash Code debian dhcp dhcpd dns dnsmasq encryption firewall fun gnupg installation iproute iptables jabber linux lqlqlq management memdisk mrtg n900 netboot new nokia Norton ntp pcsuite php ping port reborn router routing rsync secure shaper simple soho squid ssh tftp web webserver Конкурс сигурност
rss RSS коментари valid xhtml 1.1 get firefox