Konfigurace SNMP na Ubuntu (Configure SNMP Ubuntu)

By | 16/03/2022

Last Updated on 18/08/2022 by administrator

Konfigurace SNMP na Ubuntu (Configure SNMP Ubuntu)

Konfigurace SNMP

Motivace:

SNMP je protokol, který se běžně používá pro průběžný sběr nejrůznějších dat ze síťových zařízeních pro potřeby správy sítě. Na tomto protokolu je dnes založena většina prostředků a nástrojů pro správu sítě.

Existují tři verze protokolu, a to SNMPv1 i SNMPv2c, které využívají autentizaci pomocí community string a komunikace mezi SNMP agentem a SNMP managerem není šifrována. SNMPv3 podporuje user authentication (ověřování uživatele) a message encryption (šifrování zpráv), proto je bezpečnější.

OS:

Implementace byla prakticky prováděna naUbuntu 22.04 LTS Ubuntu 20.04 LTS a Ubuntu 18.04 LTS.

Instalace SNMP:

Příkazem apt update se provede aktualizace seznamu balíčků z repozitářů:

apt update

Instalace služby snmpd, snmp a libsnmp-dev. Služba snmpd slouží k tomu, aby odpovídala na SNMP žádosti, či zasílala SNMP trapy (SNMP agent). Knihovna libsnmp-dev bude sloužit později ke konfiguraci SNMPv3:

apt install snmpd snmp libsnmp-dev

Konfigurace SNMP:

Defaultní konfigurační soubor se nachází v /etc/snmp/snmpd.conf a před samotnou konfiguraci je dobré provést zálohu původního souboru snmpd.conf:

cp /etc/snmp/snmpd.conf{,.bak}

Topologie:

Bude předpokládáno, že SNMP agent běží na IP adrese 192.168.0.8 (Ubuntu server) a SNMP manager běží na IP adrese 192.168.0.7 (Ubuntu server).

Konfigurace SNMP

Konfigurace SNMPv2c:

Konfigurace SNMP agenta (192.168.0.8):

Otevřít konfigurační soubor snmpd.conf

vi /etc/snmp/snmpd.conf

Zakomentovat původní řádek agentaddress:

#agentaddress  127.0.0.1,[::1]

a přidat nový řádek agentaddress, kde služba SNMP bude naslouchat na IP adrese localhostu 127.0.0.1 a IP adrese 192.168.0.8 na standardním portu UDP/161:

agentaddress    udp:127.0.0.1:161,udp:192.168.0.8:161

Zakomentovat řádky pro příkaz rocommunity:

#rocommunity public default -V systemonly
#rocommunity6 public default -V systemonly

Řádek rocommunity definuje přístup pomocí protokolu IPv4, rocommunity6 zase z IPv6. Níže bude přidán přístup z obou protokolů. Řetězec mysecret123 definuje community string:

rocommunity mysecret123
rocommunity6 mysecret123

Volitelně je možné pro větší zabezpečení definovat IP adresu, která se bude dotazovat tohoto SNMP agenta. V tomto bude povolen přístup z IP adresy 192.168.0.7:

rocommunity mysecret123 192.168.0.7

Nakonec provést restart snmpd služby:

systemctl restart snmpd

Aby se snmpd služba rozjela po rebootu, aplikovat příkaz níže:

systemctl enable snmpd

Ověření, že služba snmpd naslouchá:

lsof -P -i -n | grep snmpd

Výstup příkazu lsof -P -i -n | grep snmpd ukazuje, že SNMP agent běží pod portem UDP/161 a definovanými IP adresami 127.0.0.1 a 192.168.0.8:

snmpd 451532 Debian-snmp 6u IPv4 3748510 0t0 UDP 127.0.0.1:161
snmpd 451532 Debian-snmp 7u IPv4 3748511 0t0 UDP 192.168.0.8:161

Pokud pod Ubuntu běží firewall, je nutné povolit FW pravidlo na tomto Ubuntu serveru přístup. Ten bude povolen z SNMP manageru běžící na IP adrese 192.168.0.7 a pro cílový port UDP/161:

ufw allow from 192.168.0.7 to any port 161 proto udp

Ověření funkce SNMPv2c:

Z SNMP manageru (192.168.0.7) bude pomocí služby snmpwalk ověřená funkce na SNMP agenta (192.168.0.8):

snmpwalk -v2c -c mysecret123 192.168.0.8

Částečný výpis příkazu snmpwalk by měl vypadat podobně:

iso.3.6.1.2.1.1.1.0 = STRING: "Linux krtek 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (79) 0:00:00.79
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "krtek"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (9) 0:00:00.09
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1

Konfigurace SNMPv3:

Nejdříve je nutné stopnout snmpd službu:

systemctl stop snmpd

Pokud je nutné deaktivovat protokol SNMPv1/SNMPv2c, stačí zakomentovat rocommunity řádky, pokud byly předtím odkomentované, ve výše uvedeném případu to bylo:

#rocommunity mysecret123
#rocommunity6 mysecret123
Vytvoření SNMPv3 uživatele:

Pomocí příkazu net-snmp-create-v3-user bude vytvořen SNMPv3 uživatel. SNMPv3 používá uživatelské jméno (username), autentizaci (authpass), šifrovací heslo (privpass). Základní syntaxe pro konfiguraci je uvedena níže:

net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]

Bude vytvořen uživatel snmpmartin s autentizaci 4uth1234 a šifrovacím heslem 5ecretP455 s právy read only a využití nejsilnějších dostupných algoritmů AES a SHAMinimální délka řetezce pro autentizaci či hesla by měla mít 8 a více znaků.

net-snmp-create-v3-user -ro -A 4uth1234 -a SHA -X 5ecretP455 -x AES snmpmartin

Pozn: Po vytvoření je uživatel přidán do následujících konfiguračních souborů /etc/snmp/snmpd.conf a /var/lib/net-snmp/snmpd.conf.

Provést restart snmpd služby:

systemctl restart snmpd

Aby se snmpd služba rozjela po rebootu, aplikovat příkaz níže:

systemctl enable snmpd

Ověření funkce SNMPv3:

Ověření ze stejného Ubuntu serveru (SNMP agenta):

snmpwalk -v3 -a SHA -A 4uth1234 -x AES -X 5ecretP455 -l authPriv -u snmpmartin localhost | head

Výpis příkazu snmpwalk by měl vypadat podobně:

iso.3.6.1.2.1.1.1.0 = STRING: "Linux krtek 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (135) 0:00:01.35
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "krtek"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (11) 0:00:00.11
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1

Ověření z SNMP manageru (192.168.0.7) bude pomocí služby snmpwalk ověřená funkce na SNMP agenta (192.168.0.8):

snmpwalk -v3 -a SHA -A 4uth1234 -x AES -X 5ecretP455 -l authPriv -u snmpmartin 192.168.0.8 | head

Výpis příkazu snmpwalk by měl vypadat podobně:

iso.3.6.1.2.1.1.1.0 = STRING: "Linux krtek 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (135) 0:00:01.35
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "krtek"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (11) 0:00:00.11
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
Vymazání SNMPv3 uživatele:

Zastavit snmpd službu:

systemctl stop snmpd

Z obou souborů snmpd.conf níže vyhledat vytvořeného SNMPv3 uživatele (v příkladu výše byl nakonfigurován uživatel snmpmartin) a vymazat každý řádek obsahující SNMPv3 uživatele:

vi /usr/share/snmp/snmpd.conf
vi /var/lib/snmp/snmpd.conf

Provést restart snmpd služby:

systemctl restart snmpd

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérký softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030

Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *