Маст си, каждое - http://www22.verizon.com/powerfulanswers/stories/
Monday 30 September 2013
Saturday 28 September 2013
Рамблер как всегда анекдотичен и идиотичен
Браво, нету слов! И CTPP и сервер имени Садама - здесь не самое страшное....
curl -s https://mail.rambler.ru|tail -8
Engine: CTPP2 engine v2.7.6 (Dzoraget), copyright (c) 2004 - 2011 CTPP Dev. Team;
RuntimeLibrary: CTPP Standard Library v2.7.6 (Dzoraget), copyright (c) 2007 - 2011 CTPP Dev. Team;
License: BSD-like, see http://ctpp.havoc.ru/;
Hostname: saddam11
И да - возмущаюсь я, конечно же, этой одой самолюбования, не хватает биографии авторов прямо в тексте (не комментарии!) главной страницы сервиса :)
Friday 27 September 2013
Как VDSManager хэширует пароли?
Да довольно просто :)
В конфиге юзеры выглядят вот так:
aaaaaa - это salt, а bbbbbb - хэшированный пароль.
Как же проверить такой пароль из своей программы?
Тоже очень легко:
В конфиге юзеры выглядят вот так:
User admin $1$aaaaaa$bbbbbbbbЭто очень похоже на обычный хэш созданный функцией crypt. В общем-то, это он и есть.
aaaaaa - это salt, а bbbbbb - хэшированный пароль.
Как же проверить такой пароль из своей программы?
Тоже очень легко:
perl -e 'print crypt(q/our_password/, q/$1$aaaaaaa$/), "\n"'В результате мы получим исходную строку:
User admin $1$aaaaaa$bbbbbbbb
Как заменить отдельную ресурсную запись на рекурсивном DNS?
Часто возникает задача - а как, например, запросы на какой-либо сайт отправить на заглушку в стиле "сайт заблокирован" или же наоборот отправить на локальное зеркало этого сайта.
Суть задачи простая - рекурсивный DNS с возможность подменить одну отдельную ресурсную запись определенного домена, не определяя при этом домен полностью.
Я приведу пример решения данной задачи на IPv6 и Debian, но для IPv4 решение аналогично.
Итак, ставим Unbound:
Открываем его конфиг:
Суть задачи простая - рекурсивный DNS с возможность подменить одну отдельную ресурсную запись определенного домена, не определяя при этом домен полностью.
Я приведу пример решения данной задачи на IPv6 и Debian, но для IPv4 решение аналогично.
Итак, ставим Unbound:
apt-get install -y unbound
Открываем его конфиг:
vi /etc/unbound/unbound.confЗабиваем там следующее:
local-data: "test.fastvps.ru. IN AAAA xxx:xxx:151:8081::2"
forward-zone: name: "."
forward-addr: 2001:4860:4860::8888
Где 2001:4860:4860::8888 - адрес вышестоящего IPv6 DNS сервера (в моем случае - Google).
В итоге получим следующее:
host test.fastvps.ru ::1
Using domain server: Name: ::1
Address: ::1#53
Aliases: test.fastvps.ru has IPv6 address xxx:xxx:151:8081::2
Как вы видите, не важно что творится во внешнем мире, для записи test.fastvps.ru наш рекурсор будет всегда выдавать забиты нами явно IP. При этом вся остальная зона будет работать корректно.
Tuesday 24 September 2013
Monday 23 September 2013
Saturday 21 September 2013
Альтернативная реализация бондинга для Linux - team driver
Какие преимущества она дает перед стандартным bond? Вот такие: https://github.com/jpirko/libteam/wiki/Bonding-vs.-Team-driver-features
Как очевидные преимущества интересные мне я бы привел:
Как очевидные преимущества интересные мне я бы привел:
- Управляемость - интеграция с Dbus/ ZeroMQ и полный пакет утилит из юзер спейса
- Легкое расширение возможность
- Возможность вручную задать хэш функцию для выбора канала. Это будет очень полезно для всевозможного кастомного софта. А вот еще из документации: A userspace application can use these counters to distinguish the load of ports and possibly rebalance hashes to different ports.
Куда можно поставить без проблем? На Fedora 18: https://github.com/jpirko/libteam/wiki/Tutorial а вообще требуется просто новое ядро: "The driver is part of the Linux Kernel (since version 3.3).".
Уже интересно? Прошу на офсайт проекта: http://libteam.org/ а вот еще много интересного материала: https://github.com/jpirko/libteam/wiki/Infrastructure-Specification
Monday 16 September 2013
Сборка PowerDNS из репозитория для Debian 7 Wheezy
Устанавливаем все необходимое для сборки deb пакета:
Клонируем репо:
Собираем бинарный пакет:
Но вот дальше что-то идет не так :/
Источник: https://github.com/PowerDNS/pdns и https://github.com/PowerDNS/pdns/pull/777
apt-get install autoconf automake bison flex g++ git libboost-all-dev libtool make pkg-config ragelУстанавливаем все необходимое для сборки PowerDNS:
apt-get install -y libpq-dev libgdbm-dev libsqlite3-dev libbotan1.10-dev liblua5.1-dev dh-autoreconf libcrypto++-dev xmlto dblatex xmltex docbook-xml docbook-utils libmysqlclient-dev libcdb-dev libgmp3-dev asciidocСтавим либу Botan:
cd /usr/src
wget http://files.randombit.net/botan/Botan-1.10.5.tbz
tar -xf Botan-1.10.5.tbz
cd Botan-1.10.5
./configure.py --with-gnump --prefix=/opt/botan-1.10
make install
Клонируем репо:
cd /usr/src
git clone https://github.com/PowerDNS/pdns.git
cd /usr/src/pdns
autoreconf -fisv
vim debian-pdns/rules
И удаляем оттуда:
--with-pgsql-lib=/opt/postgresql/lib --with-pgsql-includes=/opt/postgresql/include \
--enable-cryptopp
gpgsql/opendbx
Собираем бинарный пакет:
fakeroot debian-pdns/rules binary-static
Но вот дальше что-то идет не так :/
Источник: https://github.com/PowerDNS/pdns и https://github.com/PowerDNS/pdns/pull/777
Tuesday 10 September 2013
Wednesday 4 September 2013
Sunday 1 September 2013
Поддержка lxc для Vagrant
Вот нашел чудесный проект для реализации сабжа: https://github.com/fgrehm/vagrant-lxc
Установка vagrant на CentOS 6
После установки vagrant_1.2.7 на CentOS 6 получаем следующее:
Как бороться? Берем патч: https://github.com/mitchellh//issues/2019
vagrant init
ls/opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:39:in `block in initialize': undefined method `[]' for nil:NilClass (NoMethodError)
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:38:in `open'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:38:in `open'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:38:in `initialize'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:502:in `new'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:502:in `host'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:514:in `block in action_runner'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:28:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:28:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:275:in `hook'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:136:in `initialize'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/bin/vagrant:62:in `new'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/bin/vagrant:62:in `'
from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `load'
from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `'\
Как бороться? Берем патч: https://github.com/mitchellh//issues/2019
Subscribe to:
Posts
(
Atom
)