Difference between revisions of "SNMP: UBUNTU 20.04 instalasi SNMP"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 166: | Line 166: | ||
User successfully created. | User successfully created. | ||
− | Ubah password, | + | Ubah password (error?), |
snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password | snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password | ||
Line 183: | Line 183: | ||
Output | Output | ||
− | DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: ( | + | DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (42998) 0:07:09.98 |
Kita sekarang memiliki akun pengguna aktif bernama demo. Pada langkah berikutnya, kita akan menyederhanakan bekerja dengan perintah SNMP dengan mengkonfigurasi klien. | Kita sekarang memiliki akun pengguna aktif bernama demo. Pada langkah berikutnya, kita akan menyederhanakan bekerja dengan perintah SNMP dengan mengkonfigurasi klien. |
Latest revision as of 09:15, 13 May 2020
Sebagian besar menjadi administrator sistem mengumpulkan informasi yang akurat tentang server dan infrastruktur. Ada sejumlah tool dan opsi untuk mengumpulkan dan memproses informasi jenis ini. Banyak dari mereka dibangun di atas teknologi yang disebut SNMP.
SNMP adalah singkatan dari simple network management protocol. Ini adalah cara server dapat berbagi informasi tentang keadaan server saat ini, dan juga saluran di mana seorang administrator dapat mengubah pre-defined value. Sementara protokol itu sendiri ringan, struktur program yang mengimplementasikan SNMP dapat berkembang menjadi kompleks.
Dalam panduan ini, kita akan mengatur tool untuk berkomunikasi menggunakan SNMP. Kita akan menggunakan dua server Ubuntu 20.04 untuk mendemokan. Satu akan berisi SNMP manager, yang akan berbicara dengan agen untuk mengimplementasikan network device. Komputer tempat SNMP manager akan disebut server manajer. Server yang lain akan memiliki SNMP agent yang akan bertindak atas perintah dari server manajer. Ini akan disebut server agen. Kita dapat memilih untuk menginstal agen pada mesin manajer juga, tetapi memisahkannya membuatnya lebih mudah untuk menunjukkan fungsionalitas apa yang disediakan oleh masing-masing komponen.
Pra-Syarat
Ini tutorial ini kita akan membutuhkan:
- Dua Ubuntu 20.04 server kosong.
- Ada non-root user dengan sudo privileges.
- Firewall yang di konfigurasi dengan ufw.
Step 1 — Installing the SNMP Daemon and Utilities
Masuk ke manager server (console admin SNMP), dengan perintah,
ssh your_username@manager_server_ip_address
Lakukan,
sudo apt update sudo apt -y install snmp snmp-mibs-downloader
Paket snmp menyediakan koleksi tool CLI untuk mengirim SNMP request ke agen. Paket snmp-mibs-downloader akan membantu untuk menginstal dan mengelola file Management Information Base (MIB), yang melacak network object.
Masuk ke server agent, dengan perintah
ssh your_username@agent_server_ip_address
Lakukan
sudo apt update sudo apt -y install snmpd
Perhatikan bahwa kita tidak memerlukan paket snmp-mibs-downloader, karena agent server tidak akan mengelola file MIB.
Step 2 — Konfigurasi SNMP Manager Server (Console SNMP Admin)
Seperti disebutkan sebelumnya, sebagian besar pekerjaan terjadi di agent server, sehingga konfigurasi kita pada server manajer akan tidak berat. Kita hanya perlu memodifikasi satu file untuk memastikan bahwa SNMP tool dapat menggunakan data MIB tambahan yang kita instal.
Pada manager server, buka /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
Pada file ini ada bebera comments dan single un-commented line. Untuk mengijinkan manager untuk import MIB file, comment out mibs :
# As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loading them by commenting out the following line. # mibs :
Save dan tutup snmp.conf
Step 3 — Konfigurasi SNMP Agent Server
Sebagai sistem client-server yang sebenarnya, agent server tidak memiliki tool eksternal / tambahan yang diperlukan untuk mengkonfigurasi SNMP setup-nya. Kita dapat memodifikasi beberapa file konfigurasi untuk membuat beberapa perubahan, tetapi sebagian besar perubahan yang perlu kita lakukan adalah untuk menghubungkan ke agent server ke management server.
Dalam tutorial ini, kita akan menggunakan SNMP versi 3. Tidak seperti SNMPv1 dan v2, di SNMPv3 setiap pesan berisi parameter keamanan yang disandikan. Pada langkah ini kita akan mengonfigurasi aturan SNMPv3 otentikasi dan kontrol akses.
Untuk memulainya, pada agent server, bukan konfigurasi snmpd.conf sebagai berikut
sudo vi /etc/snmp/snmpd.conf
Kita akan melakukan beberapa perubahan kecil. Ini akan digunakan untuk mem-bootstrap konfigurasi agar bisa memanage server dari server lain.
SATU
Ubah agentAddress agar bisa di akses dari komputer lain
/etc/snmp/snmpd.conf
# Listen for connections from the local system only #agentAddress udp:127.0.0.1:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) agentAddress udp:161,udp6:[::1]:161
Setelah selesai melakukan bootstraping, sebaiknya di set hanya localhost yang bisa akses.
DUA
Mendefinisikan pengguna. Pengguna yang kita buat akan disebut bootstrap dan akan digunakan sebagai template untuk membuat pengguna pertama. Paket SNMP melakukan ini melalui proses kloning properti pengguna.
Saat mendefinisikan pengguna baru, kita harus menentukan jenis otentikasi (MD5 atau SHA atau SHA-512 atau SHA-384 atau SHA-256 atau SHA-224 ) serta memberikan frasa sandi yang paling tidak harus delapan karakter. Jika kita berencana menggunakan enkripsi untuk transfer, kita harus menentukan protokol privasi (DES atau AES) dan secara opsional frasa sandi protokol privasi. Jika tidak ada frasa sandi protokol privasi yang diberikan, frasa sandi otentikasi juga akan digunakan untuk protokol privasi.
Tambahkan createUser line di akhir file:
/etc/snmp/snmpd.conf ... createUser bootstrap MD5 temp_password DES
Sekarang kita memiliki pengguna baru yang ditentukan, kita dapat mengatur tingkat akses yang akan dimiliki oleh pengguna ini. Dalam tutorial ini kita akan mengatur ini untuk pengguna bootstrap, dan juga untuk pengguna baru yang akan kita buat, yang disebut demo. Kita akan mengijinkan mereka read dan write akses dengan menggunakan petunjuk rwuser (alternatifnya adalah rouser untuk read-only access).
Kita juga akan menegakkan penggunaan enkripsi dengan menentukan priv setelah pengguna. Jika kita ingin membatasi pengguna ke bagian tertentu dari MIB, kita bisa menentukan highest-level object identifier (OID) yang bisa diakses pengguna di akhir baris.
Dalam tutorial ini, ke dua baris yang dibutuhkan adalah sebagai berikut,
/etc/snmp/snmpd.conf
... rwuser bootstrap priv rwuser demo priv
Setelah sudah konfigurasi snmpd.conf, save & close file.
TIGA - Restart
sudo systemctl restart snmpd
SNMP daemon akan mendengarkan port 161. Konfigurasi UFW untuk mengijinkan sambungan port 161
sudo ufw allow from manager_server_ip_address to any port 161
Step 4 — Verify Authentication ke Agent Server
Selanjutnya test apakah kita bisa menyambungkan diri ke agent server dengan bootstrap account. Dalam net-snmp software suite kita mengenal beberapa pola (switch / flag) yang bisa digunakan, beberapa yang sering digunakan adalah,
- -v: men-spesifikasi versi SNMP, disini digunakan v3.
- -c: men-spesifikasi community string di SNMP v1 atau v2 untuk authentikasi. Karena kita menggunakan v3, maka ini tidak dibutuhkan.
- -u: username untuk authentikasi. Untuk read & modify, kita harus ter-authentikasi ke username yang sudah di set.
- -l: set security level. Nilai-nya bisa noAuthNoPriv untuk no authentication & no encryption, authNoPriv untuk authentication tapi no encryption, dan authPriv untuk authentication & encryption. Username yang digunakan harus di konfigurasi untuk level security yang diinginkan tersebut.
- -a: set authentication protocol yang digunakan. Nilai yang bisa MD5 atau SHA. Harus match dengan nilai di user yang di setup.
- -x: set encryption protocol. Nilai yang bisa DES atau AES. Harus match dengan nilai di user yang di setup.
- -A: set authentication password yang di set pada user yang di setup.
- -X: set encryption paassword yang di set pada user yang di setup.
Untuk masuk kita dapat menggunakan perintah berikut,
snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
contoh,
snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0
String 1.3.6.1.2.1.1.1.0 adalah OID untuk men-display system information. Ini akan memberikan output uname -a dari mesin remote.
Contoh2 output,
Output SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64 SNMPv2-MIB::sysDescr.0 = STRING: Linux server2004 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64
Sekarang setelah kita memverifikasi bahwa kita dapat mengautentikasi ke server yang menjalankan daemon SNMP, kita dapat melanjutkan membuat akun pengguna reguler kita.
Step 5 — Setup Regular User Account
Meskipun kita telah menentukan hak istimewa untuk akun pengguna demo di file snmpd.conf, kita belum benar-benar membuat pengguna ini. Pada langkah ini, kita akan menggunakan pengguna bootstrap sebagai template untuk pengguna baru. Kita akan melakukan ini menggunakan tool snmpusm, yang digunakan untuk manajemen pengguna.
Pada manager server, membuat user dari template menggunakan tool snmpusm tool dengan syntax berikut,
snmpusm authentication_info agent_server_ip_address create new_user existing_user
contoh menggunakan demo user bootstrap,
snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap
You will receive the following message:
Output User successfully created.
Ubah password (error?),
snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password
You will receive the following message back:
Output SNMPv3 Key(s) successfully changed.
Mari kita test menggunakan perintah snmpget. Karena kita sudah men-download MIB Definition kita dapat menggunakan nama, bukan OID numeric ID, seperti
snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0
Akan keluar nilai / waktu sejak kapan SNMP daemon di jalankan,
Output DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (42998) 0:07:09.98
Kita sekarang memiliki akun pengguna aktif bernama demo. Pada langkah berikutnya, kita akan menyederhanakan bekerja dengan perintah SNMP dengan mengkonfigurasi klien.
Step 6 — buat Client Configuration File
Kita mungkin telah memperhatikan sampai saat ini detail otentikasi untuk semua perintah SNMP akan cukup statis dengan setiap requset. Daripada mengetik ini setiap kali, kita dapat membuat file konfigurasi sisi klien yang akan berisi kredensial untuk sambungan.
File konfigurasi klien dapat ditempatkan di dua lokasi berbeda tergantung pada seberapa luas kita ingin membagikannya.
Jika ingin bisa dibuka semua orang dengan sudo privilege, kita dapat mengedit file
sudo nano /etc/snmp/snmp.conf
Jika hanya ingin bisa di akses, kita sendiri, bukan orang lain, dapat dibuat di home directory kita di manager server sebagai berikut,
mkdir ~/.snmp nano ~/.snmp/snmp.conf
Isi kedua file tersebut adalah sama.
Perintah yang kita akan gunakan untuk authentikasi ada di tabel berikut ini.
Command Flag Description Translated snmp.conf directive
-u username SNMPv3 username defSecurityName username -l authPriv Security level defSecurityLevel authPriv -a MD5 Authentication protocol defAuthType MD5 -x DES Privacy (encryption) protocol defPrivType DES -A passphrase Authentication passphrase defAuthPassphrase passphrase -X passphrase Privacy passphrase defPrivPassphrase passphrase
Contoh snmp.conf file adalah sebagai berikut,
snmp.conf
defSecurityName demo defSecurityLevel authPriv defAuthType MD5 defPrivType DES defAuthPassphrase new_password defPrivPassphrase new_password
Dengan data file snmp.conf ini, kita tidak perlu mengetik perintah panjang berikut,
snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0
cukup,
snmpget agent_server_ip_address sysUpTime.0
Step 7 — Remove Bootstrap Account
Setelah yakin bahwa account regular kita di konfigurasi dengan baik, kita bisa membuat bootstrap account.
Di agent server, buka,
sudo vi /etc/snmp/snmpd.conf
Cari dan comment out (atau remove) dua line yang kita tambahkan untuk bootstrap user,
/etc/snmp/snmpd.conf
... #createUser bootstrap MD5 temp_password DES #rwuser bootstrap priv ...
Restart SNMP daemon:
sudo systemctl restart snmpd
Jika kita ingin benar-benar me-remove bootstrap user dari usmUserTable, kita dapat menggunakan perintah,
snmpusm agent_server_ip_address delete bootstrap
You will receive the following response:
Output User successfully deleted.