Akhir-akhir ini saya sering untuk mencoba menelusuri Nmap, karena banyak sekali fitur-fitur yang menarik, salah satunya adalah kombinasi Nmap dengan Ndiff untuk monitoring server remote.

Gimana caranya gan?

Let’s cekibrot

Pada tutorial ini kita akan belajar bagaimana cara untuk monitoring server dan jadi terjadi perubahan maka akan ada pemberitahuannya ke email, maksud email disini adalah email ke sistem linux yang ada di /var/spool/mail , disini juga kita akan manggunakan bash shell script.

— Start —

Buat direktory nmap-mon pada folder /usr/local/share untuk menyimpan file-file yang diperlukan

$ mkdir /usr/local/share/nmap-mon

Pindah ke direktori nmap-mon

$ cd /usr/local/share/nmap-mon/

Scan target dan simpan hasil scanning dalam format xml

$ nmap -oX hasil.xml -sV -Pn target.com

Keterangan :
-oX = Simpan dalam bentuk XML
-sV = Service Scanning
-Pn = Tanpa ping host

File hasil.xml akan menjadi file untuk percobaan monitoring kita.

Selanjutnya buat file nmap-mon.sh

Gunakan editor kesukaan anda, kalau saya pakai nano

$ nano nmap-mon.sh

Lalu paste bash script ini :

#!/bin/bash
# Bash Script untuk mengirim email ke admin jika terjadi perubahan yang terdeteksi oleh Nmap dan Ndiff
#
#Don't forget to adjust the CONFIGURATION variables.
#Paulino Calderon
#
#CONFIGURATION
#
NETWORK="YOURDOMAIN.COM"
[email protected]
NMAP_FLAGS="-sV -Pn -p- -T4"
BASE_PATH=/usr/local/share/nmap-mon/
BIN_PATH=/usr/bin/
BASE_FILE=hasil.xml
NDIFF_FILE=ndiff.log
NEW_RESULTS_FILE=newscanresults.xml
BASE_RESULTS="$BASE_PATH$BASE_FILE"
NEW_RESULTS="$BASE_PATH$NEW_RESULTS_FILE"
NDIFF_RESULTS="$BASE_PATH$NDIFF_FILE"
if [ -f $BASE_RESULTS ]
then
echo "Checking host $NETWORK"
${BIN_PATH}nmap -oX $NEW_RESULTS $NMAP_FLAGS $NETWORK
${BIN_PATH}ndiff $BASE_RESULTS $NEW_RESULTS > $NDIFF_RESULTS
if [ $(cat $NDIFF_RESULTS | wc -l) -gt 0 ]
then
echo "Network changes detected in $NETWORK"
cat $NDIFF_RESULTS
echo "Alerting admin $ADMIN"
mail -s "Network changes detected in $NETWORK" $ADMIN < $NDIFF_RESULTS fi fi

Pada script di atas, ubah kode-kode konfigurasi sesuai dengan sistem anda, yang perlu diubah adalah :


NETWORK="YOURDOMAIN.COM"
[email protected]
NEW_RESULTS_FILE=newscanresults.xml

Contoh :

Script Configuration

Script Configuration

ADMIN = [email protected] maksudnya adalah hasil perubahan akan dikirimkan ke user root pada sistem linux. Mohon untuk disesuaikan dengan sistem anda.

Lalu buat file nmap-mon.sh menjadi executable

$ chmod +x /usr/local/share/nmap-mon/nmap-mon.sh

Jalankan file nmap-mon.sh untuk mengetahui apakah script sudah bisa berjalan

$ ./nmap-mon.sh

Jalankan crontab editor

$ crontab -e

Tekan i untuk menulis

lalu tambahkan kode ini pada crontab

0 * * * * /usr/local/share/nmap-mon/nmap-mon.sh

Tekasn esc

Save dengan mengetikkan ':wq' (tanpa tanda petik) lalu enter

cron

Setelah semua cara diatas telah dilakukan, maka nanti kita akan menerima email jika pada host terjadi perubahan.

Untuk melihat perubahan, jalankan saja file nmap-mon.sh

Nanti akan ada file hasilbaru.xml yang merupakan hasil scanning terbaru. Nantinya file ini akan dibandignkan dengan hasil.xml dan hasilnya akan dikirimkan email.

Lalu, untuk melihat email ketikkan :

$cat /var/mail/namauser

Jika ada perubahan maka akan mendapatkan email seperti ini :