Пошук хоста по MAC-адресу
- Матеріал з Xgu.ru
- [ правити ] Таблиця MAC-адрес на комутаторі
- [ правити ] Виявлення нових хостів
- [ правити ] OID таблиці MAC-адрес в різних комутаторах
Матеріал з Xgu.ru
Дана сторінка знаходиться в розробці .Ця сторінка ще не закінчена. Інформація, представлена тут, може виявитися неповною або неправильною.
Якщо ви вважаєте, що її варто було б доопрацювати якомога швидше, будь ласка, скажіть про це .
Автор: Ігор ЧубинКороткий URL: Host_by_MAC
Пошук хоста по MAC адресу - завдання пошуку комутатора і порту, до якого підключений мережевий пристрій, MAC-адресу якого відомий. Рішення для керованих комутаторів описано нижче (не описано, а може бути буде описано коли-небудь, а зараз нижче просто його чернетки).
Необхідно за відомим MAC-адресу хоста ідентифікувати хост. Рішення завдання в лоб, тобто ведення бази даних MAC-адрес комп'ютерів мережі вручну, не завжди ефективно (MAC-адресу може бути змінений, може використовуватися гостьовий комп'ютер і т.д.) і досить громіздко, оскільки вимагає супроводу бази.
Для керованих комутаторів існує більш просте і елегантне рішення: дізнатися у самого комутатора до якого його порту підключений хост з відомим MAC-адресою.
Інше завдання, яка має безпосереднє відношення до цієї - роздача DHCP-сервером IP-адрес грунтуючись на номерах портів комутатора, до яких підключені хости.
Пошук порту комутатора: http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml
Можна знаходити хост навіть в тому випадку, якщо він змінив MAC-адреси мережевої карти. Пошук порту комутатора
Після того як MAC-адресу пристрою, який виконав підміну відомий, необхідно знайти, мережевої карти якого комп'ютера він належить.
Якщо база даних MAC-адрес мережевих карт не ведеться, найпростіший спосіб знайти мережеву карту - опитати комутатор. У тому випадку, якщо існує база даних MAC-адрес мережевих карт, з інформацією про те, до якого порту комутатора вони підключені, можна спробувати знайти мережеву карту з її допомогою. Однак, MAC-адресу пристрою можу бути підмінений, і тоді пошук по базі даних не увінчається успіхом. У цьому випадку також може допомогти опитування комутатора.
[ правити ] Таблиця MAC-адрес на комутаторі
Точніше, вони надають дві таблиці відповідності: таблицю відповідності MAC-адрес певному числу-ідентифікатором і таблицю відповідності портів комутатора цього ж числа-ідентифікатором. Після того як обидві таблиці відомі, досить їх зіставити, і визначити, якого порту відповідає який MAC-адресу.
власне таблиці відповідності
Може бути й таке, що ні один MAC-адреса не відповідає порту, навіть якщо до порту і підключений комп'ютер - це може статися в тому випадку, якщо комп'ютер давно не відправляв пакети, і інформація про нього вже видалена з пам'яті комутатора. З цієї ж причини, що описується метод може не знайти комп'ютер з певним адресою.
Може бути і навпаки - одному порту відповідає безліч адрес. Така ситуація можлива в тому випадку, коли до порту підключений не один комп'ютер, а безліч - через інший комутатор або хаб.
Якщо комутатор не один, і всі вони керовані, то можна опитати всі комутатори, і визначити точно, який порт якого комутатора знаходиться найближче до шуканої мережевої карти.
[ правити ] Виявлення нових хостів
У закритих мережах, де нові мережеві пристрої з'являються рідко, може мати сенс завдання автоматичного виявлення нових хостів в мережі. Як тільки в мережі з'явився пристрій з невідомим MAC-адресою, адміністратору відправляється сповіщення, що містить максимум інформації про пристрій.
Програма arpwatch веде власну базу даних MAC-адрес, і вона самостійно може виявляти появу нових комп'ютерів. Однак, в тому випадку, якщо в мережі працює кілька систем arpwatch одночасно, кожна з них буде заново виявляти хост з новим MAC-адресою, навіть якщо інші системи його вже виявили раніше.
про централізовану БД
Далі адміністратор вирішує, що робити з цим пристроєм. У тому випадку, якщо пристрій з'явився в мережі законно, адміністратор може підтвердити його поява, що запобіжить поява нових повідомлень, при повторному виявленні пристрою іншими інсталяціями arpwatch.
Очевидно, метод буде працювати і в тому випадку, якщо пристрій просто змінило MAC-адресу на новий, відсутній в мережі раніше.
/ usr / local / bin / syslog-ng-arpwatch <sh />
- ! / Bin / sh
PATH = $ PATH: / usr / local / bin
while read line do mac = "$ (echo $ line | grep 'changed ethernet address' | awk '{print $ 10}')" [-z "$ mac"] && continue (echo POSSIBLY ARP-SPOOFING FROM :; mac2port | grep "$ mac") | logger -t arp-spoofing done
Скрипт, який автоматично вимикає порт комутатора:
<Perl />
- ! / Usr / bin / perl
our $ community = "public"; our $ switch = "192.168.15.100";
open (SNMP, "snmpwalk -On -OQ -v2c -c $ community $ switch .1.3.6.1.2.1.17.4.3.1.1 |")
or die "Can not run snmpwalk";while (<SNMP>) {
chomp; s @ .1.3.6.1.2.1.17.4.3.1.1 @@; my ($ oid, $ mac) = split / = \ s * /; $ _ = $ Mac; s @ "@@ g; s @ \ s * $ @@; s @ @: @ g; s @ (.) @ \ l \ 1 @ g; s @ ^ 0 @@; s @: 0 @: @ g; $ mac_table {$ _} = $ oid;} Close (SNMP);
open (SNMP, "snmpwalk -On -OQ -v2c -c $ community $ switch .1.3.6.1.2.1.17.4.3.1.2 |")
or die "Can not run snmpwalk";while (<SNMP>) {
chomp; s @ .1.3.6.1.2.1.17.4.3.1.2 @@; my ($ oid, $ port) = split / = /; $ Ports_table {$ oid} = $ port;} Close (SNMP);
for $ oid (keys% mac_table) {
}
[ правити ] OID таблиці MAC-адрес в різних комутаторах
У інших комутаторів MAC-адреси зберігаються в інших місцях дерева OID.
Для комутаторів Asotel:
.1.3.6.1.4.1.655.5.5.1.4.1.1.1.2 .1.3.6.1.4.1.655.5.21.1.4.1.1.1.2