понедельник, 29 октября 2012 г.

Св.Селестина готова

Ну вот, выбрал время, закончил:



четверг, 25 октября 2012 г.

auditd: следим за файлами

Недавно потребовалось последить за судьбой одного файлика - кто и когда что с ним делает. С auditd раньше не работал, а тут подумал, что наверно он как раз такими вещами должен заниматься. Оказалось, что, при помощи него, отслеживание файлов - занятие лёгкое и приятное )

Значит, надо нам проследить за судьбой файлика /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: 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 в конфиге демона:

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
И это через гугл навело на selinux )) Вот и все дела. Отключил и заработало.

пятница, 7 сентября 2012 г.

ssh: укорачиваем команду

Уже как-то писал про то, как удалось сократить длину некот. git команд за счёт настройки хостов в ssh_config. Решил на ноуте сделать так же для наших хостов, чтобы не набивать "$ ssh username@host.domain.org".
Так, как писать секции самому неохота, сделал скриптик 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
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
 Полученный вывод суём в ssh_config и вместо "$ ssh username@host.domain.org" пишем "$ ssh host"

среда, 5 сентября 2012 г.

ISP: account disabled by server administrator

Человек жалуется - просрочил оплату, был залочен. Оплатил, но "сайт досихпор неработает".

Смотрю, действительно залочен. Нашёл в основном конфиге апача секцию с его хомяком:

<Directory /var/www/username/data>
        AllowOverride none
        Deny from all
        ErrorDocument 403 /disabled/index.html
</Directory>

Дёрнул суспенд/унсуспенд - 0.
Руками потёр начинку секции. Вот теперь интересно - заменится ли ручная правка? )) Посмотрим..

Самый прикол, что лочился и разлочивался акк через испэшный http api. На их форуме нашёл пост про аналогичную ситуацию, но там акки оставались лоченными из-за порчи конфига апача лишними закрывающими тегами секций. Официальная позиция на этот счёт - да, баг имеет место и не только с конфигом апача. Но баг редкий и трудновоспроизводимый, поэтому пока не отловили.
Если тут есть связь - становится немножко грустно.

пятница, 31 августа 2012 г.

Селестина, день 4

Попробовал сделать молнии на клинке, прямо сходу не так пошло. Надо переделывать. И цветы с волосами как-то не так выглядят, надо придумать что-то.


четверг, 30 августа 2012 г.

Селестина, день 3

Ещё немного осталось:


среда, 29 августа 2012 г.

PHP и ./configure --prefix

Собираю сухосин. Не могу префикс задать, вместо моего /usr/local/php52 встаёт дефолтный.
Нашёл "фичу", епт: можно хоть обделаться, передавая конфигуратору опции, которые, между прочим, в хелпе конфигуратора перечислены, но он их затрёт данными, получаемыми от 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 блекджеком, проститутками и параметрами:
./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 ))