среда, 25 ноября 2009 г.

3Com password recovery

Появился тут б/у switch 3Com 4226T, а пароля на него мне не дали, потому как забыли.
Ничего страшного. Немного порыскав и Интернете, нашёл решение.
Главное чтобы предыдущий админ эту возможность не закрыл, но об этом позже.
Так вот, заходим по консоли на устройство:
Login: recover
Password: recover
Вываливается сообщение о том что вам надо перезагрузить по питанию устройство в течении 30 секунд и отсчёт времени. Выдёргиваем шнур питания и вставляем его обратно.
Далее в консоли будет запрос на смену пароля администратора:
*** Password Recovery Mode ***

Enter the new password for the admin user: xxxxx
Re-enter the new password: xxxxx

The Password Recovery feature is enabled.
Enter new value (enable,disable)[enable]:
         - здесь как раз надо оставить enable, что бы как я заметил в самом начале потом не было проблем.

После всех этих манипуляций у нас есть здоровое устройство которое пригодиться ещё года 3 как минимум.

вторник, 17 ноября 2009 г.

Vyatta and static routs

Cтолкнусля с проблемой в vyatta, не то что бы прям супер проблема, небольшой такой багец. Но всё равно не приятно, если ребята себя позиционируют как замена Cisco.
Добавил роут для теста типа на xxx.xxx.xxx.xxx/32 через yyy.yyy.yyy.yyy
там команда
set protocols static route xxx.xxx.xxx.xxx/32 next-hop  yyy.yyy.yyy.yyy
потом захотел его удатить через
delete protocols static route xxx.xxx.xxx.xxx/32 next-hop  yyy.yyy.yyy.yyy
commit
На что мне выдал ошибку
Must add either a next-hop or blackhole for route
Так вот проблема была в том что надо удалять только через
delete protocols static route xxx.xxx.xxx.xxx/32

данный багец так же описан на форуме Vyatt
http://www.vyatta.org/forum/viewtopic.php?p=19495&sid=3736a489b7162ad90f04ba1eb22251a1
Ну а так пока нормально....

пятница, 28 августа 2009 г.

ISA and proplem with PPTP VPN

Неделю назад столкнулся с проблемой довольно интересной. Суть её заключается в том что я для компании преобрёд второй канал интернет (безлимит за сносные деньги) так вот встал теперь вопрос VPN подключении, а так как я уже по просьбе руководства поднял ISA сервер (прокси сервер). Конечно как почитатель Linux, я мог соорудить что то типа squid+iptables+ ну и так далее, причём опыт есть. Но просто хотелось попробовать что за зверь такой.
Ну так вот на старой выделенке работало всё как часы, я имею ввиду PPTP VPN с аутентификацией в домене, после же появления второго канала, на который я перевёл все кроме DNS запросов, почты и пары критичных сайтов, подключение по VPN стало затруднительно. Побороть меняющийся внешний IP смог с помощью dtdns.com, но VPN так и не хотел работать.
Больше всего меня насторожило то что в параметрах настройки VPN Clients Properties -> Groups на ISA 2006 se теперь перестала отображаться
Погуглив немного решение нашлось. Спасибо :
http://forums.isaserver.org/VPN_Connection_Problem_%28PPTP%29/m_130211300/tm.htm (пользователю intersimi), ну и соответственно
http://support.microsoft.com/kb/555958

На ISA сервере в реестре надо поправить ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableRSS с 1 на 0.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPA c 1 на 0.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPChimney с 1 на 0.
Потом у меня на контроллере домена вышла интересная ошибка MRxSmb 8003, с указанием моего ISA сервера. Также вылечилось остановкой и выключение службы Computer Browser на последнем.
Ну и соответствено после перезагрузки всё встало на сои места.Группа и домен в настройках стали отображаться нормально. А самое главное PPTP VPN теперь работает с новой силой!!!

четверг, 20 августа 2009 г.

Debian package manager

Так как моя "виртуальная ферма" в основном состоит из Debian виртуалок, то думаю для себя и для других данная инфа будет интерсна.
Данная инфа была взята с форума linuxforum.ru, за что всем тамошним участникам большое спасибо.
Использование менеджеров пакетов Debian:
Q: Какие инструменты используются в Debian для управления пакетами?
A: на самом "нижнем" уровне работает dpkg, Над ним располагаются основные оболочки, такие как apt-tools, dselect, рекомендованный ныне aptitude и графические, например synaptic.

Q: Как обновить список пакетов?
A: apt-get update или aptitude update пройдет по всему списку указанному у Вас в /etc/apt/sources.list и обновит списки пакетов по всем репозиториям.

Q: Списки я обновил, как теперь сами пакеты обновить?
A: apt-get upgrade - менее "интеллектуальный" вариант, обновляющий пакеты которые есть в системе
apt-get dist-upgrade более "интеллектуальный" вариант, который следит за тем, не сменили ли пакеты имя и пытающийся обновлять более важные пакеты даже ценой удаления менее важных.
aptitude upgrade - самый продвинутый из вариантов, который может, при необходимости, предложить несколько вариантов по разрешению проблем с зависимостями.

Q: А я не хочу все обновлять, как мне обновить только один пакет?
A: Точно так же как и установка пакета: apt-get install <пакет> или aptitude install <пакет>

Q: Как удалить пакет?
A: apt-get remove <пакет> или aptitude remove <пакет>

Q: А после удаления точно ничего от пакета не останется?
A: Для того, чтобы точно не осталось лучше пользоваться apt-get remove --purge <пакет> или aptitude purge <пакет>

Q: Как мне узнать как называется пакет для какой-то цели?
A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова>

Q: Хочу посмотреть информацию об установленном пакете.
A: apt-cache show <пакет> или dpkg --status <пакет>

Q: Мне принесли компакты дистрибутива, которых у меня не было, как мне их добавить?
А: apt-cdrom add должно помочь. Вставляете поочередно диски и для каждого выполняете apt-cdrom add -d=/точка/монтирования/. apt-cdrom просматривает индексные файлы на компактах, после чего производит автоматическое добавление оных в /etc/apt/sources.list как репозиториев.

Q: Мне кажется, что меня взломали и что-то сделали с <пакетом>
A: apt-get install --reinstall вернет пакет к изначальному состоянию, то есть такому какой он был на свежеустановленной системе.

Q: Очень хочется создать локальное зеркало, в какую сторону смотреть?
A: apt-move скорее всего решит полностью вашу проблему, для него достаточно указать где лежит архив файлов и куда выложить ваше зеркало.

Q: А подробнее про apt-move можно?
А: Можно:
apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf - LOCALDIR= )
По сути apt-move update является выполнением apt-move get, apt-move move, apt-move delete, apt-move packages.
apt-move get - формирует мастер-файл (не знаю как это перевести правильно на русский)
apt-move move - переносит пакеты из кэша apt в локальное зеркало
apt-move delete - удаляет устаревшие пакеты
apt-move packages - создает Packages.gz и Sources.gz дерева локального зеркала

Q: Как получить полный список установленных у меня пакетов?
А: dpkg --get-selections | grep -v "deinstall"

Q: У меня пакеты все уже удалени из кэша, а друг тоже хочет весь свежак, который у меня устанговлен...
A: Простой скрипт, выполненный в пустом каталоге соберет в нем пакеты, которые установлены в системе:
Код
dpkg --get-selections | grep -v "deinstall" | awk '{print $1}' | xargs dpkg-repack


Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...
A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.

Q: Где по умолчанию лежат пакеты, которые мне скачал apt-get?
A: в /var/cache/apt/archives

Q: Как мне поставить один *.deb пакет в систему?
A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату.

Q: В текущей папке у меня лежит .deb-пакет. Как мне посмотреть краткую информацию о нем?
A: dpkg -I <пакет>.deb

Q: Как заставит apt работать через proxy сервер?
A: Либо установив переменную окружения при помощи export "http://login:password@xxx.xxx.x.xx:yyyy", либо прописав в файл /etc/apt/apt.conf строку
Acquire::http::Proxy "http://xxx.xxx.xx:yyyy"; где xxx.xxx.xx - имя вашего прокси, yyyy - порт

Q: Я хочу определить в каком пакете необходимый мне файл (libodbc.so)
А: apt-file утилита поиска по содержимому пакетов.
apt-file update - получает файл Contents-.gz, следует учесть, что исходя из того, что проект Debian довольно большой, то и файл получится соответствующий.
apt-file search <файл> - поиск пакета с указанным файлом
Пример:
apt-file search libodbc.so
unixodbc: usr/lib/libodbc.so.1
unixodbc: usr/lib/libodbc.so.1.0.0
unixodbc-dev: usr/lib/libodbc.so

Q: А как просмотреть полный список содержимого пакета?
А: apt-file list <пакет> - отображает содержимое указанного пакета

Q: Я больше не собираюсь использовать apt-file, а Contents-.gz занимает место на диске
А: apt-file purge удалить все Contents-.gz
По поводу дополнительных опций - man apt-file

Q: Как мне найти неиспользуемые (осиротевшие) пакеты
А: deborphan без указания ключа осуществляет поиск в разделе библиотек, с указанием ключа "-a" поиск ведется во всех разделах. Имеется и интерфейс к deborphan - orphaner, поставляются в одном пакете.

Q: Есть локальный репозиторий из дистрибутивных дисков. Packages.gz сделал, а вот как сделать Contents-.gz для того, чтобы apt-file'ом можно было пользоваться
A: apt-ftparchive contents . | gzip > Contents-i386.gz, также с помощью apt-ftparchive можно создавать Sources.gz и Packages.gz
apt-ftparchive sources . | gzip > Sources.gz
apt-ftparchive packages .| gzip > Packages.gz

Q:Хочется создать дистрибутив некоторых выбранных пакетов и залить его на болванки. При этом хочется поместить на болванки и пакеты, не установленные в моей системе. Как это объяснить apt-move?
A: Вариант номер один - посмотреть в сторону jidgo, возможно, он вас устроит, вариант номер два - получить недостающие пакеты, но не устанавливать их в систему с помощью аpt-get install -d <пакеты>.

Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?
A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf:
APT::Default-Release "testing";
Затем, при установке пакетов из, например, нестабильного дистрибутива, просто
используйте ключ -t:
# apt-get -t unstable install имя_пакета
помимо этого рекомендуем прочитать man apt-preferences

Q: При установке пакета xxx с помощью apt (или aptitude) получаю список зависимостей и список "предлагаемых пакетов". Устанавливаются только зависимости и нужный мне пакет. Что такое "предлагаемые пакеты", и что с ними делать?
A:Предлагаемые пакеты - это пакеты, без которых устанавливаемая программа будет работать, но не будет реализовывать весь свой функционал. Обычно такие "предлагаемые пакеты" позволяют добавить в программу то или иное действие или поддержку тех или иных форматов и/или протоколов.
apt (или aptitude) знает, что пользователь может захотеть иметь этот функционал и сообщает ему, что он может ещё установить для его (функционала) получения.
Если Вы используете aptitude и хотите устанавливать "предлагаемые пакеты" автоматически, как и обязательные зависимости, Вы можете вызывать aptitude с ключём "--with-recommends".

Zabbix and LDAP

В продолжении изучения и осваивания системы мониторинга Zabbix добавил возможность аутенитфикации в домене, который достался по наследству.
Действия просты:
  • Так как мой акаунт уже есть в AD, то добавлять его не будем )), конечно если такового нет то необходимо добавить согласно корпаративного стандарта;
  • Опережая события скажи что надо на сервер, на котором стоит Zabbix server постивать php5-ldap, иначе будет ошибка в далнейшем и его придётся всё таки ставить.
  • Сначала посмотрим установлен ли этот пакет:
dpkg --get-selections | grep -v "deinstall"

ищем там php5-ldap, если есть то переходим следующему пункту, если нет то

apt-get install php5-ldap

и переходим следующему пункту.

  • Согласно документации на Zabbix сначала надо создать пользователя, а потом уже сделать ему аутентификацию через LDAP.
  • Заходим в Admininstration->Users, далее создаём пользователя Create User.
  • В меню создания пользователя все так же как и если бы это была локальная аутентификация, есть только одно но, Alias - это должен быть логин пользователя в AD, пароль не имеет значения (например - 1), так как далее будет использоваться только пароль из AD. И ещё, создать перванаперва акаунт с параметрами User type - ZABBIX Super Admin и Groups - Zabbix administrators. Просто после включения аутентификации через LDAP, внутреняя будет не доступна, но не надолго (но про это в конце).
  • Далее заходим под этой учёткой с паролем который задали (1) и идём в Administation-> Authentication. Выбираем Default authentication - LDAP, LDAP Host - ваш.AD.сервер, Port - 389, Base DN - cn=Users,dc=чччч,dc=чч (где ледат пользователи), Search attribute - sAMAccountName (это конкретно для AD), Bind DN* - cn=пользователь,cn-Users,dc=чччч,dc=чч (это учётка которая будет шерстить AD, создана должна быть заранее), Bind Password* - пароль этой учётки из Bind DN*.
  • Далее не ставим пока галочку LDAP Authentication Enable, а вводим пароль этой учётки (которую мы создали тремя рунктами ранее, кстати она должна появиться в поле Login) из AD. b нажимаем кнопку Test. Должна появиться полоска LDAP Login successful.
  • Теперь вводим ещё раз пароль из учётки AD и жмакам Save.
Делам Logout и теперь уже логинимся с параметрами учётки как в AD.

А теперь про "Просто после включения аутентификации через LDAP, внутреняя будет не доступна, но не надолго". А что же будет если LDAP будет недоступен. Этот вопрос у меня всплыл сразу.... Почитав ещё раз man и поэксперементировав - вывел следующее. То что мы сделали в Administation-> Authentication относиться к GUI access - System default. Что плохо при потере доступа к LDAP.
Если зайти в Admininstration->Users и выбрать User groups, можно увитеть список всех доступных групп. в колонке GUI access указан тип доступа, нажимая на этот параметр можно изменить его для соответствующей группы (System default, Internal, Disable).
Но находясь в самой группе, нельзя сменить тип доступа для неё.
Так что выход прост, меняем группу для своей учётки на например Guest (параметр Groups) не в коем случае не меняем User type - ZABBIX Super Admin (будет закрыто меню Admininstration). Логинимся под этой учёткой и меняем пареметр GUI access для группы
Zabbix administrators на Internal. То есть оставляем себе возможность зайти если что )).

Конечно возможны разного рода реализации, с созданием ещё одной группы, что то типа Super Zabbix administrators, и переносом туда резервного акаунта и внутренней аутентификацией, но это уже дело каждого.
Вот и все!

Тут обновился до версии 1.8, но не стал замарачиваться с замарочным upgrade'ом просто экспортировал настройки все, убил версию 1.6.5 и поставил 1.8. Так вот тут выяснилась интересная штука. Аккаун admin был неприкреплён ни к одной группе. Так, что надо не забывать его занести в ту группу, которая будет аутентироваться внутренней (забиксовой) аутентификацией.

среда, 19 августа 2009 г.

eJabber for Zabbix

У меня возникли проблемы с уведомлениями о событиях в моём Zabbix сервере. Точнее сказать отправка email'ов не работала. Своего почтового сервера нет. А на сторонний не хочет отправлять, выдаёт ошибку.
Так что я решил пойти по пути наименьшего сопротивления и поднять Jabber сервер.
Действовал по уже отлаженному механизму. Посмотрел что люди пишут про разного рода демоны и выбрал - eJabberd.
Создал Debian вертуалку на моей уже описанный XenServer "ферме" и вперёд.
Раскоментил в source.list все.
apt-get update
apt-get cache search ejabber
ejabberd - Distributed, fault-tolerant Jabber/XMPP server written in Erlang
apt-get cahce show ejabberd
Package: ejabberd
Priority: optional
Section: net
Installed-Size: 3224
Maintainer: Torsten Werner
Architecture: i386
Version: 2.0.5-1.1
Depends: adduser, erlang-nox (>= 1:13.b-dfsg1), erlang-abi-13.a, openssl, ucf, debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.3.6-6~), libexpat1 (>= 1.95.8), libpam0g (>= 0.99.7.1), libssl0.9.8 (>= 0.9.8f-5), zlib1g (>= 1:1.1.4)
Suggests: libunix-syslog-perl
Filename: pool/main/e/ejabberd/ejabberd_2.0.5-1.1_i386.deb
Size: 1164076
MD5sum: 1045daf9668273a27a0b47881055c7f8
SHA1: 50f0bfa13b148f0b683a8782506ed0781b16cf03
SHA256: 9c853773df7c6d67fc9bd00ea83b02994430f7101b8175974700be27d683b6b8
Description: Distributed, fault-tolerant Jabber/XMPP server written in Erlang
ejabberd is a distributed, fault-tolerant Jabber/XMPP server written in Erlang
Features:
- XMPP-compliant
- Web based administration
- Load balancing: can run in a cluster of machines
- Fault-tolerance: database can be replicated and stored on multiple
nodes (nodes can be added or replaced 'on the fly')
- Virtual hosting: several virtual domains can be served using single ejabberd
instance
- SSL/TLS support
- Multi-User Chat (MUC/conference)
- IRC transport
- Jabber Users Directory, based on users vCards
- Service Discovery
- Shared roster
Homepage: http://www.process-one.net/en/projects/ejabberd/


Поставил сначала сам Erlang, а потом и сам сервер.
apt-get install erlang
apt-get install ejabberd


Далее смотрим инструкцию по настройке на сайте http://www.process-one.net/en/ejabberd/docs
и вперёд править конфигурационный файл /etc/ejabberd/ejabberd.cfg, по большому счёту там надо поправить немного, я не замарачивался с сертификатами и транспортами (возможно это дело будущего). Единственное что я добавил это аутентификацию через AD.

%% Options which are set by Debconf and managed by ucf

%% Admin user
{acl, admin, {user, "ejabberd", "jabserver.чччч.чч"}}.

%% Hostname
{hosts, ["jabserver.чччч.чч"]}.


Этот пользователь (ejabberd) был предварительно создан в AD.

%%
%% Authentication using LDAP
%%
{auth_method, ldap}.
%%
%% List of LDAP servers:
{ldap_servers, ["server.чччч.чч"]}.
%%
%% Encryption of connection to LDAP servers (LDAPS):
%%{ldap_encrypt, tls}.
%%
%% Port connect to LDAP server:
{ldap_port, 389}.
%%
%% LDAP manager:
{ldap_rootdn, "cn=ejabberd,cn=Users,dc=чччч,dc=чч"}.
%%
%% Password to LDAP manager:
{ldap_password, "123456"}.
%%
%% Search base of LDAP directory:
{ldap_base, "cn=Users,dc=чччч,dc=чч"}.
%%
%% LDAP attribute that holds user ID:
{ldap_uids, [{"sAMAccountName"}]}.
%%
%% LDAP filter:
{ldap_filter, "(memberOf=cn=JABBER users,cn=Users,dc=чччч,dc=чч)"}.


предварительно закоментировав


%%{auth_method, internal}.


Могу сказать что конфигурационный файл довольно понятный и дока к серверу очень не плоха.

Ещё по настонию доки я сделал следующее

{mod_vcard_ldap,
[{ldap_vcard_map,
[{"NICKNAME", "%u", []},
{"GIVEN", "%s", ["givenName"]},
{"MIDDLE", "%s", ["initials"]},
{"FAMILY", "%s", ["sn"]},
{"FN", "%s", ["displayName"]},
{"EMAIL", "%s", ["mail"]},
{"ORGNAME", "%s", ["company"]},
{"STREET", "%s", ["streetAddres"]},
{"TITLE", "%s", ["title"]},
{"URL", "%s", ["wWWHomePage"]},
{"DESC", "%s", ["description"]},
{"TEL", "%s", ["telephoneNumber"ghbcrjh,btv cjj,of. xnj j,yjdbd ]}]},
{ldap_search_fields,
[{"User", "%u"}]},
{ldap_search_reported,
[{"Nickname", "NICKNAME"}]}
]},


Вот вообщем то и всё.

Далее создал пользователя для Zabbix сервера в AD, добавил его в группу Jabber users.
Далее через GUI Zabbix сервера (Administation -> Media types) поправил содержимое Jabber добавив пользователя котого только что создал в Jabber Identifier как имя@jabserver.чччч.чч и пароль к нему.
Практически всё, добавил себя в группу Jabber users в AD, в настройках своего пользователя на Zabbix сервере добавил media jabber как я@jabserver.чччч.чч и все в порядке.
В моём IM клиенте (Miranda) добавил свой акаунт (без шифрования). И теперь порлучаю больше удовольствия от Zabbix!

 С прискорбием сообщаю, что обновив eJabberd до 2.1.3 он перестал работать с AD, уж что я только не делал, ничего не помогало. Так что теперь ему на смену пришёл OpenFire. По нему тоже документации будь здоров!

среда, 12 августа 2009 г.

Zabbix agent for Linux

Столкнулся с проблемой, после установки на Debian из репозитариев zabbix агента, ни как не мог его подключить к zabbix серверу. Причём при этом у меня уже работали 3 Win сервера с агентами о которых я писал выше и без нареканий. Так что решил не изобретая велосипед просто посмотреть какой там zabbix-agentd.conf и применить его на Debian. Но что то не прокатило.
Посмотрел ps -ef и увидел что агент запущен:

zabbix 6327 1 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6328 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6329 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6330 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6331 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6332 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6333 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd
zabbix 6334 6327 0 17:31 ? 00:00:00 /usr/sbin/zabbix_agentd


далее сразу на netstat -a, а там сервиса нет.
точнее он то есть но в tcp6, короче всё равно сервер агента не видит.
Методом сравнения вывода команды netstat -a на Win серверах и Linux сервере, плюс немного докумментации - решение нашлось.
В zabbix-agentd.conf на Debian надо было раскоментить строчку с:
# IP address to bind agent
# If missing, bind to all available IPs

ListenIP=Ip.на.внешнем.интерфейсе


и все срослось.
Теперь подправлю template_linux и буду наслаждаться.