Muhammad Muntaza bin Hatta

27 December 2011

DHCP server pada OpenBSD

Filed under: kisah muhammad muntaza,linux,OpenBSD — muntaza @ 2:16 am

Bismillah,

Cerita berawal dari suatu masa yang lalu, saya pernah melihat dengan dua mata saya (raitu fii aini) he… he… yaitu berkumpulnya sekelompok orang, yang mengkoneksikan banyak laptop ke sebuah server tertentu, jumlah laptopnya mencapai 40 buah lebih, dan IP per buah laptop di setting manual… he…he.. betapa capeknya si pengelola server ini, dan kacaunya lagi, mungkin saja ada IP yang sama pada dua laptop, he..he.. Alangkah baiknya kalau ini diatasi dengan DHCP, sehingga tidak perlu si pengelola server setting satu-satu, dan Insya Allah tidak ada IP sama untuk 2 komputer.

Iya, selesai cerita sudah, kini masuk ke setting. Saya menggunakan OpenBSD 4.8 saat ini, dan menjalankan DHCP server di OpenBSD tersebut. settingnya sebagai berikut:

1. Untuk menjalankan DHCP dari awal, edit /etc/rc.conf.local

$ cat /etc/rc.conf.local | grep dhcp
dhcpd_flags="re0"       # for normal use: ""

re0 adalah nama interface jaringan yang akan digunakan untuk dhcp server.

2. Edit file konfigurasinya di /etc/dhcpd.conf, sesuaikan dengan kebutuhan

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

option  domain-name "example.com";
option  domain-name-servers 192.168.9.1;

subnet 192.168.9.0 netmask 255.255.255.0 {
        option routers 192.168.9.1;

        range 192.168.9.32 192.168.9.220;

        host static-client {
                hardware ethernet XX:df:a4:e4:bb:13;
                fixed-address 192.168.9.230;
        }
}

penjelasan setting diatas

option  domain-name "example.com";
option  domain-name-servers 192.168.9.1;


menyatakan bahwa domain ini bernama example.com dan dns server local di 192.168.9.1

subnet 192.168.9.0 netmask 255.255.255.0

menyatakan bahwa alamat jaringan 192.168.9.0 dengan netmask 255.255.255.0

        option routers 192.168.9.1;

        range 192.168.9.32 192.168.9.220;

menyatakan bahwa default gateway ada di 192.168.9.1 dan IP yang tersedia untuk clien dari 192.168.9.32 sampai 192.168.9.220

3. setelah setting diatas, tentunya disesuaikan dengan kebutuhan, lalu restart servernya.

Sekian sedikit penjelasan yang saya bisa sumbangkan, Walhamdulillah. Semoga Allah Rabbuna Jalla wa ‘Ala memudahkan saya untuk tinggal di kota Banjarbaru

Perbaiki jam di server Linux

Filed under: Uncategorized — muntaza @ 1:27 am
Tags:

Bismillah,
ini adalah pengalaman jam error pada server linux, server ini telah hidup selama 32 hari lebih, dan menjalankan ntpd dari ntp.org

saya cek dengan program

date

ternyata jamnya tertinggal 2 jam, waduh… kacau nih… he… he…
saya cek login dengan perintah
last | head

untuk mencek kalau-kalau ada login yang aneh, ternyata tidak ada, jadi mungkin memang servernya lagi err… OK, langsung ke solusi yang saya terapkan, stop ntpd server dengan perintah
sudo /etc/rc.d/rc.ntpd stop

lalu saya start manual untuk mensingkronkan dengan server OpenNTD saya dengan perintah
sudo /usr/sbin/ntpd -g -q

setelah selesai, saya start lagi server ntpd nya
sudo /etc/rc.d/ntpd start

selesai,
walhamdulillah, semoga Allah Rabbuna Jalla Wa ‘Ala memudahkan saya tinggal di Kota Banjarbaru

13 October 2011

Network Time Protocol dengan OpenBSD OpenNTPD

Filed under: kisah muhammad muntaza,linux,OpenBSD — muntaza @ 2:11 am

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.

11 October 2011

Cek status kapasitas Hardisk server setiap hari

Filed under: kisah muhammad muntaza,linux,OpenBSD,opensolaris — muntaza @ 4:22 am

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

Filed under: kisah muhammad muntaza,OpenBSD — muntaza @ 3:49 am

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

25 May 2011

OpenBSD sebagai Desktop dengan Gnome

Filed under: linux,OpenBSD,kisah muhammad muntaza — muntaza @ 9:24 am

Bismillah,

ini adalah pengalaman saya menginstall Gnome pada OpenBSD 4.9 dan, Insya Allah, akan bisa juga dilakukan pada OpenBSD rilis berikitnya.

pertama, tentukan $PKG_PATH untuk links mirror terdekat, dan $PKG_CACHE untuk tempat menyimpan file instalasi. Edit .profile pada home direktori dan buat direktori khusus untuk menampung file yang akan di download
contoh:


$ mkdir ~/paket

$ cat .profile  
# $OpenBSD: dot.profile,v 1.4 2005/02/16 06:56:57 matthieu Exp $
#
# sh/ksh initialization

PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:/usr/local/lib/libreoffice/ure/bin:/usr/local/jre-1.7.0/bin:.
PKG_PATH=http://ftp.itb.ac.id/pub/OpenBSD/4.9/packages/i386/
JAVA_HOME=/usr/local/jre-1.7.0
JAVACMD=/usr/local/jre-1.7.0/bin/java
PKG_CACHE=/home/muntaza/paket/
export PKG_CACHE JAVA_HOME JAVACMD PATH HOME TERM PKG_PATH

lalu log out, lalu log in lagi dan cek isi variable $PKG_PATH dan $PKG_CACHE

$ echo $PKG_PATH
http://ftp.itb.ac.id/pub/OpenBSD/4.9/packages/i386/
$ echo $PKG_CACHE
/home/muntaza/paket/

PKG_PATH saya set ke mirror terdekat saya, yaitu http://ftp.itb.ac.id dan PKG_CACHE di /home/muntaza/paket/

lalu buat list file yang akan di install, saya membuatnya dalam sebuat file, sehingga akan menginstall Gnome dengan sekali perintah. file tersebut berisi sebagai berikut:

$ cat install_gnome.sh                                                                                                       
#!/bin/sh
#install gnome pada OpenBSD 4.9

pkg_add -i -vv gnome-session
pkg_add -i -vv gdm
pkg_add -i -vv metacity
pkg_add -i -vv gnome-panel
pkg_add -i -vv nautilus
pkg_add -i -vv gnome-terminal
pkg_add -i -vv gnome-control-center
pkg_add -i -vv gnome-menus
pkg_add -i -vv gnome-settings-daemon
pkg_add -i -vv gnome-themes
pkg_add -i -vv gnome-themes-extras
pkg_add -i -vv gnome-utils
pkg_add -i -vv gnome-applets2
pkg_add -i -vv gnome-system-monitor
pkg_add -i -vv gnome-nettool

untuk menginstall Gnome, cukup ketik:

$ chmod u+x install_gnome.sh                                                                                                 
$ sudo install_gnome.sh      

lalu, setelah selesai instalasi, edit ~/.xinitrc, masukkan “exec gnome-session”, log out atau reboot, lalu login lagi, dan, Insya Allah, Gnome sudah terinstall.

untuk menjalankan gdm, edit /etc/rc.conf.local, masukkan gdm pada rc_scripts seperti contoh ini:

$ cat /etc/rc.conf.local
rc_scripts="dbus_daemon avahi_daemon avahi_dnsconfd gdm saslauthd"

Walhamdulillah.

Muhammad Muntaza bin Hatta
Paringin, Kab. Balangan, Prov. Kalimantan Selatan, Indonesia

Sumber: http://www.gabsoftware.com/tips/tutorial-install-gnome-desktop-and-gnome-display-manager-on-openbsd-4-8/

28 April 2011

OpenBSD PF sebagai Firewall oleh Muhammad Muntaza bin Hatta

Filed under: OpenBSD,kisah muhammad muntaza — muntaza @ 8:48 am

Bismillah,

Ini adalah satu tulisan saya yang sangat penting, karena ini adalah Konfigurasi OpenBSD PF yang saya tulis untuk memaksimalkan keamanan webserver di internet. setiap baris code akan saya beri komentar, Insya ALLAH.

Apa yang akan anda pelajari:
1. Konfigurasi PF pada OpenBSD tingkat lanjut

Apa yang harus anda kuasai sebelumnya:
1. Mampu menginstall OpenBSD.
2. Menguasai PF tingkat Dasar.

# $Id: pf.conf_48,v 1.25 2011/03/07 03:11:19 hasan Exp $
# Edit by Muhammad Muntaza <m.muntaza@gmail.com>

#	$OpenBSD: pf.conf,v 1.44 2009/06/10 15:29:34 sobrado Exp $
#
# See pf.conf(5) for syntax and examples; this sample ruleset uses
# require-order to permit mixing of NAT/RDR and filter rules.
# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
# in /etc/sysctl.conf if packets are to be forwarded between interfaces.

###macros
ext_if="ste0"
int_if="vr0"
web_if="ste1"

icmp_types="echoreq"

tcp_port="{ 5000 2028 ftp smtp ftp-data pop3 auth nntp ntp domain 995 587 465 }"
udp_port="{ domain }"

ip_web_server="10.0.0.2"
ip_web_safe="{ xxx.xxx.xxx.xx xxx.xxx.xxx.xx xxx.xxx.xxx.xxx }"
ip_allow_ssh="xx.xx.xx.xx"
#ip_public_admin=""
ip_lan_admin="192.168.0.2"
ip_dns_server="{ xxx.xxx.x.xx xxx.xxx.x.xxx }"
localnet="vr0:network"
cvs_ca="xxx.xxx.xx.xx"

###options
set loginterface $ext_if
set skip on lo0

###match rule
match out on $ext_if inet from !$ext_if to any nat-to $ext_if:0

###cbq
altq on $ext_if cbq bandwidth 2Mb queue { std, https, ssh, http } 

queue std bandwidth 20% cbq(default)
queue https bandwidth 10% cbq(borrow)
queue ssh bandwidth 25% { ssh_login, ssh_bulk }
	queue ssh_login bandwidth 25% priority 4 cbq(borrow ecn)
	queue ssh_bulk bandwidth 75% cbq(borrow ecn)
queue http bandwidth 45% priority 3 cbq(borrow red)

######filter rule
block quick inet6 all

table <terlarang> persist file "/etc/terlarang"
block in quick on $ext_if from <terlarang>

table <https> persist file "/etc/https"

antispoof quick for { lo $int_if $web_if }

block all
block log (all) proto tcp all

###ftp proxy
anchor "ftp-proxy/*"
pass in on $int_if inet proto tcp to any port ftp rdr-to 127.0.0.1 port 8021
#pass in on $web_if inet proto tcp to any port ftp rdr-to 127.0.0.1 port 8021

###$ext_if

pass out on $ext_if inet proto tcp to port $tcp_port
pass out on $ext_if inet proto tcp to $cvs_ca port ssh
pass out on $ext_if inet proto tcp to port http
pass out on $ext_if inet proto tcp to <https> port https queue https
pass out on $ext_if inet proto udp from any to $ip_dns_server port $udp_port
pass out on $ext_if inet proto udp from any to port ntp

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)

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

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


#pass out inet proto icmp all
#pass in inet proto icmp all icmp-type $icmp_types keep state

###altq pada $web_if

altq on $web_if cbq bandwidth 100Mb queue { std_dmz, ssh_dmz, http_dmz, http_dmz_to_net }

queue std_dmz bandwidth 89% cbq(default borrow)
queue ssh_dmz bandwidth 500Kb priority 2 cbq(borrow ecn)
queue http_dmz bandwidth 900Kb priority 3 cbq(borrow red)
queue http_dmz_to_net bandwidth 50Kb priority 2 cbq(borrow red)


###$web_if
pass out on $web_if proto tcp from any to $ip_web_server port 80 queue http_dmz

pass out on $web_if proto tcp from $localnet to $ip_web_server port 80

pass out on $web_if proto tcp from { $ip_lan_admin $ip_allow_ssh } \
	to $ip_web_server port 22 \
	queue ssh_dmz

pass in on $web_if proto tcp from $ip_web_server to $web_if port { 25, ntp }
pass in on $web_if proto udp from $ip_web_server to $web_if port { 53, ntp }
pass in on $web_if proto tcp from $ip_web_server to $ip_web_safe queue http_dmz_to_net

###altq pada $int_if
altq on $int_if cbq bandwidth 100Mb queue { std_int_to_net, int_to_https, ssh_int, http_int }

queue std_int_to_net bandwidth 350Kb cbq(default)
queue int_to_https bandwidth 200Kb cbq(borrow red)
queue ssh_int bandwidth 10%
queue http_int bandwidth 89% cbq(red)

###$int_if

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

pass in quick on $int_if proto tcp from $localnet to any port 80 rdr-to lo0 port 3128

pass in on $int_if proto tcp from $localnet to any port $tcp_port
pass in on $int_if proto tcp from $localnet to <https> port https queue int_to_https
pass in on $int_if proto udp from $localnet to any port $udp_port

pass in on $int_if proto tcp from $ip_lan_admin to \
	{ $int_if $ip_web_server } port 22 \
	queue ssh_int

pass in on $int_if proto tcp from $ip_lan_admin to $cvs_ca port 22

block out on $int_if

keterangan:

konfigurasi pf di atas untuk skema jaringan seperti ini

localnet----------vr0--firewall--ste0-----internet
                           |
                        ste1
                           |
                           |
                           |
                    webserver

PF diatas dirancang sebagai ikhtiar untuk mencegah serangan attacker, walaupun begitu,
kita tidak lupa berdoa kepada Allah, agar webserver kita selamat, dan kita tetap
bertawakkal kepada Allah. Diantara serangan yang, Insya Allah, bisa dicegah adalah:

1. ping boms
icmp dinonaktifkan, sehingga tidak bisa ip luar memping atau ip dari dalam memping keluar.

2. syn attack
penggunaan keyword synproxy state berfungsi untuk mencegah syn attack, sehingga setiap
paket syn yang masuk, tidak langsung dikirim ke webserver, tapi firewall yang melakukan
validasi koneksi, yaitu mengirim syn+ack dan menunggu ack. Bila client telah menuntaskan
validasi koneksi ini, firewall akan meneruskan koneksi ke webserver.

3. http attack
serangan pada http server ini sangat berbahaya, dan merupakan jenis Denial of Service
(DOS). Disini kita membatasi koneksi client dengan keyword
(max-src-conn 100, max-src-conn-rate 15/5, overload flush) yang bermakna
satu ip client hanya bisa melakukan 100 koneksi, dan tiap waktu 5 detik, hanya bisa
15 koneksi. Bila suatu IP client melanggar batasan, akan dimasukkan kedalam table
abusive_hosts yang akan di block imcoming paket dari IP tersebut dan di flush koneksinya
dari table state.

tapi setiap satu jam, saya menjalankan script dengan cron untuk mendelete IP yang telah
berumur 1 jam dari table abusive_hosts, dengan ini bila terjadi ketidaksengajaan
dari user valid, maka dengan menunggu paling lama 2 jam, IP nya bisa melakukan koneksi lagi.

4. reverse telnet
serangan yang sangat terkenal, untuk mencegah serangan ini, maka webserver dirancang
hanya bisa menerima koneksi dari luar dan TIDAK BISA MEMULAI koneksi ke luar, KECUALI
menuju IP yang telah di definisikan dalam macro $ip_web_safe.

PENJELASAN BARIS CONFIGURASI
Saya menggunakan macro untuk setting diatas, sehingga diharapkan akan mudah untuk
di aplikasikan pada firewall OpenBSD dengan tinggal mengganti variable di macro tersebut.

ext_if="ste0"
int_if="vr0"
web_if="ste1"

ini adalah interface yang digunakan pada firewall dengan IP yang digunakan

vr0=192.168.01
ste1=10.0.0.1
ste0=IP_Publik situs

webserver mempunyai IP 10.0.0.2, dan setiap akses ke port 80 ke IP_Publik akan kita redirect ke 10.0.0.2 port 80
LAN dengan IP 192.168.0.0/24 kecuali 192.168.0.1

icmp_types="echoreq"

tcp_port="{ 5000 2028 ftp smtp ftp-data pop3 auth nntp ntp domain 995 587 465 }"
udp_port="{ domain }"

icmp_types ini adalah type icmp yang boleh masuk bila protokol icmp di aktifkan. Saat
ini saya tidak mengaktifkannya (diberi tanda komentar #)

UDP dan TCP port yang boleh keluar masuk secara umum

ip_web_server="10.0.0.2"
ip_web_safe="{ xxx.xxx.xxx.xxx xxx.xxx.xxx.xx xxx.xx.xxx.xxx }"
ip_allow_ssh="xxx.xx.xxx.xxx"
#ip_public_admin=""
ip_lan_admin="192.168.0.2"
ip_dns_server="{ xxx.xxx.x.xx xxx.xxx.x.xxx }"
localnet="vr0:network"
cvs_ca="xxx.xxx.xx.xx"

ini adalah makro IP. IP webserver 10.0.0.2
ip_web_safe adalah IP, yang webserver, bisa memulai koneksi, untuk terhubung kepadanya. selain IP ini,
webserver tidak bisa melakukan koneksi ke internet dan hanya menerima koneksi.

ip_allow_ssh adalah IP publik internet yang bisa ssh ke webserver. Ini harus sangat dibatasi
sehingga tidak semua IP bisa ssh. ssh ini diredirect ke webserver, bukan ke firewall.

ip_public_admin adalah IP publik yang admin bisa gunakan untuk ssh ke firewall,
tapi kita nonaktifkan saja, dan tidak diaktifkan kecuali sangat terpaksa. Sebagai admin,
kita harusnya login dari LAN saja.

ip_lan_admin adalah IP LAN yang bisa ssh ke firewall dan server

set loginterface $ext_if
set skip on lo0

ini adalah option yang digunakan pada pf
loginterface adalah interface yang kita melakukan log pada tiap data yang
keluar masuk disitu

skip on lo0 berarti pf tidak memfilter interface local yaitu lo0

match out on $ext_if inet from !$ext_if to any nat-to $ext_if:0

ini berarti bahwa setiap paket yang berasal dari IP localnet dan IP
webserver, bila ia akan melakukan koneksi keluar, maka IP tersebut
di NAT dengan IP Publik gateway

tanda !$ext_if berarti selain IP publik gateway yaitu IP localnet
dan IP webserver.

tanda 0 pada $ext_if:0, berarti hanya ke IP utama di NAT kan, jangan
ke IP alias pada interface Publik Gateway.

catatan:
sebenarnya disini, tampaknya boleh menambahkan scrub (sanitasi paket)
yaitu dengan cara

match in all scrub (no-df)

atau
match in all scrub (no-df max-mss 1440)

namun saya pribadi tidak menambahkannya

altq on $ext_if cbq bandwidth 2Mb queue { std, https, ssh, http } 

queue std bandwidth 20% cbq(default)
queue https bandwidth 10% cbq(borrow)
queue ssh bandwidth 25% { ssh_login, ssh_bulk }
	queue ssh_login bandwidth 25% priority 4 cbq(borrow ecn)
	queue ssh_bulk bandwidth 75% cbq(borrow ecn)
queue http bandwidth 45% priority 3 cbq(borrow red)

Iya, ini adalah bandwith manajemen, yang mengatur pemakaian bandwith.
disini saya sampaikan bahwa pembatasan bandwith itu adalah saat gateway
kita mengirim paket keluar (out), adapun bila paket telah tiba di interface
gateway, maka pembatasan sudah terlambat… karena paket tersebut telah
memakan bandwith yang menyampaikan ia ke interface kita. Saya, bila masih
ada kesempatan, akan menulis secara spesial masalah bandwith ini. Di sini
saya hanya menjelaskan maksud konfigurasi saja.

konfigurasi diatas bertujuan:
1. bandwith total yang ada di interface $ext_if 2 Mega bit
2. koneksi standar akan dapat 20% dari 2 Mega bit, yaitu 400 Kilo bit
3. untuk koneksi ke port 22 dapat spesial bandwith 25%, yautu 500 Kilo bit
4. untuk koneksi ke port 80 di webserver dapat spesial bandwith 45%,
yaitu 900 Kilo bit

Penambahan rc.d pada OpenBSD 4.9

Filed under: Uncategorized — muntaza @ 8:27 am

Bismillah,

Pada rilis OpenBSD 4.9, ada penambahan direktori rc.d, yaitu direktori tempat script program server yang diinstall dari paket atau port. sebelumnya, apabila kita menginstall suatu paket server, misalnya squid, kita harus menulis script untuk menjalankan squid ini di rc.local agar tiap booting, squid jalan. contohnya sebagai berikut:

/etc/rc/local

# Add your local startup actions here.
echo -n ' squid'; /usr/local/sbin/squid

pada contoh diatas, kita menjalankan squid setiap reboot (booting ulang). Setiap ada penambahan paket server, misalnya postgresql, kita perlu menulis script untuk mengaktifkannya di /etc/rc.local

Pada rilis 4.9 ini, ada konsep baru tentang paket server ini, dengan direktori rc.d di /etc. sebuah paket akan datang dengan script yang akan mengisi /etc/rc.d. misalnya kita menginstall squid, akan ada script /etc/rc.d/squid, untuk menjalankan squid (tentu seletah membuat dir cache) kita ketik:


/etc/rc.d/squid start

untuk menstop


/etc/rc.d/squid stop

untuk reload


/etc/rc.d/squid reload

begitu juga misalnya kita menginstall postgresql, maka akan ada script /etc/rc.d/postgresql dan seterusnya.

Begitu paket terinstall, tidak akan start tiap booting ulang sebelum ditambah ke variable rc_scripts di /etc/rc.conf

contoh:

/etc/rc.conf

rc_scripts="dbus_daemon cupsd"

maka saat booting ulang, akan dieksekusi perintah
/etc/rc.d/cupsd start
/etc/rc.d/dbus_daemon start

untuk menjalankan paket server cupsd dan dbus_daemon

sehingga paket squid dan postgresql yang misalnya kita install tadi tidak termasuk yang di jalankan saat reboot. Untuk menjalankan, kita hanya perlu mengedit rc.conf pada variable rc_scripts

/etc/rc.conf

rc_scripts="dbus_daemon cupsd postgresql squid"

ini adalah sebuah kelebihan openbsd, dalam arti tidak akan ada paket yang start automatis tanpa sepengetahuan admin.

Paket server dijalankan dengan berurutan pada saat booting, dan pada saat shutdown, di stop dengan urutan dari belakang. Jadi pada susunan diatas, kita menjalankan postgresql lalu squid, sedang saat shutdown, squid lebih dulu di stop baru postgresql.

Akhir kata Bagi admin yang tidak ingin menggunakan rc.d, tetap tersedia rc.local untuk ditulis sendiri oleh admin yang bersangkutan sehingga seharusnya admin selalu mengerti apa yang ia perbuat.

Walhamdulillah

Muhammad Muntaza bin Hatta

catatan: Saya sangat ingin tinggal di kota Banjarbaru. Semoga Allah Subhanahu Wa Ta’ala memudahkan saya untuk tinggal di Kota Banjarbaru.

sumber:
diakses-tanggal-2011-04-28

http://www.openbsd.org/cgi-bin/man.cgi?query=rc.conf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html

diakses-tanggal-2011-04-28

http://www.openbsd.org/cgi-bin/man.cgi?query=rc.d&apropos=0&sektion=8&manpath=OpenBSD+Current&arch=i386&format=html

Membatasi kecepatan download pada wget

Filed under: Uncategorized — muntaza @ 7:19 am

bismillah,

pada saat mendownload, bila kita ingin membatasi kecepatan pada level tertentu, gunakan option –limit-rate=xy. limit rate ini, nilai x adalah angka sedangankan y adalah k dan m (k adalah kiloBytes dan m adalah megaBytes).

sebuah contoh:
wget -c --limit-rate=20k http://localhost/file.txt

ini akan mendownload file.txt dengan kecepatan 20 kiloBytes per second (kBps)

cara ini sangat berguna bagi admin yang perlu mendownload paket untuk server tanpa menggangu aktifitas user yang sedang mengakses server tersebut, karena bila wget tidak dibatasi, ia akan memakan semua bandwith yang ada.

walhamdulillah.

catatan: Saya sangat ingin tinggal di kota Banjarbaru. Semoga Allah Subhanahu Wa Ta’ala memudahkan saya untuk tinggal di Kota Banjarbaru.

sumber:
$man wget

7 March 2011

LILO dan GRUB

Filed under: linux,OpenBSD,kisah muhammad muntaza,opensolaris — muntaza @ 3:03 am

Bismillah,

saat ini saya berpindah dari lilo ke grub karena saya menginstall opensolaris 2009.06 sehingga opensolaris tadi meng overwrite lilo saya di mbr. ini isi /etc/lilo.conf saya pada awalnya.

diedit untuk penyesuaian dan agar ringkas

bash-4.1$ cat /etc/lilo.conf | grep -v "^#"
boot = /dev/sda

prompt
timeout = 300
lba32
vga = normal

other = /dev/sda2
label = Windows
table = /dev/sda

image = /boot/vmlinuz
initrd = /boot/initrd_asli.gz
root = /dev/sda5
label = Linux

other = /dev/sda1
label = OpenBSD
table = /dev/sda


partisi /boot saya berada di /dev/sda8 dan partisi / aka root di /dev/sda5
oleh grub /dev/sda8 = (hd0,7) dan /dev/sda5 = (hd0,4)

hd0 berarti primary master
hd1 berarti secondary master
hd2 berarti primary slave
hd3 berarti secondary slave

partisi diawali dengan 0, hingga hd0,0 adalah partisi pertama pada primary master.

jadi partisi ke-5 pada primary master adalah hd0,4.

Saya akan tampilkan dari menu.lst grub di opensolaris sebagai berikut:

splashimage /boot/grub/splash.xpm.gz
background 215ECA
timeout 30
default 0
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title OpenSolaris 2009.06
findroot (pool_rpool,2,a)
bootfs rpool/ROOT/opensolaris
splashimage /boot/solaris.xpm
foreground d25f00
background 115d93
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/$ISADIR/boot_archive
#---------------------END BOOTADM--------------------

# Unknown partition of type 39 found on /dev/rdsk/c8t0d0p0 partition: 1
# It maps to the GRUB device: (hd0,0) .

title Windows
rootnoverify (hd0,1)
chainloader +1

#ditambahkan oleh muntaza
#mulai-------
title Linux
root (hd0,4)
kernel (hd0,7)/vmlinuz
initrd (hd0,7)/initrd_asli.gz

title OpenBSD
rootnoverify (hd0,0)
chainloader +1
#selesai-----

# Unknown partition of type 5 found on /dev/rdsk/c8t0d0p0 partition: 4
# It maps to the GRUB device: (hd0,3) .

Dengan GRUB, tidak perlu menjalankan “lilo” bila pergantian kernel, tapi partisi /boot linux menggunakan ext3, belum bisa ext4. Mungkin di grub2 sudah bisa ext4.

Walhamdulillah

catatan: Saya sangat ingin tinggal di kota Banjarbaru. Semoga Allah Tabaraka Wa Ta’ala memudahkan saya untuk tinggal di Kota Banjarbaru.

Next Page »

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.