четверг, 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»
    1. #!/bin/sh
    2. #--- BEGIN ---
    3. AVURL=ftp://downloads1.kaspersky-labs.com/zips/
    4. FTPDIR=/var/samba/share/Avp
    5. AVPDIR=/www/avp-updates
    6. WGET=/usr/bin/wget
    7. UZIP=/usr/bin/unzip
    8. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-cumul.zip
    9. $UZIP -t $FTPDIR/av-i386-cumul.zip
    10. FLAG_C=$?
    11. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-weekly.zip
    12. $UZIP -t $FTPDIR/av-i386-weekly.zip
    13. FLAG_W=$?
    14. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-daily.zip
    15. $UZIP -t $FTPDIR/av-i386-daily.zip
    16. FLAG_D=$?
    17. #### EXTRACT FILES FROM ARCHIVE
    18. /bin/rm -f $AVPDIR/*
    19. if [ $FLAG_C -ne 0 ]
    20. then
    21. rm $FTPDIR/av-i386-cumul.zip
    22. else
    23. $UZIP -o $FTPDIR/av-i386-cumul.zip -d "$AVPDIR"
    24. fi
    25. if [ $FLAG_W -ne 0 ]
    26. then
    27. rm $FTPDIR/av-i386-weekly.zip
    28. else
    29. $UZIP -o $FTPDIR/av-i386-weekly.zip -d "$AVPDIR"
    30. fi
    31. if [ $FLAG_D -ne 0 ]
    32. then
    33. rm $FTPDIR/av-i386-daily.zip
    34. else
    35. $UZIP -o $FTPDIR/av-i386-daily.zip -d "$AVPDIR"
    36. 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»
    1. <VirtualHost *:80>
    2. ServerAdmin demiurg@avp-updates.www
    3. DocumentRoot /www/avp-updates
    4. ServerName avp-updates.www
    5. ErrorLog /var/log/apache2/avp-updates_error-log
    6. CustomLog /var/log/apache2/avp-updates_log common
    7. <Directory "/www/avp-updates">
    8. Options Indexes
    9. AllowOverride None
    10. Order Deny,Allow
    11. Allow from All
    12. </Directory>
    13. </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 г.

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

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