Из-за особенностей нашего гос регулирования, спокойно в страну можно ввезти оборудование с шифрованием менее 56 бит, сюда относится алгоритм DES (доступен, например, на оборудовании Cisco с кодом К8), однако для использования VPN клиентов с таким шифрованием в Windows Vista и 7, потребуется немного пошаманить в реестре:
http://support.microsoft.com/kb/929856/ru
---
Change the encryption setting on the VPN client computer
Существенный:Этот раздел, метод или задачу включены действия по инструкции по изменению реестра. Однако, серьезные проблемы могут возникнуть в случае некорректного изменения реестра.. Поэтому при выполнении этих действий рекомендуется строго соблюдать инструкции.. Чтобы обеспечить дополнительную защиту, создайте резервную копию реестра.. В этом случае при возникновении неполадок реестр можно будет восстановить.. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт::
322756 Создание резервных копий и восстановление реестра Windows
Add the AllowL2TPWeakCrypto registry entry to change the encryption setting that the Routing and Remote Access service uses on the client computer. After you do this, MD5 encryption or DES encryption is enabled on the client computer. To change the encryption setting, follow these steps:
Create the AllowL2TPWeakCrypto registry entry, and then set it to a value of 1. Выполните следующие действия::
затем –START ::затем –ВыполнитьTYPE :regeditи выберите командуOk..
Найдите и выберите следующий подраздел реестра::
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
в менюВ файлеВыберите пункт менюСОЗДАТЬ.и выберите командуПараметр DWORD.
TYPE :AllowL2TPWeakCryptoи нажмите клавишу ВВОД..
в менюВ файлевыберите пунктModify.
В диалоговом окнеЗначениеполе типа1и выберите командуOk..
в менюФайл:выберите пунктExitЧтобы закрыть редактор реестра.
Restart the "Routing and Remote Access" service and the Remote Access Connection Manager service. Выполните следующие действия::
затем –START ::, щелкните правой кнопкой мышиMy Computerи выберите командуУправление.
expandСлужбы и приложенияи выберите командуСлужбы:.
Щелкните правой кнопкой мышиМаршрутизация и удаленный доступи выберите командуСообщение об ошибке «Stop:.
Щелкните правой кнопкой мышиДиспетчер подключения удаленного доступаи выберите командуСообщение об ошибке «Stop:.
Щелкните правой кнопкой мышиДиспетчер подключения удаленного доступаи выберите командуSTART ::.
Щелкните правой кнопкой мышиМаршрутизация и удаленный доступи выберите командуSTART ::.
пятница, 16 декабря 2011 г.
вторник, 18 октября 2011 г.
Использование интерфейсов источников при дебаге
В мемориз!
полезные параметры известных утилит:
ping 10.4.0.2 repeat 100 size 1408 source 10.4.1.1 validate
ping 10.4.0.2 repeat 100 size 1408 source vlan 2 validate
ping 10.4.0.2 repeat 20 size 1408 source gigabitEthernet 1/9
ping 10.4.0.2 repeat 20 size 1408 source loopback 0
Задаются хост назначения, сколько пингов заслать, размер кадра, источник (интерфейс, адрес).
---
traceroute 10.10.1.6 probe 2 ttl 5 6 timeout 2 source loopback 0
Задается хост назначения, количество попыток достучаться до некст-хопа, минимальное и максимальное значение жизни пакета (уменьшается на каждом хопе), таймаут на каждом хопе и интерфейс источника (может быть VLAN)
---
telnet 10.10.1.6 www /source-interface loopback 0
telnet 10.71.200.254 3389 /ipv4 /debug /source-interface vlan 57
Проверка доступности tcp портов при обращении к ним из разных подсетей (можно определить проблемы с маршрутизацией, если из одной подсети доступ есть, а из другой нет, при том, что акcесс-листов между ними нет).
полезные параметры известных утилит:
ping 10.4.0.2 repeat 100 size 1408 source 10.4.1.1 validate
ping 10.4.0.2 repeat 100 size 1408 source vlan 2 validate
ping 10.4.0.2 repeat 20 size 1408 source gigabitEthernet 1/9
ping 10.4.0.2 repeat 20 size 1408 source loopback 0
Задаются хост назначения, сколько пингов заслать, размер кадра, источник (интерфейс, адрес).
---
traceroute 10.10.1.6 probe 2 ttl 5 6 timeout 2 source loopback 0
Задается хост назначения, количество попыток достучаться до некст-хопа, минимальное и максимальное значение жизни пакета (уменьшается на каждом хопе), таймаут на каждом хопе и интерфейс источника (может быть VLAN)
---
telnet 10.10.1.6 www /source-interface loopback 0
telnet 10.71.200.254 3389 /ipv4 /debug /source-interface vlan 57
Проверка доступности tcp портов при обращении к ним из разных подсетей (можно определить проблемы с маршрутизацией, если из одной подсети доступ есть, а из другой нет, при том, что акcесс-листов между ними нет).
понедельник, 10 октября 2011 г.
Ubuntu быстрая активация HTTPS в Apache2
По умолчанию, SSL отключен, так что выполним 2 команды:
sudo a2ensite default-ssl
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod ssl
Быстрая установка curl-loader на Ubuntu
Для установки нужны будут пакеты:
sudo apt-get install build-essential libssl-dev
девелоперская библиотека нужна для HTTPS'а (без нее пакетик-то соберется и даже изобразит какую-то работу, но без результата)
качаем и распаковываем "давилку"
wget http://sourceforge.net/projects/curl-loader/files/curl-loader-stable/curl-loader-0.52/curl-loader-0.52.tar.gz
tar zxvf curl-loader-0.52.tar.gz
переходим в распакованный каталог и собираем пакет
sudo make && make install
теперь под судоером его можно будет запустить, указав файл с настройками (целями).
Например, для тестов балансировщика Cisco CSS 11503 применялся такой файл настройки:
sudo vim bulc_8.conf
########### GENERAL SECTION ################################
BATCH_NAME= bulk_dual
CLIENTS_NUM_MAX=200
CLIENTS_RAMPUP_INC=10
INTERFACE =eth0
NETMASK=20
IP_ADDR_MIN= 10.144.16.0
IP_ADDR_MAX= 10.144.31.255 #Actually - this is for self-control
CYCLES_NUM= 100
URLS_NUM= 8
########### URL SECTION ####################################
URL=http://10.144.24.2/index.html
#http://localhost/apache2-default/ACE-INSTALL.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0
TIMER_AFTER_URL_SLEEP =0
URL= http://10.144.24.3/index.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancel$
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.24.2/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.24.3/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=http://10.144.28.2/index.html
#http://localhost/apache2-default/ACE-INSTALL.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0
TIMER_AFTER_URL_SLEEP =0
URL= http://10.144.28.3/index.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancel$
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.28.2/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.28.3/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
Запускаем конфиг:
sudo curl-loader -f bulc_8.conf
sudo apt-get install build-essential libssl-dev
девелоперская библиотека нужна для HTTPS'а (без нее пакетик-то соберется и даже изобразит какую-то работу, но без результата)
качаем и распаковываем "давилку"
wget http://sourceforge.net/projects/curl-loader/files/curl-loader-stable/curl-loader-0.52/curl-loader-0.52.tar.gz
tar zxvf curl-loader-0.52.tar.gz
переходим в распакованный каталог и собираем пакет
sudo make && make install
теперь под судоером его можно будет запустить, указав файл с настройками (целями).
Например, для тестов балансировщика Cisco CSS 11503 применялся такой файл настройки:
sudo vim bulc_8.conf
########### GENERAL SECTION ################################
BATCH_NAME= bulk_dual
CLIENTS_NUM_MAX=200
CLIENTS_RAMPUP_INC=10
INTERFACE =eth0
NETMASK=20
IP_ADDR_MIN= 10.144.16.0
IP_ADDR_MAX= 10.144.31.255 #Actually - this is for self-control
CYCLES_NUM= 100
URLS_NUM= 8
########### URL SECTION ####################################
URL=http://10.144.24.2/index.html
#http://localhost/apache2-default/ACE-INSTALL.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0
TIMER_AFTER_URL_SLEEP =0
URL= http://10.144.24.3/index.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancel$
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.24.2/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.24.3/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=http://10.144.28.2/index.html
#http://localhost/apache2-default/ACE-INSTALL.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0
TIMER_AFTER_URL_SLEEP =0
URL= http://10.144.28.3/index.html
URL_SHORT_NAME=" INDEX"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancel$
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.28.2/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
URL=https://10.144.28.3/index.html
#URL=https://localhost/apache2-default/ACE-INSTALL.html
#URL=https://localhost/ACE-INSTALL.html
URL_SHORT_NAME="url-https"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 0 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =1000
Запускаем конфиг:
sudo curl-loader -f bulc_8.conf
Полезные сетевые утилиты
Большинство перенесены из Никсов:
- hardping.exe
- nmap (без комментариев...)
- arping.exe
- tracetcp.exe
- iperf
в линухах еще добавка - iptraf и curl-loader
- hardping.exe
- nmap (без комментариев...)
- arping.exe
- tracetcp.exe
- iperf
в линухах еще добавка - iptraf и curl-loader
Быстрые хинты для HP UX
Как выключить / перезагрузить сервак:
выключить
# init 0
# shutdown -h -y now
перезагрузить
# reboot
# shutdown -r -y now
Как просмотреть адреса интерфейса(ов):
# netstat -in
вывод будет примерно такой:
# netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
lan0 1500 10.144.16.0 10.144.24.2 5117841 0 557676 0 0
lo0 32808 127.0.0.0 127.0.0.1 10579 0 10579 0 0
выключить
# init 0
# shutdown -h -y now
перезагрузить
# reboot
# shutdown -r -y now
Как просмотреть адреса интерфейса(ов):
# netstat -in
вывод будет примерно такой:
# netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
lan0 1500 10.144.16.0 10.144.24.2 5117841 0 557676 0 0
lo0 32808 127.0.0.0 127.0.0.1 10579 0 10579 0 0
вторник, 20 сентября 2011 г.
Памятка по сбросу паролей на Cisco ISR
Собственно, основано на предыдущем посте, когда одноразовые пароли "крякнули", а новые умная Маша не поставила...
при старте рутера из консоли передаем Break сигнал (в Putty прямо указан такой пункт в контекстном меню, также можно попробовать комбинации Ctrl+Break, Alt+B). В результате нужно оказаться в приглашении
rommon>
здесь меняем параметры
confreg 0x2142
reset
получаем загрузку без запуска startup конфига (то бишь без паролей и настроек), теперь можно набить свои данные, поменять налету confreg 0x2102 и сохранить изменения, делаем reload и все ОК.
при старте рутера из консоли передаем Break сигнал (в Putty прямо указан такой пункт в контекстном меню, также можно попробовать комбинации Ctrl+Break, Alt+B). В результате нужно оказаться в приглашении
rommon>
здесь меняем параметры
confreg 0x2142
reset
получаем загрузку без запуска startup конфига (то бишь без паролей и настроек), теперь можно набить свои данные, поменять налету confreg 0x2102 и сохранить изменения, делаем reload и все ОК.
Помнить! Одноразовые пароли на новых Cisco ISR'ах
На новых рутерах для первого входа настроены логин/пароль и enable пароль - cisco. В дисклеймере это четко написано, мол, сразу задайте свои креденшалсы. Но кто эти дисклеймеры читает?! Мы ж инженегры со стажем! вот так обновил IOSину, а свои данные не добавил, так что на память сразу после входа:
aaa new-model
aaa authentication login default local
username admin privil 15 secret Admin
enable secret Admin
do wr
Вот теперь можно заняться всем остальным - обновляться, играться.
aaa new-model
aaa authentication login default local
username admin privil 15 secret Admin
enable secret Admin
do wr
Вот теперь можно заняться всем остальным - обновляться, играться.
воскресенье, 4 сентября 2011 г.
Доступ из Ubuntu к шарам на WinXP
Несколько раз сталкивался с тем, что при обращении с рабочей станции под линухами к шарам на вин машине, происходит запрос аутентификации, который не успешен, даже при правильном вводе всех параметров. Это происходит даже тогда, когда на шару разрешен доступ всем и клиенты находятся в одной рабочей группе. Долго проверял настройки на винде, такие как "простой общий доступ" и разрешения в файрволе. Также раскапывал настройки SMB клиента в Ubuntu:
smbclient -L хост -W домен_рабочая_группа -U пользователь_разрешением_на_шару
Решилась проблема относительно просто: при разрешении для всех, используется имеющийся в системе гостевой аккаунт Гость (Guest), если для этого аккаунта стоит параметр "Изменение пароля при первом входе", то и происходят такие накладки. Этот флаг нужно снять, рекомендуется установить флаги запрета смены пароля пользователем и бесконечный срок действия аккаунта.
smbclient -L хост -W домен_рабочая_группа -U пользователь_разрешением_на_шару
Решилась проблема относительно просто: при разрешении для всех, используется имеющийся в системе гостевой аккаунт Гость (Guest), если для этого аккаунта стоит параметр "Изменение пароля при первом входе", то и происходят такие накладки. Этот флаг нужно снять, рекомендуется установить флаги запрета смены пароля пользователем и бесконечный срок действия аккаунта.
Тренировка по Vim'у - vimtutor
В комплекте с самим редактором идет и полуинтерактивный учебник по функционалу vim, набираете в консоли $ vimtutor и выполняете задания прямо в нем, используя подсказки и пошаговые инструкции (по сути, происходит правка самого файла с инструкцией).
среда, 31 августа 2011 г.
Запуск HP Networking Configurator'а под IE9 в Win7
Для того, чтобы в новом IE9 (под 7кой) заработал HP Networking Online Configurator (http://h17007.www1.hp.com/tw/en/products/configurator/index.aspx), необходимо включить Надстройку Envision Control. Иначе загружаемому компоненту ActiveX invision.ocx не будет сопоставлена программа, его открывающая.
вторник, 23 августа 2011 г.
Разблокировка содержимого chm файлов в Win7.
В мемориз, содержимое файлов chm считается небезопасным, поэтому просмотр содержимого там по-умолчанию блокируется. Симптомом является строка "Navigation for the webpage was canceled". Для решения проблемы в свойствах файла (по правой кнопке в контекстном меню "Свойства") нажать в нижнем правом углу "Разблокировать". Сохраняем изменения свойств файла и открываем уже с содержимым.
понедельник, 1 августа 2011 г.
Восстановление панели задач в Ubuntu.
В мемориз как восстановить панели по умолчанию:
1. жмем alt-F2
2. вводим gnome-terminal, "Запустить"
3. вводим в терминале gconftool --recursive-unset /apps/panel, нажимаем "Enter"
4. нажимаем alt-F1
взято здесь: http://otvety.google.ru/otvety/thread?tid=142de9753634e22d
1. жмем alt-F2
2. вводим gnome-terminal, "Запустить"
3. вводим в терминале gconftool --recursive-unset /apps/panel, нажимаем "Enter"
4. нажимаем alt-F1
взято здесь: http://otvety.google.ru/otvety/thread?tid=142de9753634e22d
вторник, 19 июля 2011 г.
Citrix XenApp проблема с сертификатом (SSL 61).
При запуске опубликованных приложений из Firefox'а в Ubuntu, выскакивала ошибка проверки сертификата, несмотря на то, что он находился в разделе доверенных CA браузера. Для нормальной работы нужно было также поместить сертификат в каталог Citrix клиента: /home/mik17/ICAClient/linuxx86/keystore/cacerts
среда, 15 июня 2011 г.
В мемориз по особенностям HP ProCurve OSPF RID
На всякий случай, нужно запомнить, что в отличие от Cisco, где DR'ом по-умолчанию выбирается рутер с наибольшим адресом на интерфейсе (без явно указанного RID), в HP наоборот, в качестве RID будет выбран наименьший адрес Loopback интерфейса (или просто наименьший адрес интерфейса, если нет ни одного лупбэка).
Из гайда по этому поводу:
... By default, the router ID is the lowest numbered IP address or (user-configured) loopback interface configured on the device...
Из гайда по этому поводу:
... By default, the router ID is the lowest numbered IP address or (user-configured) loopback interface configured on the device...
Настройки Cisco с риском себя заблокировать.
Иной раз второпях ли, не подумав или просто по невнимательности, можно одной командой отрубить себя от настраиваемого девайса. Хорошо, если он тут рядом - можно и пароли посбрасывать и консолькой подрубиться. А что делать, если маршрутизатор находится за пару сотен километров, редко инженеру или его работодателям улыбается перспектива командировки. Для подобных случаев, при настройках по живому, перед применением особо зверских команд можно подстраховать себя: пока конфиг не сохранен, всегда есть возможность откатиться на стартовый конфиг перезагрузкой рутера.
Для этого юзаем команды:
- #reload in ?
Delay before reload (mmm or hhh:mm)
указываем, через сколько минут/часов будет перезагрузка.
Не забываем при достижении времени Ч отменять настройку, чтобы не потерять уже сделанные правки:
#reload cancel
Опционально можно назначить точную дату / время (не интервал).
Для этого юзаем команды:
- #reload in ?
Delay before reload (mmm or hhh:mm)
указываем, через сколько минут/часов будет перезагрузка.
Не забываем при достижении времени Ч отменять настройку, чтобы не потерять уже сделанные правки:
#reload cancel
Опционально можно назначить точную дату / время (не интервал).
понедельник, 16 мая 2011 г.
Установка нового сертификата на Cisco ACS 4.2. Грабли.
В очередной раз убеждаюсь, что Циска плохо умеет делать прикладные софтовые решения. Так кажущаяся простой задача с обновлением сертификата аплайнса, превратилась в редкостную "секаса". Итак, народ, решивший посидеть на WiFi был жестоко обломан с записями на беспроводном контроллере, что у них Authentication Failed. На самих ACS'ах в фейловом разделе также гордо указывалось на EAP-TLS or PEAP authentication failed during SSL handshake. Быстрый поиск и нахождение описания ошибки:
This failure occurs when:
•The server validation is not configured correctly on the client.
•The machine certificate is not provisioned on the machine (when used with EAP-TLS).
•Unable to provide a user certificate for authentication.
•The AAA server certificate has expired.
•The Root CA certificate is not installed or is not installed correctly on the client.
•The same CA certificate is used for intermediate CA or Root CA certificate: Root CA duplication.
Проверка аплайнса показала экспайренный пару дней назад сертификат. Вот тут и началось веселье - мануал описывал процесс обновления на пол странички, причем в картинках. Однако первый полученный от Виндового CA сертификат оказался Unsupported certificate format. К слову, сама Винда прекрасно в курсе про формат p7b. Чтож попробуем конвертнуть - первое, что пришло в голову - поставить на локальную машину полученный серт (благо можно), а потом его экспортировать в кошерный вид. Сделано, еще попытка установки, но теперь с ошибкой - Unsupported private key file format. Чтоб тебя! Начинаем копать поиск и курить инфу. Вариантов аналогичной проблемы с 2005 года - масса, решения не всегда всем помогают, в общем никакой определенности. Перевыпускаю реквест на новый сертификат, точно вижу новосозданный приватный ключ, получаю назад p7b, конверчу - фига - Private key you've selected doesn't fit to this certificate. Снова поиск уже по новым вводным. В результате, что нужно учитывать, то бишь описание грабель:
- не использовать при формировании реквеста старых имен (имя файла приватного ключа), так как он странно перезаписывается - лучше явно задать имя нового ключа,
- по умолчанию создается запрос и ключ длиной 2048, с этим траблы - явно указывать длину 1024,
- при конвертировании из p7b в pem я воспользовался онлайновой тулзой https://www.sslshopper.com/ssl-converter.html (помогла!).
This failure occurs when:
•The server validation is not configured correctly on the client.
•The machine certificate is not provisioned on the machine (when used with EAP-TLS).
•Unable to provide a user certificate for authentication.
•The AAA server certificate has expired.
•The Root CA certificate is not installed or is not installed correctly on the client.
•The same CA certificate is used for intermediate CA or Root CA certificate: Root CA duplication.
Проверка аплайнса показала экспайренный пару дней назад сертификат. Вот тут и началось веселье - мануал описывал процесс обновления на пол странички, причем в картинках. Однако первый полученный от Виндового CA сертификат оказался Unsupported certificate format. К слову, сама Винда прекрасно в курсе про формат p7b. Чтож попробуем конвертнуть - первое, что пришло в голову - поставить на локальную машину полученный серт (благо можно), а потом его экспортировать в кошерный вид. Сделано, еще попытка установки, но теперь с ошибкой - Unsupported private key file format. Чтоб тебя! Начинаем копать поиск и курить инфу. Вариантов аналогичной проблемы с 2005 года - масса, решения не всегда всем помогают, в общем никакой определенности. Перевыпускаю реквест на новый сертификат, точно вижу новосозданный приватный ключ, получаю назад p7b, конверчу - фига - Private key you've selected doesn't fit to this certificate. Снова поиск уже по новым вводным. В результате, что нужно учитывать, то бишь описание грабель:
- не использовать при формировании реквеста старых имен (имя файла приватного ключа), так как он странно перезаписывается - лучше явно задать имя нового ключа,
- по умолчанию создается запрос и ключ длиной 2048, с этим траблы - явно указывать длину 1024,
- при конвертировании из p7b в pem я воспользовался онлайновой тулзой https://www.sslshopper.com/ssl-converter.html (помогла!).
суббота, 14 мая 2011 г.
Ubuntu подключение сканера Mustek BearPaw 2400 CU Plus
Взято тут: http://smartqmid.ru/index.php?showtopic=85.
Вкратце, нужно поставить пакеты
sudo apt-get install sane xsane libsane-extras
С прилагающегося диска из каталога Drivers (я выбрал драйверы для Windows XP) скопировать PS2Dfw.usb в папку /usr/share/sane/gt68xx/,
потом редактируем
sudo vim /etc/sane.d/gt68xx.conf
раскомментируем строки:
# Mustek BearPaw 2400 CU:
override "mustek-bearpaw-2400-cu"
firware "/usr/share/sane/gt68xx/PS2Dfw.usb"
Теперь при запуске XSane он найдет сканер.
Вкратце, нужно поставить пакеты
sudo apt-get install sane xsane libsane-extras
С прилагающегося диска из каталога Drivers (я выбрал драйверы для Windows XP) скопировать PS2Dfw.usb в папку /usr/share/sane/gt68xx/,
потом редактируем
sudo vim /etc/sane.d/gt68xx.conf
раскомментируем строки:
# Mustek BearPaw 2400 CU:
override "mustek-bearpaw-2400-cu"
firware "/usr/share/sane/gt68xx/PS2Dfw.usb"
Теперь при запуске XSane он найдет сканер.
четверг, 12 мая 2011 г.
Добавление корневых сертификатов в Win.
В меморис, чтобы снова не искать, как оно делается (опробовано на Vista, Server2008R2 и Win7):
запустить IE (англ) от имени админа: Tools / Internet Options / Content / Certificates добавляем (Import) во вкладке Trusted Root Certification Authorities. Для импорта *.pem файла нужно в просмотре каталога выбрать All Files (*.*) и убедиться, что он точно будет добавлен в нужный раздел, а то по-умолчанию выбрана опция автоматического определения, куда его отнести.
запустить IE (англ) от имени админа: Tools / Internet Options / Content / Certificates добавляем (Import) во вкладке Trusted Root Certification Authorities. Для импорта *.pem файла нужно в просмотре каталога выбрать All Files (*.*) и убедиться, что он точно будет добавлен в нужный раздел, а то по-умолчанию выбрана опция автоматического определения, куда его отнести.
понедельник, 25 апреля 2011 г.
Пример PAC файла для балансировки проксей Cisco IronPort WSA.
Для клиентов, прикупивших пару Айронпортовских апплайнсов, на прошлой неделе помог составить файл автоконфигурирования (PAC - Proxy Auto-Configuration). Требования были, в принципе, простые и логичные:
- доступ к ресурсам локальной сети по IP адресам - без прокси,
- доступ к доменам, ресолвищимся в локальные адреса - без прокси,
- доступ к списку конкретных доменов - без прокси,
- балансировка обычных http запросов между проксями,
- для https запросов включен механизм (MIM - Man In the Middle) - передается основная прокся (условно №1), если она не доступна - вторая. То есть режим основной / резервный.
В результате получился такой скриптец:
Пара ссылок, подмогнувших в написании:
http://en.wikipedia.org/wiki/Proxy_auto-config
http://www.findproxyforurl.com/pac_file_examples.html
- доступ к ресурсам локальной сети по IP адресам - без прокси,
- доступ к доменам, ресолвищимся в локальные адреса - без прокси,
- доступ к списку конкретных доменов - без прокси,
- балансировка обычных http запросов между проксями,
- для https запросов включен механизм (MIM - Man In the Middle) - передается основная прокся (условно №1), если она не доступна - вторая. То есть режим основной / резервный.
В результате получился такой скриптец:
function FindProxyForURL (url,host) {Проверку файлец выдержал, под IE и FF не встал колом.
var resolved_ip = dnsResolve(host);
if (isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") ||
isInNet(resolved_ip, "172.16.0.0", "255.240.0.0") ||
isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") ||
isInNet(resolved_ip, "127.0.0.0", "255.255.255.0"))
return "DIRECT";
if (shExpMatch(url, "*.test.room.local")||
shExpMatch(url, "*.test.room.ru")||
shExpMatch(url, "*.citrixweb.test.room.ru")||
shExpMatch(url, "*.test.room.net")||
shExpMatch(url, "*.test.room.com")||
shExpMatch(url, "*.test.room.spb.ru")||
shExpMatch(url, "secure.test.room.com")||
shExpMatch(url, "*.internal.test.room.com"))
return "DIRECT";
if (shExpMatch(url, "https:*")) return "PROXY spbsrvprx-wsa1.test.room.local:3128; PROXY spbsrvprx-wsa2.test.room.local:3128";
else
switch (URLHash (url) %2) {
case 1: return "PROXY spbsrvprx-wsa2.test.room.local:3128";
default: return "PROXY spbsrvprx-wsa1.test.room.local:3128";
}
}
function URLHash (url) {
server_name=url.split("/")[2]
if (!server_name) {return url.length;}
return server_name.length;
}
Пара ссылок, подмогнувших в написании:
http://en.wikipedia.org/wiki/Proxy_auto-config
http://www.findproxyforurl.com/pac_file_examples.html
воскресенье, 17 апреля 2011 г.
Запуск Cisco IOU под Windows в andLinux
Некоторое время назад, когда появились первые ссылки на цисковскую внутреннюю разработку IOS over UNIX (IOU), коллега протестивший, естественно в целях обучения, этот симулятор (пусть так называется), попросил проверить, существуют ли методы запуска этой полезняшки на Windows машинах. По-первости, я смотрел в сторону Sygwin'а, но достаточно быстро понял, что это не то. Насколько я понимаю, sygwin - это взятые линуховые исходники, поправлен синтаксис и скомпилированы виндовыми компиляторами, то есть портация приложений (утилит и пр.). В процессе изучения вопроса, натолкнулся на проект coLinux, от которого отпочковался проект andLinux, построенный на дистрибутиве Ubuntu. Текущая стабильная версия 0.7.4 доступна в двух вариантах (минимальная XFCE и "большая" KDE) - http://www.andlinux.org/downloads.php. Однако проект не обновлялся с мая 2009 года! Текущее ядро базируется на Ubuntu 9.04 (логично для мая 2009го). Я решил поставить вариант с кедами. Сам процесс установки достаточно прозрачен, мастер задает вопросы о том, куда поставить это богатство, логин / пароль для доступа к общей шаре, как запускать приложение (можно автоматически процессом винды), сколько памяти выдать - максимально - 1 Гб.
после установки (я выбрал авто-старт с гигом оперативы), обнаружились первые грабли: запуск производится под системной учетной записью, а терминал стартует с авто входом судоера cobuntu, если не читать мануал, то не очень понятно, какой у этого пользователя пароль. Ругнувшись, зачем тогда спрашивали логин / пасс при установке, выясняем:
логин - cobuntu
пароль - rescue
пароля root - нет (логично для Ubuntu)
Создаем своего пользователя:
$ sudo useradd -m mik17
$ passwd mik17
$ sudo visudo
добавляем
mik17 ALL=(ALL) ALL
Теперь поправим запись старта от имени нового пользователя:
$ sudo vim /etc/andlinux/xsession_cmd
меняем запись на
sux - mik17 /usr/local/sbin/launcher.pl
все сохраняем выходим, перезапускаем сервис самого andLinux.
Теперь при вызове терминала наблюдаем в качестве шелла sh, что за позапрошлый век! Меняем на привычный bash:
$ sudo chsh
/bin/bash
теперь при входе от имени mik17, будет привычное окружение.
Настало время разобраться с сетью. Сам сервис создает в винде интерфейс TAP-Colinux с адресацией 192.168.11.0/24 (непосредственно со стороны Windows адрес 192.168.11.1). На стороне andLinux доступ в эмулятор проходит по адресу 192.168.11.150. Внутри линуха настроены интерфейсы /etc/network/interfaces
iface eth0 inet static
address 10.0.2.15
netmask 255.255.255.0
gateway 10.0.2.2
iface eth1 inet static
address 192.168.11.150
netmask 255.255.255.0
такой хоккей нам не нужен - комментируем шлюз 10й подсети и добавляем на eth1
gateway 192.168.11.1
Разрешение имен тоже нужно поправить, добавим Гугловый ДНС:
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 10.0.2.3
Со стороны эмулятора теперь с сетью должно быть все ОК, настраиваем винду поработать маршрутизатором с NAT'ом:
- включаем службу "Маршрутизация и удаленный доступ",
- на интерфейсе "Подключение по локальной сети" (если явно не переименовывать подключение - скорее всего оно так и называется) в Свойствах / Дополнительно разрешаем общий доступ подключения к Интернету. Смотрим предупреждение, что "внутренней сети" будет присвоена адресация подсети 192.168.0.0/24, соглашаемся, а потом меняем TAP-Colinux адрес обратно на 192.168.11.1.
Теперь эмулятор получил доступ во внешний мир.
Пришла очередь запуска IOU.
Где получить - микроквест для самостоятельного решения.
закидываем бинарник в /home/mik17 и пробуем стартануть... Ругается на несоответствие библиотеки, смотрим у себя в /lib/ библиотечку со схожим именем и делаем на нее ссылку:
$ sudo ln -s /lib/libcrypto.so.0.9.8 /lib/libcrypto.so.4
теперь идет ругань на файл с лицензией. Вопрос решается скриптом:
$ vim iou-lic.py
#! /usr/bin/python
print "*********************************************************************"
print "Cisco IOU License Generator - Kal 2011, python port of 2006 C version"
import os
import socket
import hashlib
import struct
# get the host id and host name to calculate the hostkey
hostid=os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey=int(hostid,16)
for x in hostname:
ioukey = ioukey + ord(x)
print "hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:]
# create the license using md5sum
iouPad1='\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2='\x80' + 39*'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
iouLicense=hashlib.md5(md5input).hexdigest()[:16]
print "\nAdd the following text to ~/.iourc:"
print "[license]\n" + hostname + " = " + iouLicense + ";\n"
print "You can disable the phone home feature with something like:"
print " echo '127.0.0.127 xml.cisco.com' >> /etc/hosts\n"
если скопировать этот скрипт напрямую, нужно убрать все стартовые пробелы, а отступ ioukey = ioukey + ord(x) сделать табуляцией.
в результате работы будет сформирован вывод (его можно направить в файл) с нужными параметрами. Если файл /etc/hostname не менялся, то нужный файл будет:
$ vim .iourc
[license]
andLinux = e5439a28afd220f1;
Теперь будет ругань на карту сети - файл NETMAP. По адресу http://evilrouters.net/2011/01/09/creating-a-netmap-file-for-iou/ есть неплохое объяснение, как рассчитывать интерфейсы для этой карты, у меня для теста получился простенький:
$ vim NETMAP
101:0
101:1 102:1
102:0
Теперь открываем терминальные окошки для старта рутеров:
$ ./i86bi_linux-ipbase-ms 101
и
$ ./i86bi_linux-ipbase-ms 102
в выводе sh cdp neigh можно увидеть, что у этих рутеров есть коннект на порту eth1/0.
Чтож, сама возможность запуска симулятора доказана, позднее проверю фичи - wrapper и IOUlive.
после установки (я выбрал авто-старт с гигом оперативы), обнаружились первые грабли: запуск производится под системной учетной записью, а терминал стартует с авто входом судоера cobuntu, если не читать мануал, то не очень понятно, какой у этого пользователя пароль. Ругнувшись, зачем тогда спрашивали логин / пасс при установке, выясняем:
логин - cobuntu
пароль - rescue
пароля root - нет (логично для Ubuntu)
Создаем своего пользователя:
$ sudo useradd -m mik17
$ passwd mik17
$ sudo visudo
добавляем
mik17 ALL=(ALL) ALL
Теперь поправим запись старта от имени нового пользователя:
$ sudo vim /etc/andlinux/xsession_cmd
меняем запись на
sux - mik17 /usr/local/sbin/launcher.pl
все сохраняем выходим, перезапускаем сервис самого andLinux.
Теперь при вызове терминала наблюдаем в качестве шелла sh, что за позапрошлый век! Меняем на привычный bash:
$ sudo chsh
/bin/bash
теперь при входе от имени mik17, будет привычное окружение.
Настало время разобраться с сетью. Сам сервис создает в винде интерфейс TAP-Colinux с адресацией 192.168.11.0/24 (непосредственно со стороны Windows адрес 192.168.11.1). На стороне andLinux доступ в эмулятор проходит по адресу 192.168.11.150. Внутри линуха настроены интерфейсы /etc/network/interfaces
iface eth0 inet static
address 10.0.2.15
netmask 255.255.255.0
gateway 10.0.2.2
iface eth1 inet static
address 192.168.11.150
netmask 255.255.255.0
такой хоккей нам не нужен - комментируем шлюз 10й подсети и добавляем на eth1
gateway 192.168.11.1
Разрешение имен тоже нужно поправить, добавим Гугловый ДНС:
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 10.0.2.3
Со стороны эмулятора теперь с сетью должно быть все ОК, настраиваем винду поработать маршрутизатором с NAT'ом:
- включаем службу "Маршрутизация и удаленный доступ",
- на интерфейсе "Подключение по локальной сети" (если явно не переименовывать подключение - скорее всего оно так и называется) в Свойствах / Дополнительно разрешаем общий доступ подключения к Интернету. Смотрим предупреждение, что "внутренней сети" будет присвоена адресация подсети 192.168.0.0/24, соглашаемся, а потом меняем TAP-Colinux адрес обратно на 192.168.11.1.
Теперь эмулятор получил доступ во внешний мир.
Пришла очередь запуска IOU.
Где получить - микроквест для самостоятельного решения.
закидываем бинарник в /home/mik17 и пробуем стартануть... Ругается на несоответствие библиотеки, смотрим у себя в /lib/ библиотечку со схожим именем и делаем на нее ссылку:
$ sudo ln -s /lib/libcrypto.so.0.9.8 /lib/libcrypto.so.4
теперь идет ругань на файл с лицензией. Вопрос решается скриптом:
$ vim iou-lic.py
#! /usr/bin/python
print "*********************************************************************"
print "Cisco IOU License Generator - Kal 2011, python port of 2006 C version"
import os
import socket
import hashlib
import struct
# get the host id and host name to calculate the hostkey
hostid=os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey=int(hostid,16)
for x in hostname:
ioukey = ioukey + ord(x)
print "hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:]
# create the license using md5sum
iouPad1='\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2='\x80' + 39*'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
iouLicense=hashlib.md5(md5input).hexdigest()[:16]
print "\nAdd the following text to ~/.iourc:"
print "[license]\n" + hostname + " = " + iouLicense + ";\n"
print "You can disable the phone home feature with something like:"
print " echo '127.0.0.127 xml.cisco.com' >> /etc/hosts\n"
если скопировать этот скрипт напрямую, нужно убрать все стартовые пробелы, а отступ ioukey = ioukey + ord(x) сделать табуляцией.
в результате работы будет сформирован вывод (его можно направить в файл) с нужными параметрами. Если файл /etc/hostname не менялся, то нужный файл будет:
$ vim .iourc
[license]
andLinux = e5439a28afd220f1;
Теперь будет ругань на карту сети - файл NETMAP. По адресу http://evilrouters.net/2011/01/09/creating-a-netmap-file-for-iou/ есть неплохое объяснение, как рассчитывать интерфейсы для этой карты, у меня для теста получился простенький:
$ vim NETMAP
101:0
101:1 102:1
102:0
Теперь открываем терминальные окошки для старта рутеров:
$ ./i86bi_linux-ipbase-ms 101
и
$ ./i86bi_linux-ipbase-ms 102
в выводе sh cdp neigh можно увидеть, что у этих рутеров есть коннект на порту eth1/0.
Чтож, сама возможность запуска симулятора доказана, позднее проверю фичи - wrapper и IOUlive.
вторник, 29 марта 2011 г.
Ubuntu подключение PPTP на MS VPN шлюз.
Долгое время не залезал ВПНом в одну старенькую сеть, а тут понадобилось буквально на пару минут глянуть тамошние свичи. По привычке стартанул PPTP подключение туда, ан фигушки... Отбой. В логе интересности всякие:
NetworkManager[1000]: Starting VPN service 'org.freedesktop.NetworkManager.pptp'...
...
pptp[3108]: nm-pptp-service-3102 log[main:pptp.c:314]: The synchronous pptp option is NOT activated
pptp[3122]: nm-pptp-service-3102 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
pptp[3122]: nm-pptp-service-3102 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 42673).
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:950]: PPTP_SET_LINK_INFO received from peer_callid 0
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:953]: send_accm is 00000000, recv_accm is FFFFFFFF
pptp[3122]: nm-pptp-service-3102 warn[ctrlp_disp:pptp_ctrl.c:956]: Non-zero Async Control Character Maps are not supported!
pppd[3104]: CHAP authentication succeeded
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:950]: PPTP_SET_LINK_INFO received from peer_callid 0
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:953]: send_accm is FFFFFFFF, recv_accm is FFFFFFFF
pptp[3122]: nm-pptp-service-3102 warn[ctrlp_disp:pptp_ctrl.c:956]: Non-zero Async Control Character Maps are not supported!
pppd[3104]: LCP terminated by peer (jdL!!)
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:912]: Received Call Clear Request.
pppd[3104]: Connection terminated.
NetworkManager[1000]: VPN plugin failed: 1
...
pppd[3104]: Exit.
В процессе разбора дебага, пришел к выводу, что проблемы лежат в двух плоскостях:
1. критичность MTU для всего, что опирается на GRE - поменял на интерфейсах значения с авто (1500) на 1408,
2. включил "плюшки" для соединения VPN
убрал все типы аутентификации, кроме ms-chapv2,
использование MPPE,
stateful encryption
BSD data compression
Deflate data compression
для долгих сессий, можно пропускать пинги в PPP интерфейс, сжатие tcp заголовков не включал (хоть и p-t-p линк).
В результате соединение поднялось.
NetworkManager[1000]:
...
pptp[3108]: nm-pptp-service-3102 log[main:pptp.c:314]: The synchronous pptp option is NOT activated
pptp[3122]: nm-pptp-service-3102 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
pptp[3122]: nm-pptp-service-3102 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 42673).
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:950]: PPTP_SET_LINK_INFO received from peer_callid 0
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:953]: send_accm is 00000000, recv_accm is FFFFFFFF
pptp[3122]: nm-pptp-service-3102 warn[ctrlp_disp:pptp_ctrl.c:956]: Non-zero Async Control Character Maps are not supported!
pppd[3104]: CHAP authentication succeeded
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:950]: PPTP_SET_LINK_INFO received from peer_callid 0
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:953]: send_accm is FFFFFFFF, recv_accm is FFFFFFFF
pptp[3122]: nm-pptp-service-3102 warn[ctrlp_disp:pptp_ctrl.c:956]: Non-zero Async Control Character Maps are not supported!
pppd[3104]: LCP terminated by peer (jdL!!)
pptp[3122]: nm-pptp-service-3102 log[ctrlp_disp:pptp_ctrl.c:912]: Received Call Clear Request.
pppd[3104]: Connection terminated.
NetworkManager[1000]:
...
pppd[3104]: Exit.
В процессе разбора дебага, пришел к выводу, что проблемы лежат в двух плоскостях:
1. критичность MTU для всего, что опирается на GRE - поменял на интерфейсах значения с авто (1500) на 1408,
2. включил "плюшки" для соединения VPN
убрал все типы аутентификации, кроме ms-chapv2,
использование MPPE,
stateful encryption
BSD data compression
Deflate data compression
для долгих сессий, можно пропускать пинги в PPP интерфейс, сжатие tcp заголовков не включал (хоть и p-t-p линк).
В результате соединение поднялось.
четверг, 24 марта 2011 г.
Грабли. Разрыв и переаутентификация isakmp, (deleting SA reason "Recevied fatal informational")
Столкнулся тут с весьма мозголомной баго-фичей, когда первая фаза установки тоннеля успешно проходит, это видно по sh cry isa sa, но если по этому тоннелю пытаться соединиться с удаленным хостом, то этот ентри затирается, а в дебаге видится причина:
Mar 24 14:14:30.342: ISAKMP:(1077):deleting SA reason "Recevied fatal informational" state (I) QM_IDLE (peer x.x.x.x)
Собственно, первичные настройки тоннеля опущу, так как по нему достаточно давно люди ходили куда требуется и все шло ОК, пока не потребовалось добавить доступ для нескольких наших хостов к нескольким клиентским. Переслали письмо примерно такого содержания:
с нашей стороны созданы такие листы для туннеля №х
access-list Partner1 extended permit tcp host 10.66.10.186 192.168.215.0 255.255.255.0
access-list Partner1 extended permit tcp host 10.66.1.133 192.168.215.0 255.255.255.0
запросил у нашего подразделения точные адреса хостов, которые туда должны ходить и по какому протоколу (не очень хорошо сразу всю подсеть пускать к уважаемым людям).
После того, как прислали адреса, завел запрет NAT'ить их и включил в crypto-ACL:
ip access-list extended NAT
71 deny ip host 192.168.215.40 host 10.66.10.186
72 deny ip host 192.168.215.40 host 10.66.1.133
73 deny ip host 192.168.215.136 host 10.66.10.186
74 deny ip host 192.168.215.136 host 10.66.1.133
!
ip access-list extended Crypto_Partner1
permit ip host 192.168.215.40 host 10.66.10.186
permit ip host 192.168.215.40 host 10.66.1.133
permit ip host 192.168.215.136 host 10.66.10.186
permit ip host 192.168.215.136 host 10.66.1.133
!
известно было, что доступ на эти хосты по RDP, однако добраться туда оказалось не просто...
Собственно, решением проблемы со стиранием isakmp sa при начале хождения трафика, стала замена крипто-листа с разрешения ip на разрешение tcp:
ip access-list extended Crypto_Partner1
permit tcp host 192.168.215.40 host 10.66.10.186
permit tcp host 192.168.215.40 host 10.66.1.133
permit tcp host 192.168.215.136 host 10.66.10.186
permit tcp host 192.168.215.136 host 10.66.1.133
!
по такому непонятному попробую поспрашать одного знакомого ЦиЦиЯ, может просветит, а то гугление явным образом решения не дало.
Mar 24 14:14:30.342: ISAKMP:(1077):deleting SA reason "Recevied fatal informational" state (I) QM_IDLE (peer x.x.x.x)
Собственно, первичные настройки тоннеля опущу, так как по нему достаточно давно люди ходили куда требуется и все шло ОК, пока не потребовалось добавить доступ для нескольких наших хостов к нескольким клиентским. Переслали письмо примерно такого содержания:
с нашей стороны созданы такие листы для туннеля №х
access-list Partner1 extended permit tcp host 10.66.10.186 192.168.215.0 255.255.255.0
access-list Partner1 extended permit tcp host 10.66.1.133 192.168.215.0 255.255.255.0
запросил у нашего подразделения точные адреса хостов, которые туда должны ходить и по какому протоколу (не очень хорошо сразу всю подсеть пускать к уважаемым людям).
После того, как прислали адреса, завел запрет NAT'ить их и включил в crypto-ACL:
ip access-list extended NAT
71 deny ip host 192.168.215.40 host 10.66.10.186
72 deny ip host 192.168.215.40 host 10.66.1.133
73 deny ip host 192.168.215.136 host 10.66.10.186
74 deny ip host 192.168.215.136 host 10.66.1.133
!
ip access-list extended Crypto_Partner1
permit ip host 192.168.215.40 host 10.66.10.186
permit ip host 192.168.215.40 host 10.66.1.133
permit ip host 192.168.215.136 host 10.66.10.186
permit ip host 192.168.215.136 host 10.66.1.133
!
известно было, что доступ на эти хосты по RDP, однако добраться туда оказалось не просто...
Собственно, решением проблемы со стиранием isakmp sa при начале хождения трафика, стала замена крипто-листа с разрешения ip на разрешение tcp:
ip access-list extended Crypto_Partner1
permit tcp host 192.168.215.40 host 10.66.10.186
permit tcp host 192.168.215.40 host 10.66.1.133
permit tcp host 192.168.215.136 host 10.66.10.186
permit tcp host 192.168.215.136 host 10.66.1.133
!
по такому непонятному попробую поспрашать одного знакомого ЦиЦиЯ, может просветит, а то гугление явным образом решения не дало.
среда, 23 марта 2011 г.
Грабли. Ограничения на использование Cisco object-group.
Открыв для себя такую замечательную фичу, как object-group для составления сложных ACL'ей, с присущей восторженностью человека, поверхностно разобравшегося в теме, начал пихать использование групп куда ни попадя, во все конфиги, во все места. Расплата за это не заставила себя долго ждать - несколько часов дебага на предмет, почему "глохнет" интерфейс, если на нем применен crypto-map для VPN'ов, заставил меня вдумчиво вкурить доку: http://www.cisco.com/en/US/docs/ios/sec_data_plane/configuration/guide/sec_object_group_acl.html, где аглицким по белому было указано, где нельзя применять группы:
Restrictions for Object Groups for ACLs
•You can use object groups only in extended named and numbered ACLs.
•Object group-based ACLs support only IPv4 addresses.
•Object group-based ACLs support only Layer 3 interfaces (such as routed interfaces and VLAN interfaces). Object group-based ACLs do not support Layer 2 features such as VLAN ACLs (VACLs) or port ACLs (PACLs).
•Object group-based ACLs are not supported with IPsec.
•The highest number of object group-based ACEs supported in an ACL is 2048.
Предпоследний пункт вправил мозг, однако осталось небольшое чувство неудовлетворенности от осознания несовершенства даже такой замечательной ОС как Cisco IOS...
К стыду разработчиков, при применении crypto ACL с группами, никаких информационных сообщений о том, что так делать нельзя, не появляется - веселье начинается чуть позже, когда пробуешь догадаться, какой дебаг включать.
Restrictions for Object Groups for ACLs
•You can use object groups only in extended named and numbered ACLs.
•Object group-based ACLs support only IPv4 addresses.
•Object group-based ACLs support only Layer 3 interfaces (such as routed interfaces and VLAN interfaces). Object group-based ACLs do not support Layer 2 features such as VLAN ACLs (VACLs) or port ACLs (PACLs).
•Object group-based ACLs are not supported with IPsec.
•The highest number of object group-based ACEs supported in an ACL is 2048.
Предпоследний пункт вправил мозг, однако осталось небольшое чувство неудовлетворенности от осознания несовершенства даже такой замечательной ОС как Cisco IOS...
К стыду разработчиков, при применении crypto ACL с группами, никаких информационных сообщений о том, что так делать нельзя, не появляется - веселье начинается чуть позже, когда пробуешь догадаться, какой дебаг включать.
воскресенье, 20 марта 2011 г.
Небольшое допиливание Ubuntu 10.10. Часть 2.
Решив на досуге засмотреть какое-нибудь кино, обнаружил еще один трабл, который, правда, присущ всем обновлениям - захотелось мне посмотреть фильм "Криминальное чтиво" в Гоблинском переводе. Фильма пошла, правда без звука. Для выяснения причин такого поведения плейера ушли некоторые усилия: понятно, что дело в кодеке, соответственно, встал вопрос, а как посмотреть, какой кодек нужен (про то, что это можно легко сделать штатными средствами, я пока не знал). Путем гугления был обнаружен тул mediainfo (http://mediainfo.sourceforge.net/ru/Download/Ubuntu) - графическая надстройка (впрочем кривого исполнения) для просмотра метаданных видео файлов. С помощью этой утилиты, выяснилось, что используется проприетарный звуковой кодек VoxWare, дальнейшие изыскания прояснили, что этот несвободный кодек можно получить из спец репозитория, но при обновлении из /etc/apt/sources.list убираются репозитории Medibuntu, в которых располагаются такие полезняшки, как w32codecs и non-free-codecs. Соответственно, подключаем репу и апдейтим список:
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update
Теперь ставим кодеки:
sudo apt-get install w32codecs non-free-codecs
В результате - щасте от просмотра бодрого кина.
Чуть позже знающие люди сообщили, что ряд телодвижений, проделанных для определения кодека (установка графической тулзы), был излишним - при запуске mediaplayer'а из консоли, в ней замечательно рисуются нужные параметры (и кодеки, в том числе):
mik17@mik17-desktop:~/.gvfs/shara1 on mediaserv$ mplayer ./Films/'Криминальное чтиво - Pulp Fiction.avi'
MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
...
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffdivx] vfm: ffmpeg (FFmpeg DivX ;-) (MSMPEG-4 v3))
==========================================================================
==========================================================================
Opening audio decoder: [dshow] Win32/DirectShow decoders
AUDIO: 44100 Hz, 2 ch, s16le, 96.1 kbit/6.81% (ratio: 12016->176400)
Selected audio codec: [voxware] afm: dshow (VoxWare)
==========================================================================
...
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update
Теперь ставим кодеки:
sudo apt-get install w32codecs non-free-codecs
В результате - щасте от просмотра бодрого кина.
Чуть позже знающие люди сообщили, что ряд телодвижений, проделанных для определения кодека (установка графической тулзы), был излишним - при запуске mediaplayer'а из консоли, в ней замечательно рисуются нужные параметры (и кодеки, в том числе):
mik17@mik17-desktop:~/.gvfs/shara1 on mediaserv$ mplayer ./Films/'Криминальное чтиво - Pulp Fiction.avi'
MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
...
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffdivx] vfm: ffmpeg (FFmpeg DivX ;-) (MSMPEG-4 v3))
==========================================================================
==========================================================================
Opening audio decoder: [dshow] Win32/DirectShow decoders
AUDIO: 44100 Hz, 2 ch, s16le, 96.1 kbit/6.81% (ratio: 12016->176400)
Selected audio codec: [voxware] afm: dshow (VoxWare)
==========================================================================
...
вторник, 15 марта 2011 г.
Cisco DHCP сервер. Настройка статической выдачи по MAC'ам.
Пришлось тут копнуть поглубже настройки DHCP на цисковских рутерах. Задачка, вначале казавшаяся тривиальной в результате вылилась во вполне себе серьезное исследование с тестами разнообразного железа.
Собственно, задача: для подключения NAS'а хотят использовать static-DHCP вместо просто статического адреса. От предыдущего инженегра поступил кусок конфига:
ip dhcp pool NAS1
host 192.168.250.15
hardware-address 00xx.xxxx.xxxx
не заработало, железяка упорно не хотела забирать положенный адрес.
Перекинули на меня, решил тестить с имеющимися девайсами:
1. Бук по WinXP
2. Cisco Phone 7911
3. Бук с Убунтой (прошива на NAS'е - тоже какой-то Линь)
4. Бук с 7й.
В процессе исследования решил не использовать параметр hardware-address, вместо этого получилась такая конфига:
ip dhcp pool WinXP
host 172.16.1.238 255.255.255.0
client-identifier 0100.1cxx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool CP7911
host 172.16.1.241 255.255.255.0
client-identifier 0100.1dxx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool Ubuntu
host 172.16.1.225 255.255.255.0
client-identifier 0100.22xx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool Win7ka
host 172.16.1.213 255.255.255.0
client-identifier 0100.23xx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
Что здесь интересно, так это использование client-identifier с добавлением в начало htype параметра. Как показала практика - значение "01" (Ethernet) подходит во всех протестированных случаях, для вкуривания других значений - можно обратиться к доке:
http://www.iana.org/assignments/arp-parameters/
В дебаге сам успешный процесс получения адреса выглядит так (для Windows Seven):
*Oct 3 08:23:37.172: DHCPD: Sending notification of DISCOVER:
*Oct 3 08:23:37.172: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.172: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.172: DHCPD: circuit id 00000000
*Oct 3 08:23:37.176: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.176: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.176: DHCPD: circuit id 00000000
*Oct 3 08:23:37.196: DHCPD: Sending notification of DISCOVER:
*Oct 3 08:23:37.196: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.196: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.196: DHCPD: circuit id 00000000
*Oct 3 08:23:37.200: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.200: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.200: DHCPD: circuit id 00000000
*Oct 3 08:23:37.204: DHCPD: Sending notification of ASSIGNMENT:
*Oct 3 08:23:37.204: DHCPD: address 172.16.1.213 mask 255.255.255.0
*Oct 3 08:23:37.204: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.204: DHCPD: lease time remaining (secs) = 4294967295
Здесь виден заданный нами htype 1.
ГРАБЛИ!
С Убунтовой машиной пришлось допилить конфиг DHCP клиента:
$ sudo vim /etc/dhcp3/dhclient.conf
раскомментировать строку
send dhcp-client-identifier 1:0:22:xx:xx:xx:xx
вначале также указываем htype ("1"), потом идет MAC (первый 00 сокращено до 0).
Собственно, задача: для подключения NAS'а хотят использовать static-DHCP вместо просто статического адреса. От предыдущего инженегра поступил кусок конфига:
ip dhcp pool NAS1
host 192.168.250.15
hardware-address 00xx.xxxx.xxxx
не заработало, железяка упорно не хотела забирать положенный адрес.
Перекинули на меня, решил тестить с имеющимися девайсами:
1. Бук по WinXP
2. Cisco Phone 7911
3. Бук с Убунтой (прошива на NAS'е - тоже какой-то Линь)
4. Бук с 7й.
В процессе исследования решил не использовать параметр hardware-address, вместо этого получилась такая конфига:
ip dhcp pool WinXP
host 172.16.1.238 255.255.255.0
client-identifier 0100.1cxx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool CP7911
host 172.16.1.241 255.255.255.0
client-identifier 0100.1dxx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool Ubuntu
host 172.16.1.225 255.255.255.0
client-identifier 0100.22xx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
ip dhcp pool Win7ka
host 172.16.1.213 255.255.255.0
client-identifier 0100.23xx.xxxx.xx
default-router 172.16.1.1
dns-server 172.16.1.1
!
Что здесь интересно, так это использование client-identifier с добавлением в начало htype параметра. Как показала практика - значение "01" (Ethernet) подходит во всех протестированных случаях, для вкуривания других значений - можно обратиться к доке:
http://www.iana.org/assignments/arp-parameters/
В дебаге сам успешный процесс получения адреса выглядит так (для Windows Seven):
*Oct 3 08:23:37.172: DHCPD: Sending notification of DISCOVER:
*Oct 3 08:23:37.172: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.172: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.172: DHCPD: circuit id 00000000
*Oct 3 08:23:37.176: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.176: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.176: DHCPD: circuit id 00000000
*Oct 3 08:23:37.196: DHCPD: Sending notification of DISCOVER:
*Oct 3 08:23:37.196: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.196: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.196: DHCPD: circuit id 00000000
*Oct 3 08:23:37.200: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.200: DHCPD: remote id 020a0000ac100101ff000000
*Oct 3 08:23:37.200: DHCPD: circuit id 00000000
*Oct 3 08:23:37.204: DHCPD: Sending notification of ASSIGNMENT:
*Oct 3 08:23:37.204: DHCPD: address 172.16.1.213 mask 255.255.255.0
*Oct 3 08:23:37.204: DHCPD: htype 1 chaddr 0023.xxxx.xxxx
*Oct 3 08:23:37.204: DHCPD: lease time remaining (secs) = 4294967295
Здесь виден заданный нами htype 1.
ГРАБЛИ!
С Убунтовой машиной пришлось допилить конфиг DHCP клиента:
$ sudo vim /etc/dhcp3/dhclient.conf
раскомментировать строку
send dhcp-client-identifier 1:0:22:xx:xx:xx:xx
вначале также указываем htype ("1"), потом идет MAC (первый 00 сокращено до 0).
вторник, 15 февраля 2011 г.
Cisco service password-encryption расшифровка средствами IOS'а.
Подсмотрел у Ивана Пепельняка и взял на вооружение:
создаем нового тестового пользователя и включаем сервис шифрования пароля, при создании пользователя не пользуемся опцией шифрования secret (насколько я понимаю, это включает механизм несимметричного шифрования)
R1(config)#service password-encryption
R1(config)#username test password t35t:pa55w0rd
Посмотрим, что будет указано в конфиге:
R1(config)#do sh run | include username
username test password 7 08351F1B1D431516475E1B54382F
Создадим стандартный кей-чейн (юзают для защиты протоколов динамической маршрутизации, например):
R1(config)#key chain decrypt
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 7 08351F1B1D431516475E1B54382F
Расшифруем ключик:
R1(config-keychain-key)#do show key chain decrypt
Key-chain decrypt:
key 1 -- text "t35t:pa55w0rd"
Данный хинт - потенциальная дыра в безопасности для VPN доступа, например, при аутентификации PPTP не получится использовать "secret" опцию, только "password".
создаем нового тестового пользователя и включаем сервис шифрования пароля, при создании пользователя не пользуемся опцией шифрования secret (насколько я понимаю, это включает механизм несимметричного шифрования)
R1(config)#service password-encryption
R1(config)#username test password t35t:pa55w0rd
Посмотрим, что будет указано в конфиге:
R1(config)#do sh run | include username
username test password 7 08351F1B1D431516475E1B54382F
Создадим стандартный кей-чейн (юзают для защиты протоколов динамической маршрутизации, например):
R1(config)#key chain decrypt
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 7 08351F1B1D431516475E1B54382F
Расшифруем ключик:
R1(config-keychain-key)#do show key chain decrypt
Key-chain decrypt:
key 1 -- text "t35t:pa55w0rd"
Данный хинт - потенциальная дыра в безопасности для VPN доступа, например, при аутентификации PPTP не получится использовать "secret" опцию, только "password".
Просмотр изменений в конфигурации роутера Cisco.
Понадобилось сегодня обосновать коллеге, что изменения в конфиге рутера, приведшие к ряду вопросов у населения, производились вполне конкретными (и не моими) ручками. Для этого были призваны, в частности, встроенные средства IOS'а, а именно команда:
show archive config differences
Это в совокупности с данными, формируемыми выводом просмотра стартовой и текущей конфигураций, позволило указать товарищу на недопустимость огульных обвинений:
последняя записанная конфига с аффтаром
shluz2#sh start
Using 24342 out of 196600 bytes
!
! Last configuration change at 16:18:32 MSK Thu Feb 3 2011 by akonder
! NVRAM config last updated at 16:18:34 MSK Thu Feb 3 2011 by akonder
текущая конфига с аффтарами, а, главное временем правки
shluz2#sh run
Building configuration...
Current configuration : 25928 bytes
!
! Last configuration change at 16:16:47 MSK Tue Feb 15 2011 by mik1701
! NVRAM config last updated at 16:18:34 MSK Thu Feb 3 2011 by akonder
и хит сезона - что за изменения вносились
shluz2#sh arc conf diff
Contextual Config Diffs:
+logging buffered 1000000
crypto pki certificate chain TP-self-signed-***
+certificate self-signed 01 nvram:IOS-Self-Sig#4.cer
interface Async0/1/3
+shutdown
interface Async0/1/4
+shutdown
-logging buffered 1024000
crypto pki certificate chain TP-self-signed-***
-certificate self-signed 01
-много ***
-***
-quit
-ip nat inside source static 192.168.215.135 x.x.x.1 extendable
-ip nat inside source static 192.168.215.134 x.x.x.2 extendable
-access-list 122 permit ip any host 10.11.100.10
-access-list 122 permit ip host 10.11.100.10 any
Плюсами обозначены новые введенные команды, а минусами, соответственно, что было потерто.
Не вдаваясь в детали, обоснование удовлетворило все стороны.
show archive config differences
Это в совокупности с данными, формируемыми выводом просмотра стартовой и текущей конфигураций, позволило указать товарищу на недопустимость огульных обвинений:
последняя записанная конфига с аффтаром
shluz2#sh start
Using 24342 out of 196600 bytes
!
! Last configuration change at 16:18:32 MSK Thu Feb 3 2011 by akonder
! NVRAM config last updated at 16:18:34 MSK Thu Feb 3 2011 by akonder
текущая конфига с аффтарами, а, главное временем правки
shluz2#sh run
Building configuration...
Current configuration : 25928 bytes
!
! Last configuration change at 16:16:47 MSK Tue Feb 15 2011 by mik1701
! NVRAM config last updated at 16:18:34 MSK Thu Feb 3 2011 by akonder
и хит сезона - что за изменения вносились
shluz2#sh arc conf diff
Contextual Config Diffs:
+logging buffered 1000000
crypto pki certificate chain TP-self-signed-***
+certificate self-signed 01 nvram:IOS-Self-Sig#4.cer
interface Async0/1/3
+shutdown
interface Async0/1/4
+shutdown
-logging buffered 1024000
crypto pki certificate chain TP-self-signed-***
-certificate self-signed 01
-много ***
-***
-quit
-ip nat inside source static 192.168.215.135 x.x.x.1 extendable
-ip nat inside source static 192.168.215.134 x.x.x.2 extendable
-access-list 122 permit ip any host 10.11.100.10
-access-list 122 permit ip host 10.11.100.10 any
Плюсами обозначены новые введенные команды, а минусами, соответственно, что было потерто.
Не вдаваясь в детали, обоснование удовлетворило все стороны.
вторник, 8 февраля 2011 г.
Еще раз о vim. Вырезать, скопировать и вставить.
Ранее упоминался некий "необходимый минимум" для того, чтобы просто начать пользоваться встроенным редактором vi/vim. Теперь о комфортной работе (относительно): как при редактировании "копипастить" нужные фрагменты.
В режиме команд переходим к нужной строке (курсор вначале)
скопировать строку - my перейти в конец строки (блока строк) - y'y (с апострофом!),
вырезать строку - md тоже перейти - d'd,
вставить скопированное/вырезанное - P (с шифтом - прописная буква!).
Эти операции захватывают СТРОКИ! полностью, если же нужна часть строки, то:
из режима команд переходим в режим визуального выделения (-VISUAL-) - v, выделяем (это видно) необходимый фрагмент и для копирования - y (или d - для вырезания), переходим к нужному месту и вставляем фрагмент - p (строчная).
В режиме команд переходим к нужной строке (курсор вначале)
скопировать строку - my перейти в конец строки (блока строк) - y'y (с апострофом!),
вырезать строку - md тоже перейти - d'd,
вставить скопированное/вырезанное - P (с шифтом - прописная буква!).
Эти операции захватывают СТРОКИ! полностью, если же нужна часть строки, то:
из режима команд переходим в режим визуального выделения (-VISUAL-) - v, выделяем (это видно) необходимый фрагмент и для копирования - y (или d - для вырезания), переходим к нужному месту и вставляем фрагмент - p (строчная).
вторник, 25 января 2011 г.
Куда монтируются в Ubuntu сетевые шары и как сконвертить образ из bin в iso.
Каюсь, люблю иногда на просторах Интернета найти чего-нибудь интересного в виде образа диска, естественно, исключительно с целью оценки полезности оного для своего унутреннего употребления.
Так недавно загрузил комплект обучающего видео в формате bin/cue, вот только без, собственно, cue файла. По первости, вознамерился самостоятельно написать оный по массе инструкций, но потом, подумав, озаботился поиском конвертилки, так как несколько странно возлагать надежды на простой текстовый файл (то бишь cue).
Исходный образ в виде файла *.bin располагался на соседней виндовозной машине (а че? пусть работает - в комплекте ведь "хомяк" шел), шары которой монтируются в Ubuntu в каталог /home/_username_/.gvfs/_имя шары_/
В процессе изысканий, начиная с классики - bchunck (не подошел - нужен cue), остановился на тулзе ccd2iso, которая в простом как 2 копейки виде - команде формата $ ccd2iso _исходный файл.bin_ _нужный исошник.iso_
совершила маленькое чудо по адекватной переконвертации адского образа.
Образ этот благополучно смонтировался и открылся, с чем я себя и поздравил.
Так недавно загрузил комплект обучающего видео в формате bin/cue, вот только без, собственно, cue файла. По первости, вознамерился самостоятельно написать оный по массе инструкций, но потом, подумав, озаботился поиском конвертилки, так как несколько странно возлагать надежды на простой текстовый файл (то бишь cue).
Исходный образ в виде файла *.bin располагался на соседней виндовозной машине (а че? пусть работает - в комплекте ведь "хомяк" шел), шары которой монтируются в Ubuntu в каталог /home/_username_/.gvfs/_имя шары_/
В процессе изысканий, начиная с классики - bchunck (не подошел - нужен cue), остановился на тулзе ccd2iso, которая в простом как 2 копейки виде - команде формата $ ccd2iso _исходный файл.bin_ _нужный исошник.iso_
совершила маленькое чудо по адекватной переконвертации адского образа.
Образ этот благополучно смонтировался и открылся, с чем я себя и поздравил.
Настройка зеркалирования портов на HP 2600-8 (аналог SPAN).
В настройках свичей HP присутствует некоторый логический взрыв мозга, связанный с именованием портов для зеркалирования. Присутствуют слова mirror и monitor, но их значения таковы:
mirror-port - порт, куда мы будем подключать сниффер, именно на него будет зеркалироваться трафик с порта(ов), которые мы настроим далее.
interface .. monitor - порт (или порты, с которых трафик будет зеркалироваться.
В моем случае в результате получился конфиг:
mirror-port 6
...
interface 2
monitor
exit
...
Получен в результате выполнения команд по порядку
mirror-port 6
int 2 monitor
вторая команда не сможет выполниться без предварительного назначения зеркального порта.
mirror-port - порт, куда мы будем подключать сниффер, именно на него будет зеркалироваться трафик с порта(ов), которые мы настроим далее.
interface .. monitor - порт (или порты, с которых трафик будет зеркалироваться.
В моем случае в результате получился конфиг:
mirror-port 6
...
interface 2
monitor
exit
...
Получен в результате выполнения команд по порядку
mirror-port 6
int 2 monitor
вторая команда не сможет выполниться без предварительного назначения зеркального порта.
среда, 19 января 2011 г.
Защита Cisco рутера от SSH брутфорса
Решил вчера глянуть в логи рутера на предмет заблокированных листами портов (делал проброс для Opera Unite и добавлял правило на входном АЦЛе) - sh hist all - и увидел там просто вал попыток аутентификации по ssh, причем с хостов из одной подсети /16. Whois показал, что эта подсетка по маске /8 отдана Колумбии. Характер логинов указывал на бомбардировку по словарю (наивные колумбийские кулхацкеры), то есть особо волноваться не стоило, однако в профилактических целях вбил всю подсеть deny'ем на входе и тут подумалось, как бы усложнить жизнь более продвинутым брутфорсам, ведь вода камень точит... Собственно, на родном Цисковском форуме практически сразу нашел гору советов, часть из которых применил у себя:
!
login block-for 60 attempts 3 within 20 # устанавливает задержку в 60 секунд, если было 3 попытки входа в течение 20 секунд
login delay 5 # задержка в 5 секунд между попытками входа
login on-failure log
login on-success log
!
про логирование, думаю, особо комментировать нечего.
суббота, 15 января 2011 г.
Небольшое допиливание Ubuntu 10.10. Часть 1.
Недавно решил с LTS'а перейти на 10.10 версию Убунты и после апгрейда проявилась пара неприятных моментов (попали в баги на Лончпаде) в привычном визуальном окружении:
- вместо индикатора выбора языка (раскладки клавы), просто изображение клавиатуры. В результате поиска выяснилось, что за отображение раскладки (в виде сокращений или флагов) теперь отвечает Indicator Applet, который ставится из репозитория - sudo apt-get install appmenu-gtk libqtgui4 indicator-applet-appmenu indicator-appmenu. Ставим, а потом его подключаем на панель из Add to Panel...
- также с панели убрали меню саспенда / выключения компа, также пришлось добавлять вручную на панель.
Есть еще пара глюков, буду забарывать...
Пока оценка тех, кто готовил этот релиз скатилась на 4 с минусом.
- вместо индикатора выбора языка (раскладки клавы), просто изображение клавиатуры. В результате поиска выяснилось, что за отображение раскладки (в виде сокращений или флагов) теперь отвечает Indicator Applet, который ставится из репозитория - sudo apt-get install appmenu-gtk libqtgui4 indicator-applet-appmenu indicator-appmenu. Ставим, а потом его подключаем на панель из Add to Panel...
- также с панели убрали меню саспенда / выключения компа, также пришлось добавлять вручную на панель.
Есть еще пара глюков, буду забарывать...
Пока оценка тех, кто готовил этот релиз скатилась на 4 с минусом.
воскресенье, 2 января 2011 г.
Ubuntu вырезаем видеофрагмент с наложением субтитров
С недавнего времени озадачился такой относительно простой (в сравнении со "взрослым" видеомонтажом) задачей, как вырезать из большого avi'шника кусок и из внешнего srt файла субтитров добавить их туда. В процессе изучения вопроса повкуривал ряд прог, типа HandBrake, OpenShot, PiTiVi, к сожалению, весь мегафункционал этих редакторов/конвертеров не дал удобного и понятного инструмента для решения поставленной задачи. Помогла тулза Avidemux (вроде бы она больше конвертер чем редактор, но однако ж ...).
Итак, после запуска GTK варианта (есть еще и QT'шный, но здесь GNOME решает), открываем нужный авишник (в процессе открытия может предложить что-то пересчитать - согласился, и распаковать - отказался). Дотягиваем ползунок до начала нужного фрагмента, можно "прицеливаться" как по номерам кадров, так и по временной шкале, но в моем случае это было излишне. Ставим на начало start-point A (можно с панели внизу или из меню Edit). Проматываем дальше на конец фрагмента и выставляем stop-point B. Внизу справа будут видны номера диапазона кадров между А и В, по умолчанию там указываются номера кадров с начала до конца (от 0 до чего-то). Смысл в том, что все операции проводятся именно с этим диапазоном!
Теперь определим параметры видео, звука и формат выходного файла, по умолчанию используется параметр Copy, то есть параметры оригинального файла. В моем случае нужно было вырезать из HD1080 и полноценного PCM звука, поэтому, чтобы результирующее файло занимало поменьше места, для переконвертации были выбраны видео кодек MPEG-4 ASP (Xvid), звуковой кодек MP3 (lame) и формат avi (вместо mkv). Конфигурации кодеков оставил без изменений.
Далее - прикрутить субтитры в конечный фрагмент. К оригинальному видео был srt файлик, правда адаптированный для подключения в Виндовых плейерах (кодировка CP1251), это обстоятельство чуть позднее попортило чуток нервов...
Субтитры в Avidemux добавляются через фильтры видео параметров, он, собственно, так и называется Subtitles. Здесь нужно указать ссылку на файл субтитров, шрифт, которым они будут писаться и кодировка (есть еще несколько параметров, но они не обязательные, хотя здесь есть очень полезная фича - delay в милисекундах, что пользительно для выравнивания несинхронизированный субтитров со звуком). Небольшая особенность - несмотря на то, что в качестве кодировки можно выбрать Cyrillic, CP1251 оно не понимает, так что открываем srt файл в редакторе (gEdit) и сохраняем его как UTF-8. Шрифт ищем в системе (поиск *.ttf), из пары десятков шрифтов я выбрал LucidaSansRegular.ttf. Осталось указать в фильтре ссылки на новосохраненный файл субтитров, скопированный в рабочий каталог файл шрифта и выставить Encoding на UTF-8. Обязательно нужно убедиться через Preview, что субтитры не кракозябровые, а вполне себе русские.
После всех этих телодвижений, жмем баттон сохранения и указываем имя фрагмента, ждем завершения процесса и проверяем результат.
В заключение, пара слов о скорости работы конвертера - по моим субъективным ощущениям, он работал значительно быстрее ffmpeg (или надстройки sinthgunt).
Итак, после запуска GTK варианта (есть еще и QT'шный, но здесь GNOME решает), открываем нужный авишник (в процессе открытия может предложить что-то пересчитать - согласился, и распаковать - отказался). Дотягиваем ползунок до начала нужного фрагмента, можно "прицеливаться" как по номерам кадров, так и по временной шкале, но в моем случае это было излишне. Ставим на начало start-point A (можно с панели внизу или из меню Edit). Проматываем дальше на конец фрагмента и выставляем stop-point B. Внизу справа будут видны номера диапазона кадров между А и В, по умолчанию там указываются номера кадров с начала до конца (от 0 до чего-то). Смысл в том, что все операции проводятся именно с этим диапазоном!
Теперь определим параметры видео, звука и формат выходного файла, по умолчанию используется параметр Copy, то есть параметры оригинального файла. В моем случае нужно было вырезать из HD1080 и полноценного PCM звука, поэтому, чтобы результирующее файло занимало поменьше места, для переконвертации были выбраны видео кодек MPEG-4 ASP (Xvid), звуковой кодек MP3 (lame) и формат avi (вместо mkv). Конфигурации кодеков оставил без изменений.
Далее - прикрутить субтитры в конечный фрагмент. К оригинальному видео был srt файлик, правда адаптированный для подключения в Виндовых плейерах (кодировка CP1251), это обстоятельство чуть позднее попортило чуток нервов...
Субтитры в Avidemux добавляются через фильтры видео параметров, он, собственно, так и называется Subtitles. Здесь нужно указать ссылку на файл субтитров, шрифт, которым они будут писаться и кодировка (есть еще несколько параметров, но они не обязательные, хотя здесь есть очень полезная фича - delay в милисекундах, что пользительно для выравнивания несинхронизированный субтитров со звуком). Небольшая особенность - несмотря на то, что в качестве кодировки можно выбрать Cyrillic, CP1251 оно не понимает, так что открываем srt файл в редакторе (gEdit) и сохраняем его как UTF-8. Шрифт ищем в системе (поиск *.ttf), из пары десятков шрифтов я выбрал LucidaSansRegular.ttf. Осталось указать в фильтре ссылки на новосохраненный файл субтитров, скопированный в рабочий каталог файл шрифта и выставить Encoding на UTF-8. Обязательно нужно убедиться через Preview, что субтитры не кракозябровые, а вполне себе русские.
После всех этих телодвижений, жмем баттон сохранения и указываем имя фрагмента, ждем завершения процесса и проверяем результат.
В заключение, пара слов о скорости работы конвертера - по моим субъективным ощущениям, он работал значительно быстрее ffmpeg (или надстройки sinthgunt).
Подписаться на:
Сообщения (Atom)