Ads 468x60px

вторник, 27 ноября 2012 г.

Squid с Active Directory в Debian Wheezy.

Задача.
Необходимо поднять прокси сервер с прозрачной аутентификацией доменных пользователей, и, конечно, с возможностью просмотра статистики.
Исходные данные.
Прокси сервер IP: 192.168.30.22.
Имя домена: thiscompany.net
Сервер домена: domain3.thiscompany.net
IP сервера домена: 192.168.30.81
Подготовка для работы в домене.
Синхронизации времени.
Синхронизация времени прокси с контроллером домена обязательна. Установка клиента:
$ sudo aptitude install ntp
комментируем, заданные по умолчанию, сервера для синхронизации
$ sudo sed -i "s/^server\s.*/# \0/" /etc/ntp.conf
добавляем IP контролера домена
$ sudo sed -i "/3.debian.po/ a\ server 192.168.30.81" /etc/ntp.conf
проверяем, что в /etc/resolv.conf прописаны параметры нашего домена:
$ cat /etc/resolv.conf
domain thiscompany.net
search thiscompany.net
nameserver 192.168.30.81
перезагружаем службу ntp
$ sudo service ntp restart

четверг, 8 ноября 2012 г.

Lighttp, https с самоподписным сертификатом.

Задача : защитить канал работы с панелью управления сайта. В данной ситуации достаточно самоподписанного сертификата, так как мы создаем защищенный канал для своих нужд.
Файлы сертификатов.
Файл ответов.
Данный файл создавать не обязательно - можно просто ответить на вопросы в командной строке, но мне так удобнее.
lighttp-openssl.cnf:

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

Debian squezee. High availability система на Dovecot + Exim

Исходные данные.
Задача: создать резервный почтовый сервер, который будет подхватывать роль основного, при выходе из строя главного.
Дано:
Два сервера mail01 и mail02 с настроенной связкой dovecot 2.0 exim 4.72.
ПО для организации кластера heartbeat.
Синхронизация imap папок средствами dsync из пакета Dovecot 2.
Синхронизация фалов параметров exim и dovecot средствами rsync.
База данных (postgresql) пользователей синхронизируется средствами Slony.
сетевые интерфейсы.
Три IP адреса, два персональных для каждого сервера и третий общий, будет подниматься на резервном в случае падения основного сервера.
cluster IP 192.168.30.11
mail01:
eth1 192.168.30.14
mail02:
eth3 192.168.30.13
общая схема.
                                      {Internet}
                                    192.168.30.11
                               +----------+----------+
                           +---+---+ {heartbeat} +---+---+
                           |  eth1 |             |  eth3 |
                           |       |             |       |
                           | mail01|   {dsync}   | mail02|
                           +-------+ - - - - - - +-------+

воскресенье, 14 октября 2012 г.

Debian и ASUS Zenbook Prime UX32V

Не так давно попал ко мне в руки ультра бук от ASUS, Zenbook Prime UX32V. Так как на рынке данное устройство появилось достаточно недавно, то решено было установить Debian Testing (для установки выбрал debian-testing-i386-xfce-CD-1.iso). Процесс установки прошел достаточно стандартно, все определилось и заработало.
Однако, через некоторое время заметил, что не работает, правая кнопка на тачпаде, сильно не расстроился, не часто нужно. Первое серьезное расстройство пришло в момент установки skype, ноутбук завис наглухо - не реагировал ни на какие клавиши (включая магическую Волшебную клавишу SysRq / Printscreen ). Пришлось выключать через кнопку 'power', не самое приятное действие. Дальше больше, подобные зависания стали происходить по несколько раз в день. Для начала поменял драйвер nouveau на nvidia, затем пробовал различные настройки звука, отказывался от ряда приложений, пытаясь найти, что именно приводит к зависанию, но моих навыков не хватило, в интернете похожих ситуаций не нашел.
Что ж решил ставить Debian squeeze, заранее морально настроился на проблемы с драйверами устройств. Так и получилось сетевая карта, подключаемая через переходник USB-RJ45, определилась, но постоянно выдавала на консоль сообщение об ошибке. Что в принципе не помешало установить "standard system". В модуле wi-fi поддержки чипа не оказалось. Решил попробовать обновить ядро из хранилища Backports, воспользовался статьей: Устанавливаем ядро 3.2 в Debian Squeeze. Кратко порядок действий:
1. В файл /etc/apt/sources.list добавляем строчку:
deb http://backports.debian.org/debian-backports squeeze-backports main
2. Обновляем список пакетов:
$ aptitude update
3. Запускаем установку новой версии ядра:
$ aptitude install linux-image-3.2.0-0.bpo.3-686-pae
На первый вопрос отвечаем "n", далее привычные Y, по умолчанию.
Все прошло успешно, доставил xfce и необходимые мне для работы программы.
На момент написания заметки, прошло чуть более недели, как все замечательно.

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

Nagios, уведомления sms через sms24x7

Задача: в нерабочие часы, уведомлять о критических ошибках по смс.
Используемые средства: смс шлюз sms24x7.
Скрипт для отправки sms.
На основе статьи Пример работы с API Яндекс.Директа и php библиотеки sms24×7 я подготовил небольшой модуль Sms24x7.pm :раскрыть
А сам скрипт(sms.pl) для отправки смс выглядит так:
#!/usr/bin/perl
# sms.pl
# use module
use Sms24x7;
use Getopt::Std;

my %options;
getopts("htp:n:m:",\%options);

if ($options{h}){
    print <<EOF;
Syntax: $0 [-h | -p 7xxxyyyzzzz -n senderName -t message]

    -h : This help message
    -p : recipient phone number in international format
    -n : sender name, no more than 11 symbols Latin (GSM_0338)
    -m : message text, ASCII or UTF-8
    -t : test mode, message don`t rated and doesn't go

EOF
    exit;
} elsif (!$options{p}){
        die "need option: -p 7xxxyyyzzzz phone number\n";
} elsif (!$options{n}){
        die "need option: -n sender name\n";
} elsif (!$options{m}){
        die "need option: -m message text\n";
} else {
    my $test = 0;
    $test = 1 if $options{t};

# * @param $email, $passwrod - login info
# CHANGE THIS!!!
    my $email = 'user@mail.ru';
    my $pass = 'secret';
# * @param $phone - recipient phone number in international format (like 7xxxyyyzzzz)
# * @param $text - message text, ASCII or UTF-8.
    print Sms24x7::smsapi_push_msg_nologin_v1({
         test => $test, # For test without send the message and doesn't change balance
         email => $email,
         password => $pass,
         sender_name => $options{n},
         phone => $options{p},
         text => $options{m}
    });
exit 0;
}

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

Мониторим сервера с Nagios.

Задача: автоматически следить за различными параметрами серверов предприятия.
Используемые средства: система для развертывания сервера Nagios - Debian wheezy. Основной плагин мониторинга - NRPE.
IP адрес сервера статистики: 192.168.30.19
Установка сервера мониторинга.
По умолчанию при установке nagios3 автоматически устанавливается appache2, но так как держать такого монстра исключительно для нужд nagios мне показалось не оптимально, то принял решение использовать lighttpd. Все действия выполнял по статье Nagios3 with Lighttpd, здесь же, для удобства кратко добавлю порядок команд:
1. Установка lighttpd
$ sudo aptitude install lighttpd
2. Установка nagios3 и плагина nrpe
$ sudo aptitude install nagios3 nagios-nrpe-plugin
3. Установка php5-cgi, необходим для работы nagios3
$ sudo aptitude install php5-cgi
4. Теперь можно удалить apache2:
$ sudo aptitude remove apache2-mpm-prefork apache2.2-bin apache2.2-common libapache2-mod-php5

вторник, 14 августа 2012 г.

Nagios мониторинг температуры.

Задача: отслеживать температуру процессоров серверов.
Используемые средства: сервер сбора статистики Nagios, протокол передачи данных snmp, программное обеспечение на стороне клиента windows: speedfan с расширением http://deve.loping.net/projects/sfsnmp/
Так как в какой-то момент сервис deve.loping.net был не доступен выложил на google-disk установочный файл sfsnmp-0.1.12.msi
Настройка windows клиента.
Windows 2003 server.
1. Скачиваем и устанавливаем с almico.com download speedfan446.
2. Регистрируем его как сервис, я воспользовался вот этой инструкцией Instsrv.exe & Srvany.exe приведу кратко команды:
- запускаем командную оболочку cmd.exe в ней:
> cd "c:\program files\windows resource kits\tools\"
> Instsrv SpeedFanService "c:\program files\windows resource kits\tools\srvany.exe"
в списке служб должны получить SpeedFanService

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

Debian squeeze - репликация postgresql 8.4.

Задача: настроить master/slave репликацию базы postgresql, с которой работает dovecot, настроенный по заметке Dovecot 2 (imaps) + postgresql.
Параметры:
Операционная система на обоих серверах Debian squeeze
Master: 192.168.30.9, имя сервера cl09
Slave: 192.168.30.10, имя сервера cl10
Субд postgresql 8.4; система репликаций slony; Имя базы: vmail
Приводимые примеры команд даются с учетом наличия настройки ssh,на master сервере, где в качестве псевдонима для slave использовано его имя(cl10).
Подготовка систем.
Postgresql.
На обоих серверах в файле /etc/postgresql/8.4/main/pg_hba.conf редактируем раздел описывающий подключение по IPv4, добавляя правила подключения для пользователей с IP адресов наших серверов. Для редактирования файла на slave сервере, достаточно запустить команду:
cl09:~$ ssh cl10 -t "sudo vim /etc/postgresql/8.4/main/pg_hba.conf"
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         192.168.30.9/32          md5
host    all         all         192.168.30.10/32          md5

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

Комфортный - минимум для ssh.

Подключение без ввода пароля.
Создаем ключ и копируем его на сервер.
$ ssh-keygen -t rsa -b 2048 -f .ssh/key4srvname
$ ssh-copy-id -i .ssh/key4srvname.pub user@srvname
проверяем, что все работает:
$ ssh -i .ssh/key4srvname user@srvname -t "hostname"
ssh, не запрашивая пароль должна выдать примерно следующее:
srvname
Connection to srvname closed
Псевдоним.
Теперь создаем ssh псевдоним для slave сервера файл .ssh/config:
Host srv1
    Hostname    srvname
    User user
    IdentityFile ~/.ssh/key4srvname
еще раз запускаем проверку:
$ ssh srv1 -t "hostname"
должны получить предыдущий результат.
Более развернутую информации можно почерпнуть в статье Памятка пользователям ssh

четверг, 21 июня 2012 г.

Perl изменение размера изображений.

После реализации задачи получения почтовых вложений, возникла новая: с целью экономии места на диске, корректировать большие картинки до приемлемых размеров. Использовать по прежнему будем perl.
Подготовка.
Для работы с изображениями в perl будем использовать модуль Image::Magick. В Debian его установка следующая:
$ sudo aptitude install perlmagick

пятница, 15 июня 2012 г.

Раскладываем почтовые вложения по папкам.

Задача: автоматически получать почту, выдирать из нее вложения и раскладывать их по папкам с темой письма.
Используемые средства: система Debian squeeze, получение почты perl, разбор письма на вложения ripmime, перенос файлов на windows ресурс smbclient.
Общий принцип работы perl скрипт последовательно читает почту, каждое очередное сообщение передается ripmime, после чего файлы копируются на общий ресурс windows.
Предварительные настройки.
Установка ripmime.
Так как в пакетах Debian мне обнаружить данную программу не удалось, то ставил из исходников с сайта самой программы:
$ wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.10.tar.gz
$ tar -zxf ripmime-1.4.0.10.tar.gz
$ cd ripmime-1.4.0.10/
$ make && sudo make install clean

четверг, 31 мая 2012 г.

Debian squezee. Связка dovecot 2 + exim на postgresql.

Исходные данные: на Debian squezee имеем dovecot 2 установленный по заметке, и exim собранный по другой заметке.
Цель: настроить exim на совместную работу с dovecot, аутентификацию пользователей exim делать через dovecot, дабы не хранить в базе пароли в открытом виде.
Подготовительная работа
Резервная копия существующих настроек
$ sudo tar -jcvf etc.exim4.tbz /etc/exim4/*
Пересоздаем каталог для исключения возможных пересечений
$ sudo rm -rf /etc/exim4/*
$ sudo mkdir -p /etc/exim4/conf.d
Конфигурация exim.
Главный файл запуска /etc/exim4/exim4.conf

среда, 16 мая 2012 г.

Настройка Dovecot 2 (imaps) + postgresql в Debian squeeze

В процессе настройки возник ряд особенностей по сравнению с arch.
Установка.
По умолчанию в squeeze версия dovecot 1.2.15-7, поэтому будем компилировать самостоятельно, взяв исходники оld stable releases, с официального сайта.
# wget http://www.dovecot.org/releases/2.0/dovecot-2.0.20.tar.gz
Устанавливаем пакеты необходимые для сборки.
# sudo aptitude update
# sudo apt-get build-dep dovecot
После чего проделываем стандартные шаги компиляции. В конфигурации изменены директории для расположения файлов на более привычные для Debian, включена поддержка с postgresql, и отключена часть методов аутентификации, которые заведомо не будут использоваться.
# tar -zxf dovecot-2.0.20.tar.gz
# cd dovecot-2.0.20/
dovecot-2.0.20# ./configure --prefix=/usr --libexecdir=$PREFIX/lib --sysconfdir=/etc --mandir=$PREFIX/share/man --infodir=$PREFIX/share/info --with-moduledir=$PREFIX/lib/dovecot/modules --localstatedir=/var --with-pgsql --without-shadow --without-pam --without-nss
dovecot-2.0.20# make && sudo make install clean

четверг, 26 апреля 2012 г.

Debian squezze. Установка сitrix receiver подключение к серверу XenApp.

Установка клиента.
Подготовительные действия:
- добавляем non-free репозиторий, в большинстве случаев подойдет следующая команда
$ sudo sed -i '/non-free/!s/\(deb .*main.*\)/\1 non-free/' /etc/apt/sources.list
или руками дописать non-free в своем /etc/apt/sources.list.
- обновляем список доступных пакетов.
$ sudo aptitude update
- установка openmotif.
$ sudo aptitude install libmotif4
Скачиваем с сайта citrix deb пакет и устанавливаем:
$ sudo dpkg -i icaclient-12.1.0_i386.deb

понедельник, 16 апреля 2012 г.

Debian squezee компиляция exim4 с поддержкой postgresql.

Возникла необходимость настроить exim в debian, с поддержкой postgres, самый простой способ это заменить устанавливаемый по умолчанию пакет exim4-daemon-light на exim4-daemon-heavy. Но простые методы не для нас, да и наличие не используемых опций, в которых могут быть обнаружены ошибки, подвигло на сборку пакета.
1. Подготавливаем систему.
- обновляем информацию о пакетной базе:
$ sudo aptitude update
- устанавливаем пакеты необходимые для сборки exim(Внимание! аналогичная команда возможно и с aptitude, но у меня не доставился один пакет):
$ sudo apt-get build-dep exim4
- создаем директорию для исходников:
$ mkdir source; cd source
- загружаем исходные коды:
$ apt-get source exim4
2. Создаем свою конфигурацию.
- распаковываем конфигурационные файлы сборки пакетов:
$ cd exim4-4.72; fakeroot debian/rules unpack-configs
- создаем свой файл конфигурации:
$ cp EDITME.exim4-light EDITME.exim4-custom

вторник, 3 апреля 2012 г.

Qemu сеть только для гостевых хостов

В linux для настройки сети гостевых qemu-машин без выхода во вне, но с возможностью видеть друг друга необходимо запустить первую виртуальную машину в режиме прослушивания какого-либо unix сокета, а остальные гостевые машины запускать с подключенем на этот сокет. Пример:
# qemu -hda Img1.qcow2 -m 256 -boot c -net nic,model=rtl8139,macaddr=00:00:00:00:00:aa -net socket,listen=localhost:1234 -vnc :1&
# qemu -hda Img2.qcow2 -m 256 -boot c -net nic,model=rtl8139,macaddr=00:00:00:00:00:fa -net socket,connect=localhost:1234 -vnc :2&

воскресенье, 1 апреля 2012 г.

Debian squeeze работа perl с postgresql.

Установка postgresql достаточно полно описана на wiki.debian.org.
От себя добавлю:
           для включения удаленного доступа по сети необходимо в файле /etc/postgresql/8.4/main/postgresql.conf, в секции # CONNECTIONS AND AUTHENTICATION заменить #listen_addresses = 'localhost', к примеру, на listen_addresses = '*', где '*' означает все адреса, или указать свои значения. Кроме этого необходимо добавить запись в файл /etc/postgresql/8.4/main/pg_hba.conf, в секции # IPv4 local connections добавить следующее, заменив 192.168.1.0/24 - на свой диапазон адресов:
host    all         all         192.168.1.0/24          md5
 а вопрос возможной ошибки
psql: FATAL:  Ident authentication failed for user
на мой взгляд, правильнее решать заменой в файле /etc/postgresql/8.4/main/pg_hba.conf   ident на md5
 local   all         all                               md5     #replace ident or peer with md5

понедельник, 26 марта 2012 г.

Debian настройка PRO/Wireless 3945ABG.

Для настройки данной wifi карточки необходимо установить пакет с прошивками  firmware-iwlwifi. Так как данный пакет не входит в список свободно программного обеспечения, то необходимо скачать deb файл, который можно найти по поиску  search firmware-iwlwifi. В моем случае  (Debian squeeze), скачивание и установка прошла следующим образом:
# wget http://ftp.ru.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-iwlwifi_0.28+squeeze1_all.deb
#sudo dpkg -i firmware-iwlwifi_0.28+squeeze1_all.deb
Теперь устанавливаем общие утилиты настройки беспроводной сети:
# sudo aptitude install wpasupplicant wireless-tools
Все готово для настройки. Для начала создаем файл параметров подключеня к точке:
# sudo wpa_passphrase essid_name passwd > /etc/wpa_supplicant.conf
, где essid_name - имя точки доступа
, а passwd - пароль для подключения

пятница, 23 марта 2012 г.

Debian perl сравнение дат.

Получение разницы в секундах используя POSIX:
#!/usr/bin/perl
# perldate.plx
use POSIX; # отсюда берем функцию mktime

# дата в заданном формате 
$date = '2012-02-23 11:00:00';
# получить массив параметров даты год и месяц приводим к виду для работы с POSIX
my @a = split(/\D/,$date);
my ($sec, $min, $hour,$mday,$mon,$year) =
($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900);

# сформировать значение даты в unix timestamp
my $vardate = mktime($sec,$min,$hour,$mday,$mon,$year);

## проверка правильности
# print scalar localtime($vardate),"\n";
# print $date,"\n";

# отличие текущей даты и заданной в секундах
my $datediff;
if (time > $vardate){
    $datediff = time - $vardate;
} else {
    $datediff = $vardate - time;
}
print $datediff,"\n";

суббота, 17 марта 2012 г.

Установка lighhtpd с поддержкой perl скриптов в Debian.

Для отладки perl скриптов для вэб, мне показалось удобным использовать легковесный lighttpd.
Установка веб сервера:
$ sudo aptitude install lighttpd
По умолчанию в настройках lighttpd не включен модуль для работы с cgi скриптами, его необходимо добавить в секцию server.modules(6-ая строка из примера конф. файла), а так же необходимо указать использование файлов с расширением .pl как cgi скриптов(21-ая строка из примера конф. файла). Мой конфигурационный файл /etc/lighttpd/lighttpd.conf имеет следующий вид.

понедельник, 13 февраля 2012 г.

Регулярные выражения perl.Краткий справочник.

Сводная таблица метасимволов.
метасимвол значение
[abc] любой из символов a, b, или c
[^abc] все кроме символов a, b, или c.
[a-z] любой символ ASCII между a и z.
\d \D цифра; не цифра.
\w \W любой допустимый в слове символ;не допустимый в слове символ
\s \S пробельный символ; не пробельный символ.
\b граница между \w символом и \W символом.
. любой символ (кроме новой строки).
(abc) фраза 'abc' как группа.
? предшествующие группа или символ повторяются 0 или 1 раз.
+ предшествующие группа или символ повторяются 1 и более раз.
* предшествующие группа или символ повторяются 0 и более раз.
{x,y} предшествующие группа или символ могут повторятся от x до y раз.
{,y} предшествующие группа или символ могут повторятся не более y раз.
{x,} предшествующие группа или символ могут повторятся более x раз.
{x} предшествующие группа или символ повторяется x раз.

понедельник, 30 января 2012 г.

HP LaserJet P1006 в Debian squeeze.

Установка данного принтера не оказалась тривиальной. Вначале установим систему печати от HP, которая подтянет за собой ряд зависимостей, в частности CUPS, если он у вас не установлен.
$ sudo aptitude install hplip
Теперь запустим интерактивный режим инсталяции устройств HP
$ sudo hp-setup -i
отвечаем на предложенные вопросы, в моем случае все 100% ответов достаточно было нажимать [Enter]. После чего принтер можно увидеть в системе CUPS:http://localhost:631/printers/ .
Все вроде хорошо, если у вас заработало отлично!
У меня же возникла проблема задания отрабатывались без ошибок, но на печати ничего не было. Перезагрузка не помогла. Переставил принтер уже через интерфейс CUPS, выбрал драйвер hpcups, принтер стал выдавать ошибку : "/usr/lib/cups/backend/hp failed". Изменил настройки на драйвер hpijs, порт hp:/usb/HP_LaserJet_P1006?serial=AC1X7G1 все заработало :)

воскресенье, 29 января 2012 г.

Использование Qemu в Debian squeeze.

Для проведения различных экспериментов хорошо иметь подопытную систему. Для этого существует множество эмуляторов, я выбрал qemu с kvm расширением, позволяющим значительно ускорить ее работу.
Установка стандартно для Debian. 
$ sudo aptitude install qemu qemu-kvm qemu-utils
Отдельно отмечу, что в моем дистрибутиве так же установились bridge-utils - в последствии используются для настройки сети для гостевой системы.
Создание образа жесткого диска.
$ qemu-img create [-f fmt] [-o options] filename [size]
,где
-f fmt - формат файла образа, список поддерживаемых форматов можно просмотреть так:
$ qemu-img -h | grep Support
-o options опции, для каждого формата свои, просмотр набора опций для выбранного формата: