Dydaktyka:
FeedbackTo jest stara wersja strony!
Protokół SNMP definiuje jak przesyłać dane. Bazy MIB określają co oznaczają dane.
http://www.cs.put.poznan.pl/ddwornikowski/sieci/pizsk/snmp3.html
https://tools.ietf.org/html/rfc1155
Zadanie 1. Przejrzyj przykładowe bazy MIB:
less /usr/share/snmp/mibs/IP-MIB.txt
https://tools.ietf.org/html/rfc1156#section-5
Zadanie 2. Przejrzyj bazy MIB używając dedykowanych narzędzi
tkmib
(część net-snmp)
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.
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.
Wersja 3 wprowadza zabezpieczenia: szyfrowanie (symetryczne) i/lub autoryzację (priv / auth / authpriv). Wprowadza też możliwość ograniczania widoku – konkretny użytkownik ma dostęp tylko do wskazanych gałęzi drzewa MIB.
Pakiet NET-SNMP to najpopularniejszy zestaw demonów i narzędzi SNMP.
Do dostępu do serwera snmp, NET-SNMP zawiera komendy:
snmpget
- pobranie pojedynczej wartości o podanym OIDsnmpgetnext
- pobranie następnej wartości po podanym OIDsnmpset
- ustawienie wartościsnmpwalk
- przejście całego (pod)drzewasnmptable
- wyświetlenie tablicy
I wspomniany wcześniej graficzny tkmib
Dla wersji 2c protokołu SNMP przykładowe polecenie to:
snmpgetnext -v 2c -c public 150.254.32.65 ip
snmpgetnext -v 2c -c public 150.254.32.65 .1.3.6
Zadanie 4. Narzędziem graficznym i konsolowym, z adresu 150.254.32.65
, z community public
:
SNMPv2-MIB::sysDescr
system
.1.3.6.1.4.1.14988
NET-SNMP zawiera demona (agenta) SNMP.
Konfiguracja znajduje się w /etc/snmp/snmpd.conf
Strona man snmpd.conf
zawiera szczegółowy opis składni tego pliku.
Zadanie 5. Umieść w pliku konfiguracyjnym poniższą treść:
rocommunity public 127.0.0.1
Następnie uruchom demona snmpd poleceniem: systemctl start snmpd
i odpytaj go lokalnie.
Ponowne załadowanie konfiguracji snmpd: systemctl reload 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
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 8. Dodaj do pliku konfiguracyjnego użytkownika SNMP w wersji 3, np:
createUser myUser MD5 "doscdlugiehaslo" DES doscdlugiehaslo rwuser myUser
Następnie odpytaj SNMP, na przyład:
snmpwalk -v3 -u myUser -a MD5 -A doscdlugiehaslo -x DES -X doscdlugiehaslo -l authPriv localhost system
Za pomocą programu wireshark porównaj wymianę informacji w SNMPv2c i SNMPv3.
SNMP poza aktywnym oczekiwaniem pozwala generować automatycznie powiadomienia.
Zadanie 9. Dodaj generowanie przykładowych powiadomień rozszerzając plik /etc/snmp/snmpd.conf
o:
trapcommunity public trap2sink 127.0.0.1 linkUpDownNotifications yes defaultMonitors yes monitor -r 1s pingi != IP-MIB::icmpInMsgs
Do odbierania powiadomień można użyć demona snmptrapd
dostarczanego z NET-SNMP.
Plik konfiguracyjny tego demona to: /etc/snmp/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 +
disableAuthorization yes traphandle default logger #traphandle default wall #traphandle default sh -c "DISPLAY=:0 xmessage -file -" #traphandle IF-MIB::linkDown sh -c "DISPLAY=:0 xmessage -file -" #traphandle IF-MIB::linkUp sh -c "DISPLAY=:0 xmessage -file -"
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
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.
MIBy: ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
Przykładowe polecenie wczytujące MIBy z katalogu: MIBDIRS=`pwd`:/usr/share/snmp/mibs tkmib
Polecenia konfiguracyjne: https://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/configuration/guide/ffun_c/fcf014.html
Zadanie 13. Wykonaj najprostsza (niezabezpieczona) konfigurację routera i przejrzyj wyniki:
enable configure terminal snmp-server community public ro snmp-server community private rw interface GigabitEthernet 0/0 ip address … no shut
Zadanie 14. Dodaj generację powiadomień (i je wygeneruj i odbierz):
snmp-server host <docelowy IP> traps version 2c public snmp-server enable traps snmp linkup linkdown
Zadanie 15. Dodaj użytkownika (SNMPv3) dostosowujący przykładowe polecenia:
snmp-server group someGroup v3 priv snmp-server user myUser someGroup v3 auth md5 12345678 priv des56 12345678
I przykładowe zapytanie:
snmpwalk -v3 -u myUser -A 12345678 -a md5 -X 12345678 -x DES -l authpriv <IP> system
Zadanie 16.Odpytując 150.254.32.65, znajdź:
Zadanie 17. Skonfiguruj SNMP na Mikrotiku (dostęp i powiadomienia).