Tutorial, Internet, Hardware, Software, Os, Linux, Android, Security, Mikrotik

06 November, 2009

iptables adalah firewall, yang default di install di hampir semua distribusi Linux, seperti, Ubuntu, Kubuntu, Xubutu, Fedora Core, dll. Pada saat kita menginstalasi Ubuntu, iptables memang sudah terinstall, tapi default-nya mengijinkan semua traffic untuk lewat.
Memang banyak sekali dan bisa menjadi sangat sangat kompleks teknik konfigurasi iptables. Pada kesempatan ini kita hanya mencoba melakukan konfigurasi firewall / iptables yang sederhana saja.

Perintah Dasar

Anda dapat menulis,
$ sudo iptables -L
Akan keluar aturan “rules” yang sudah ada di iptables. Jika kita baru saja menginstalasi server, biasanya masih belum ada rules yang terpasang, kita akan melihat
Chain INPUT (policy ACCEPT)
target     prot opt source               destination 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Option Dasar iptables

Berikut adalah beberapa option dasar yang sering digunakan dalam mengkonfigurasi iptables.

-A – Tambahkan rule / aturan ini ke rantai aturan yang ada. Rantai yang valid adalah INPUT, FORWARD and OUTPUT. Kita biasanya lebih banyak menggunakan rantai INPUT yang berdampak pada traffic yang masuk.
 
-L – memperlihatkan daftar aturan / rule yang ada iptables.
 
-m state – mengijinkan aturan di cocokan berdasarkan kondisi sambungan (connection state). Mengijinkan penggunaan option -–state.
 
--state – Mendefinisikan daftar dari kondisi / states bagi aturan untuk di cocokan. Beberapa state yang valid, adalah,

-m limit -  Dibutuhkan oleh rule jika ingin melakukan pencocokan dalam waktu / jumlah tertentu. Mengijinkan penggunakan option --limit. Berguna untuk membatasi aturan logging.
 
--limit – Kecepatan maksimum pencocokan, diberikan dalam bentuk angka yang di ikuti oleh "/second", "/minute", "/hour", atau "/day" tergantung seberapa sering kita ingin melakukan pencocokan aturan. Jika option ini tidak digunakan maka default-nya adalah "3/hour".
 
-p – Protokol yang digunakan untuk sambungan.
 
--dport – Port tujuan yang digunakan oleh aturan iptables. Bisa berupa satu port, bisa juga satu range ditulis sebagai start:end, yang akan mencocokan semua port start sampai end.


-j - Jump ke target yang spesifik. iptables mempunyai empat (4) target default, yaitu,


ACCEPT - Accept / menerika paket dan berhenti memproses aturan dalam rantai aturan ini.
REJECT - Reject / tlak paket dan beritahu ke pengirim bahwa kita menolak paket tersebut, dan stop pemrosesan  aturan dalam rantai aturan ini.
DROP – Diam-diam tidak pedulikan paket, dan stop pemrosesan aturan di rantai aturan ini.
LOG - Log / catat paket, dan teruskan memprosesan aturan di rantai aturan ini. Mengijinkan penggunaan option  --log-prefix dan  --log-level.
--log-prefix – Jika pencatatan di lakukan, letakan text / tulisan sebelum catatan. Gunakan kutip di text / tulisan.

--log-level – Pencatatan menggunakan syslog level. 7 adalah pilihan yang baik, kecuali kita perlu suatu yang lain.

-i – Lakukan pencocokan jika paket yang masuk dari interface tertentu.

-I – Insert / masukan aturan. Butuh dua (2) option, yaitu, rantai aturan yang mana, dan nomor aturan. Jadi -I INPUT 5 akan memasukan ke rantai INPUT dan menjadikannya aturan nomor 5 di daftar.

-v – Menampilkan lebih banyak informasi di layar. Sangat membantu jika ada beberapa aturan yang tampak mirip jika di tampilkan tanpa -v.

Pengijinan Sesi Sambungan Yang Terbentuk

Kita dapat mengijinkaan sesi sambungan yang terbentuk untuk menerima traffic, melalui perintah,
$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Mengijinkan port port tertentu saja
Di awal proses, sebaiknya iptables memblok semua traffic. Biasanya kita membutuhkan untuk bekerja melalui saluran SSH, oleh karenanya biasanya kita mengijinkan untuk traffic SSH dan memblok traffic lainnya.
Untuk mengijinkan traffic masuk ke default port SSH nomor 22, kita harus mengijinkan semua TCP traffic yang masuk ke port 22.

$ sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Dari daftar option di atas, kita dapat mengetahui bahwa aturan iptables tersebut mengatur agar
masukkan aturan ini ke rantai input (-A INPUT) artinya kita melihat traffic yang masuk. cek apakah protokol yang digunakan adalah TCP (-p tcp). Jika TCP, cek apakah packet menuju port SSH (--dport ssh). Jika menuju SSH, maka packet di terima (-j ACCEPT).
Mari kita cek aturan yang di bentuk oleh perintah di atas menggunakan perintah iptables -L,

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
Selanjutnya, kita akan mengijinkan semua traffic web untuk masuk, gunakan perintah berikut

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Cek aturan yang kita buat mengunakan perintah iptables -L, sebagia berikut,
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www

Kita harus secara spesifik mengijinkan TCP traffic ke port SSH dan Web, tapi kita belum mem-block apa-apa, dan semua traffic masuk bisa masuk.

Blocking Traffic

Jika aturan telah memutusan untuk menerima packet (ACCEPT), maka aturan selanjutnya tidak akan berefek pada packet tersebut. Karena aturan yang kita buat mengijinkan SSH dan Web traffic, selama aturan untuk memblok semua traffic kita letakan terakhir sesudah aturan mengijinkan SSH dan Web, maka kita akan tetap dapat menerima traffic SSH dan Web yang kita inginkan. Jadi kita harus menambahkan (-A) aturan untuk mem-block traffic di akhir.

$ sudo iptables -A INPUT -j DROP
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere

Karena kita tidak menentukan interface atau protokol yang digunakan, semua traffic ke semua pirt maupun semua interface akan di blok, kecuali web dan SSH.

Editing iptables

Masalah utama yang akan kita peroleh adalah, loopback port pada interface “lo” akan di blok. Oleh karena itu kita perlu mengijinkan agar menerima semua traffic untuk loopback (“lo”). Hal ini dapat dilakukan dengan cara meng-Insert (-I) aturan pada rantai INPUT bagi interface lo, agar masuk ke urutan paling atas.

$ sudo iptables -I INPUT 1 -i lo -j ACCEPT
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere
Kalau kita lihat di atas, aturan paling atas dan aturan paling bawah agak mirip, untuk melihat lebih detail dari aturan tersebut, kita dapat menggunakan perintah,

$ sudo iptables -L -v
Chain INPUT (policy ALLOW 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www
    0     0 DROP       all  --  any    any     anywhere             anywhere

Kita melihat lebih banyak informasi disini. Aturan untuk mengijinkan loopback sangat penting artinya, karena banyak program akan menggunakan interface loopback untuk berkomunikasi satu sama lain. Jika loopback tidak di ijinkan maka kemungkinan kita akan merusak program tersebut.
 

Logging / Pencatatan

Dalam semua contoh di atas, semua traffic tidak di log. Jika kita ingin untuk mencatat paket yang di dop, cara yang paling cepat adalah,

$ sudo iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Silahkan lihat di bagian atas untuk melihat aap yang terjadi dalam proses logging.


Lebih Detail Tentang Logging

Untuk melihat lebih detail dari syslog kita perlu menambahkan rantai tambahan. Berikut adalah contoh dari /etc/iptables.rules memperlihatkan bagaimana setup iptables me-log dari syslog:

# Generated by iptables-save v1.3.1 on Sun Apr 23 05:32:09 2006
*filter
:INPUT ACCEPT [273:55355]
:FORWARD ACCEPT [0:0]
:LOGNDROP - [0:0]
:OUTPUT ACCEPT [92376:20668252]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j LOGNDROP
-A LOGNDROP -p tcp -m limit --limit 5/min -j LOG --log-prefix "Denied TCP: " --log-level 7
-A LOGNDROP -p udp -m limit --limit 5/min -j LOG --log-prefix "Denied UDP: " --log-level 7
-A LOGNDROP -p icmp -m limit --limit 5/min -j LOG --log-prefix "Denied ICMP: " --log-level 7
-A LOGNDROP -j DROP
COMMIT
# Completed on Sun Apr 23 05:32:09 2006
Perhatikan ada rantai baru CHAIN di sebut LOGNDROP di awal file. Tampak standard DROP yang biasanya ada di bawah rantai INPUT sekarang digantikan oleh LOGNDROP dan menambahkan deskripsi protokol agar mudah membaca log tersebut. Akhirnya kita akan membuang / mendrop traffic di akhir rantai LOGNDROP. Beberapa catatan berikut akan memberikan keterangan apa yang terjadi,

--limit mengatur berapa banyak pencatatan dari dari sebuah aturan ke syslog
--log-prefix "Denied..." menambahkan prefix untuk memudahkan membaca syslog
--log-level 7 mengatur tingkat banyaknya informasi di syslog


 

Mungkin bagi para pengguna linux, termasuk penulis juga yang menggunakan OS Ubuntu Linux sudah sering bermain-main dengan console alias command prompt linux. Baik itu untuk kebutuhan untuk belajar, mengopy file, mendelete file, dan lain-lain.

Tapi ingat, semua aktifitas anda di console tercatat sebagai history command di file .bash_history, dan untuk menghapus jejak anda di linux, anda bisa menggunakan command dibawah ini:

rm -rf /var/log/wtmp ; rm -rf /var/log/lastlog ; rm -rf /var/log/secure ; rm -rf /var/log/xferlog ; rm -rf /var/log/messages ; rm -rf /var/run/utmp ; touch /var/run/utmp ; touch /var/log/messages ; touch /var/log/wtmp ; touch /var/log/messages ; touch /var/log/xferlog ; touch /var/log/secure ; touch /var/log/lastlog ; rm -rf /var/log/maillog ; touch /var/log/maillog ; rm -rf /root/.bash_history ; touch /root/.bash_history ; history  -r

 Selain command diatas, anda juga bisa menggunakan tools yang disarankan oleh lirva32 dibawah ini:

1. su.pl
2. guru-antilog.sh
3. ssheater-1.1.tar.gz
4. c99.php

sumber echo.or.id

01 November, 2009

Kepada yang ku cinta

Sunday, November 01, 2009 0 Comments

cinta bagaikan air laut yang mengisi sebagian isi bumi…
memberi banyak kehidupan..
membuat orang ingin tahu..
dan tiap orang pasti mengalami cinta..
cinta itu keikhlasan..
cinta itu kemauan..
cinta itu saling mengerti..
cinta itu indah jika kita bisa menempatkannya pada tempat terbaik dalam hati..
jadikan cinta itu indah dihatimu..
karena cinta bisa seindah yang kau mau
“aku mencintaimu”
Dalam segala kurang dan lebihmu