Narzędzia użytkownika

Narzędzia witryny


zsk:snmp

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
zsk:snmp [2017/10/07 14:55]
jkonczak
zsk:snmp [2017/10/08 17:14] (aktualna)
jkonczak
Linia 1: Linia 1:
-====== ​SNMP ======+====== ​Simple Network Management Protocol ​======
  
 ===== Historia SNMP ===== ===== Historia SNMP =====
 http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html
 +
 +===== Protokół SNMP =====
 +
 +Protokół SNMP działa na protokole UDP, korzysta z dwóch standardowych portów: 161 oraz 162 (snmp i snmptrap).
 +
 +Pozwala na odczytywanie i ustawianie danych pod wskazanym identyfikatorem obiektu (OID). OID to sekwencja liczb, np. 1.3.6. \\
 +W SNMP dane mogą być tylko typu '​INTEGER',​ 'OCTET STRING',​ '​NULL'​ lub '​OBJECT IDENTIFIER'​. Można też tworzyć sekwencje złożone z danych tych typów – listy i tabele.
 +
 +SNMP definiuje dwie role - **agent** i manager. Agent działa na zarządzanym urządzeniu i udostępniającego dane o nim po protokole SNMP.
 +
 +SNMP wspiera następujące żądania kierowane do **agenta** snmp:
 +  * get (pobierz) - pobiera wskazany OID
 +  * getnext (pobierz następny) - pobiera kolejny obiekt po podanym OID - ta opcja pozwala "​przejść"​ przez wszystkie dostępne obiekty bez wiedzy jakie są dostępne.
 +  * getbulk (od SNMPv2) - optymalizacja powyższego ​
 +  * set (ustaw)
 +SNMP pozwala też na wysyłanie komunikatów powiadomień **trap** przez agenta pod ustalony w konfiguracji agenta adres. Takie potwierdzenia są wysyłane jednokrotnie bez kontroli dostarczenia. \\
 +W SNMPv2 wprowadzono komunikat **inform** którego działanie jest identyczne jak trap, ale po odebraniu odsyłane jest potwierdzenie odbioru.
  
 ===== MIB i OID ===== ===== MIB i OID =====
-Protokół SNMP definiuje //jak// przesyłać dane. Bazy MIB określają //co oznaczają//​ dane. \\+Protokół SNMP definiuje ​tylko //jak// przesyłać dane. Bazy MIB określają //co oznaczają//​ dane i jak //​interpretować//​ wartości. \\
 http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html \\ http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html \\
 https://​tools.ietf.org/​html/​rfc1155 https://​tools.ietf.org/​html/​rfc1155
  
 //Zadanie 1.// Przejrzyj przykładowe bazy MIB: \\ //Zadanie 1.// Przejrzyj przykładowe bazy MIB: \\
-''​less /​usr/​share/​snmp/​mibs/​IP-MIB.txt''​ \\ +''​less /​usr/​share/​snmp/​mibs/​RFC1155-SMI.txt''​ \\ 
-https://​tools.ietf.org/​html/​rfc1156#​section-5+https://​tools.ietf.org/​html/​rfc1156#​section-5 ​\\ 
 +''​less /​usr/​share/​snmp/​mibs/​IP-MIB.txt''​
  
 //Zadanie 2.// Przejrzyj bazy MIB używając dedykowanych narzędzi //Zadanie 2.// Przejrzyj bazy MIB używając dedykowanych narzędzi
-  * http://​ireasoning.com/​mibbrowser.shtml [ [[http://​www.ireasoning.com/​download/​mibfree/​mibbrowser.zip|link do pobrania]] ] +  * http://​ireasoning.com/​mibbrowser.shtml [ [[http://​www.ireasoning.com/​download/​mibfree/​mibbrowser.zip|link do pobrania]] ], w wersji darmowej ograniczenia na ilość załadowanych plików MIB 
-  * Program ''​tkmib''​ (część net-snmp)+  * Program ''​tkmib''​ (część net-snmp, przerywa walk na nieznanych OID) 
 +  * Program [[ftp://​ftp.pbone.net/​mirror/​ftp5.gwdg.de/​pub/​opensuse/​repositories/​home:/​jimfunk/​openSUSE_Factory/​x86_64/​mbrowse-0.4.3-1.39.x86_64.rpm|mbrowse]] (nie wyświetla tabel)
  
 //Zadanie 3.// Znajdź jaki numeryczny OID ma ''​SNMPv2-MIB::​sysName.0''​ i co znajduje się pod ''​.1.3.6.1.2.1.5.8''​ //Zadanie 3.// Znajdź jaki numeryczny OID ma ''​SNMPv2-MIB::​sysName.0''​ i co znajduje się pod ''​.1.3.6.1.2.1.5.8''​
  
-Część drzewa MIB jest ustandaryzowana. Większość producentów sprzętu tworzy własne poddrzewa w przeznaczonej do tego gałęzi. ​+Część drzewa MIB jest ustandaryzowana. Większość producentów sprzętu tworzy własne poddrzewa w przeznaczonej do tego gałęzi ​''​SNMPv2-SMI::​enterprises''​ / ''​.1.3.6.1.4.1'' ​.
  
 ===== SNMP i bezpieczeństwo ===== ===== SNMP i bezpieczeństwo =====
  
 Wersja 1 i 2c //nie// posiada żadnego mechanizmu poza wysyłaną otwartym tekstem nazwą **community**. Wersja 1 i 2c //nie// posiada żadnego mechanizmu poza wysyłaną otwartym tekstem nazwą **community**.
-Pozwala ​na definiowanie community z uprawieniami ​tylko do odczytu lub do odczytu i zapisu. ​+Community pozwalają tylko na ograniczenie dostępu ​tylko do odczytu lub do odczytu i zapisu.
  
 Wersja 3 wprowadza zabezpieczenia:​ szyfrowanie (symetryczne) i/lub autoryzację (priv / auth / authpriv). ​ Wersja 3 wprowadza zabezpieczenia:​ szyfrowanie (symetryczne) i/lub autoryzację (priv / auth / authpriv). ​
Linia 31: Linia 50:
 ===== NET-SNMP - narzędzia ===== ===== NET-SNMP - narzędzia =====
  
-Pakiet NET-SNMP to najpopularniejszy zestaw demonów i narzędzi SNMP.+Pakiet NET-SNMP to najpopularniejszy zestaw demonów i narzędzi SNMP na Linuksa.
  
-Do dostępu do serwera ​snmp, NET-SNMP zawiera komendy:+Do dostępu do serwera ​SNMP, NET-SNMP zawiera komendy:
   * ''​snmpget''​ - pobranie pojedynczej wartości o podanym OID   * ''​snmpget''​ - pobranie pojedynczej wartości o podanym OID
   * ''​snmpgetnext''​ - pobranie następnej wartości po podanym OID   * ''​snmpgetnext''​ - pobranie następnej wartości po podanym OID
   * ''​snmpset''​ - ustawienie wartości   * ''​snmpset''​ - ustawienie wartości
   * ''​snmpwalk''​ - przejście całego (pod)drzewa   * ''​snmpwalk''​ - przejście całego (pod)drzewa
-  * ''​snmptable''​ - wyświetlenie ​tablicy +  ​* ''​snmpbulkwalk''​ - efektywniejszy walk; działa od SNMPv2 
-I wspomniany wcześniej graficzny ''​tkmib''​+  ​* ''​snmptable''​ - wyświetlenie ​tabel 
 +I wspomniany wcześniej graficzny ''​tkmib'' ​\\ 
 +Dodatkowo dostępne jest też ''​snmptranslate''​ które tłumaczy OIDy.
  
-===== Przeglądanie ​=====+===== Odpytywanie agentów ​=====
  
 Dla wersji 2c protokołu SNMP przykładowe polecenie to: \\ Dla wersji 2c protokołu SNMP przykładowe polecenie to: \\
Linia 54: Linia 75:
   * znajdź i wyświetl jako tabelę listę adresów IP   * znajdź i wyświetl jako tabelę listę adresów IP
   * przejdź całe drzewo, zwróć uwagę na nieznane wartości z poddrzewa ''​.1.3.6.1.4.1.14988''​   * przejdź całe drzewo, zwróć uwagę na nieznane wartości z poddrzewa ''​.1.3.6.1.4.1.14988''​
- +  * załaduj brakującą MIB: http://​download2.mikrotik.com/​Mikrotik.mib
-http://​download2.mikrotik.com/​Mikrotik.mib+
  
 ===== NET-SNMP - demon SNMPD ===== ===== NET-SNMP - demon SNMPD =====
 NET-SNMP zawiera demona (agenta) SNMP. \\ NET-SNMP zawiera demona (agenta) SNMP. \\
-Konfiguracja znajduje się w** ''/​etc/​snmp/​snmpd.conf''​ **+Konfiguracja znajduje się w** ''/​etc/​snmp/​snmpd.conf''​ ** \\
 Strona ''​man snmpd.conf''​ zawiera szczegółowy opis składni tego pliku. Strona ''​man snmpd.conf''​ zawiera szczegółowy opis składni tego pliku.
  
Linia 66: Linia 86:
 </​code>​ Następnie uruchom demona snmpd poleceniem: ''​systemctl start snmpd''​ i odpytaj go lokalnie. </​code>​ Następnie uruchom demona snmpd poleceniem: ''​systemctl start snmpd''​ i odpytaj go lokalnie.
  
-Ponowne załadowanie konfiguracji ​smtpd:  ''​systemctl reload snmpd''​ +Ponowne załadowanie konfiguracji ​snmpd:  ''​systemctl reload snmpd'' ​\\ 
-Ponowne uruchomienie ​smtpd:  ''​systemctl restart snmpd''​ +Ponowne uruchomienie ​snmpd:  ''​systemctl restart snmpd'' ​\\ 
-Uwaga! ​Błędy w konfiguracji nie są zgłaszane na konsolę, tylko zapisywane do pliku ''/​var/​log/​net-snmpd.log'' ​+__Uwaga__ ​Błędy w konfiguracji nie są zgłaszane na konsolę, tylko zapisywane do pliku ''/​var/​log/​net-snmpd.log''​
  
 //Zadanie 6.// Zmień konfigurację snmpd tak, by możliwy był pełen dostęp (read-write) z innych komputerów. Wyłącz koledze interfejs sieciowy wlan0. //Zadanie 6.// Zmień konfigurację snmpd tak, by możliwy był pełen dostęp (read-write) z innych komputerów. Wyłącz koledze interfejs sieciowy wlan0.
  
 //Zadanie 7.// Skonfiguruj moduł UCD tak, by przez SNMP był dostępny poziom zajętości dysków i poziom obciążenia komputera (load) \\ http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html#​rozszerzenie-ucd ​ //Zadanie 7.// Skonfiguruj moduł UCD tak, by przez SNMP był dostępny poziom zajętości dysków i poziom obciążenia komputera (load) \\ http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html#​rozszerzenie-ucd ​
 +
 +===== SNMP USM =====
  
 //Zadanie 8.// Dodaj do pliku konfiguracyjnego użytkownika SNMP w wersji 3, np: //Zadanie 8.// Dodaj do pliku konfiguracyjnego użytkownika SNMP w wersji 3, np:
Linia 88: Linia 110:
 //Zadanie 9.// Dodaj generowanie przykładowych powiadomień rozszerzając plik ''/​etc/​snmp/​snmpd.conf''​ o: //Zadanie 9.// Dodaj generowanie przykładowych powiadomień rozszerzając plik ''/​etc/​snmp/​snmpd.conf''​ o:
 <​code>​ <​code>​
 +agentSecName myUser
 +
 trapcommunity public trapcommunity public
 trap2sink 127.0.0.1 trap2sink 127.0.0.1
Linia 95: Linia 119:
 monitor -r 1s pingi != IP-MIB::​icmpInMsgs monitor -r 1s pingi != IP-MIB::​icmpInMsgs
 </​code>​ </​code>​
 +
 +Zastąpienie ''​trap2sink''​ przez ''​informsink''​ spowoduje wysyłanie komunikatów inform (które są powtarzane w przypadku braku potwierdzenia odbioru).
  
 Do odbierania powiadomień można użyć demona ''​snmptrapd''​ dostarczanego z NET-SNMP.\\ Do odbierania powiadomień można użyć demona ''​snmptrapd''​ dostarczanego z NET-SNMP.\\
Linia 100: Linia 126:
 Dokumentacja w podręczniku systemowym: ''​man snmptrapd.conf''​ Dokumentacja w podręczniku systemowym: ''​man snmptrapd.conf''​
  
-//Zadanie 10.// Dodaj do pliku konfiguracyjnego ''​snmptrapd.conf''​ poniższe ustawienia, a następnie uruchom demona poleceniem ''​systemctl start snmptrapd''​ i przetestuj ich działanie. Do śledzenia logów systemowych użyj ''​journalctl -f''​. Uwaga: aby program ''​xmessage''​ miał uprawnienia aby coś wyświetlić,​ musisz ze zwykłego użytkownika wydać polecenie ''​xhost +'' ​+//Zadanie 10.// Dodaj do pliku konfiguracyjnego** ''​snmptrapd.conf'' ​**poniższe ustawienia, a następnie uruchom demona poleceniem ''​systemctl start snmptrapd''​ i przetestuj ich działanie. Do śledzenia logów systemowych użyj ''​journalctl -f''​. Uwaga: aby program ''​xmessage''​ miał uprawnienia aby coś wyświetlić,​ musisz ze zwykłego użytkownika wydać polecenie ''​xhost +'' ​
 <​code>​ <​code>​
 disableAuthorization yes disableAuthorization yes
Linia 110: Linia 136:
 </​code>​ </​code>​
  
 +//Zadanie 11.// Wysyłaj powiadomienia na komputer kolegi.
 +
 +Aby ręcznie wygenerować powiadomienie (trap lub inform), można użyć np: \\
 +''​snmptrap -v 2c -c public [-Ci] 127.0.0.1 0 warmStart''​
 +
 +===== SNMP VACM =====
 +
 +//Zadanie 12.// Pozwól na dostęp po SNMPv1 i SNMPv2c tylko do wybranego poddrzewa, korzystając z materiałów na:
 +http://​www.cs.put.poznan.pl/​ddwornikowski/​sieci/​pizsk/​snmp3.html#​model-vacm \\ Następnie ustaw też widok wybranemu użytkownikowi.
 +
 +===== CISCO =====
 +
 +MIBy urządzeń CISCO znajdziesz na: ftp://​ftp.cisco.com/​pub/​mibs/​v2/​v2.tar.gz \\
 +Do wszytania dużej ilości plików MIB warto ustawić zmienną środowiskową ''​MIBDIRS'',​ np. ''​esport MIBDIRS=<​katalog_z_mib_cisco>:/​usr/​share/​snmp/​mibs'',​ lub wyedytować plik /​etc/​snmp/​snmp.conf. \\
 +Przykładowe polecenie wczytujące MIBy z bieżącego katalogu w tkmib: ''​MIBDIRS=`pwd`:/​usr/​share/​snmp/​mibs tkmib''​ \\
 +
 +Opis poleceń konfiguracyjnych SNMP na CISCO znajduje się [[https://​www.cisco.com/​c/​en/​us/​td/​docs/​ios/​12_2/​configfun/​configuration/​guide/​ffun_c/​fcf014.html|tutaj]].
 +
 +//Zadanie 13.// Wykonaj najprostszą (niezabezpieczona) konfigurację routera CISCO i zobacz co można podejrzeć przez SNMP: 
 +<​code>​
 +enable ​
 +configure terminal
 +snmp-server community public ro
 +snmp-server community private rw
 +interface GigabitEthernet 0/0
 +ip address …
 +no shut
 +</​code>​
 +
 +//Zadanie 14.// Włącz wybrany interfejs na routerze CISCO przez SNMP
 +
 +//Zadanie 15.// Dodaj generację powiadomień,​ wygeneruj i odbierz przykładowe powiadomienie:​
 +<​code>​
 +snmp-server host <​docelowy IP> traps version 2c public
 +snmp-server enable traps snmp linkup linkdown
 +</​code>​
 +
 +//Zadanie 16.// Dodaj użytkownika (SNMPv3) dostosowujący przykładowe polecenia:
 +<​code>​
 +snmp-server group someGroup v3 priv
 +snmp-server user myUser someGroup v3 auth md5 12345678 priv des56 12345678
 +</​code>​
 +Sprawdź działanie konfiguracji. Możesz skorzystać z przykładowego zapytania: \\
 +''​snmpbulkwalk -v3 -u myUser -A 12345678 -a md5 -X 12345678 -x DES -l authpriv <IP> system''​
 +
 +===== Mikrotik =====
 +
 +//Zadanie 17.// Odpytując 150.254.32.65,​ znajdź: ​
 +  * mapowania IP-MAC serwera DHCP
 +  * statystyki interfejsów
 +  * bramę domyślną
 +  * wyświetl licznik ruchu przez interfejs który jest bramą domyślną
 +
 +//Zadanie 18.// Skonfiguruj SNMP na Mikrotiku (dostęp i powiadomienia).
  
  
zsk/snmp.1507380923.txt.gz · ostatnio zmienione: 2017/10/07 14:55 przez jkonczak