Archive | October 2011

Network Time Protocol dengan OpenBSD OpenNTPD

Bismillah,

Ini adalah setting penggunaan Network Time Protocol dengan OpenNTPD yang tersedia di OpenBSD. Aplikasi ini digunakan untuk mensingkronkan waktu pada komputer server. Pada penggunaan jangka panjang, jam yang ada di komputer bisa berubah, jadi perlu terus-menerus di singkronkan dengan Time server di Internet untuk menjaga waktu di komputer kita tetap presisi.

Di OpenBSD, tersedia OpenNTPD yang akan kita gunakan sebagai client dan juga server bagi local clientnya. di bawah ini langkah yang saya lakukan:

1. cek status ntp di komputer

$ ps ax | grep ntp 
26900 p0  R+/1    0:00.00 grep ntp

terlihat bahwa openNTPD belum jalan di komputer ini, lalu saya edit file /etc/ntpd.conf dengan setting ini:

$ cat /etc/ntpd.conf | grep -v "^#" 

listen on 10.0.0.1
servers pool.ntp.org
sensor *

hanya dengan tiga baris diatas, yang penjelasannya sebagai berikut:
- listen on 10.0.0.1 => berarti OpenNTPD akan berjalan sebagai time server dan mendengarkan di IP 10.0.0.1
- server pool.ntp.org => berarti alamat time server di internet yang kita gunakan
- sensor * => gunakan sensor yang tersedia bila ada

selanjutnya, saya coba menjalankan OpenNTPD yang outputnya ke terminal

$ sudo /usr/sbin/ntpd -s -d
Password:
listening on 10.0.0.1
ntp engine ready
reply from xxx.134.1.10: offset -0.009891 delay 0.016349, next query 9s
set local clock to Thu Oct 13 09:54:41 CIT 2011 (offset -0.009891s)
reply from xxx.118.24.8: offset 0.008909 delay 0.017080, next query 8s
reply from xxx.89.31.13: offset 0.134570 delay 0.033521, next query 9s
reply from xxx.118.24.8: offset -0.001688 delay 0.054221, next query 6
^Cntp engine exiting
Terminating

terlihat bahwa OpenNTPD bisa berjalan dengan baik, kita saatnya di jalankan sebagai server di belakang layar (tidak menampilkan output ke terminal),


$ ps ax | grep ntp
24518 p0  R+/1    0:00.00 grep ntp

$ sudo /usr/sbin/ntpd -s 
Password:

$ ps ax | grep ntp
22421 ??  Ss      0:00.01 ntpd: dns engine (ntpd)
23583 ??  Ss      0:00.02 ntpd: ntp engine (ntpd)
22794 ??  Ss      0:00.00 ntpd: [priv] (ntpd)
27512 p0  R+/0    0:00.00 grep ntp

terlihat bahwa OpenNTPD sudah jalan, dengan option “-s” maka akan menyebabkan OpenNTPD langsung mengoreksi jam di komputer begitu ia di jalankan, dan agar OpenNTPD selalu jalan bila booting ulang, maka perlu di tambahkan setting ke file /etc/rc.conf.local seperti ini:

$ cat /etc/rc.conf.local | grep ntp

ntpd_flags="-s"         # enabled during install

sekian dari saya, semoga bermanfaat bagi Unix User, Walhamdulillah

Abu Husnul Khatimah Muhammad Muntaza bin Hatta bin Ahmad

Catatan: Semoga Allah memudahkan saya untuk tinggal di kota Banjarbaru.

Cek status kapasitas Hardisk server setiap hari

Berikut ini saya tulis script untuk mencek isi hardisk dan mengirim email ke admin sekali tiap hari, yang dijalankan dengan cron:

#!/bin/sh
#GPL

(/bin/df -h 
/bin/echo "" 
/usr/bin/last | /bin/head -20
/bin/echo "" 
/bin/date
/bin/echo "" 
/usr/bin/uptime) > /home/muntaza/hasil

/usr/bin/sleep 3

/usr/bin/mailx -s "laporan webserver" -r muntaza@mydomain \
-S smtp=10.0.0.1 my@example.com < /home/muntaza/hasil

dijalankan dengan cron sekali sehari:


46   12    *   *    *    ~/bin/mail.sh

Walhamdulillah

Abu Husnul Khatimah Muhammad Muntaza bin Hatta

catatan: saya bercita-cita untuk tinggal di kota Banjarbaru,
semoga Allah Ta’ala memudahkan saya untuk tinggal di sana.

Pantau Log IP yang melakukan Abuse di PF OpenBSD

Bismillah,

Dari tulisan saya sebelumnya, saya menulis tentang setting pf.conf untuk mencegah
abuse yang dilakukan oleh pengguna layanan, seperti ini;

table <abusive_hosts> persist
block in quick from <abusive_hosts>

pass in log (all) on $ext_if inet proto tcp from any to $ext_if port 80 \
	rdr-to $ip_web_server port 80 \
	queue http \
	flags S/SA synproxy state \
	(max-src-conn 100, max-src-conn-rate 15/5, overload <abusive_hosts> flush)

dari setting diatas, tiap source IP hanya maksimal 100 koneksi ke Server kita,
dan 15 koneksi per 5 detik, bila melanggar aturan itu, akan dimasukkan ke table
abusive_hosts, dan semua koneksinya di putus.

semua IP yang berada di table abusive_hosts ini akan di blok oleh PF, jadi kita
perlu mengclear IP yang telah berumur 1 jam di table ini.

dibawah ini satu script yang saya tulis untuk mencatat IP yang melakukan abuse,
mengclear bila telah berumur 1 jam, dan mengirim email ke admin daftar IP tersebut:

#!/bin/sh
#m.muntaza@gmail.com
#2011
#license: BSD

#program untuk mencatat host yang terblok oleh filter abuse
#dan mengclear bila sudah lewat 1 jam

#tiap satu jam dengan cron dijalankan, sekaligus mengirim email
#ke root data ip yang terblok

sudo pfctl -t abusive_hosts -T expire 3600
sudo pfctl -t abusive_hosts -T show -v >> /root/data_abuse
sudo pfctl -t abusive_hosts -T show -v > /root/data_abuse_mail

cat /root/data_abuse_mail \
| /usr/local/bin/mutt -s "data abuse mail" root

script ini dinamai log_abuse.sh dan dijalankan dengan cron tiap 1 jam sekali

# crontab -l| grep log_abuse

46      *       *       *       *       /root/log_abuse.sh

sekian tulisan ini, semoga bermanfaat bagi user OpenBSD PF, walhamdulillah

Al faqir ilaa maghfirati rabbihi
Abu Husnul Khatimah Muhammad Muntaza bin Hatta

catatan: saya mempunyai cita-cita untuk tinggal di kota Banjarbaru,
semoga Allah Ta’ala memudahkan saya untuk tinggal di sana