Web vagy parancssor – néha nagyon nem mindegy

kami911 képe

A különböző hálózati, storage, és egyéb eszközök kényelmes menedzselési formája a webes felület. Bejelentkezik az rendszergazda az adott címen a weboldalon és már szerkesztheti is a beállításokat. Egy, (pontosabban két) Brocade gyártmányű G620 típusú (Firmware version: v9.2.1a – a legújabb elérhető a bejegyzés írásakor) Gen 6 Fibre Channel SAN eszközt sodort elém az élet, amelyen az SNMP lekérdező monitoring rendszer IP-cím váltása után kellett volna beállítani az új címre. Az eszközön állítható weboldalon beállítottam a szükséges értékeket, de az eszköz csak nem válaszol – se SNMP v1-en se SNMP v3-on. A monitorozó gép és a G620-ak között a az SNMP 161-es és a SNMP trap 162-es portok a megfelelő módon nyitva voltak, de mégsem érkezett válasz a monitoring gép kéréseire, sem a helyileg indított hasonló lekérdezésre, amely így néz ki

SNMP v1 esetében:

/usr/lib64/nagios/plugins/check_snmp_brocade --community community_name --hostname 10.20.45.120 --systeminfo

És így néz ki SNMP v3 esetében:

/usr/lib64/nagios/plugins/check_snmp_brocade --hostname 10.20.45.120 -v 3 -L authPriv -a SHA -x AES -U nagios -A password2 -X password3 --systeminfo

ahol a community_name az SNMP v1 által igényelt, SAN switch-en beállított érték, és a password2 és a password3 egy 8-24 karakter hosszú, bonyolult jelszó.

A lekérdezés a v1-es:

snmpget -v 1 -c U0EEzH4OAV1TBVZBvzmL 10.20.45.120 .1.3.6.1.2.1.47.1.1.1.1.11.1

és a v3-as:

snmpget -v 3 -l authPriv -a SHA -u monitoring -A password2 -x AES -X password3 10.20.45.120 .1.3.6.1.2.1.47.1.1.1.1.11.1

formában sem hozott eredményt, a másik, snmpget parancssori eszközt használva. Az snmpwalk is használható lett volna erre a célra.

A SAN switch-be SSH-n belépve egy Unix-szerű rendszer fogad minket, pár már a GNU-ból ismerős, és jópár egyedi paranccsal.

Itt az snmpconfig paranccsal próbáltam beállítani a rendszert:

snmpConfig
snmpconfig --add {snmpv1|snmpv3}
snmpconfig --set {snmpv1|snmpv3|accessControl|mibCapability|systemGroup|secLevel|auditInterval}
snmpconfig --default {snmpv1|snmpv3|accessControl|mibCapability|systemGroup|secLevel|auditInterval}
snmpconfig --enable {snmpv1|mibCapability}
snmpconfig --disable {snmpv1|mibCapability}
snmpconfig --delete {snmpv1|snmpv3}
snmpconfig --show {snmpv1|snmpv3|accessControl|mibCapability|systemGroup|secLevel|auditInterval}

Nézzük meg a konfigurációkat:

snmpconfig --show snmpv1
snmpconfig --show snmpv3
snmpconfig --show accessControl

Ez utóbbi egy ilyen érdekes depricated üzenetet is adott, aminek még lesz jelentőseége:

Warning: 'snmpconfig --show accesscontrol' command is being deprecated. Please use ipfilter.
ipfilter --addrule <policyname> -rule <rule_num> -sip <source_IP> -dp <dest_port> -proto <protocol> -act <permit | deny> [-type <INPUT | FWD>] -dip <destination_IP>
SNMP access list configuration:
Entry 0: Access host subnet area 10.20.40.10 (ro)

Itt azonban még az eszköz régi IP-címe látszott, amelyet át kellett írni az újra, és ez a beállítás a webes felületen nem látszott. Feltételezem az eszköz felületéről kivezették, amikor depricated lett ez a megoldás, viszont már csak terminálból látszott, hogy valami be van állítva. Vagy csak én nem találtam meg?

Mindenesetre az

snmpconfig --set accessControl 1 -host 10.20.200.10 ro

paranccsal, vagy az

snmpconfig --set accessControl

paranccsal interaktívan elvégezhető a beállítás.

De az eszköz ezek után sem lett elérhető authPriv biztonsági beállítások mellett SNMP v3-on. A webes felületen továbbra is minden rendben, próbáltam beállítani az egyszerűbb SNMP v1-et, ami működött is már és az SNMP v3-at is, amely eddig nem volt beállítva, de egy kis biztonsági szintemelés soha sem hátrány az ilyen háttérben meghúzódó igásló eszközöknél. Ehhez előbb telepíteni kellett a

yum install perl-Crypt-Rijndael

paranccsal az perl SNMP modulja által igényelt Crypt::Rijndael modult.

De hiába próbáltam meg egyező

  • authentication protocol-t a lehetésges MD5 és SHA közül választva,
  • privacy protocol-t a lehetséges DES és AES közül választva

a webes felületen és a check_snmp_brocade lekérdezőben is ugyanazokat a beállításokat használva – de sajnos nem sikerült eredményt elérni. Viszont az kecsegtető volt, hogy legalább noAuthNoPriv beállítással már ment az SNMP v3-is.

Ezek után ismét a terminálhoz fordultam - Az:

snmpconfig --default accessControl

továbbá az:

snmpconfig --default snmpv1

és az:

snmpconfig --default snmpv3

parancsokkal töröltem az eddigi konfigurációt. Majd az dokumentációnak megfelelően felvettem az igényelt SNMP v3 beállításokat.

Lekérdeztem Beállítottam a secLevel-t:

snmpconfig --show secLevel
GET security level = 0, SET level = 3
SNMP GET Security Level: No security
SNMP SET Security Level: No Access

Majd beállítottam a secLevel-t:

snmpconfig --set secLevel
Select SNMP GET Security Level
(0 = No security, 1 = Authentication only, 2 = Authentication and Privacy, 3 = No Access): (0..3) [0] 2
Select SNMP SET Security Level
(0 = No security, 1 = Authentication only, 2 = Authentication and Privacy, 3 = No Access): (2..3) [3] 3

Itt csak SNMP lekérdezést használatát állítottam be, a beállítást itt nem használják. Így csak az legyen engedélyezve amit használunk jegyében ez is letiltásra került.

Természetesen egyezőre próbáltam beállítani az authentication protocol-t (MD5|SHA), a -a PROTOCOL paraméterrel, amelynek lehetséges értékei:

  • 1 - MD5
  • 2 - SHA
  • 3 - noAuth
  • 4 - SHA512

és az egyező próbáltam beállítani a privacy protocol-t (DES|AES), -x PROTOCO paraméterrel, amelynek lehetséges értékei:

  • 1 - DES
  • 2 - noPriv
  • 3 - AES128
  • 4 - AES256

Webes felületről beállítva valamilyen titkosítást, nem hozott eredményt, amint titkosítást állítottam be nem működött a lekérdezés. Végül terminálból sikerült beállítani a megfelelő értéket, mind a teljes beállítás:

snmpconfig --add snmpv3 -index 1 -user monitoring -groupname ro -auth_proto 2 -auth_passwd password2 -priv_proto 3 -priv_passwd password3

mind a parancsori interaktív beállítás működő konfigurációt eredményezett:

snmpconfig --set snmpv3

10.20.45.120 eszköz parancsai:

snmpconfig --default accessControl
snmpconfig --default snmpv1
snmpconfig --default snmpv3
snmpconfig --add snmpv3 -index 1 -user monitoring -groupname ro -auth_proto 2 -auth_passwd password2 -priv_proto 3 -priv_passwd password3

10.20.45.121 eszköz parancsai:

snmpconfig --default accessControl
snmpconfig --default snmpv1
snmpconfig --default snmpv3
snmpconfig --add snmpv3 -index 1 -user monitoring -groupname ro -auth_proto 2 -auth_passwd password4 -priv_proto 3 -priv_passwd password5

Ahogy azt fentebb írtam az snmpconfig --show accesscontrol parancs jelzése kapcsán megvizsgáltam az eszköz tűzfalazási lehetőségeit is, ahogy itt ajánlotta:

Warning: 'snmpconfig --show accesscontrol' command is being deprecated. Please use ipfilter.

Ennek kapcsán azt találtam, hogy az alap tűzfal policy nem változtatható, egy újat kell létrehozni, ahova az összes szükséges beállítás fel kell venni, majd a pedig ezt az új policy-t kell akívvá tenni. Az SNMP-t érintő beállítás eszközönként az alábbiak lettek:

ipfilter --addrule  work -rule 1 -sip 10.20.200.10 -dp 161 -proto udp -act permit -dip 10.20.45.120

és az

ipfilter --addrule  work -rule 1 -sip 10.20.200.10 -dp 161 -proto udp -act permit -dip 10.20.45.121

szűrési szabály.