Ubuntu üzerinde SNMP servisi kurulumu

Ali Orhun Akkirman - Nov 28 '21 - - Dev Community

Ağ izleme seçenekleri arasında en verimli yöntemlerden birisi SNMP protokolü olarak görülebilir. SNMP protokolü 161 ve 162 portlarını kullanır. Protokolün 3 farklı sürümü bulunmakta olup bunlar SNMP v1, SNMP v2c ve SNMP v3'tür. 1 ve 2c sürümleri community adı verilen bir string ile haberleşip, mesajlar tamamen şifrelenmemiş şekilde taşınmaktadır. 3 sürümü ise kullanıcı giriş yöntemleri ve mesajların şifrelenmesi için zorunludur.

SNMP servisi kurulumu

Ubuntu 20.04 depolarında snmp paketi bulunmaktadır. Dolayısıyla direkt olarak kurulum yapılabilmektedir.

sudo apt update
sudo apt install snmpd snmp libsnmp-dev
Enter fullscreen mode Exit fullscreen mode

SNMP servisi yapılandırılması

Paketler yüklendikten sonra öncelikle eski yapılandırma dosyanın yedeklenmesi önerilir:

cp /etc/snmp/snmpd.conf{,.yedek}
Enter fullscreen mode Exit fullscreen mode

Düşük güvenlikli yöntem: v2c yapılandırması

Yapılandırma dosyasında 2 adım bulunmaktadır. Bu iki adım da /etc/snmp/snmpd.conf dosyası içindeki düzenlemelerden oluşmaktadır.

Bu adımlardan ilki servisin çalışacağı ip ve port bilgileridir. İlgili dosya içinde agentaddress 127.0.0.1,[::1] geçen satır bulunup aşağıdaki gibi düzenlenmelidir. İkinci kısımda belirtilen IP adresi servisin hizmet verdiği IP adresidir.

#agentaddress  127.0.0.1,[::1]
agentAddress udp:127.0.0.1:161,udp:192.168.1.67:161
Enter fullscreen mode Exit fullscreen mode

v2c yapılandırmasındaki ikinci adım ise dışarıdan erişilecek IP adresi ve community ismi (bir nevi parola) kısıtlamasıdır. Aşağıdaki satırdan birden fazla ekleyebilir ve bu şekilde yetkilendirme yapabilirsiniz. Fakat unutulmaması gereken en önemli nokta trafiğin şifrelenmediği ve verilen IP adresleri için community ismini bilen herkesin erişebileceği bilgisidir.

rocommunity ornekparola 192.168.1.68
Enter fullscreen mode Exit fullscreen mode

Dosyayı kaydedip kapattıktan sonra servisi yeniden başlatıp servisin ayağa kalkıp kalmadığını kontrol edebilirsiniz.

sudo systemctl restart snmpd
sudo systemctl status snmpd
sudo systemctl enable snmpd
Enter fullscreen mode Exit fullscreen mode

Ve tabi ki eğer ufw güvenlik duvarı açıksa benzer şekilde kural girmeniz gerekmektedir:

ufw allow from 192.168.1.68 to any port 161 proto udp
Enter fullscreen mode Exit fullscreen mode

Yüksek güvenlikli yöntem: v3 yapılandırması

v3 yapılandırması için öncelikle açık bir servis varsa kapatılması gerekmektedir.

sudo systemctl stop snmpd
Enter fullscreen mode Exit fullscreen mode

Daha sonrasında giriş yapacak read-only(sadece okuyabilir) kullanıcı oluşturmak için aşağıdaki gibi bir komut uygulanması gerekmektedir:

net-snmp-create-v3-user -ro -A authparola -a SHA -X privparola -x AES snmpyonetici
Enter fullscreen mode Exit fullscreen mode

Kullanıcı eklendikten sonra iki dosyada da elle ekleme işlemi yapılması gerekmektedir.

İlk olarak /var/lib/snmp/snmpd.conf dosyası içine aşağıdaki satır eklenmeli:

createUser snmpyonetici SHA "authparola" AES "privparola"
Enter fullscreen mode Exit fullscreen mode

Daha sonra /usr/share/snmp/snmpd.conf dosyası içerisinde aşağıdaki satır eklenmeli:

rouser snmpyonetici
Enter fullscreen mode Exit fullscreen mode

Bu iki dosya da düzenlendikten sonra snmpd servisi tekrar başlatılabilir:

sudo systemctl start snmpd
sudo systemctl enable snmpd
Enter fullscreen mode Exit fullscreen mode

SNMP kontrol

İzin verilen IP adreslerinden aşağıdaki komut ile birlikte SNMP sorgusu atılıp atılmadığını v2c sürüm kontrol edebilirsiniz:

snmpwalk -v2c -c ornekparola 192.168.1.67
Enter fullscreen mode Exit fullscreen mode

veya v3 sürüm kullanarak:

snmpwalk -v3 -a SHA -A authparola -x AES -X privparola -l authPriv -u snmpyonetici 192.168.1.67
Enter fullscreen mode Exit fullscreen mode

Çıktı olarak aşağıdaki gibi bir çıktı alıyorsanız erişim sağlanamamakta fakat SNMP OID'leri görmeye başladıysanız erişim sağlanmış demektir.

Timeout: No Response from IPADRESİ
Enter fullscreen mode Exit fullscreen mode
iso.3.6.1.2.1.1.1.0 = STRING: "Linux snmpserver01 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 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: (227298) 0:37:52.98
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@deneme.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "snmpserver01"
...
Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .