Archive for the ‘Linux’ Category

Настройка авторизации на веб-сервере Apache по сертификату пользователя.

Posted on Декабрь 10th, 2009 in FreeBSD, Linux, Безопасность вебсайтов | 5 Comments »

Исходные данные:
OC – FreeBSD или Linux, в наличии должен быть openssl
Веб-сервер – Apache 2.2 + mod_ssl (http://test.lan)

Необходимо:
Настроить SSL – издать сертификаты, настроить веб-сервер
При доступе к определенной директории веб-сервер должен запрашивать авторизацию по сертификату клиента.

Исходим из того что веб-сервер корректно установлен, у хоста есть полное FQDN и он корректно резолвится и доступен извне по портам 80/tcp и 443/tcp.

В первую очередь необходимо будет:
1) Настроить свой CA (Certificate Authority) для издания сертификатов веб-сервера и клиентов.
2) Сгенерировать ключ и сертификат веб-сервера
3) Сгенерировать и импортировать ключи и сертификаты веб-клиентов.

Приступим:
Read the rest of this entry »

Маленький тюнинг dhcpcd

Posted on Декабрь 10th, 2009 in Linux | 4 Comments »

Часто приходится работать в разных сетях, потому использую периодически демон dhcpcd, запуская его руками. Иногда необходимо вручную указать настройки, например DNS.

Файл /etc/resolv.conf как бы подсказывает:


# /etc/resolv.conf.head can replace this line
nameserver 192.168.1.1
# /etc/resolv.conf.tail can replace this line

То есть создав эти файлы (/etc/resolv.conf.head, /etc/resolv.conf.tail) и прописав в них необходимые значения мы получим их в сформированном демоном файле /etc/resolv.conf

Но есть еще метод – /etc/dhcpcd.conf
Добавляем туда, например эти строки:


interface eth0
static ip_address=192.168.1.237/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8 8.8.4.4

И получаем автонастройку интерфейса на необходииые нам значения.

Уважаемый All, может еще есть интересные методы поставить свои значения в /etc/resolv.conf в дополнение к полученым dhcp-сервера?

Искали slackware с удобным пакетным менеджментом? =)

Posted on Ноябрь 15th, 2009 in Linux | 9 Comments »


Этот пост целиком и полностью посвящается Archlinux (archlinux.org), просто потому что на днях попробовал и поставил. Поделюсь первыми впечатлениями. Они были весьма приятными.

Что понравилось:

  • Управление службами в FreeBSD-like стиле. Да, там есть /etc/rc.conf =)
  • Пакетный менеджмент – богатством опций, разделением пользовательских (AUR) и официальных репозитариев, простотой сборки собственных пакетов, например, для использования на другой машине.
  • Низкие требования к ресурсам. Вероятно из-за оптимизации под i686, ну и из-за того что не тянется куча хлама, если он тебе не нужен.
  • Возможность собрать только то что тебе нужно не заморачиваясь на ключах компилирования, зависимостях и т.д.
  • Документацией – отличная документация на Вики-разделе официального сайта: wiki.archlinux.org.

P.S.: я пробовал много дистрибутивов и у всех есть свои плюсы и минусы, вполне возможно, я настолько привык к общим минусам что теперь их не замечаю, и пока все нравится. Было бы интересно услышать-увидеть ваше мнение о данном дистрибутиве.

Почему после обновления Debian или другого дистрибутива может падать софт

Posted on Ноябрь 14th, 2009 in Linux, Нестандартности, Разное | 5 Comments »

Обратил внимание, что у меня часто падает мой любимый дебиан (тестинг) после апдейтов. Например после монтирования cd вручную (автомат перестал работать) пропадают иконки рабочего стола и все картинка начинает мигать и дергаться…

С трудом понял что дело в nautilus, запуская который (когда примонтирован cd) я через пару секунд получал ошибку undefined symbol g_mount_is_shadowed.

Ранее подобное наблюдалось когда после очередного апдейта “вешался” gdm и было невозможно зайти. Наконец решил разобраться.

Секрет оказался прост, я в свое время ставил некоторый софт отдельно от репозитариев (в т.ч. nessus из исходников, скайп из внешнего пакета). Коварные создатели тех пакетов прописали некоторые файлы в /usr/local/lib – в том числе так называемый glib

Соответственно в /lib у меня была новая версия glib, но некоторые приложения при старте сначала проверяли папку /usr/local/lib в которой оставались ошметки старых либов, о которых пакетный менеджер естесственно не знал. Поэтому с новыми приложениями использовались старые либы и соответственно приложения не работали.

А находится такое достаточно просто;
which nautilus
ldd /usr/bin/nautilus | grep /usr/local

после этого я перенес все либы из /usr/local в другое место (а можно было и грохнуть) и nautilus завелся, диски сами примонтировались и все заработало.

Кстати интересно, по идее это наверное типовой сценарий проблем, при установке софта из внешних источников. По идее маинтернеры дистрибутивов могли бы после установки софта, проверять что либы для нового софта используются из репозитариев а не локальные версии.. Хотя наверное это не юникс-вей, когда лишних действий не производится.. Потому что определенный смысл в том чтобы при апдейте продолжать использовать локальные либы тоже есть….

Анализ произвольных логов самописными скриптами

Posted on Ноябрь 2nd, 2009 in Checkpoint, FreeBSD, Linux | 2 Comments »

Стоит у нас на работе оранжевая такая Safe@Office 500 “дура” от CheckPoint. Потипу роутер + антивирус, МЭ, VPN и все-что-нужно-для-маленького офиса.

Собственно брали потестить, но прижилась. Одна проблема – отчеты, она их не умеет, точнее показывает лог за небольшой период (ну или я не нашел :) ).  Они с одной стороны не нужны никому, а с другой стороны всетаки обидно – может кто то к нам ломится, а я и не знаю. По идее я и не должен знать,  должность другая,  но мне же интересно!
Read the rest of this entry »

Xorg, evdev, fluxbox, keyboard.. и немного об удобствах..

Posted on Октябрь 18th, 2009 in Linux | 4 Comments »

Третьего дня переехал полностью на fluxbox – вывернуло всего..
В чем суть: теперь у нас Xorg умный сцуко и некоторые параметры знать не знает из файла конфигурации. Для клавиатуры использует evdev и правила прописаные в hal. В KDE я клавиатуру настроил стандартными средствами, коих в fluxbox нет. Поигрался с xorg.conf – эффект нулевой, пустая трата времени.

В итоге, для переключения раскладки сделал следующее:


root@darkstar:~# cat /etc/hal/fdi/policy/10-keymap.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.xkb.rules" type="string">base</merge>
<merge key="input.xkb.layout" type="string">us,ru(winkeys)</merge>
<merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle,grp_led:scroll</merge>
</match>
</device>
</deviceinfo>

Переключение раскладки заработало, индикация по лампочке Scroll Lock.

Удобства.
Не нравятся мне коробочные курсоры, сделал симлинк:

ln -s /usr/share/icons/redglass ~/.icons/default

теперь redglass мои основные курсоры.

Ненормальный размер букв в меню приложений и т.д., лечил так:


root@darkstar:/home/netf0x# cat ~/.Xresources
Xft.dpi: 96

Затем в .xinitrc добавил строчку:


xrdb -merge ~/.Xresources

Настраивать с нуля меню ужасно обламывало, а старое брать за основу не хотелось – слишком много правок. Проблему решил найдя на просторах интернета программу menumaker – http://sourceforge.net/projects/menumaker/. Очень помогло.

Производительность ядра.

Posted on Октябрь 7th, 2009 in Linux | 8 Comments »

Заявленое повышение производительности Linux-ядра существует. Любопытства ради сравнил посредством geekbench. Ядра собирались с одним и тем-же “конфигом”.
Итог:
Linux 2.6.29.6 – 2094 баллов
Linux 2.6.31.2 – 2365 баллов
Выходит больше 10 процентов. Раньше за такое боролись посредством аппаратного разгона))

Посмотреть можно здесь:
http://browse.geekbench.ca/geekbench2/view?id=173765
http://browse.geekbench.ca/geekbench2/view?id=173766

Slackware, Запись iso на dvd-r, что-то не так в тридевятом царстве..

Posted on Сентябрь 23rd, 2009 in Linux, Мобильности, Разное | No Comments »

Как давно не знаю, но перестал работать Brasero в Debian.. Gnome порядком поднадоел, поднадоела напичканость скриптами Debian.. все стало раздражать, останавливало только одно – лень..
После пары ночей хорошего отсыпа в организме почувствовалась некоторая легкость и желание двигаться. Начал с ноутбука – полетел к чертям Debian, настало время Slackware которую я забросил еще на 11-м релизе.
Домашний каталог у меня закриптован, но подключить его не стало проблемой)) Что сделал:

cryptsetup luksDump /dev/sda2

– проверил, не снес)))

cryptsetup luksOpen /dev/sda2 luks

– подключил
Создал /etc/crypttab:

luks /dev/disk/by-uuid/776317fc-a9b9-454e-8d8f-f9e168e0ad9a none luks

Поправил /etc/fstab:

/dev/mapper/luks /home ext3 defaults 0 0

В /etc/rc.d/rc.local добавил пару строчек :

cryptsetup luksOpen /dev/sda2 luks
mount /dev/mapper/luks

Хорошо таки чувствовать себя хозяином своей системы)) Затем за софт принялся – qutim поставил для аськи ну и по мелочам. Про qutim сказать хочу отдельно – лучше устанавливать его из исходников, например так:

cd /tmp
svn co http://qutim.org/svn/qutim
cd qutim/
cd trunk/
cmake -DCMAKE_BUILD_TYPE=debug ../
make
cp qutim /home/netf0x/qutim/
cd ..

Ставить можно в любую папку, только не забыть папку plugins там создать..
Ну и плагин для аськи – так как такая архитектура приложения.

cd plugins/
svn co http://qutim.org/svn/icq
cd icq/
mkdir build
qmake
qmake -config debug
make

И в папку plugins где сам бинарник скопировать..
Запустилось на ура, работает. Конфигурацию и архив сообщений стоит искать в ~/.config/

Одно только сейчас в системе напрягает – KDE4, но уже перехожу на fluxbox, меню там создаю, радуюсь вообщем.
И мысль – плохо в современном Open Source то, что мнение пользователя некоторые крупные проекты ставят выше мнения разработчиков которые этот проект на собственном энтузиазме держат – в итоге получается унылое г..но вроде KDE4.. Почему это плохо? Потому что пользователь современный, не сильно искушенный в интерфесах хочет что бы было так, как привык, или так, как видел на работе, у друга и т.д. (привет microsoft-у).. Пока все..

P.S. – k3b на свежей системе тоже диски не видит, симптомы как у Brasero.. Смена всего-всего не помогла. Но команда:

growisofs -Z /dev/dvdrw=/home/netf0x/Downloads/Porno_DVD.iso

отработала на ура как и раньше.. Теперь все.

XenServer без XenCenter

Posted on Сентябрь 20th, 2009 in Linux, Виртуальные машины, Нестандартности | 1 Comment »

Случилось так что не было под рукой виндовой машины с установленым на борту XenCenter, который как известно запускается только на поделии ребят из Редмонда.

А у меня на одном таком сервере виртуализируется один хост, который по сети ни как не должен быть доступен, кроме как через консоль – для пущей секьюрности. Надо было срочно данных с него выгрузить, а никак не достучаться.
Погоревал я немного, затем зашел на XenServer по ssh, посмотрел список юзаемых портов и узрел:


Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 127.0.0.1:5900              0.0.0.0:*                   LISTEN      5394/vncterm
tcp        0      0 127.0.0.1:5901              0.0.0.0:*                   LISTEN      21607/qemu.4
tcp        0      0 127.0.0.1:5902              0.0.0.0:*                   LISTEN      30538/qemu.14

Осталось только подключиться к этому серверу VNC который на localhost живет, и видимо он же и занимается подачей картинки в XenCenter.

Подключался используя ssh-туннель:

ssh -f -L 127.0.0.1:9999:127.0.0.1:5902 user@192.168.0.1

(не работает в последних версиях ssh, тогда можно без -f и пока вы залогинены туннель будет)
Где:
127.0.0.1:9999 – биндю локальный порт
127.0.0.1:5902 – говорю куда пробрасываем локальный порт 9999
user@192.168.0.1 – XenServer

А затем подключаюсь стандартным линуксовым vncviewer:

vncviewer 127.0.0.1:9999

И снова Linux. Говорящий будильник.

Posted on Июль 22nd, 2009 in Linux | No Comments »

Так как основная проблема новичков под Linux состоит в том, что они спрашивают, как копать, а им отвечают, куда копать, я в качестве небольшого примера привожу практическую задачу пробуждения нас любимых после полуночных бдений за консолью =) Будить нас будет наш собственный лаптоп под управлением OS GNU/Linux.

С чего начать? Наверное с того, с чего начинался любой будильник – с срабатывания в точно назначеное время =)

Самый простой путь:


at -f /home/netf0x/ring.sh 7:07

Где:

cat /home/netf0x/ring.sh
mplayer /home/netf0x/ring.mp3

Как видим, все просто. Лишь бы демон atd работал и мы точно проснемся. Проверяется просто:

sudo root@fox:~# /etc/init.d/atd status
 * atd is running 

Но пойдем дальше:


root@fox:/tmp/ring# cat alarm
#!/bin/sh
amixer sset PCM 95% > /dev/null
VOL=0
START_VOL=50
STEP_VOL=10
SLEEP_VOL=120
ALARM_ACTION=/home/dimka/bin/alarm_action #Поменять на свой путь к файлу alarm_action
setvolume() { amixer sset Master $1% > /dev/null}
VOL=$START_VOL
setvolume $START_VOL
while [ 1 == 1 ]; do
$ALARM_ACTION
let VOL=VOL+STEP_VOL
setvolume $VOL
sleep $SLEEP_VOL

Этот скрипт делает следующее: Плавно прибавляет громкость и через скрипт (будет ниже) alarm_action выдает звук.

alarm_action:


root@fox:/tmp/ring# cat alarm_action
#!/bin/sh
play -q /home/dimka/snd/untie.wav > /dev/null & 2>1
DATE=`date | awk '{print($4)}' | sed s/:/" часов "/ | sed s/:/" минут "/ | awk '{print($1" "$2" "$3" "$4)}' `
/home/dimka/bin/fest "доброе утро, уже $DATE" #/home/dimka/bin/ - поменять на свой путь к файлу скрипта fest

Этот скрипт, посредством festival читает про доброе утро. Festival вызывается скриптом со звучным названием fest


#cat fest
#!/bin/sh
echo "(voice_msu_ru_nsh_clunits)(SayText \"$1\")(quit)" > /tmp/test
festival_client /tmp/test

Ну и теперь давайте все же заставим работать этот скрипт в назначеное время =)
В файл /etc/crontab добавляются следующие строки (а если у вас нет прав root просто наберите crontab -e и правьте правила только для себя)


45 7	* * 3	dimka	alarm
45 8	* * 1-2,4-5	dimka	alarm

Естественно user dimka надо поменять на имя вашего юзера ну а строки 45(минуты), 7(часы), 3(среда), 1-2(понедельник-вторник), 4-5(четверг-пятница)

Архив со скриптами прикладываю. Успехов в пробуждении!

Скрипты