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
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}
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
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
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
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
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
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
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"
Daha sonra /usr/share/snmp/snmpd.conf dosyası içerisinde aşağıdaki satır eklenmeli:
rouser snmpyonetici
Bu iki dosya da düzenlendikten sonra snmpd servisi tekrar başlatılabilir:
sudo systemctl start snmpd
sudo systemctl enable snmpd
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
veya v3 sürüm kullanarak:
snmpwalk -v3 -a SHA -A authparola -x AES -X privparola -l authPriv -u snmpyonetici 192.168.1.67
Çı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İ
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"
...