пятница, 30 ноября 2012 г.

minicom и Cisco

Вознамерившись сегодня залить конфиг в циску через minicom командой
copy xmodem: startup-config
столкнулся с граблями, что файл никак не передается по этому самому xmodem-у, а в консоль лезут ошибки.
Как обычно, напряг гугль, и он выдал на задворках интересную инфу.
Оказывается, в minicom-овской конфигурации протоколов строка для передачи файла по протоколу Xmodem выглядит как:
C  xmodem     /usr/bin/sx -vv    Y    U    N       Y       N
Но, (внимание!) это совсем не означает, что команда sx будет передавать по этому самому Xmodem-у.
Для того, чтобы заставить нормально передавать конфиги на Cisco через последовательный порт, надо поменять эту строку на
C  xmodem     /usr/bin/sx -vv -t 30 -X -k    Y    U    N       Y       N
Ключ -X заставляет передавать именно в Xmodem-е, ключ -k заставляет передавать килобайтными пакетами, а ключ -t 30 дает 3-секундную задержку до начала передачи.



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

CryptoPro CSP и Ubuntu

Вообще CryptoPro CSP "не рассчитан" разработчиками для установки на Ubuntu и Debian-подобные сборки, но заставить работать можно.


Для этого устанавливаем установщик (масло масляное) "чуждых" rpm-пакетов:
sudo apt-get install alien

Затем регистрируемся на сайте CryptoPro и качаем дистрибутив. Дистрибутивы есть как под 32-битную архитектуру, так и под 64-битную. Скачали, распаковали, теперь в директории с набором установки первым делом надо выполнить -
на 32-битной системе:
sudo alien -kci cprocsp-compat-altlinux-1.0.0-1.noarch.rpm

а на 64-битной системе:
sudo alien -kci cprocsp-compat-altlinux-64-1.0.0-1.noarch.rpm

После этого запускаем, собственно, установщик:
sudo ./install.sh

Установщик выдаст, что не смог установить cprocsp-rdr-gui, но это особо и не важно.

Переходим в каталог, куда установился CryptoPro - для 32-битной системы это /opt/cprocsp/sbin/ia32
Проверяем лицензию:
/opt/cprocsp/sbin/ia32# ./cpconfig -license -view
Server license:
Expires: 3 month(s) 0 day(s)

Client license:
Expires: 3 month(s) 0 day(s) 

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

КРИПТО-ПРО, подписи и Госуслуги

На работе пришлось связаться с Крипто-про, подписью на Rutoken-е и сайтом госуслуг. 
 
Перерыл гугл в поисках информации, как, для проверки на сайте госуслуг, сделать подпись файла при помощи Crypto-Pro. Причем подпись должна быть "отсоединенная, в формате PKCS#7". Жесть. Мне, человеку далекому от разных там СКЗИ, это далось не сразу, но все-таки далось

Итак, подписываем файл (Крипто-про, есесс-но, должен быть установлен)
csptest -sfsign -sign -detached -in c:\fakepath\testdoc.txt -out c:\fakepath\testdoc.txt.sig -my your@email -add
Source message length:269
Calculated signature (or signed message) length:3684
Signature was done. Signature (or signed message) length:3668
Output file (c:\fakepath\testdoc.txt.sig) has been saved
Total: SYS: 0,451 sec USR: 0,060 sec UTC: 1,131 sec
[ErrorCode: 0x00000000]

Проверяем свою подпись:
csptest -sfsign -verify -detached -in c:\fakepath\testdoc.txt -signature c:\fakepath\testdoc.txt.sig -my your@email
Detached Signature was verified OK
Total: SYS: 0,250 sec USR: 0,050 sec UTC: 1,061 sec
[ErrorCode: 0x00000000]
 
Идем на сайт госуслуг
http://www.gosuslugi.ru/pgu/eds
В раздел «подтверждение подлинности ЭП электронного документа»
«ЭП — отсоединенная, в формате PKCS#7»
и скармливаем оба файлика.
Если все хорошо - видим, что ответ от сайта госуслуг положительный.
 
 

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

Конвертация аудиоформатов средствами Asterisk

Редко, но нужно преобразовать аудиоформат, а ставить ничего лишнего и заморачиваться с параметрами командной строки не хочется.
Тогда делаем так:
rasterisk -x "file convert /tmp/file_in.alaw /tmp/file_out.ulaw"

суббота, 27 октября 2012 г.

Отключаем InnoDB в MySQL 5.5

Если раньше в my.cnf проканывало просто 
[mysqld]
...

#Disable InnoDB
skip-innodb

то теперь надо явно указывать, какой движок по-умолчанию использовать для баз
[mysqld]
...

#Disable InnoDB
skip-innodb
default-storage-engine=myisam

Установка Asterisk 1.8 из исходников на Ubuntu 12.04


Первым делом обновим систему

apt-get update && apt-get upgrade

Проверим, и при необходимости установим новые файлы заголовков для ядра

apt-get install linux-headers-`uname -r`

Устанавливаем пакеты для компилирования Asterisk:

Компилятор
apt-get install build-essential

Библиотеки:
apt-get install libxml2-dev libncurses5-dev libreadline-dev libreadline6-dev

Всё для Google Talk
apt-get install libiksemel-dev

Поддержка формата ogg Vorbis
apt-get install libvorbis-dev

Необходимое для SIP
apt-get install libssl-dev

Поддержка кодека speex
apt-get install libspeex-dev libspeexdsp-dev

Поддержка MySQL
apt-get install libmysqlclient-dev


Поддержка SQLite3
apt-get install libsqlite3-dev sqlite3


И еще несколько дополнений
apt-get install mpg123 libmpg123-0 sox openssl wget subversion openssh-server

Или всё разом:
apt-get install linux-headers-`uname -r` build-essential \
    libxml2-dev libncurses5-dev libreadline-dev libreadline6-dev \
    libiksemel-dev libvorbis-dev libssl-dev libspeex-dev \
    libspeexdsp-dev libmysqlclient-dev libsqlite3-dev sqlite3 \
    mpg123 libmpg123-0 sox openssl wget subversion openssh-server

Переходим в директорий /usr/src и начинаем сборку:
cd /usr/src

Скачиваем DAHDI для конференций MeetMe
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz
tar -zxvf dahdi-linux-complete-2.6.1+2.6.1.tar.gz
cd dahdi-linux-complete-2.6.1+2.6.1/

make
make install
cd ..

Скачиваем Asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.17.0.tar.gz
tar -zxvf asterisk-1.8.17.0.tar.gz
cd asterisk-1.8.17.0/

Добавляем поддержку Mp3 и производим конфигурирование установщика

./contrib/scripts/get_mp3_source.sh 
./configure

Если все хорошо — мы получим лого Asterisk-а




Устанавливаем необходимые компоненты Asterisk

make menuconfig

Создаем исполняемые файлы Asterisk

make && make install

Копируем первичный конфиг в /etc/asterisk

make samples

Устанавливаем стартовые скрипты для запуска Asterisk при загрузке
make config

Добавляем поддержку 3G-модемов марки Huawei
wget https://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
tar xvzf chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14
./configure
make
make install
cp etc/dongle.conf /etc/asterisk


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

Из WAV в MP3 и наоборот

Для примера нам понадобится MP3-кодировщик lame. В каталоге с вавками даем команду:

find . -iname "*.wav" -exec lame '{}' ';'
Тем самым вы кодируете в Mp3 все wav-файлы в этом каталоге. Битрейт по умолчанию = 128.

А вот так кодируем с битрейтом 320 и наилучшим качеством:
find . -iname "*.wav" -exec lame '-b 320 -q 0' '{}' ';'

Сжать один wav-файл в MP3:
lame myfile.wav

Декодировать все MP3 в текущем каталоге в WAV:
find . -iname "*.mp3" -exec lame '--decode' '{}' ';'

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

XAnalogTV красив, но не на весь экран...

Понравился хранитель экрана XAnalogTV. Проблемка одна - на мониторах с соотношением 16:9 не разворачивается на весь экран. Но это легко поправимо. Создаем временную папку, и скачиваем туда исходники
sudo apt-get source xscreensaver
и доустанавливаем дополнительные пакеты
sudo apt-get build-dep xscreensaver
заходим в каталог с исходниками и делаем
./configure
после этого правим xanalogtv.c , а именно - комментируем строки 328 и 338:
wlim = hlim*max_ratio;/* Comment these two lines out to prevent */
hlim = wlim/min_ratio;/* XAnalogTV from reshaping the display.  */
ну а далее - компилируем и устанавливаем новый модуль
make
sudo cp /usr/lib/xscreensaver/xanalogtv \
        /usr/lib/xscreensaver/xanalogtv.bak
sudo cp ./hacks/xanalogtv /usr/lib/xscreensaver/
и наслаждаемся результатом...

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

exFAT в (X)ubuntu - подключаем навигатор с WinCE6 и прочую фигню.


Делаем
sudo -s
apt-add-repository ppa:relan/exfat
apt-get update
apt-get install fuse-exfat
На стандартном ядре уже есть FUSE, поэтому ничего дополнительного делать не нужно. Подключаем устройство и видим на рабочем столе нужные накопители. Файловый менеджер их замечательно видит. Мышкой монтируем/отмонтируем, наслаждаемся результатом.

Если вдруг у вас не оказалось питона, то вначале нужно
apt-get install python-software-properties

(за инфу спасибо Дяде Дену)

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

Автоматическое применение правил iptables при старте (X)ubuntu



Создаем в каталоге /etc/init.d файл iptables следующего содержания:

#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: mountvirtfs ifupdown $local_fs
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
# July 9, 2007
# James B. Crocker
# Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
# Script to load/unload/save iptables firewall settings.
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

IPTABLES=/sbin/iptables
IPTABLES_SAVE=/sbin/iptables-save
IPTABLES_RESTORE=/sbin/iptables-restore

IPTABLES_CONFIG=/etc/iptables.conf

[ -x $IPTABLES ] || exit 0

. /lib/lsb/init-functions


case "$1" in
start)
log_action_begin_msg "Starting firewall"
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then 

log_action_end_msg $? 
else 
log_action_end_msg $? 
fi 
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
;;

stop)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Flushing ALL firewall rules from chains!"
if $IPTABLES -F ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
if $IPTABLES -X ; then
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;

save)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;

force-reload|restart)
log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
$IPTABLES -F
$IPTABLES -X
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;

*)
echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
exit 1
;;
esac

exit 0

Затем присваиваем ему права:
chmod +x iptables
и прописываем автозапуск при старте машины:
update-rc.d iptables defaults

Теперь работают команды
service iptables {start|stop|save|restart|force-reload}

Аналог Win+L в (X)ubuntu

Отходя от компа, выработалась привычка нажимать Win+L
Но в (X)ubunte такой комбинации нет. А надо... Надо зайти:
Приложения - Настройки - Диспетчер настроек - Клавиатура
Тут закладка "Комбинации клавиш", добавляем новую (жмем Добавить),
затем вводим в поле "Команда:" /usr/bin/xscreensaver-command -lock
Ну и на запрос комбинации клавиш жмем Win+L
Voila!

четверг, 20 сентября 2012 г.

Google Earth в (X)ubuntu 12.04 - где текст?

Установили, запустили, и обломились? Нету шрифтов?
Не беда!
Необходим пакет xfonts-cronyx-100dpi

apt-get install xfonts-cronyx-100dpi

После установки завершить сеанс или перезагрузиться.

Путь, указанный здесь: http://www.opennet.ru/tips/info/2177.shtml , не подошел.

вторник, 11 сентября 2012 г.

Одновременная работа PPPoE и локального подключения

Победить потерю айпишнека на eth0 при подключении по PPPoE при использовании стандартного Network-Manager в (x)ubuntu удалось только двумя скриптами:

/etc/network/if-up.d/pppoe-eth0 :
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
######################################
# при необходимости заменить eth№
# на номер своей сетевой
# rusooo(c) ;)
######################################
if [ "$IFACE" = ppp0 ] ; then
iptables -A INPUT -p igmp -i eth0 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 1234 -j ACCEPT
route add -net 224.0.0.0/4 dev eth0
dhclient eth0
fi
exit 0


/etc/network/if-down.d/pppoe-eth0 :
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
######################################
# при необходимости заменить eth№
# на номер своей сетевой
# rusooo(c) ;)
######################################
dhclient eth0
exit 0

понедельник, 20 августа 2012 г.

Танцы с бубном вокруг SSH на DD-WRT

Воткнул очередной раз DD-WRT на DIR-320, но т.к. залил сначала стандартную прошивку, а потом от EKO, то встал на грабли в виде нерабочего SSH. Оказыватся, надо удалить старые ключики:

nvram unset sshd_rsa_host_key
nvram commit
reboot

четверг, 19 июля 2012 г.

Упала база, упала нахрен...

Электрики "пошутили", сервак радиуса рухнул, после запуска ругается на ошибки в таблице radacct - что делать?

1. Останавливаем радиус
/etc/init.d/radiusd stop
2. Копируем таблицу радиуса radacct из /var/lib/mysql/radius в /var/lib/mysql/radius_me
3. Создаем чистую временную таблицу radacct
mysql < radacct.sql *-смотри ниже
4. Запускаем радиус
/etc/init.d/radiusd start
5. Запускаем проверку таблицы с восстановлением
mysqlcheck radius_me --optimize --repair
И ждееееееем восстановления.
6. Останавливаем радиус
/etc/init.d/radiusd stop
7. Копируем временную таблицу радиуса radacct из /var/lib/mysql/radius в /var/lib/mysql/radius_me1
8. Копируем восстановленную таблицу радиуса radacct из /var/lib/mysql/radius_me в /var/lib/mysql/radius
9. Запускаем радиус
/etc/init.d/radiusd start
10. Вставляем записи, которых не было в порушеной таблице, из временной
INSERT IGNORE INTO radius.radacct SELECT * FROM radius_me1.radacct;

*
USE radius;
DROP TABLE IF EXISTS `radacct`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `radacct` (
`radacctid` bigint(21) NOT NULL AUTO_INCREMENT,
`acctsessionid` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`acctuniqueid` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`username` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`groupname` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`realm` varchar(64) COLLATE utf8_unicode_ci DEFAULT '',
`nasipaddress` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`nasportid` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
`nasporttype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
`acctstarttime` datetime DEFAULT NULL,
`acctstoptime` datetime DEFAULT NULL,
`acctsessiontime` int(12) DEFAULT NULL,
`acctauthentic` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
`connectinfo_start` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`connectinfo_stop` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`acctinputoctets` bigint(20) DEFAULT NULL,
`acctoutputoctets` bigint(20) DEFAULT NULL,
`calledstationid` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`callingstationid` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`acctterminatecause` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`servicetype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
`framedprotocol` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
`framedipaddress` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`acctstartdelay` int(12) DEFAULT NULL,
`acctstopdelay` int(12) DEFAULT NULL,
`xascendsessionsvrkey` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`radacctid`),
KEY `username` (`username`),
KEY `framedipaddress` (`framedipaddress`),
KEY `acctsessionid` (`acctsessionid`),
KEY `acctsessiontime` (`acctsessiontime`),
KEY `acctuniqueid` (`acctuniqueid`),
KEY `acctstarttime` (`acctstarttime`),
KEY `acctstoptime` (`acctstoptime`),
KEY `nasipaddress` (`nasipaddress`),
KEY `callingstationid` (`callingstationid`),
KEY `groupname` (`groupname`)
) ENGINE=MyISAM AUTO_INCREMENT=21294825 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

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

Интернет - Интерра, вентиляция - Вентерра!



Windows 2008 server R2 и интернет-банк Транскредитбанка

Суперзащищенность Windows 2008 server R2 64-битной просто поражает.
Попытки установить интернет-банк от Транскредитбанка разбились об DEP - предотвращение выполнения данных.
Но если глобальную настройку DEP для всего сервера можно выключить в свойствах системы (надо еще перезагрузиться), то этого еще недостаточно, чтобы снялась галочка "Включить защиту памяти для снижения риска интернет-атак" - придется лезть в gpedit.msc и менять параметр "Конфигурация компьютера-Административные шаблоны-Компоненты Windows-Internet Explorer-Средства безопасности-Отключить предотвращение выполнения данных" на "Включена"

http://blogs.msdn.com/b/askie/archive/2009/07/02/how-to-disable-dep-ns-memory-protection-in-ie-8-via-policy.aspx

Только после этого стало возможным заходить в интернет-банк, не запуская Internet Explorer от имени администратора.

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

DIR-320, DD-WRT и MAC-адреса

Прошил два DIR-320 прошивкой, а у них MAC-адреса слетели.
Ну и, естественно, в одной сетке им не жить. Но есть выход.
Заходим на веб-морду в раздел администрирования.
Переходим в окно Commands и пишем туда:
nvram set et0macaddr=ea:39:4C:C0:00:04
nvram set wan_hwaddr=ea:39:4C:C0:00:05
nvram set wl0_hwaddr=ea:39:4C:C0:00:06
nvram commit

вторник, 26 июня 2012 г.

Автоматически - статические!

Как без написания дополнительных скриптов сделать так, чтобы при старте Ubuntu или Debian автоматически прописывались статические маршруты? Да запросто.
Редактируем /etc/network/interfaces и вписываем в конец:

# static route
up route add -net 192.168.2.0/24 gw 192.168.1.1 dev eth0
up route add -net 192.168.3.0/24 gw 192.168.1.1 dev eth0
up route add -net 192.168.4.0/24 gw 192.168.1.1 dev eth0

Меняем локаль на Debian и Ubuntu

На debian:
dpkg-reconfigure locales

На ubuntu:
cat /usr/share/i18n/SUPPORTED | grep ru > /var/lib/locales/supported.d/local
dpkg-reconfigure locales
update-locale LANG=ru_RU.UTF-8

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

вторник, 5 июня 2012 г.

Статические IP-адреса для IP-виртуализации в Windows 2008, и Vmware ESXi

Инструкций по сабжу в интернете много, но как обойти грабли в виде неработоспособности данного решения под Vmware ESXi - нашел только одну инструкцию. Да и та категорично говорила - Remove Vmware Tools. Попробовал - действительно помогло. Но не удалять же все тулзы? Нашел выход - снёс и поставил все тулзы, за исключением "продвинутых" сетевых драйверов от Vmware. Помогло! Каждой сессии выдается свой уникальный IP-адрес. Теперь мучаюсь вопросом - а как привязать конкретный IP-адрес к конкретному юзеру.

понедельник, 4 июня 2012 г.

HP LaserJet 1120 и RDP

Иногда хочется расстрелять к чертям злобных разработчиков драйверов и оборудования компании HP. Может я чего-то не понимаю, но танцы с бубном вокруг оборудования HP меня давно уже достали. Вот и в этот раз танцевал и бил в бубен несколько дней, пока заклятие не подействовало. А дело, казалось бы, было плёвое - надо было, чтобы принтер марки HP LaserJet M1120 печатал из RDP-сессии. Но не тут-то было! В очереди печати на клиентском компе возникали какие-то фантомные 5 заданий перед основным, и пока их не удалишь - печать самого документа не шла. Перепробовал разнообразные драйвера для этого 1120, ставил абсолютно одинаковые и на локальном компе, и на сервере - ни в какую. В итоге сегодня снизошло озарение, и после отключения пункта "Разрешить двусторонний обмен данными" и включения "Начинать печать после помещения а очередь всего задания" всё заработало. Жаль только потерянного впустую времени... И почему у других разработчиков принтеров всё работает легко и непринуждённо?

вторник, 29 мая 2012 г.

Ubuntu не хотела обнавляться. Пришлось заставить

Возникла проблемка с Ubuntu 11.10
Всё работает нормально, но на моменте aptitude update зависало с выводом "waiting for headers" и ни в какую не хотело грузить.
Раскопки гугла привели к следующему:
ifconfig eth0 mtu 1468

1468 вычислил опытным путем, пингуя с параметром -s хост ru.archive.ubuntu.com

И как только поменял - всё залетало, засвистело и запело.

понедельник, 28 мая 2012 г.

Выдача статических маршрутов в Cisco по DHCP

ip dhcp pool somepoolname
network 192.168.3.0 255.255.255.0
option 249 hex xxxx.yyyy.zzzz........
либо
option 249 ip 24.192.168.1 192.168.3.1 24.192.168.2 192.168.3.1
lease 0 2


Таким образом, мы выдаем айпишники из пула 192.168.3.0/255.255.255.0 , указывая, что к подсетям 192.168.1.0/255.255.255.0 и 192.168.2.0/255.255.255.0 надо идти через шлюз 192.168.3.1

option 249 hex вычислить несложно, имея под рукой скрипт:

#!/usr/bin/perl -w

use strict;

sub option_121 {
my $gw = shift;
my $out_str = '';
my ($subnet, $mask, $b0, $b1, $b2, $b3);
foreach my $cidr (@_) {
($subnet, $mask) = split('/', $cidr);
($b0, $b1, $b2, $b3) = split(/\./,$subnet);
$out_str .= sprintf('%02x', $mask);
$out_str .= sprintf('%02x', $b0);
$out_str .= sprintf('%02x', $b1) if($mask > 8);
$out_str .= sprintf('%02x', $b2)
if($mask > 16);
$out_str .= sprintf('%02x', $b3) if($mask > 24);
$out_str .= sprintf('%02x%02x%02x%02x', split(/\./,$gw));
}
return $out_str;
}

if(@ARGV < 2)
{
print "Usage: $0 gw_ip subnet1/mask1 subnet2/mask2 ... subnetN/maskN\n";
}
elsif($ARGV[0] =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
{
print "DHCP option 121 (249) hex string: ".option_121(@ARGV)."\n";
}

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

Ignore remote keyboard или раскладки клавиатуры в терминальной сессии

Очередная установка Windows 2008, очередные грабли с раскладками клавиатуры в RDP-сессии...
Надоело! Давно уже пора скопипастить сие:

When a RDP client connects to a remote desktop server, the client’s input language and keyboard settings are detected, which will obviously cause trouble if you want to push language and keyboard settings for your users.
To disable this feature on your remote desktop or Citrix XenApp server, add a DWORD value called IgnoreRemoteKeyboardLayout with a value of 1 under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout.

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

Поле битвы - ХэПэ (HP)

Надысь понадобилось извратиться, и пробросить клиенту сетевой принтер-сканер модели HP M1212nf, дабы оно печатало и сканировало со стороны сервера 2008. Но при этом надо, чтобы принтер был как сетевой, и находящийся у клиента за роутером. Ну ладно, худо-бедно удаленную печать я победил, пробросив порт 9100, но как сканировать? Ладно, начинаю разбираться - HP в качестве портов для управления сетевым сканером использует 8290 и 8285. Пробрасываю - и получаю облом. Так-с, но ДОЛЖНО же работать! Пробую с рабочего места, с родной XP - работает! Значит проблема где-то на стороне сервера. Гуглю, пробую, снова гуглю... Не работает... И тут нахожу, что надо папочку c:\Windows\twain_32\ скопировать в каталог юзера, в папку Windows, т.е., к примеру, в c:\Users\Administrator\WINDOWS\
Копирую, с замиранием сердца запускаю на сервере HP-шное "Сканировать в" - УРА! Сканер нашелся!

З.Ы. Как оказалось, достаточно пробросить дополнительно только один порт - 8290. Сканер заработал.

суббота, 5 мая 2012 г.

Asterisk и chan_datacard

apt-get install libusb-0.1-4 libusb-dev subversion

svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
cd ~/chan_datacard/
./configure
make install
cp ~/chan_datacard/etc/datacard.conf /etc/asterisk

cd ..

wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.2.3.tar.bz2
tar -jxvf usb-modeswitch-1.2.3.tar.bz2
cd usb-modeswitch-1.2.3
make install

wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20120120.tar.bz2
tar -jxvf usb-modeswitch-data-20120120.tar.bz2
cd usb-modeswitch-data-20120120
make install

В связи с развитием проектов могут меняться версии, поэтому - проверяйте и корректируйте команды

среда, 4 апреля 2012 г.

Раскирпичиваем TL-WR1043ND

Удачно получилось превратить данный роутер в кирпич.
Ну а дабы не выкидывать, решил попробовать восстановить.
Инструкцию взял здесь
Прикрутил ком-порт
После включения в консоли Putty (настройки ком-порта - 115200,n,8,1,p) быстро пытаемся нажать кнопки tpl
Получаем в консоли:
Autobooting in 1 secondsar7100>
Настраиваем tftp - я брал ftpd32
Устанавливаем айпишник на локальной сетевухе - 192.168.0.5
И вводим в консоли следующие команды:
erase 0xbf020000 +7c0000
tftpboot 0x81000000 code.bin
cp.b 0x81000000 0xbf020000 0x7c0000
bootm 0xbf020000

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

Управляем виртуалками в ESXi

vim-cmd vmsvc/getallvms - эта команда выводит список всех доступных ВМ и их id

vim-cmd vmsvc/power.off 48 - выключает питание у ВМ с id 48

vim-cmd vmsvc/power.restart - перезапускает машину с

vim-cmd vmsvc /? - выводит список доступных команд

Если нужно ежедневно перезагружать машины, то вносим строки в

var/spool/cron/crontabs/root

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

Cisco, cisco, кис-кис-кис, побыстрее загрузись...

Как правило, внедрение новых кошек марки Cisco 650X просходит довольно редко.
А проблемы возникают, как правило, одни и те же.
Вот и очередная кошка не захотела грузиться. Что делать?
Подцепляем консольный кабель и смотрим, что там у нас в консоли.
А в консоли

Autoboot: failed, BOOT string is empty

rommon 1 >

Ну что ж, циска забыла, откуда ей грузиться и что грузить...
Помогаем ей вспомнить! Делаем:

dir bootflash:
и смотрим на вывод
File size Checksum File name
1 -rw- 14793040 Aug 10 2011 13:40:44 +06:00 c6msfc2-jsv-mz.121-23.E1.bin

c6msfc2-jsv-mz.121-23.E1.bin - это имя того, что нам надо грузить
Соответственно, полное имя файла будет bootflash:c6msfc2-jsv-mz.121-23.E1.bin

Теперь вводим в rommon следующие команды

rommon>boot bootflash:c6msfc2-jsv-mz.121-23.E1.bin

и ждем загрузки кошки.
После загрузки входим в консоль, и делаем

switch>enable
switch#conf t
switch(config)#boot system flash bootflash:c6msfc2-jsv-mz.121-23.E1.bin
switch(config)#end

Делаем wr и пробуем перезагрузиться - reload
Если мы нигде не ошиблись, то кошка загрузится.