четверг, 25 декабря 2008 г.

Узнать SOA обратной зоны

Сегодня спросили как узнать интервал между обновлениями обратных зон провайдеров. Ответом послужила такая конструкция

host -t soa `whois aa.bb.cc.dd | \
grep -Ei "(inetnum|netrange):" | \
tail -n 1 | sed -E 's/^.+:[ ]*//' | \
xargs ipcount | grep -oE '[0-9]+(\.[0-9]+)*/' | \
sed -E 's/\///' | head -n 1 | \
awk -F . '{ print $4 "." $3 "." $2 "." $1 }' | \
sed -E 's/^\.//;s/$/.in-addr.arpa/'`
где aa.bb.cc.dd - любой ip-адрес интересующего провайдера.

вторник, 23 декабря 2008 г.

пятница, 19 декабря 2008 г.

Локальное зеркало для AVP Kaspersky 6

В поисках рецепта создания сабжа наткнулся на обсуждение в forum.lissyara.su. Взяв за основу опубликованный rambomax'ом скрипт, создал веб-зеркало для корпоративной сети.

Предполагается что веб-сервер уже настроен и работает.

  1. Устанавливаем программы из репозитария
    $ sudo apt-get install wget unzip
  2. Создаем директории
    $ sudo mkdir -p /scripts /www/avp-updates /var/samba/share/Avp
  3. Создаем скрипт обновления «/scripts/avp-updates.sh»
    #!/bin/sh
    #--- BEGIN ---
    AVURL=ftp://downloads1.kaspersky-labs.com/zips/
    FTPDIR=/var/samba/share/Avp
    AVPDIR=/www/avp-updates
    WGET=/usr/bin/wget
    UZIP=/usr/bin/unzip

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-cumul.zip
    $UZIP -t $FTPDIR/av-i386-cumul.zip
    FLAG_C=$?

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-weekly.zip
    $UZIP -t $FTPDIR/av-i386-weekly.zip
    FLAG_W=$?

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-daily.zip
    $UZIP -t $FTPDIR/av-i386-daily.zip
    FLAG_D=$?

    #### EXTRACT FILES FROM ARCHIVE
    /bin/rm -f $AVPDIR/*

    if [ $FLAG_C -ne 0 ]
    then
    rm $FTPDIR/av-i386-cumul.zip
    else
    $UZIP -o $FTPDIR/av-i386-cumul.zip -d "$AVPDIR"
    fi

    if [ $FLAG_W -ne 0 ]
    then
    rm $FTPDIR/av-i386-weekly.zip
    else
    $UZIP -o $FTPDIR/av-i386-weekly.zip -d "$AVPDIR"
    fi

    if [ $FLAG_D -ne 0 ]
    then
    rm $FTPDIR/av-i386-daily.zip
    else
    $UZIP -o $FTPDIR/av-i386-daily.zip -d "$AVPDIR"
    fi
  4. Делаем скрипт исполняемым
    $ sudo chmod +x /scripts/avp-updates.sh
  5. Настраиваем crontab на запуск нашего скрипта каждый день в два часа ночи
    $ sudo -s
    # crontab -l 2>/dev/null > /tmp/avp-cron-XXX.tmp
    # echo >> /tmp/avp-cron-XXX.tmp
    # echo "0 2 * * * /scripts/avp-updates.sh" >> /tmp/avp-cron-XXX.tmp
    # crontab /tmp/avp-cron-XXX.tmp
    # rm /tmp/avp-cron-XXX.tmp
    # exit
  6. Создаем виртуальный хост в apache2 для веб-зеркала.
    Файл «/etc/apache2/sites-available/avp-updates»
    <VirtualHost *:80>
    ServerAdmin demiurg@avp-updates.www
    DocumentRoot /www/avp-updates
    ServerName avp-updates.www

    ErrorLog /var/log/apache2/avp-updates_error-log
    CustomLog /var/log/apache2/avp-updates_log common

    <Directory "/www/avp-updates">
    Options Indexes
    AllowOverride None
    Order Deny,Allow
    Allow from All
    </Directory>
    </VirtualHost>
  7. Активируем созданный хост
    $ sudo ln -s ../sites-available/avp-updates /etc/apache2/sites-enabled/050-avp-updates
  8. Проверяем конфиг и ребутаем веб-сервер
    $ sudo apache2ctl configtest
    $ sudo /etc/init.d/apache2 restart

вторник, 16 декабря 2008 г.

«Потерявшийся» dmesg.boot :)

Я этот файл в FreeBSD давно уже «потерял» и периодически удивлялся его отсутствию, когда заглядывал в «/var/log». А сегодня «нашел» в директории «/var/run».

воскресенье, 14 декабря 2008 г.

Расширение RIP для Firefox

Нашел интересное расширение к Mozilla Firefox. Называется RIP (Remove It Permanently) и позволяет удалить практически любой раздражающий вас элемент сайта.

Слева - скриншот исходной страницы. Справа - та же страница, но уже «обкусанная» RIP'ом.


суббота, 13 декабря 2008 г.

Доступ к гостевой машине в Virtualbox

Сетевое соединение гостевой машины в VirtualBox по умолчанию настраивается через NAT. Одним из плюсом является простая настройка. Но в то же время невозможно соединиться с открытыми портами на гостевой машине, что бывает необходимо в экспериментах с сетевыми сервисами.
Решение заключается в пробросе (туннелировании) порта в виртуальное окружение.

Делается это следующим образом

  1. Порт, который будем пробрасывать «внутрь»
    $ VBoxManage setextradata "GuestMachineName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
  2. С каким портом гостевой машины надо соединяться
    $ VBoxManage setextradata "GuestMachineName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
  3. По какому протоколу
    $ VBoxManage setextradata "GuestMachineName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
  4. Выключаем и снова включаем гостевую машину.
  5. Попытаемся соединиться
    $ ssh -p 2222 user@localhost
Можно проверить введённые параметры
$ VBoxManage getextradata "GuestMachineName" enumerate
или удалить уже заданный параметр, задав ему пустое значение
$ VBoxManage setextradata "GuestMachineName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"

вторник, 9 декабря 2008 г.

OCS Inventory

На выходных искал программу для инвентаризации программного обеспечения и оборудования на рабочих станциях локальной сети и нашел статью Евгения Бражко, описывающую установку OCS Inventory на Ubuntu Gutsy.
Всю статью пересказывать не буду, а просто опишу собственные действия по установке на Ubuntu Intrepid. Начнём.
Первым делом ставим необходимые пакеты из репозитария. Предполагается, что веб-сервер apache2 уже установлен и настроен.

$ sudo apt-get install libapache-dbi-perl libdbi-perl libdbd-mysql-perl libsoap-lite-perl libxml-simple-perl libnet-ip-perl libcompress-zlib-perl php5-gd make
Ставим отсутствующие в репозитарии модули для perl из CPAN
$ sudo cpan -i XML::Entities
$ sudo cpan -i YAML
OCS Inventory, скачанная с сайта разработчика, не дружит с кириллицей. Исправленную версию можно взять отсюда (OCSNG_UNIX_SERVER_1.02_RC1_RU.tar.gz).
Распаковываем архив, запускаем инсталлятор и в ходе процесса отвечаем на его вопросы
$ sudo ./setup.sh
Перезапускаем веб-сервер
$ sudo /etc/init.d/apache2 restart
В браузере набираем адрес «http://your.web.server/ocsreports/install.php». В форму вводим имя и пароль суперпользователя (root) и адрес, по которому доступен сервер mySQL.

На рабочие станции ставим агент для windows, файлы которого после установки надо подменить файлами из этого архива. Иначе все буквы кириллицы в отчетах, начиная с «х» (по алфавиту), превратятся в английскую букву «х».
Устанавливаем агент для windows. После установки останавливаем сервис "OCS INVENTORY SERVICE", для чего в командной строке набираем
net stop "OCS INVENTORY SERVICE"
Копируем файлы из архива в директорию «C:\Program Files\OCS Inventory Agent». Запускаем ранее остановленный сервис
net start "OCS INVENTORY SERVICE"
Агент отправит отчет об установленном на рабочей станции программном обеспечении и его оборудовании на сервер по прошествии некоторого времени. Чтобы получить отчет немедленно, в командной строке надо набрать команду
"C:\Program Files\OCS Inventory Agent\OCSInventory.exe" /SERVER:your.web.server /PNUM:80 /NOW
Отчеты агентов можно просмотреть по адресу «http://your.web.server/ocsreports/». Имя и пароль для входа по умолчанию «admin» и «admin» соответственно (без кавычек).

Удаление адреса «на лету» с сетевого интерфейса в Ubuntu Linux

Удаление адреса с сетевого интерфейса

$ sudo ifconfig ethN 0.0.0.0
Удаление алиаса сетевого интерфейса
$ sudo ifconfig ethN:M del a.b.c.d
где M - номер алиаса, a.b.c.d - ip-адрес алиаса.

вторник, 2 декабря 2008 г.

Генерирование паролей. Акт второй.

#!/bin/sh
dd if=/dev/urandom count=6 bs=1 2>/dev/null | uuencode -m - | sed -n 2p