echo | openssl s_client -connect hostname:465 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -noout -subject -dates
вторник, 27 ноября 2012 г.
Быстро проверить удалённый сертификат
воскресенье, 25 ноября 2012 г.
Внимательнее с декларацией!
Поставил рекорд своих отправок через шипито - посылка шла месяц, вместо положенных 10-14 дней.
Есть ощущение, что это из-за того, что в декларации накосячил.
Вместо "1 штаны за 79$" забил "79 штанов по баксу" )
Есть ощущение, что это из-за того, что в декларации накосячил.
Вместо "1 штаны за 79$" забил "79 штанов по баксу" )
среда, 21 ноября 2012 г.
Надзоры и запреты
Пришла неделю назад абуза от росконадзора. Запретить забанить уничтожить растрелировать клиентский сайт. Сайт и правду нехороший, про какие-то курительные смеси. Ну, написали клиенту, на время реакции засуспендили.
Одно только но.. Абуза пришла на мыло человека, почти 2 года у нас не работающего. Просто по привычке форвард на меня стоит, вот и попала абуза ко мне.
Перерыл все ресурсы конторы - в райпе везде контактом указан я. Думаю, ну неужели у них своя база, с блекждеком и устаревшими данными? И тут коллега натыкается на просторах инета на какой-то хуиз сайт, который юзает свою копию, года видимо 2010.
Написал чиновникам, что клиента уведомили, сайт заблокировали, но шлёте абузы вы не туда и как бы в будущем избежать такого.
Ответа так и не получил. Попробовал звонить - трубку не берут.
Вот такой надзор.
Одно только но.. Абуза пришла на мыло человека, почти 2 года у нас не работающего. Просто по привычке форвард на меня стоит, вот и попала абуза ко мне.
Перерыл все ресурсы конторы - в райпе везде контактом указан я. Думаю, ну неужели у них своя база, с блекждеком и устаревшими данными? И тут коллега натыкается на просторах инета на какой-то хуиз сайт, который юзает свою копию, года видимо 2010.
Написал чиновникам, что клиента уведомили, сайт заблокировали, но шлёте абузы вы не туда и как бы в будущем избежать такого.
Ответа так и не получил. Попробовал звонить - трубку не берут.
Вот такой надзор.
среда, 14 ноября 2012 г.
tcptrack for centos 6
# wget http://pkgs.repoforge.org/tcptrack/tcptrack-1.4.0-1.el6.rf.x86_64.rpm
# yum localinstall tcptrack-1.4.0-1.el6.rf.x86_64.rpm -y
понедельник, 5 ноября 2012 г.
HD 6310: "AMD: unsupported hardware"
Обновил тут свою Fedora 16 на ноуте, после апдейта получил в правом нижнем углу прозрачный логотип: "AMD: unsupported hardware".
Нашёл кучу обсуждений и решение проблемы - заменить в драйвере вызов функции с логотипом на нопы. В результате каша получилась. Да и неправильно это, в конце концов.
Нашёл второе решение, правильное: ссылка (первый пост).
Прикол связан с файликом /etc/ati/control, надо его наменить на пофиксенный - и лого пропал.
Пост с файликом: Ссылка
Нашёл кучу обсуждений и решение проблемы - заменить в драйвере вызов функции с логотипом на нопы. В результате каша получилась. Да и неправильно это, в конце концов.
Нашёл второе решение, правильное: ссылка (первый пост).
Прикол связан с файликом /etc/ati/control, надо его наменить на пофиксенный - и лого пропал.
Пост с файликом: Ссылка
понедельник, 29 октября 2012 г.
четверг, 25 октября 2012 г.
auditd: следим за файлами
Недавно потребовалось последить за судьбой одного файлика - кто и когда что с ним делает. С auditd раньше не работал, а тут подумал, что наверно он как раз такими вещами должен заниматься. Оказалось, что, при помощи него, отслеживание файлов - занятие лёгкое и приятное )
Значит, надо нам проследить за судьбой файлика /tmp/vipfile. Говорим:
Значит, надо нам проследить за судьбой файлика /tmp/vipfile. Говорим:
# auditctl -w /tmp/vipfileНу а потом с ним кто-то что-то делает:
1. $ touch /tmp/vipfileВ какой-то момент мы хотим посмотреть, было ли что-нибудь интересное с файликом:
2. $ echo test > /tmp/vipfile
3. $ echo test2 >> /tmp/vipfile
4. $ cp /tmp/vipfile /tmp/vipfile_backup
5. $ rm /tmp/vipfile
6. $ cp /tmp/vipfile_backup /tmp/vipfile
7. $ cat /tmp/vipfile
8. $ /tmp/vipfile
9. $ rm /tmp/vipfile
# aureport -fВсё как на ладони.
File Report
===============================================
# date time file syscall success exe auid event
===============================================
1. 10/25/2012 19:28:13 /tmp/ 2 yes /bin/touch 500 60063
2. 10/25/2012 19:28:17 /tmp/vipfile 2 yes /bin/bash 500 60064
3. 10/25/2012 19:28:21 /tmp/vipfile 2 yes /bin/bash 500 60065
4. 10/25/2012 19:28:29 /tmp/vipfile 2 yes /bin/cp 500 60066
5. 10/25/2012 19:28:35 /tmp/ 263 yes /bin/rm 500 60068
6. 10/25/2012 19:28:44 /tmp/ 2 yes /bin/cp 500 60070
7. 10/25/2012 19:28:56 /tmp/vipfile 2 yes /bin/cat 500 60071
8. 10/25/2012 19:29:01 /tmp/vipfile 59 no /bin/bash 500 60072
9. 10/25/2012 19:29:07 /tmp/ 263 yes /bin/rm 500 60074
вторник, 18 сентября 2012 г.
sshd не принимает ключ
Надо было нагиосу сделать вход по ключу на очередной ноде. Сделал - не пускает. Несколько раз сверил права на .ssh, на authorized_keys, на хомяки - всё правильно. Но не принимает ключ, давай пароль и всё тут. Самое забавное - таких серверов полно, все настроены одинакого - ходит нагиос по ключику. Попробовал себе ключ сделать - пускает.
-vvv ничего интересного кроме очевидного не показал:
Врубил DEBUG3 в конфиге демона:
-vvv ничего интересного кроме очевидного не показал:
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /var/spool/nagios/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Врубил DEBUG3 в конфиге демона:
И это через гугл навело на selinux )) Вот и все дела. Отключил и заработало.
debug3: mm_answer_keyallowed entering
debug3: mm_answer_keyallowed: key_from_blob: 0xaaaabbbbcc60
debug1: temporarily_use_uid: 333/333 (e=0/0)
debug1: trying public key file /home/nagios/.ssh/authorized_keys
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 333/333 (e=0/0)
debug1: trying public key file /home/nagios/.ssh/authorized_keys2
debug1: restore_uid: 0/0
Failed publickey for nagios from 178.111.22.33 port 58970 ssh2
debug3: mm_answer_keyallowed: key 0xaaaabbbbcc60 is not allowed
пятница, 7 сентября 2012 г.
ssh: укорачиваем команду
Уже как-то писал про то, как удалось сократить длину некот. git команд за счёт настройки хостов в ssh_config. Решил на ноуте сделать так же для наших хостов, чтобы не набивать "$ ssh username@host.domain.org".
Так, как писать секции самому неохота, сделал скриптик sshgen.sh, вызываемый в цикле:
Так, как писать секции самому неохота, сделал скриптик sshgen.sh, вызываемый в цикле:
#!/bin/bashРаботает так:
if [ $# -eq 0 ]; then
echo "Usage: sshgen.sh host domain user"
else
echo "Host $1"
echo " User $3"
echo " HostName $1.$2"
fi
$ for a in {1..7};do for b in vps$a;do ./sshgen.sh $b domain.com username; done; doneПолученный вывод суём в ssh_config и вместо "$ ssh username@host.domain.org" пишем "$ ssh host"
Host vps1
User username
HostName vps1.domain.com
Host vps2
User username
HostName vps2.domain.com
Host vps3
User username
HostName vps3.domain.com
Host vps4
User username
HostName vps4.domain.com
Host vps5
User username
HostName vps5.domain.com
Host vps6
User username
HostName vps6.domain.com
Host vps7
User username
HostName vps7.domain.com
среда, 5 сентября 2012 г.
ISP: account disabled by server administrator
Человек жалуется - просрочил оплату, был залочен. Оплатил, но "сайт досихпор неработает".
Смотрю, действительно залочен. Нашёл в основном конфиге апача секцию с его хомяком:
Дёрнул суспенд/унсуспенд - 0.
Руками потёр начинку секции. Вот теперь интересно - заменится ли ручная правка? )) Посмотрим..
Самый прикол, что лочился и разлочивался акк через испэшный http api. На их форуме нашёл пост про аналогичную ситуацию, но там акки оставались лоченными из-за порчи конфига апача лишними закрывающими тегами секций. Официальная позиция на этот счёт - да, баг имеет место и не только с конфигом апача. Но баг редкий и трудновоспроизводимый, поэтому пока не отловили.
Если тут есть связь - становится немножко грустно.
Смотрю, действительно залочен. Нашёл в основном конфиге апача секцию с его хомяком:
<Directory /var/www/username/data>
AllowOverride none
Deny from all
ErrorDocument 403 /disabled/index.html
</Directory>
Дёрнул суспенд/унсуспенд - 0.
Руками потёр начинку секции. Вот теперь интересно - заменится ли ручная правка? )) Посмотрим..
Самый прикол, что лочился и разлочивался акк через испэшный http api. На их форуме нашёл пост про аналогичную ситуацию, но там акки оставались лоченными из-за порчи конфига апача лишними закрывающими тегами секций. Официальная позиция на этот счёт - да, баг имеет место и не только с конфигом апача. Но баг редкий и трудновоспроизводимый, поэтому пока не отловили.
Если тут есть связь - становится немножко грустно.
пятница, 31 августа 2012 г.
четверг, 30 августа 2012 г.
среда, 29 августа 2012 г.
PHP и ./configure --prefix
Собираю сухосин. Не могу префикс задать, вместо моего /usr/local/php52 встаёт дефолтный.
Нашёл "фичу", епт: можно хоть обделаться, передавая конфигуратору опции, которые, между прочим, в хелпе конфигуратора перечислены, но он их затрёт данными, получаемыми от php-config. Странное поведение, по идее, должно быть наоборот. В общем, вместо префиксов просто задал
Нашёл "фичу", епт: можно хоть обделаться, передавая конфигуратору опции, которые, между прочим, в хелпе конфигуратора перечислены, но он их затрёт данными, получаемыми от php-config. Странное поведение, по идее, должно быть наоборот. В общем, вместо префиксов просто задал
./configure --with-php-config=/usr/local/php52/bin/php-config
вторник, 28 августа 2012 г.
Сборка php 5.4 для cpanel с php 5.3
Сказали, что надо для панелей запилить пых 5.4, сохранив основным 5.3.
Собрал c блекджеком, проститутками и параметрами:
Дальше самое интересное: в suphp указываем путь до нового пыха и в конфе апача добавляем хандлер:
/opt/suphp/etc/suphp.conf:
/usr/local/apache/conf/includes/pre_virtualhost_2.conf:
Теперь клиенту достаточно добавить в .htaccess:
Собрал c блекджеком, проститутками и параметрами:
./configure --prefix=/usr/local/php54 --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-mbstring --enable-pdo --enable-soap --enable-sockets --enable-wddx --enable-zip --with-bz2 --with-curl=/opt/curlssl/ --with-freetype-dir=/usr --with-gd --with-gettext --with-imap=/opt/php_with_imap_client/ --with-imap-ssl=/usr --with-jpeg-dir=/usr --with-kerberos --with-libdir=lib64 --with-libexpat-dir=/usr --with-libxml-dir=/opt/xml2 --with-libxml-dir=/opt/xml2/ --with-mcrypt=/opt/libmcrypt/ --with-mysql=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=/usr/bin/mysql_config --with-pcre-regex=/opt/pcre --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-pic --with-png-dir=/usr --with-tidy --with-xmlrpc --with-xpm-dir=/usr --with-xsl=/opt/xslt/ --with-zlib --with-zlib-dir=/usr --with-zend-vm --with-pgsql --with-pdo-mysql --with-pdo-pgsqlПришлось по мелочи либ доставить, конфигурялка подсказала. Взял стоковый php.ini, поправил лимиты на память, аплоад, пост и еррор лог задал.
Дальше самое интересное: в suphp указываем путь до нового пыха и в конфе апача добавляем хандлер:
/opt/suphp/etc/suphp.conf:
application/x-httpd-php54="php:/usr/local/php54/bin/php-cgi"
/usr/local/apache/conf/includes/pre_virtualhost_2.conf:
suPHP_AddHandler application/x-httpd-php54
Теперь клиенту достаточно добавить в .htaccess:
AddType application/x-httpd-php54 .php5 .php4 .php .php3 .php2 .phtmlСамое главное - не забыть закомментить всё при запуске easyapache ))
среда, 22 августа 2012 г.
Книжка про перл
$ mkdir beginning_perl
$ cd beginning_perl
$ lynx --source http://www.perl.org/books/beginning-perl/| grep pdf| awk -F"\"" '{print $4}' | xargs wget
$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Beginning_Perl.pdf -dBATCH 3145_Intro.pdf 3145_Chap01.pdf 3145_Chap02.pdf 3145_Chap03.pdf 3145_Chap04.pdf 3145_Chap05.pdf 3145_Chap06.pdf 3145_Chap07.pdf 3145_Chap08.pdf 3145_Chap09.pdf 3145_Chap10.pdf 3145_Chap11.pdf 3145_Chap12.pdf 3145_Chap13.pdf 3145_Chap14.pdf 3145_AppA.pdf 3145_AppB.pdf 3145_AppC.pdf 3145_AppD.pdf 3145_AppE.pdf 3145_AppF.pdf 3145_AppG.pdf 3145_AppH.pdf 3145_AppJ.pdf 3145_Index.pdf
Cpanel wildcard domains and nginx
На днях появилась такая проблемка:
1. Клиент в сипанели цепляет вайдкардный домен вида *.domain.com.
2. Панель добавляет алиас www.*.domain.com.
3. При генерации конфига nginx в директиву server_name попадает значение "*.domain.com www.*.domain.com"/
4. Nginx проверяет новый конфиг и говорит, что он invalid, т.к. "*" допускается только в начале или конце сервернейма.
Сипанель нельзя заставить генерить имена с "*" в середине, поэтому пришлось выгребать такие имена из нагенерённого конфига.
Сделал такую штуку:
1. Клиент в сипанели цепляет вайдкардный домен вида *.domain.com.
2. Панель добавляет алиас www.*.domain.com.
3. При генерации конфига nginx в директиву server_name попадает значение "*.domain.com www.*.domain.com"/
4. Nginx проверяет новый конфиг и говорит, что он invalid, т.к. "*" допускается только в начале или конце сервернейма.
Сипанель нельзя заставить генерить имена с "*" в середине, поэтому пришлось выгребать такие имена из нагенерённого конфига.
Сделал такую штуку:
#!/usr/bin/perlДергаю её после генерации конфига, в патч для скрипта-генератора:
my $filename=$ARGV[0];
open(IN, "<", $filename) or die "open error\n";
while (<IN>) {
my($line) = $_;
chomp($line);
if (m/server_name/) {
$line =~ s/\S+\*\S+//g;
}
print "$line\n";
}
--- build-conf.sh 2010-03-04 14:26:39.000000000 +0300
+++ build-conf.sh_new 2012-08-22 11:58:27.000000000 +0400
@@ -16,13 +16,16 @@
cd $ROOT
-if [ ! -f $NGINX/vhosts.conf.new ]; then
- touch $NGINX/vhosts.conf.new
- chmod 600 $NGINX/vhosts.conf.new
+if [ ! -f $NGINX/vhosts.conf.raw ]; then
+ touch $NGINX/vhosts.conf.raw
+ chmod 600 $NGINX/vhosts.conf.raw
fi
# build nginx conf using default template in $TMPL
-$ROOT/ngx_conf_gen.pl -c /usr/local/apache/conf/httpd.conf > $NGINX/vhosts.conf.new || exit 4
+$ROOT/ngx_conf_gen.pl -c /usr/local/apache/conf/httpd.conf > $NGINX/vhosts.conf.raw || exit 4
+
+# remove invalid wildcarded server_name (example: www.*.server.com)
+$ROOT/rm_badwildcard.pl $NGINX/vhosts.conf.raw > $NGINX/vhosts.conf.new
new=`$MD5 $NGINX/vhosts.conf.new | cut -f1 -d' '`
cur=`$MD5 $NGINX/vhosts.conf | cut -f1 -d' '`
понедельник, 13 августа 2012 г.
gem install pg fail
Поганый руби не собирает pg:
Задавать пути бесполезно, всё равно не находит ))
А на самом деле нужно поставить девел набор - gcc, make и т.д. и тогда всё соберётся )) Ну кто бы мог подумать )) А в еррорах это написать не судьба
# gem install pgОфигенно, вроде бы попросту не находит libpq-fe.h. А он есть ))
Building native extensions. This could take a while...
......
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Задавать пути бесполезно, всё равно не находит ))
А на самом деле нужно поставить девел набор - gcc, make и т.д. и тогда всё соберётся )) Ну кто бы мог подумать )) А в еррорах это написать не судьба
четверг, 26 июля 2012 г.
Ubuntu 12.04 suxx
Попросил клиент дедик с убунту 12. Разметку прислал без отдельного /tmp
Ставлю аптом пакеты, желаемые этим товарищем, а мне апт говорит:
Воркараунд - рамдиск. В /etc/fstab добавил:
Ставлю аптом пакеты, желаемые этим товарищем, а мне апт говорит:
E: Problem executing scripts DPkg::Pre-Invoke 'mount -o remount,exec /tmp'Вот так вот. Даже мысли недопускается о том, что /tmp может не быть вынесен отдельно.
Воркараунд - рамдиск. В /etc/fstab добавил:
tmpfs /tmp tmpfs defaults 0 0Замаунтил, поставил что надо, размаунтил, закомментил рамдиск.
пятница, 20 июля 2012 г.
Could not find a kernel path for virt type 'xen': Debian vs Ubuntu
Пытаюсь в ксене через virt-install сделать машинку с бубунтой.
Урлом указываю: http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/
После стягивания manifest имею:
Оказалось, в манифесте пути не совпадают с фактическими. Поэтому либвирт не может скачать файлики ксеновые.
Из дебага:
http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/xen/vmlinuz
Для сравнения взял дебиан, урл:
http://mirrors.cn99.com/debian/dists/Debian6.0.5/main/installer-amd64/
Всё шикарно поставилось )
ЗЫ
Только после сетапа надо в виртуалке ксен ядро поставить и конфиг машинки поправить (http://www.howtoforge.com/installing-debian-squeeze-6.0-domu-on-centos-5.5-x86_64-dom0)
Урлом указываю: http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/
После стягивания manifest имею:
Could not find a kernel path for virt type 'xen'
Оказалось, в манифесте пути не совпадают с фактическими. Поэтому либвирт не может скачать файлики ксеновые.
Из дебага:
Fri, 20 Jul 2012 15:12:40 DEBUG HTTP hasFile: didn't find http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/images/xen/vmlinuzА всё потому, что на самом деле путь:
http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/xen/vmlinuz
Для сравнения взял дебиан, урл:
http://mirrors.cn99.com/debian/dists/Debian6.0.5/main/installer-amd64/
Всё шикарно поставилось )
ЗЫ
Только после сетапа надо в виртуалке ксен ядро поставить и конфиг машинки поправить (http://www.howtoforge.com/installing-debian-squeeze-6.0-domu-on-centos-5.5-x86_64-dom0)
среда, 18 июля 2012 г.
пятница, 13 июля 2012 г.
Self signed cert and existing key
Как сгенерить самоподписанный сертификат для существующего закрытого ключа:
$ openssl req -new -key mykey.key -out myreq.req -subj '/C=RU/ST=Moscow/L=Moscow/O=AccessD Lab/OU=SA Dept/CN=accessdlab.blogspot.com'
$ openssl req -x509 -key mykey.key -days 1825 -in myreq.req -out mycert.crt
вторник, 19 июня 2012 г.
Апотекарий Ксиан
Ну вот он и готов, имя на свитке написано )
Наверно, надо вокруг фонарика сделать отблеск, но пока не умею. Зато удалось сделать правильную линзу, с оранжевым отблеском и бликом, причём с первого захода )
Теперь начал своего многострадального капеллана. Задолбался заделывать файнкастовый брак, исправил самый заметный и начал красить:
Наверно, надо вокруг фонарика сделать отблеск, но пока не умею. Зато удалось сделать правильную линзу, с оранжевым отблеском и бликом, причём с первого захода )
Теперь начал своего многострадального капеллана. Задолбался заделывать файнкастовый брак, исправил самый заметный и начал красить:
среда, 13 июня 2012 г.
Защитился!
Ну вот я и защитился )
На отлично ) Теперь вопрос в цвете корки. У меня всего 7 четвёрок, но фишка в том, что при расчёте корки берут не все оценки, а входящие в диплом. В диплом попадают не все предметы, а часть пятёрок пропадает из-за объединения курсов - например 4 матана (или 5, не помню сколько их там было) дадут всего одну оценку. А вот четвёрки разбросало так, что они не объединятся и не пересчитаются (
Ещё сказали, что у меня рекомендация на аспирантуру.. Вот думаю - надо оно мне или нет...
А ещё, всё таки немножко грустно, что инст кончился. С одной стороны, привык уже к нему, не смотря на весь гемор, а с другой - как будто в жизни прошла какая-то черта на возрастной шкале..
На отлично ) Теперь вопрос в цвете корки. У меня всего 7 четвёрок, но фишка в том, что при расчёте корки берут не все оценки, а входящие в диплом. В диплом попадают не все предметы, а часть пятёрок пропадает из-за объединения курсов - например 4 матана (или 5, не помню сколько их там было) дадут всего одну оценку. А вот четвёрки разбросало так, что они не объединятся и не пересчитаются (
Ещё сказали, что у меня рекомендация на аспирантуру.. Вот думаю - надо оно мне или нет...
А ещё, всё таки немножко грустно, что инст кончился. С одной стороны, привык уже к нему, не смотря на весь гемор, а с другой - как будто в жизни прошла какая-то черта на возрастной шкале..
среда, 6 июня 2012 г.
Рамдиск и свободная оператива
Как считается память, отведённая под рамдиск?
Оказалось, что свободное место на рамдиске подсчитывается, как свободная память, а занятое - и как used, и как cached
Оказалось, что свободное место на рамдиске подсчитывается, как свободная память, а занятое - и как used, и как cached
вторник, 5 июня 2012 г.
Ночь, диплом и мячик
Вот самое офигенное, это когда ты в полчетвёртого ночи отрываешься от диплома чтобы сделать себе кофе и тут краем глаза видишь движение на полу около ног. А это, оказывается, ни с того ни с сего на кухню вкатился мячик из коридора.. Привет, Эдгар! Так, млин, никаких нервов не хватит.
понедельник, 4 июня 2012 г.
Билайны продолжают жечь
Проблема - билайн у себя зачем-то зафильтровал FTP трафик своему клиенту до нас. То ли они опять с чем-то борются, то ли ещё просто нашествие мозговых слизней. Суть в том, что клиент поинтересовался у них насчёт фильтрации. Ответ билайна:
Ппц, вот что там за люди работают?
Отвечая на Ваш вопрос, хотим сообщить, что наши файрволлы снабжают сессии портами выше 1024, а указанный Вами хостинг не пускает на свой FTP сервис TCP сессии с source портом выше 1024.Я вот даже не знаю, что и сказать. Видимо, то существо, что писало этот бред, хотело выразить что-то типа: "Мы д'артаньяны, ничего не фильтруем, а фильтуют нед'артаньяны хостеры, да ещё верхний диапазон исходящих портов".
Ппц, вот что там за люди работают?
суббота, 2 июня 2012 г.
Как сделать вкусную вещь
А именно феттучини с сёмгой и черри.
Нужны:
1. Пачка феттучини, хотя у меня вся пачка не влезает, беру примерно 450 г.
2. Кусок сёмги или форели граммов на 300.
3. Небольшая луковица.
4. Штучек 12-15 черри.
5. Треть стакана вермута.
6. Кусочек сливочного масла
7. Пакетик сливок 200 мл.
8. Сыр пармезал - 150-200 г.
9. Приправы - соль, орегано, чёрный перец. Я юзаю "4 перца"
10. Для сервировки нужно несколько черри и немного лососевой икры.
Есть 2 способа приготовления:
1. По порядку - сначала всё порезать и подготовить и потом только добавлять ингридиенты - занимает примерно час.
2. По-ковбойски - сначала ставить сковроду с кастрюлей и резать всё походу - занимает около 45 минут.
Описываю первый, так как не приходится метаться как ошпаренному.
1. Мелко режем лук, рыбку тонкими полосками см 3-4 длиной, трём сыр, режем черри на 4 части.
2. Растапливаем на сковороде сливочное масло, высыпаем лук. Ставим кастрюлю с водой.
3.Когда лук обжарился - убираем его из сковороды, высыпаем на его место рыбу.
4. Когда рыбка чуток обжарится - выливаем вермут и немножко перчим.
5. Даём пару минут постоять, потом добавляем к рыбе предварительно обжаренный лук и черри, немножко солим помидорки. По идее, вода уже закипела, бросает туда феттучини.
6. Даём немножечко постоять помидоркам, минутки 2. Постоянно мешаем феттучини.
7. Когда помидорки немножко потушились, выливаем сливки.
8. Сливки прогрелись, добавляем перец и орегано.
9. Ждём пару минут и высыпаем сыр.
10. Ждём, пока растопится сыр, пробуем на готовность феттучини.
11. Феттучини уже готовы или ну почти готовы. Как следует мешаем соус, сливаем воду и выкладываем феттучини в соус.
12. Тщательно перемешиваем и даём постоять подкрышкой минутку-две
13. Наша паста готова ) Подайм феттучини с разрезанным пополам черри и небольшой горкой икры.
Нужны:
1. Пачка феттучини, хотя у меня вся пачка не влезает, беру примерно 450 г.
2. Кусок сёмги или форели граммов на 300.
3. Небольшая луковица.
4. Штучек 12-15 черри.
5. Треть стакана вермута.
6. Кусочек сливочного масла
7. Пакетик сливок 200 мл.
8. Сыр пармезал - 150-200 г.
9. Приправы - соль, орегано, чёрный перец. Я юзаю "4 перца"
10. Для сервировки нужно несколько черри и немного лососевой икры.
Есть 2 способа приготовления:
1. По порядку - сначала всё порезать и подготовить и потом только добавлять ингридиенты - занимает примерно час.
2. По-ковбойски - сначала ставить сковроду с кастрюлей и резать всё походу - занимает около 45 минут.
Описываю первый, так как не приходится метаться как ошпаренному.
1. Мелко режем лук, рыбку тонкими полосками см 3-4 длиной, трём сыр, режем черри на 4 части.
2. Растапливаем на сковороде сливочное масло, высыпаем лук. Ставим кастрюлю с водой.
3.Когда лук обжарился - убираем его из сковороды, высыпаем на его место рыбу.
4. Когда рыбка чуток обжарится - выливаем вермут и немножко перчим.
5. Даём пару минут постоять, потом добавляем к рыбе предварительно обжаренный лук и черри, немножко солим помидорки. По идее, вода уже закипела, бросает туда феттучини.
6. Даём немножечко постоять помидоркам, минутки 2. Постоянно мешаем феттучини.
7. Когда помидорки немножко потушились, выливаем сливки.
8. Сливки прогрелись, добавляем перец и орегано.
9. Ждём пару минут и высыпаем сыр.
10. Ждём, пока растопится сыр, пробуем на готовность феттучини.
11. Феттучини уже готовы или ну почти готовы. Как следует мешаем соус, сливаем воду и выкладываем феттучини в соус.
12. Тщательно перемешиваем и даём постоять подкрышкой минутку-две
13. Наша паста готова ) Подайм феттучини с разрезанным пополам черри и небольшой горкой икры.
четверг, 31 мая 2012 г.
Ура, БЖД подписан!!!!
Ппц, самым гемором в дипломе оказалось не решение проблемы синхронизации капчи пакетов и их забрасывания в мускуль, а проектирование защиты разработчика от поражения эл.током )))
Думал, никогда не сдам эту фигню, но сегодня, наконец, с 4 или 5 раза мне её подписали.
Вот так, диплом по программированию, а дерут больше всего по проектированю света, вентиляции и прочей лабуде, не имеющей отношения к делу.
Думал, никогда не сдам эту фигню, но сегодня, наконец, с 4 или 5 раза мне её подписали.
Вот так, диплом по программированию, а дерут больше всего по проектированю света, вентиляции и прочей лабуде, не имеющей отношения к делу.
воскресенье, 27 мая 2012 г.
суббота, 5 мая 2012 г.
di.fm закрыли gabber
Ппц, захожу тут на di.fm послушать радио - не могу найти габберский канал. Нагуглил его - убрали с главной на /gabber. Тыкаю на ссылочку - влц говорит: давай логипасс.
Полез форум читать, там натыкаюсь на:
Хорошо премиум на год не купил.
Полез форум читать, там натыкаюсь на:
We've retired this channel, it was orphaned over 5 years ago and has had no new content since.Спасибо, бл2346ть, тебе, di.fm! Нет обновлений пять лет - и хорошо, можно подумать, до 2007 года мало хардкора хорошего...
Хорошо премиум на год не купил.
суббота, 21 апреля 2012 г.
fork vs pthread
Попытка построить ядро моего диплома, включающего сбор ip, tcp и http заголовков с отправкой их в mysql для последующего анализа на базе одного процесса провалилась - инсерт сильно дольше приёма очередного пакета при большом трафике, в БД каша получается.
Попытался делать так - форкать отдельный процесс под отправку данных в БД и передавать ему обработанный пакет через пайп - тот же эффект.
Стал одним процессом собирать запросы в shared memory, дочерним зеркалировать участок памяти и из зеркала слать. Синхронизацию делал через posix semaphores. Что получил - при большом трафике тот процесс, что загребает трафик, постоянно заходит в свою критическую зону, а отсылающий процесс просто висит в ожидании, отжирая целое ядро.
Уже было отчаился, но решил переписать с тредами - и, о диво! Оно заработало!!!
Механика такая: создаём 2 треда - для сбора трафика и для отправки.
Первый в pcap_loop callout раздирает пакет и формирует VALUE список, добавляя его в своей критической секции в шаренный через анонимный mmap участок.
Второй тред в своей критикал цепляет содержимое вышеуказанного участка в свой буфер и после выхода из критикала спокойно инсертит одним запросом. Сегодня вечером выкатил на продакшн, было около 3 тыс. инсертов в секунду.
Вот сам код, непричёсанный ещё, правда:
https://github.com/speedcorezombie/pget/blob/master/pget.c
Попытался делать так - форкать отдельный процесс под отправку данных в БД и передавать ему обработанный пакет через пайп - тот же эффект.
Стал одним процессом собирать запросы в shared memory, дочерним зеркалировать участок памяти и из зеркала слать. Синхронизацию делал через posix semaphores. Что получил - при большом трафике тот процесс, что загребает трафик, постоянно заходит в свою критическую зону, а отсылающий процесс просто висит в ожидании, отжирая целое ядро.
Уже было отчаился, но решил переписать с тредами - и, о диво! Оно заработало!!!
Механика такая: создаём 2 треда - для сбора трафика и для отправки.
Первый в pcap_loop callout раздирает пакет и формирует VALUE список, добавляя его в своей критической секции в шаренный через анонимный mmap участок.
Второй тред в своей критикал цепляет содержимое вышеуказанного участка в свой буфер и после выхода из критикала спокойно инсертит одним запросом. Сегодня вечером выкатил на продакшн, было около 3 тыс. инсертов в секунду.
Вот сам код, непричёсанный ещё, правда:
https://github.com/speedcorezombie/pget/blob/master/pget.c
среда, 11 апреля 2012 г.
Настольный Horus Heresy
Не удержался и заказал себе на амазоне настольник Horus Heresy )
Уже приехал в шипито )
Собственно, сама игрулька:
Где-нибудь в начале мая отправлю )
Уже приехал в шипито )
Собственно, сама игрулька:
Где-нибудь в начале мая отправлю )
Ещё прикол с аллиедом
Клиент жалуется - на двух железках входящая скорость нормальная, под 50 Мбит/сек, исходящая скорость низкая, около 3х Мбит/сек. На третьей всё ок. Все железки разные, оси - на 2х фряха, на одной винда. Проблемы у виндового и фряшного серваков. Свич - AT8000GS-48 с прошивкой 2.0.0.26.
Смотрю - либо на серверах косяк, либо свич неисправен, ибо шейперов нет.
В конце концов нашли засаду - выключенный negotiation на портах свича. Вырубал в своё время с целью переключения портов принудительно в режим 100f. Врубил негоциэйшн - и пошла скорость )
Скорость до сотни пришлось зарезать rate-limit.
Итого: по-дефолту лучше negotiation оставлять.
Хотя был случай, когда клиент наоборот просил вырубить его.
Смотрю - либо на серверах косяк, либо свич неисправен, ибо шейперов нет.
В конце концов нашли засаду - выключенный negotiation на портах свича. Вырубал в своё время с целью переключения портов принудительно в режим 100f. Врубил негоциэйшн - и пошла скорость )
Скорость до сотни пришлось зарезать rate-limit.
Итого: по-дефолту лучше negotiation оставлять.
Хотя был случай, когда клиент наоборот просил вырубить его.
понедельник, 9 апреля 2012 г.
github
Для удобства синка сделал ключик и секцию в конфига ssh:
Теперь процесс выглядит так:
Host github.com
User speedcorezombie
HostName github.com
IdentityFile /home/accessd/.ssh/id_rsa
Теперь процесс выглядит так:
git clone http://github.com/speedcorezombie/pget.git
поработали, git add file
git commit -m 'some fixes'
git remote add speed git@github.com:speedcorezombie/pget.git
git push -u speed master
пятница, 6 апреля 2012 г.
Международные посылки
Прикинул тут, у меня уже примерно 23-24 отправки. Из них 18 - шипито, US, 1 - хандтек, UK, остальное штейнар, DE. Ещё было несколько с тинидила - чайна, но там всякая мелочёвка, типа кабелей.
Проблем, по сути было 3:
2 с немецкими посылками, связаны с особенностями работы конкретного почтового отделения.
В первом случае посылка месяц висела в состоянии "Покинула место МО", на почте мне этот месяц говорили, что у них ничего нет, пока я не узнал в отделе претензий валовый номер мешка, ушедшего с сортировки. Когда они сверили с мешком, то заявили, что посылку отправили обратно.
Еле перехватил на Нагатинской.
Второй случай - 3 недели висит в том же "Покинула место МО". Сегодня пошёл на почту - они нашли мою коробку. Оказалось, что таможенники себе все документы оставили и типа как коробка таможню прошла, в отделение прибыла, но без бумажки с печатью. А тётушки не знали, что с ней делать и извещение посылать не стали. Но отдали в руки.
А вот третья проблема - подвисание на 2 недели в состоянии прибытия на сортировку в Лос Анжелес похоже была связана с тем, что в коробке были эпоксидные глины и всякие краски. Видимо, в связи с этим задержали.
После этого зависания посылка оказалась на просторах этой страны и через неск. дней её привезли.
Итого - в среднем, проблемы возникают с каждой 8 посылкой. Это если смотреть в отрыве от способа доставки.
Проблем, по сути было 3:
2 с немецкими посылками, связаны с особенностями работы конкретного почтового отделения.
В первом случае посылка месяц висела в состоянии "Покинула место МО", на почте мне этот месяц говорили, что у них ничего нет, пока я не узнал в отделе претензий валовый номер мешка, ушедшего с сортировки. Когда они сверили с мешком, то заявили, что посылку отправили обратно.
Еле перехватил на Нагатинской.
Второй случай - 3 недели висит в том же "Покинула место МО". Сегодня пошёл на почту - они нашли мою коробку. Оказалось, что таможенники себе все документы оставили и типа как коробка таможню прошла, в отделение прибыла, но без бумажки с печатью. А тётушки не знали, что с ней делать и извещение посылать не стали. Но отдали в руки.
А вот третья проблема - подвисание на 2 недели в состоянии прибытия на сортировку в Лос Анжелес похоже была связана с тем, что в коробке были эпоксидные глины и всякие краски. Видимо, в связи с этим задержали.
После этого зависания посылка оказалась на просторах этой страны и через неск. дней её привезли.
Итого - в среднем, проблемы возникают с каждой 8 посылкой. Это если смотреть в отрыве от способа доставки.
четверг, 5 апреля 2012 г.
билайн и блокировка айпишников
эти болваны из билайна по писульке или звонку неизвестного представителя силовых структур заблокировали адрес сервака, на котором сидит около тысячи акков и 3 тысячи доменов.
При этом никаких абуз нам не писали, просто взяли и заблокировали.
Когда нам хлынул потом обращений от клиентов, стали разбираться - как так?
Что характерно, клиенты сначала звонили провайдеру с жалобой - через вас сайт не работает, через другого прова работает. А билайн им и говорит - "мы никогда не блокировали и не блокируем адреса, звоните хостеру". И это при том, что интернеты завалены постами "билайн блокирует ip адрес".
На второй день телефонных разговоров с этими недоумками выяснилось наконец, что проблема не в аварии, про которую они нам весь прошлый день твердили, а да, по предписанию от ментов заблокирован адрес, потому что на нем домен, который этому менту не понравился.
Убирать блокировку, равно как и сообщать домен, из-за которого адрес заблокирован, они не хотят. Что за предписание - тоже не говорят.
При этом клиентам они продолжают говорить, что проблема у хостера, т.к. билайн белый и пушистый никогда блять ничего не блокирует.
Придётся менять для всех клиентов айпишник и вдобавок каждому доказывать, что билайн им наврал.
Что характерно - это единственный такой больной на голову пров. Больше таких выкрутасов ну у кого не видел.
И да, кстати, в прошлом году они уже такое делали с другим сервером. Благо, на нём было несколько человек всего.
вот, кстати, пара статей на тему:
http://tsapel-man.livejournal.com/15146.html
http://vorugamnet.livejournal.com/635.html
При этом никаких абуз нам не писали, просто взяли и заблокировали.
Когда нам хлынул потом обращений от клиентов, стали разбираться - как так?
Что характерно, клиенты сначала звонили провайдеру с жалобой - через вас сайт не работает, через другого прова работает. А билайн им и говорит - "мы никогда не блокировали и не блокируем адреса, звоните хостеру". И это при том, что интернеты завалены постами "билайн блокирует ip адрес".
На второй день телефонных разговоров с этими недоумками выяснилось наконец, что проблема не в аварии, про которую они нам весь прошлый день твердили, а да, по предписанию от ментов заблокирован адрес, потому что на нем домен, который этому менту не понравился.
Убирать блокировку, равно как и сообщать домен, из-за которого адрес заблокирован, они не хотят. Что за предписание - тоже не говорят.
При этом клиентам они продолжают говорить, что проблема у хостера, т.к. билайн белый и пушистый никогда блять ничего не блокирует.
Придётся менять для всех клиентов айпишник и вдобавок каждому доказывать, что билайн им наврал.
Что характерно - это единственный такой больной на голову пров. Больше таких выкрутасов ну у кого не видел.
И да, кстати, в прошлом году они уже такое делали с другим сервером. Благо, на нём было несколько человек всего.
вот, кстати, пара статей на тему:
http://tsapel-man.livejournal.com/15146.html
http://vorugamnet.livejournal.com/635.html
среда, 28 марта 2012 г.
Allied telesis AT-8000GS/48 работает как хаб
Итак, есть свежекупленные AT-8000GS/48 с прошивкой 2.0.0.22.
С ними приколы:
1. Не лёрнятся маки. Вернее, некоторые лёрнятся, но единицы из сотен. Установить чёткую зависимость не удалось.
2. Перестают подниматься порты. Т.е. физически линк есть, ethtool показывает, что всё ок. Сам свич видит, что физический линк есть, но по статусу порт в дауне и не апается.
3. Были приколы с тем, что не форвардились кадры в пределах отдельно взятого влана, пока тэг не сменили.
Прошили на 2.0.0.26, любезно предоставленную коллегами из Allied Telesis (свободную скачку зареганным юзерам запретили), и как минимум первая проблема исчезла. 2 и 3 пока не проявились.
В общем, надо прошиваться на 2.0.0.26, если свич не лёрнит, как надо )
С ними приколы:
1. Не лёрнятся маки. Вернее, некоторые лёрнятся, но единицы из сотен. Установить чёткую зависимость не удалось.
2. Перестают подниматься порты. Т.е. физически линк есть, ethtool показывает, что всё ок. Сам свич видит, что физический линк есть, но по статусу порт в дауне и не апается.
3. Были приколы с тем, что не форвардились кадры в пределах отдельно взятого влана, пока тэг не сменили.
Прошили на 2.0.0.26, любезно предоставленную коллегами из Allied Telesis (свободную скачку зареганным юзерам запретили), и как минимум первая проблема исчезла. 2 и 3 пока не проявились.
В общем, надо прошиваться на 2.0.0.26, если свич не лёрнит, как надо )
суббота, 24 марта 2012 г.
понедельник, 19 марта 2012 г.
libpcap, продолжение
Дополнил хэлло экстракцией http пакета, теперь вывод выглядит так:
Packet capturedТеперь осталось решить, какие поля http заголовка заграббить в базу )
IP header lengh: 20
Packet size: 60
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: SYN
Packet captured
IP header lengh: 20
Packet size: 60
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 52987
Flags: SYN ACK
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 20
Packet size: 372
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: ACK
GET / HTTP/1.1
Host: speedcorezombie.net
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 52987
Flags: ACK
Packet captured
IP header lengh: 20
Packet size: 323
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 52987
Flags: ACK
HTTP/1.1 200 OK
Date: Mon, 19 Mar 2012 19:26:14 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Sun, 18 Mar 2012 20:52:54 GMT
ETag: "6e653-6-4bb8aa02c9580"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html; charset=UTF-8
hello
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: ACK FYN
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 52987
Flags: ACK FYN
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 52987
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 20
Packet size: 52
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 52987
Flags: ACK
libpcap hello
Надо граббить ip,tcp и http хэдеры для последующего анализа. Пока вот для теста наваял этакий хелловорлд:
Вывод такой (запрос простой html странички):
#include <pcap/pcap.h>#include <linux/ip.h>#include <linux/tcp.h>#include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>int main() {char* device; // Sniffing devicechar errbuf[PCAP_ERRBUF_SIZE]; // Error message bufferpcap_t* handle; // Session handlestruct bpf_program fp; // The compiled filter expressionchar filter_exp[] = "port 80"; // The filter expressionbpf_u_int32 mask; // The netmask of our sniffing devicebpf_u_int32 net; // The IP of our sniffing devicestruct pcap_pkthdr header; // The header that pcap gives usconst u_char* packet; // The actual packetstruct iphdr* ipheader = NULL; // Pointer to the IP headerstruct tcphdr* tcpheader = NULL; // Pointer to the TCP headerdevice = NULL;memset(errbuf, 0, PCAP_ERRBUF_SIZE);int count;device = pcap_lookupdev(errbuf);printf("Device: %s\n", device);printf("filter: %s\n", filter_exp);if (pcap_lookupnet(device, &net, &mask, errbuf) == -1) {fprintf(stderr, "Can't get netmask for device %s\n", device);net = 0;mask = 0;}handle = pcap_open_live(device, 2048, 0, 512, errbuf);if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) {fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));exit(1);}if (pcap_setfilter(handle, &fp) == -1) {fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));exit(1);}count = 100;while (count) {// Try to get packet. If capture fail - try next.if ( (packet = pcap_next(handle, &header)) == NULL) {fprintf(stderr, "ERROR: Error getting the packet\n", errbuf);continue;} elsefprintf(stderr, "Packet captured\n");// Extract IP headeripheader = (struct iphdr *)(packet + 14);printf("IP header lengh: %d\n", ipheader->ihl);printf("Source IP: %s\n", inet_ntoa( *(struct in_addr *) &ipheader->saddr));printf("Destination IP: %s\n", inet_ntoa( *(struct in_addr *) &ipheader->daddr));// Extract TCP headertcpheader = (struct tcphdr *)(packet + 14 + ipheader->ihl * 4);printf("Source port: %d\n", ntohs(tcpheader->source));printf("Destination port: %d\n", ntohs(tcpheader->dest));printf("Flags: ");if (tcpheader->syn)printf("SYN ");if (tcpheader->ack)printf("ACK ");if (tcpheader->fin)printf("FYN ");printf("\n");printf("\n");}pcap_close(handle);return 0;}
Вывод такой (запрос простой html странички):
# ./pcap
Device: wlan0
filter: port 80
ERROR: Error getting the packet
ERROR: Error getting the packet
ERROR: Error getting the packet
ERROR: Error getting the packet
ERROR: Error getting the packet
Packet captured
IP header lengh: 5
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 53375
Destination port: 80
Flags: SYN
Packet captured
IP header lengh: 5
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 53375
Flags: SYN ACK
Packet captured
IP header lengh: 5
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 53375
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 5
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 53375
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 5
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 53375
Flags: ACK
Packet captured
IP header lengh: 5
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 53375
Flags: ACK
Packet captured
IP header lengh: 5
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 53375
Destination port: 80
Flags: ACK
Packet captured
IP header lengh: 5
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 53375
Flags: ACK FYN
Packet captured
IP header lengh: 5
Source IP: 192.168.10.108
Destination IP: 178.21.10.7
Source port: 53375
Destination port: 80
Flags: ACK FYN
Packet captured
IP header lengh: 5
Source IP: 178.21.10.7
Destination IP: 192.168.10.108
Source port: 80
Destination port: 53375
Flags: ACK
ERROR: Error getting the packet
понедельник, 12 марта 2012 г.
Госы сданы
Пришли в инст, у нас отобрали зачётки и отвели куда-то на нижние этажи, где усадили за работу. Через 2 часа стали сдавать. В итоге почти всем дали по пять, но зачётки не отдали )
суббота, 10 марта 2012 г.
Как заставить работать 6pm.com
1. Купить за 4.5$ в месяц впс в BurstNET. Я там на какую-то срочную акцию попал, поэтому мну скинули доллар. Взял в Лос Анжелесе.
2. Вкатить openvpn. Не забыть врубить tun. Настроить можно, например, как тут:
http://wolandblog.com/1103-ustanovka-i-nastrojka-openvpn-na-centos-5-3
Мой хистори:
3. Настроить NAT:
Альтернатива - халявный инстанс в амазоне. Но на мои 2 акка халява не положена, а ещё один делать впадлу.
2. Вкатить openvpn. Не забыть врубить tun. Настроить можно, например, как тут:
http://wolandblog.com/1103-ustanovka-i-nastrojka-openvpn-na-centos-5-3
Мой хистори:
17 wget http://mirror.optus.net/epel/5Server/x86_64/epel-release-5-4.noarch.rpm
18 yum localinstall epel-release-5-4.noarch.rpm --nogpgcheck
19 yum install openvpn
20 touch /etc/openvpn/openvpn.conf
21 mkdir /etc/openvpn/ccd
22 mkdir /etc/openvpn/keys
26 mkdir /etc/openvpn/easy-rsa
36 cp -r /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
38 cd /etc/openvpn/easy-rsa/
39 chmod +x clean-all
40 chmod +x build*
41 vi /etc/openvpn/easy-rsa/vars
42 cd /etc/openvpn/easy-rsa
48 source ./vars
49 ./clean-all
50 ./build-ca
51 ./build-key-server vpnserver
52 cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/keys/ca.crt
53 cp /etc/openvpn/easy-rsa/keys/vpnserver.crt /etc/openvpn/keys/vpnserver.crt
54 cp /etc/openvpn/easy-rsa/keys/vpnserver.key /etc/openvpn/keys/vpnserver.key
56 ./build-dh
57 cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/keys/dh1024.pem
58 vi /etc/openvpn/openvpn.conf
59 echo "ifconfig-push 172.16.0.101 172.16.0.102" > /etc/openvpn/ccd/accessd
61 ./build-key accessd
68 cd /etc/openvpn/easy-rsa/keys/
69 tar czf accessd.tgz accessd.key accessd.crt ca.crt
3. Настроить NAT:
sysctl net.ipv4.ip_forward=14. Настроить клиента и можно пулять трафик в заппосовскую сеть через наш впс в ЛА.
/sbin/iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
/sbin/iptables -A FORWARD -i venet0 -o tun0 -m state/sbin/iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
Альтернатива - халявный инстанс в амазоне. Но на мои 2 акка халява не положена, а ещё один делать впадлу.
вторник, 21 февраля 2012 г.
IPMI на Etegro
IPMI, стоящий на этегровских железках, требует оракловую жаву!
Я вот, блин, год назад настул на эти грабли и благополучно забыл.
А вот записывать надо, чтобы не забывать!
Я вот, блин, год назад настул на эти грабли и благополучно забыл.
А вот записывать надо, чтобы не забывать!
MySQL, падающий каждые 10 сек
Сабж. Неск. битриксовых баз + плесковая. Более менее юзается одна.
Делаешь tail -f лога - там регулярно валится:
Посмотрел по логу - везде фигурирует b_stat_searcher_hit.
Прогнал mysqlcheck - табла рефералов битая.
В общем, дропнул обе и создал заново, запретив юзерам апдейты при помощи innodb_force_recovery=2.
База падать перестала.
ЗЫ
Собственно, к чему клоню - проблема вызывалась двумя закосяченными весьма второстепенными табличками, но мускуль своим варнингом:
Общий смысл того кода был - проблема связана либо с операционной системой, либо памятью, либо с процом, либо с дисками, либо с чипсетом, либо ещё какие-то хардварные проблемы.
Делаешь tail -f лога - там регулярно валится:
Посмотрел - в базе половина таблиц в myisam, половина в innodb. По-дефолту почему-то стоит myisam. Поменял дефолный тип хранилища на иннодб, заальтерил в таблицах движок на иннодб.
120221 9:54:20 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.
......
......
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 81536 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd=0x5a0a570
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
Cannot determine thread, fp=0x40d53fb0, backtrace may not be correct.
Stack range sanity check OK, backtrace follows:
(nil)
New value of fp=0x5a0a570 failed sanity check, terminating stack trace!
Please read http://dev.mysql.com/doc/mysql/en/using-stack-trace.html and follow instructions on how to resolve the stack trace. Resolved
stack trace is much more helpful in diagnosing the problem, so please do
resolve it
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x5a48970 = INSERT INTO b_stat_searcher_hit(DATE_HIT, SEARCHER_ID, URL, URL_404, IP, USER_AGENT, HIT_KEEP_DAYS, SITE_ID) VALUES (now(), 2, 'http://www.xxx.ru:80/forum/index.php?print=Y&PAGE_NAME=profile_view&UID=1690', 'N', '66.249.66.68', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', null, 's1')
thd->thread_id=2
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Посмотрел по логу - везде фигурирует b_stat_searcher_hit.
Прогнал mysqlcheck - табла рефералов битая.
В общем, дропнул обе и создал заново, запретив юзерам апдейты при помощи innodb_force_recovery=2.
База падать перестала.
ЗЫ
Собственно, к чему клоню - проблема вызывалась двумя закосяченными весьма второстепенными табличками, но мускуль своим варнингом:
"It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware."морально настраивал на проблемы иного характера. Вспомнилась расшифровка одного из блюскриновых варнингов лет 5 назад.
Общий смысл того кода был - проблема связана либо с операционной системой, либо памятью, либо с процом, либо с дисками, либо с чипсетом, либо ещё какие-то хардварные проблемы.
Почта США тоже косячит
Уехала 1 февраля моя посылка из шипито. 2 числа попала на сортировку usps в ЭлЭй сити, и ппц, как в воду канула.. Это при том, что обычто коробки проходили через Лос-Анжелес максимум 2 дня и улетали к нам. До России, к слову, все добирались от 4 до 9 дней.
К 18 февраля я потерял всякую надежду на то, что всё само собой разрулится, написал в шипито. Сергей С. (кто с шипито работает, знает, о ком я) по-русски ответил, что надо ждать 30 дня с отправки и писать на розыск.
Я подумал, что посылку просто завернули из-за того, что в декларации были слова "epoxy" и "paint". "Paint" много всяких, но не в баллонах.
Обидно, короче, стало - и коробка весьма недешёвая, и в России этого хозяйства, типа "magic sculpey", нет. А если кто и привозит - разлетается в момент.
И тут внезапно коробочка затрекалась у нас на импорте.
Т.е. посылка шла ~ 18 дней, а у USPS есть нормативы по доставке экспрессов. + факт эксорта не протрекался.
Так что, не только наши косячат )
У коллеги в декабре коробка перед отправкой изъездила всю Калифорнию аж 3 раза )
Ладно, главное, чтобы теперь наши не 18 дней везли, а побыстрее )
К 18 февраля я потерял всякую надежду на то, что всё само собой разрулится, написал в шипито. Сергей С. (кто с шипито работает, знает, о ком я) по-русски ответил, что надо ждать 30 дня с отправки и писать на розыск.
Я подумал, что посылку просто завернули из-за того, что в декларации были слова "epoxy" и "paint". "Paint" много всяких, но не в баллонах.
Обидно, короче, стало - и коробка весьма недешёвая, и в России этого хозяйства, типа "magic sculpey", нет. А если кто и привозит - разлетается в момент.
И тут внезапно коробочка затрекалась у нас на импорте.
Т.е. посылка шла ~ 18 дней, а у USPS есть нормативы по доставке экспрессов. + факт эксорта не протрекался.
Так что, не только наши косячат )
У коллеги в декабре коробка перед отправкой изъездила всю Калифорнию аж 3 раза )
Ладно, главное, чтобы теперь наши не 18 дней везли, а побыстрее )
суббота, 11 февраля 2012 г.
Про блоги
Уже не раз ловлю себя на том, что мне сложно найти что-то из старых постов. Забыл где-то тэг поставить и всё..
В общем, идея в тематическом разделении блога на несколько частей. Линуксы, фряхи, жуниперы и прочее вынести в технический блог, а ваху с красками, терминаторами и Альфа легионами - в вхшный. Остальное тут оставить.
Тогда будет легче что-то найти. Но разгребать пока некогда.
А ещё шаблон пора сменить, этот поднадоел уже.
В общем, идея в тематическом разделении блога на несколько частей. Линуксы, фряхи, жуниперы и прочее вынести в технический блог, а ваху с красками, терминаторами и Альфа легионами - в вхшный. Остальное тут оставить.
Тогда будет легче что-то найти. Но разгребать пока некогда.
А ещё шаблон пора сменить, этот поднадоел уже.
EXT3-fs error: unlinked inode
Стало время от времени появляться:
Нашёл баг: https://bugzilla.redhat.com/show_bug.cgi?id=494927
Собственно, предложенное решение - пересборка журнала:
Feb 7 00:03:03 xxx kernel: EXT3-fs error (device sda8): ext3_lookup: unlinked inode 11848061 in dir #17097522Спустя некот.время - от неск.мин до часа - сервак вис, выкидывая:
Feb 7 00:03:03 xxx kernel: Aborting journal on device sda8.
Feb 7 00:03:03 xxx kernel: EXT3-fs error (device sda8): ext3_lookup: unlinked inode 11848060 in dir #17097522
Feb 7 00:03:03 xxx last message repeated 3 times
Feb 7 00:03:03 xxx kernel: ext3_abort called.
Feb 7 00:03:03 xxx kernel: EXT3-fs error (device sda8): ext3_journal_start_sb: Detected aborted journal
Feb 7 00:03:03 xxx kernel: Remounting filesystem read-only
Feb 7 00:25:54 xxx kernel: Pid: 27096, comm: repquota Not tainted 2.6.18-194.17.4.el5 #1Айноды всё время одни и те же.
Feb 7 00:25:54 xxx kernel: RIP: 0010:[<ffffffff88055c3d>] [<ffffffff88055c3d>] :ext3:ext3_journal_start_
sb+0x0/0x46
Нашёл баг: https://bugzilla.redhat.com/show_bug.cgi?id=494927
Собственно, предложенное решение - пересборка журнала:
umount /dev/sda8помогло.
tune2fs -O ^has_journal /dev/sda8
e2fsck -fy -C 0 /dev/sda8
tune2fs -j /dev/sda8
mount /dev/sda8
понедельник, 6 февраля 2012 г.
Харденинг
Надо пробовать чуток укрепить хостинги...
1. Сетевой стек. Посмотрим, что будет, если сделать:
2. limit_conn с $binary_remote_addr для всех виртуал хостов. Штучек 16 должно хватить.
Так же можно попробовать ставить rate с айпишника, но может вызвать эээ.. огорчение у некот. клиентов. Ещё наверно имеет смысл разграничить по числу коннектов на один виртуал хост вообще, но тоже может вызвать неадекватную реакцию.
Что бы ещё сделать?
1. Сетевой стек. Посмотрим, что будет, если сделать:
net.ipv4.tcp_max_syn_backlog=2048По идее, сможем больше синов держать, быстрее закрывать те, что так и не открыты до конца и быстрее прибивать закрываемые.
net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_fin_timeout=20
2. limit_conn с $binary_remote_addr для всех виртуал хостов. Штучек 16 должно хватить.
Так же можно попробовать ставить rate с айпишника, но может вызвать эээ.. огорчение у некот. клиентов. Ещё наверно имеет смысл разграничить по числу коннектов на один виртуал хост вообще, но тоже может вызвать неадекватную реакцию.
Что бы ещё сделать?
chkconfig и systemctl
Заметил, что в новой Федоре стопать/стартовать, включать/выключать сервисы стало несколько иначе, чем раньше:
Вместо:
Вместо:
Хотя пока и то, и другое работает, хотя при команде chkconfig дергается соотв. systemctl
Собственно, тут небольшая памятка по systemd:
http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
Вместо:
service sshd startтеперь принято:
systemctl start sshd.service
Вместо:
chkconfig sshd onнадо делать:
systemctl enable sshd.service
Хотя пока и то, и другое работает, хотя при команде chkconfig дергается соотв. systemctl
Собственно, тут небольшая памятка по systemd:
http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
среда, 1 февраля 2012 г.
EX4200: JunOS upgrade
Надо обновить ось на juniper ex4200. Стоит совсем старая 10.0, надо вкатить свежую 11.4Предположим, что мы его сбросили to factory:
На панелке свича находим в меню раздел обслуживания, там нашли фактори и подтвердили сброс.
Потом выставили дату и рутовый пароль (в cli):
Зацепились миникомом, настройка:
Качаем инсталлер отсюда:
http://www.juniper.net/support/products/junos/dom/11.4/#sw
а именно вот это:
https://download.juniper.net/software/junos/11.4R1.6/jinstall-ex-4200-11.4R1.6-domestic-signed.tgz
и лодер:
https://download.juniper.net/software/junos/specials/jloader/jloader-ex-3242-11.3I20110326_0802_hmerge-signed.tgz
Сначала накатывается новый загрузчик, зачем это надо - описано тут:
http://www.juniper.net/alerts/viewalert.jsp?actionBtn=Search&txtAlertNumber=PSN-2011-03-201&viewMode=view
потом ребут и накатывается сам инсталлер.
зашли, настроили один порт - чтобы скачать всё.
я всё хозяйство к себе качал, по scp заливаю на свич. Заливать надо именно в /var/tmp, иначе при установке придётся соснуть хцов из-за нехватки места.
ставим загрузчик:
Если установка зафейлилась - гуглим. Скорее всего либо дата кривая, либо джунос саааавсем старый.
Теперь инсталлер:
При загрузке видим:
На панелке свича находим в меню раздел обслуживания, там нашли фактори и подтвердили сброс.
Потом выставили дату и рутовый пароль (в cli):
set date 201202011053
set system root-authentication plain-text-password
Зацепились миникомом, настройка:
Serial Device : /dev/ttyS0
Lockfile Location : /var/lock
Callin Program :
Callout Program :
Bps/Par/Bits : 9600 8N1
Hardware Flow Control : No
Software Flow Control : No
Качаем инсталлер отсюда:
http://www.juniper.net/support/products/junos/dom/11.4/#sw
а именно вот это:
https://download.juniper.net/software/junos/11.4R1.6/jinstall-ex-4200-11.4R1.6-domestic-signed.tgz
и лодер:
https://download.juniper.net/software/junos/specials/jloader/jloader-ex-3242-11.3I20110326_0802_hmerge-signed.tgz
Сначала накатывается новый загрузчик, зачем это надо - описано тут:
http://www.juniper.net/alerts/viewalert.jsp?actionBtn=Search&txtAlertNumber=PSN-2011-03-201&viewMode=view
потом ребут и накатывается сам инсталлер.
зашли, настроили один порт - чтобы скачать всё.
я всё хозяйство к себе качал, по scp заливаю на свич. Заливать надо именно в /var/tmp, иначе при установке придётся соснуть хцов из-за нехватки места.
cd /var/tmp scp xxx@192.168.48.33:~/Downloads/jloader-ex-3242-11.3I20110326_0802_hmerge-signed.tgz .
scp xxx@192.168.48.33:~/Downloads/jinstall-ex-4200-11.4R1.6-domestic-signed.tgz .
ставим загрузчик:
cli
request system software add jloader-ex-3242-11.3I20110326_0802_hmerge-signed.tgz
request system reboot
Если установка зафейлилась - гуглим. Скорее всего либо дата кривая, либо джунос саааавсем старый.
Теперь инсталлер:
cd /var/tmp
cli
request system software add jinstall-ex-4200-11.4R1.6-domestic-signed.tgz
request system reboot
При загрузке видим:
Copyright (c) 1996-2011, Juniper Networks, Inc.
All rights reserved.
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
JUNOS 11.4R1.6 #0: 2011-11-15 10:57:04 UTC
Подписаться на:
Сообщения (Atom)