Tuesday, February 16, 2010

IP Tables untuk Firewall

Mini Howto iptables untuk Firewall
From SpeedyWiki
Jump to: navigation, search

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.


Contents
[hide]

* 1 Perintah Dasar
* 2 Option Dasar iptables
* 3 Pengijinan Sesi Sambungan Yang Terbentuk
* 4 Blocking Traffic
* 5 Editing iptables
* 6 Logging / Pencatatan
* 7 Saving iptables
* 8 Konfigurasi Startup di NetworkManager
* 9 Sedikit Tip
* 10 Penggunaan iptables-save/restore untuk Test Aturan
* 11 Lebih Detail Tentang Logging
* 12 Mematikan firewall
* 13 Kemudahan Konfigurasi Menggunakan Grafik
* 14 Pranala Menarik

[edit] 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


[edit] 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,

NEW – Sambungan baru, dan belum pernah terlihat sebelumnya.
RELATED – Sambungan baru, tapi berhubungan dengan sambungan lain yang telah di ijinkan.
ESTABLISHED – Sambungan yang sudah terjadi.
INVALID – Traffic yang karena berbagai alasan tidak bisa di identifikasi.


-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.



[edit] 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 Traffic Masuk ke Port Tertentu.

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.


[edit] 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.


[edit] 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.


[edit] 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.


[edit] Saving iptables

Jika kita booting mesin yang kita gunakan, maka apa yang kita kerjakan sejauh ini akan hilang. Tentunya dapat saja kita mengetik ulang semua perintah yang kita masukkan satu per satu setiap kali reboot, agar lebih enak hidup kita, maka kita dapat menggunakan perintah iptables-save dan iptables-restore untuk menyimpan dan merestore iptables.

Bagi anda yang menggunakan Ubuntu terutama Ubuntu Fiesty, tampaknya Ubuntu Network Manager (masih beta) agak conflict dengan iptables. Oleh karenanya mungkin ada baiknya kita bypass Ubuntu Network Manager.

Dengan tidak menggunakan Ubuntu Network Manager, kita dapat men-save konfigurasi iptables agar di start setiap kali booting menggunakan perintah

$ sudo sh -c "iptables-save > /etc/iptables.rules"

Kita perlu memodifikasi /etc/network/interfaces agar aturan iptables yang kita gunakan dapat berjalan secara automatis. Memang kita perlu mengetahui ke interface mana aturan yang kita buat akan digunakan. Biasanya kita menggunakan eth0. Untuk interface wireless, kita dapat mencek penggunaaannya mengunakan perintah,

$ iwconfig

Kita perlu mengedit file /etc/network/interfaces misalnya menggunakan perintah

$ sudo nano /etc/network/interfaces

Jika kita sudah menemukan nama interface yang digunakan, maka di akhir interface kita dapat menambahkan perintah,

pre-up iptables-restore < /etc/iptables.rules

Selanjutnya di bawahnya kita tambahkan perintah sesudah interface down, menggunakan perintah,

post-down iptables-restore < /etc/iptables.rules

Contoh real konfigurasi interfaces adalah sebagai berikut,

auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-restore < /etc/iptables.rules



[edit] Konfigurasi Startup di NetworkManager

Ubuntu Network Manager mempunyai kemampuan untuk menjalankan script pada saat dia mengaktifkan atau men-nonaktifkan interface. Untuk men-save aturan iptables pada saat shutdown, dan me-restore iptables saat startup, kita akan membuat script seperti itu. Untuk memulai, kita dapat mengedit file,

$ gksudo gedit /etc/NetworkManager/dispatcher.d/01firewall

Kita dapat memasukan script di bawah ini melalui editor, save dan exit.

#!/bin/bash

if [ -x /usr/bin/logger ]; then
LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler"
else
LOGGER=echo
fi

case "$2" in
pre-up)
if [ ! -r /etc/iptables.rules ]; then
${LOGGER} "No iptables rules exist to restore."
return
fi
if [ ! -x /sbin/iptables-restore ]; then
${LOGGER} "No program exists to restore iptables rules."
return
fi
${LOGGER} "Restoring iptables rules"
/sbin/iptables-restore -c < /etc/iptables.rules
;;
post-down)
if [ ! -x /sbin/iptables-save ]; then
${LOGGER} "No program exists to save iptables rules."
return
fi
${LOGGER} "Saving iptables rules."
/sbin/iptables-save -c > /etc/iptables.rules
;;
*)
;;
esac

Akhirnya, kita perlu memastikan bahwa Ubuntu Network Manager dapat menjalankan script tersebut. Melalui konsol, kita dapat menjalankan perintah berikut,

$ sudo chmod +x /etc/NetworkManager/dispatcher.d/01firewall



[edit] Sedikit Tip

Jika kita sering mengedit secara manual iptables. Perubahan iptables yang sering biasanya terjadi pada masa development, pada saat operasional sebetulnya tidak banyak perubahan aturan di iptables. Jika perubaha cukup banyak, maka sebaiknya kita menambahkan beberapa kalimat berikut ke file /etc/network/interfaces:

pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save > /etc/iptables.rules

Kalimat "post-down iptables-save > /etc/iptables.rules" akan menyimpan aturan agar dapat digunakan lagi sesudah booting.


[edit] Penggunaan iptables-save/restore untuk Test Aturan

Jika kita berexperimen dengan iptables, ada baiknya menggunakan perintah iptables-save dan iptables-restore untuk mengedit dan test aturan yang kita buat. Untuk mengedit aturan iptables yang kita buat dapat menggunakan perintah berikut (misalnya menggunakan gedit),

$ sudo iptables-save > /etc/iptables.rules
$ gksudo gedit /etc/iptables.rules

Kita akan memperoleh sebuah file yang mirip dengan yang kita lakukan,

# Generated by iptables-save v1.3.1 on Sun Apr 23 06:19:53 2006
*filter
:INPUT ACCEPT [368:102354]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [92952:20764374]
-A INPUT -i lo -j ACCEPT
-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 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Sun Apr 23 06:19:53 2006

Tampak dari file tersebut bahwa perintah tersebut adalah perintah iptables, tanpa ada “iptables”-nya. Kita dapat mengedit file ini, dan men-save jika telah selesai. Untuk melakukan test dapat di jalankan menggunakan perintah,

$ sudo iptables-restore < /etc/iptables.rules

Sesudah test, kita dapat mensave apa yang sedang di kutak-katik menggunakan perintah iptables-save ke file /etc/network/interfaces melalui perintah

$ sudo iptables-save > /etc/iptables.rules


[edit] 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


[edit] Mematikan firewall

Jika kita membutuhkan untuk men-disable / mematikan firewall sementara, hal ini dapat dilakukan dengan mudah menggunakan perintah flush (-F), sebagai berikut,

$ sudo iptables -F


[edit] Kemudahan Konfigurasi Menggunakan Grafik

Bagi kita yang agak sulit untuk menggunakan konsol, kita akan sangat di bantu dengan berbagai aplikasi untuk mengkonfigurasi firewall menggunakan grafik. Salah satu software favorit yang mungkin akan sangat membantu adalah,

Webmin - http://www.webmin.com
Firestarter - http://www.fs-security.com



[edit] Pranala Menarik

* Linux Howto
* Tip Membangun Server Sendiri

Retrieved from "http://opensource.telkomspeedy.com/wiki/index.php/Mini_Howto_iptables_untuk_Firewall"
Views

* Article
* Discussion
* Edit
* History

Personal tools

* Log in / create account

Navigation

* Main Page
* Community portal
* Current events
* Recent changes
* Random page
* Help
* Donations

Search

Toolbox

* What links here
* Related changes
* Upload file
* Special pages
* Printable version
* Permanent link

Powered by MediaWiki
GNU Free Documentation License 1.2

* This page was last modified 01:11, 3 January 2010.
* This page has been accessed 4,420 times.
* Content is available under GNU Free Documentation License 1.2.
* Privacy policy
* About SpeedyWiki
* Disclaimers

Iptables Firewall

Iptables Firewall
From Wiki
Jump to: navigation, search
Contents
[hide]
• 1 Iptables is not set-up by default on Debian Sarge.
• 2 Iptable command line options:
• 3 Rules of Iptables:
• 4 Control of Iptables (inactive is a blank file with no rules):
• 5 Port Forwarding & NAT - Network Address Translation - V.Basic:
• 6 My Firewall Config:
• 7 Remove / Delete an individual /single Iptable Rule
• 8 Other pieces of information to remember:
o 8.1 Iptables Forward with NAT
• 9 Saving ALL IPTABLE Rules
• 10 fail2ban - Debian Etch/Ubuntu
o 10.1 Problems with fail2ban and ssh attempts on ubuntu
• 11 Firewall on Centos / RH

Iptables is not set-up by default on Debian Sarge.
apt-get install iptables
The init (start/stop) script for iptables is new within sarge - using if-up and if-down. The old init script is still available to load and save iptables rules. Do the following to set-up the iptables init script (details obtained from http://www.howtoforge.com/linux_iptables_sarge):
gunzip /usr/share/doc/iptables/examples/oldinitdscript.gz -c > /etc/init.d/iptables
chmod +x /etc/init.d/iptables
mkdir /var/lib/iptables
chmod 700 /var/lib/iptables
Iptable command line options:
-A => Append this rule to the WhatEver Chain
-s => Source Address
-d => Destination Address
-p => Protocol
--dport => Destination Port
-j => Jump. If everything in this rule matches then 'jump' to ACCEPT
-I => ACCEPT 1 Insert at position 1 of the ACCEPT Chain
-P => Set Policy e.g. iptables -P INPUT DROP
Rules of Iptables:
As it is a table of rules, the first rule has precedence. If the first rule dis-allows everything then nothing else afterwards will matter.
• INIVIDUAL REJECTS FIRST
• THEN OPEN IT UP
• BLOCK ALL
List iptable rules:
iptables -n -L (-n prevents slow reverse DNS lookup)

Reject all from an IP Address:
iptables -A INPUT -s 136.xxx.xxx.xxx -d 136.xxx.xxx.xxx -j REJECT

Allow in SSH:
iptables -A INPUT -d 136.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT

If Logging - Insert Seperate Line *BEFORE* the ACCEPT / REJECT / DROP
iptables -A INPUT -d 136.xxx.xxx.xxx -p tcp --dport 3306 -j LOG
iptables -A INPUT -d 136.xxx.xxx.xxx -p tcp --dport 3306 -j ACCEPT
Block All:
iptables -A INPUT -j REJECT
Control of Iptables (inactive is a blank file with no rules):
/etc/init.d/iptables save active
/etc/init.d/iptables load active | inactive
Port Forwarding & NAT - Network Address Translation - V.Basic:
iptables -t nat -A PREROUTING -p tcp -d 136.201.xxx.xxx --dport 443 -j DNAT --to 136.201.xxx.xxx:22
The Above will do on its Own. The above allows someone to ssh into the box on port 443 incase port 22 is blocked by User ISP.
**NB** Set ipForwarding in /etc/networking/options !!!!!!!!!!
If Forwarding from another Network:
iptables -A FORWARD -p tcp -d 136.201.xxx.xxx --dport 22 -j ACCEPT
Web Port Forwarding: http://www.hackorama.com/network/portfwd.shtml
NB: Must allow IN Traffic and Connections the server started/ initiated (http://rimuhosting.com/howto/firewall.jsp):
iptables -A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
My Firewall Config:
################################
iptables -A INPUT -p tcp --dport 80 -j ACCEPT //apache
iptables -A INPUT -p tcp --dport 443 -j ACCEPT //apache ssl
iptables -A INPUT -p tcp --dport 53 -j ACCEPT //dns - udp for large queries
iptables -A INPUT -p udp --dport 53 -j ACCEPT //dns - udp for small queries
iptables -A INPUT -p tcp --dport 953 -j ACCEPT //dns internal
iptables -A INPUT -p tcp --dport 1080 -j ACCEPT //dante socks server
iptables -A INPUT -d 136.201.1.250 -p tcp --dport 22 -j ACCEPT //sshd
iptables -A INPUT -d 136.201.1.250 -p tcp --dport 3306 -j ACCEPT //mysql
iptables -A INPUT -d 136.201.1.250 -p tcp --dport 8000 -j ACCEPT //apache on phi
iptables -A INPUT -s 136.201.1.250 -p tcp --dport 8080 -j ACCEPT //jboss for ejc
iptables -A INPUT -d 136.201.1.250 -p tcp --dport 993 -j ACCEPT //imaps
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 111 -j ACCEPT //to speed up mail via courier. Identified via logging
iptables -A INPUT -d 136.201.1.250 -p tcp --dport 139 -j ACCEPT //samba
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 143 -j ACCEPT //squirrelmail
iptables -A INPUT -p tcp --dport 4949 -j ACCEPT //munin stats
iptables -A INPUT -p tcp --dport 25 -j ACCEPT //incoming mail
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT //squid
iptables -A INPUT -p udp --dport 161 -j ACCEPT //snmpd
iptables -A INPUT -p icmp -j ACCEPT //Allow ICMP Ping packets.
iptables -A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -A INPUT -j REJECT
#################################

##########PORT FORWARDING########
iptables -t nat -A PREROUTING -p tcp -d 136.201.1.250 --dport 8000 -j DNAT --to 136.201.146.211:80
iptables -t nat -A POSTROUTING -d 136.201.146.211 -j MASQUERADE
#################################
Remove / Delete an individual /single Iptable Rule
iptables -D INPUT -s 127.0.0.1 -p tcp --dport 111 -j ACCEPT
// -D = delete appropriate rule. If you dont know the exact syntax of the rule to delete do the following:
iptables -L
//count down the number of lines until you reach the rule you wish to delete
iptables -D INPUT 4
//format = iptables -D CHAIN #Rule_No
Other pieces of information to remember:
iptables -P INPUT DROP (Setting the Default Policy)
iptables -A INPUT * * * -j ACCEPT | REJECT (send back 'connection refused') | DROP (keep quiet)
Iptables Forward with NAT
This is already covered on this wiki here iptables_forward
Saving ALL IPTABLE Rules
It seems that the method for saving & loading iptable rules from /etc/init.d/iptables load|save active|inactive does not save NAT rules.
The command for saving iptable rules manually is:
root:~# iptables-save > rules-saved
There is also command called iptables-restore. It is:
root:~# iptables-restore rules-saved
fail2ban - Debian Etch/Ubuntu
Fail2ban is a simple Debian etch package which uses iptables to add rules which blocks ips after various incorrect Authentication/Password attempts. To install (etch only):
apt-get install fail2ban
//configuration file is in /etc/fail2ban.conf
//fail and ban logs are saved in /var/log/fail2ban.log and /var/log/faillog
It monitors incorrect attempts in /var/log/auth.log for ssh attempts by default. The defaults are: 5 attempts before a rule is added blocking the client ip (on port 22) for 10minutes. Its a very very very nice package -)
Problems with fail2ban and ssh attempts on ubuntu
fail2ban was only banning ssh attempts where the user was "unknown". It was not stopping brute force attempts at root for example. The failregex for the sshd.conf had to be changed.
vi /etc/fail2ban/filter.d/sshd.conf
#change the failregex line to:
failregex = (?:Failed password [-/\w+]+) .*(?: from|FROM)
It could be done a lot better, but the above works. Also see:
http://debaday.debian.net/2007/04/
http://debaday.debian.net/2007/04/29/fail2ban-an-enemy-of-script-kiddies/
Firewall on Centos / RH
http://www.linuxtopia.org/online_books/centos_linux_guides/centos_linux_reference_guide/s1-iptables-init.html
________________________________________
Main Page Information was Got From:
http://www.howtoforge.com/node/450
Good Firewall explaination & Netstat:
http://www.aboutdebian.com/firewall.htm
http://www.linuxguruz.com/iptables/howto/iptables-HOWTO-6.html#ss6.2

Tuesday, February 9, 2010

IP Tables

TARGET

1. ACCEPT=proses dari iptables selesai, lalu dilanjutkan ke tujuan
2. DROP=proses dari iptables sebelsai, lalu diblok
3. REJECT-proses dari iptables selesai, lalu diblok lalu mengirim pesan ka host tersebut bahwa paket diblok.

Built-in-chain
1. INPUT=paket dari host yang ditujukan ke firewall
2. FORWARD=paket yang diroute lewat firewall,contoh cari client ke internet
3. OUTPUT=paket dari firewall ke internet

COMMAND
aturan penulisan:
iptables [-t table] -[AD] chain rule-specification [options]
iptables [-t table] -I chain [rulenum] rule-specification [options]
iptables [-t table] -R chain rulenum rule-specification [options]
iptables [-t table] -D chain rulenum [options]
iptables [-t table] -[LFZ] [chain] [options]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target [options]
iptables [-t table] -E old-chain-name new-chain-name

keterangannya:
-t = menentukan nama table. secara default filter, tetapi ada 4 pilihan (filter, nat, mangle, raw)
chain= ada 3 pilihan (INPUT, FORWARD, OUTPUT)
rulenum=nomor urut aturan chain
target=ada 3 pilihan (ACCEPT, DROP, REJECT)

option command:
-A (ADD)=menambah rule barisan terakhir chain yang ditentukan
contoh= iptables -A INPUT -j DROP ( semua paket yang masuk ke INPUT akan di DROP)

-D (DELETE)=menghapus rule yang ada di chain tertentu, ada dua jenis penghapusan, yaitu dengan nomor urut rule (rulenum) atau dengan pencocokan rule-specification.
contoh=iptables -D INPUT 1, atau iptables -D INPUT -s 10.14.210.100 -j DROP ( pertama adalah menghapus rule pertama di chain input, yang kedua adalah menghapus rule yang cocok dengan spesifikasi tersebut di chain INPUT)

-I (INSERT)=Menambah rule dan chain di baris yang ditentukan
contoh=iptables -I INPUT 1 -dport 8080 -j DROP (menambahkan rule di urutan pertama pada chain INPUT)

-R (REPLACE)=mereplace rule yang ada di chain berdasarkan rulenum.
contoh=iptables -R INPUT 1 -s 192.168.0.1 -j DROP (menimpa rule nomor satu di chain INPUT dengan rule baru tersebut)

-L (LIST)=menampilkan daftar rule seluruhnya dari iptables atau dari chain tertentu jika jenis chainnya ditentukan.
contoh=iptables -L INPUT (menampilkan semua rule yang ada di chain INPUT)

-F =menghapus seluruh rule atau pada rule tertentu di chain jika ditentukan
confoh=iptables -F (menghapus semua rule yang ada di semua chain)

-Z (Zero)= untuk mengenolkan semua counter yang dichain tertentu, misalkan coba -v, setelah itu gunakan -Z, lalu lihat beda -v setelah di -Z.
contoh=iptables -Z INPUT

-N (NEW)=membuat chain baru
contoh=iptables -N ALLOW (membuat chain bernama ALLOW)

-X =menghapus chain tertentu
contoh=iptables -X ALLOW (menghapus chain bernama ALLOW)

-E (EDIT)=mengubah nama chain
contoh=iptables -E ALLOW COBA (merubah nama chain ALLOW menjadi COBA)


PARAMETER RULES
-s ==> source
(iptables -A INPUT -s 192.168.1.1)
-d ==> destination
(iptables -A INPUT -d 192.168.1.1)
-p ==> protocol
(iptables -A INPUT -s 192.168.1.1 -p tcp)
-i ==> in-interface
(iptables -A INPUT -i eth0)
-o ==> out-interface
(iptables -A FORWARD -o eth0)
–sport ==> source port
(iptables -A INPUT -s 192.168.1.1 -p tcp –sport 22)
–dport ==> destination port
(iptables -A INPUT -p tcp –dport 22)
–sys ==> untuk identifikasi new connection request
(iptables -A INPUT -i ppp0 -p tcp –syn –dport ! 80 -j DROP)
Catatan : Gunakan tanda ! untuk negasi/ pernyataan tidak/ selain.
Gunakan tanda : untuk menyatakan sampai, misal port 10 sampai 20, maka ditulis 10:20.

Contoh-Contoh Script IPTables :
iptables -A INPUT -p icmp –icmp-type 8 -j DROP
(DROP semua paket icmp-request yang masuk ke server kita, dengan kata lain komputer kita ga bisa di ping)
=> –icmp-type 0 for reply 8 for request.
iptables -A OUTPUT -p udp -o eth0 –dport 53 –sport 1024:65535 -j ACCEPT
(ACCEPT paket yang dengan protokol UDP, out-interface eth0, destination port 53, source port 1024-65535)
iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -d $SERVER_IP -m state –state NEW, ESTABLISHED, RELATED -j ACCEPT
($SERVER_IP adalah variable, bisa digantikan dengan IP server. -m state –state adalah untuk mengetest keadaan paket, ada 4 yang bisa digunakan, yaitu NEW, ESTABLISHED, RELATED, dan INVALID. NEW : paket memulai koneksi baru. ESTABLISHED : paket adalah bagian dari koneksi yang terjadi antara dua host, misalnya ICMP reply message, yang merupakan balasan dari ICMP request. RELATED : koneksi yang termasuk RELATED adalah jika ia berhubungan dengan koneksi ESTABLISHED yang telah ada. INVALID : paket tidak teridentifikasi atau tidak memiliki state, ini mungkin terjadi karena system running out memory atau karena ICMP error messages yang tidak merespon ke known connections.

blokir url di iptables
iptables -A OUTPUT -p TCP -d www.google.com -j DROP
iptables -A OUTPUT -p ICMP -d www.google.com -j DROP

blokir ip computer
iptables -t filter -A INPUT -s 192.168.1.122 -j DROP

blokir
iptables -A INPUT -s 102.168.1.0/255.255.255.0 -p ICMP -j DROP

Blokir portscanning ( syn )
iptables -A INPUT -s ! 192.168.1.0/24 -p TCP -dport 80 -syn -j DROP


iprange
iptables -A INPUT -s 192.168.1.112/192.168.1.254 -p TCP -j ACCEPT

iptables -A INPUT -m iprange –src-range 192.168.1.122-192.168.1.254 -p TCP -j DROP

block port
iptables -A INPUT -p tcp –dport 1214:1216 -j DROP ( REJECT )

command2
iptables -F menghapus smua config

iptables -D output 2 -->menghapus config output line 2
iptables -D INPUT -s 192.168.1.122 -->menghapus specific file

konfigurasi == > vi /etc/sysconfig/iptables-config

rules vi /etc/sysconfig/iptables
\
iptables -A INPUT -s 192.168.1.122 -p UDP -j DROP

sumber : http://ur73.wordpress.com/


http://www.catatanlepas.com/komputer/43-security/150-dasar-dasar-iptables.html

Thursday, February 4, 2010

Membuat ROUTER pada LINUX DEBIAN

• Yang paling penting computer udah ter’install LINUX DEBIAN, pake’ mode text jangan yang grafik
• Truz pasti’in juga computer punya 2 LAN Card yang siap pake’
• First step, setting IP buat 2 LAN Card, 1 LAN Card (eth0) di sambung’in ke client, yang 1 lagi (eth1) di sambung’in ke internet (192.168.10.1).
• Untuk setting IP, haruz masuk ke /etc/network/interfaces, yang isinya :
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.10.255
network 192.168.1.0

auto eth1
iface eth1 inet static
address 192.168.10.2
netmask 255.255.255.0
gateway 192.168.10.1
broadcast 192.168.10.255
network 192.168.10.0

auto lo
iface lo inet loopback
• Kalo’ udah setting tadi wajib di simpen
• Teruz restart network pake’ perintah /etc/init.d/networking restart
• Untuk nge-check setting ip tadi ketik perintah ifconfig
• Aktifkan ipforward dengan cara masuk ke /etc/sysctl.conf teruz aktifkan ipforward dengan menghilangkan tanda kres (#)
• Kalo’langkah-langkah di atas udah, sekarang tinggal routing aja, caranya ketik :
#iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#iptables-save
• Untuk nge-check proses routing itu ketik :
#iptables-t nat –n -L

Wednesday, February 3, 2010

DNS Server debian



debian-desktop.pngPara rekan-rekan yang saya hormati. Saya sekarang dapet sebuah penemuan lagi. Kalau saya sih menyebutnya dengan tembak-tembakan tapi kalau orang banyak sih menyebutnya dengan arahkan domain ke IP. Logikanya gini, agar sebuah domain bisa di buka di komputer lain di seluruh dunia maka kita harus mengarahkan NS atau Name Server ke IP server kita. Kalau nembak wanita sih lain lagi urusannya hanya modal keberanian doank.

Ok kita mulai saja latihan menembak kita. Sekarang yang harus anda lakukan adalah mempunyai komputer yang di sertai dengan OS Linux Debian. Kemudian anda coba lakukan instalasi paket web-server, untuk paket standar untuk web server bisa anda di lihat di artikel saya sebelumnya yang berjudul Install Apache-PHP-MySQL di Linux Ubuntu.

Setelah perangkat web-servernya terinstall kemudian langkah berikutnya yang harus anda lakukan apa yang duluan ya, install bind atau beli domain ya…. Hm…. kayaknya mending install bind nya dulu deh. Kebetulan yang saya punyai sekarang adalah bind9, untuk instalasi bind9 anda bisa lakukan dengan mengetikan command:

#apt-get install bind9

Setelah itu adalah langkah berikutnya, yaitu pembelian domain. Anda bisa lakukan pembelian domain di penjual hosting atau domain. Kalau saya sendiri membeli domain nya di ICTHosting. Saya membeli domain dengan nama: kelelawar.net. Kemudian untuk NS servernya bisa di arahkan ke ns1.namadomain.net. Eh jangan salah NS itu bisa di buat sendiri, kalau saya membuat ns sendiri dengan NS ns1.kelelawar.net & bian.kelelawar.net, karena di bagian settingan Name Server ga bisa di isikan dengan IP makannya saya buat sendiri NS nya. Cara membuat NS dengan bermodalkan dengan domain dengan cara anda masuk ke Domain Manager domain yang di sediakan oleh penjual domain tersebut. Setelah anda masuk ke dalam domain manager anda coba anda masuk ke: Domains –> List Last 10 –> kemudian anda klik Domain Name - Click To Manage >> [untuk setting dan configurasi domain anda] –> Manage Child Name Server [untuk membuat NS] –> Coba anda perhatikan di menu Add New Child Name Server, di sana anda masukan nama NS anda. Misalnya seperti NS saya bian.kelelawar.net. itu saya isikan di Host Name-nya adalah bian dan di IP addressnya adalah IP address saya xxx.xxx.xxx.xxx.

Kemudian setelah itu anda tinggal masukan alamat NS tersebut dengan cara anda klik Modify Name Server. Kemudian anda masukan deh NS nya. untuk settingan di domain manager sudah selesai, kemudian langkah berikutnya adalah setting di server nya lagi. Mulai deh hawa menegangkannya keluar :D .

Andasiap-siap dan maju dengan login root karena sekarang kita akan config full. langkah pertama adalah edit file yang berada di /etc/bind/named.conf

#mcedit /etc/bind/named.conf

kemudian anda tambahkan tag contohnya seperti ini:

zone “kelelawar.net” {
type master;
file “/home/www/dns/kelelawar.net.zone”;
};

Kemudian setelah itu anda save. Kemudian anda buat document di folder yang telah di tentukan dimana settingan DNS tersebut terpasang, kalau saya kan ada di /home/www/dns/. Setelah anda buat file tersebut maka langkah berikutnya anda isi dengan settingan DNS anda.

#mcedit /home/www/dns/kelelawar.net.zone

Isi File:

$TTL 14400;
@ IN SOA kelelawar.net. root.kelelawar.net( <<– nama domain 2004122401 8H 2H 1W 1D ) @ IN NS ns1 <– NS pertama kita tadi @ IN NS bian <– NS kedua @ IN MX 10 postmaster <– alamat webmail @ IN A xxx.xxx.xxx.xxx <– IP Sever kita postmaster IN A xxx.xxx.xxx.xxx <– IP Webmail kita debi IN A xxx.xxx.xxx.xxx <– NS atau sub domain Haduw-haaduw cape juga. ya udah sekarang kita pergi dulu ke panty di cyber lantai 3 sambil ngopi sambil ngeroko dulu sama rekan-rekan. Setelah beres dan nyantai kita lanjutin kembali config kita. Tadi sampai mana ya? owh iya sampe edit bind ya. Rekan-rekan, sisanya tinggal dikit. Tinggal setting Virtual Host nya saja. untuk settingan Virtual Host sudah ada yang bisa belum? kalau sudah ada yang bisa silahkan tutup web browser anda :D . Virtual Host hampir sama dengan Taxi, ojek, tukang beca DLL. Jadi sistemnya adalah anda akan diantarkan kemana anda akan pergi. Semacam penunjuk jalan gitu. Langsung saja deh bingung juga nih neranginnya. Anda langsung edit file yang berada di folder apache. Dengan nama httpd.conf. #mcedit /etc/apache2/httpd.conf Isi File:
ServerAdmin webmaster@kelelawar.net
ServerName kelelawar.net
DocumentRoot /home/www/amin/kelelawar.net
ScriptAlias /cgi-bin/ /home/www/amin/kelelawar.net/cgi-bin/

options +ExecCGI



Jadi si kelelawar.net ini akan di arahkan ke Folder: /home/www/amin/kelelawar.net. kemudian langkah berikutnya adalah anda restart services nya

#/etc/init.d/apache2 restart
#/etc/init.d/bind9 restart

Kemudian setelah itu anda tinggal menunggu sampai domainnya resolve di semua negara sekitar 1 harian.

Karya : Ahmad Aminudin

Firewall: Apa Itu Dan Bagaimana Kerjanya



Firewall: Apa Itu Dan Bagaimana Kerjanya

Apabila anda sudah menggunakan internet untuk beberapa waktu, dan terutama jika anda bekerja di perusahaan yang besar dan browse internet di tempat kerja, anda mungkin sudah mendengar istilah firewall. Sebagain contohnya, anda sering mendengar orang bilang, “Saya tidak bisa ke situs itu sebab mereka tidak mengijinkan melalui firewall.”

Jika anda mempunyai hubungan internet yang cepat di rumah (seperti DSL atau kabel modem), anda juga mendengar tentang menggunakan firewall untuk network diperumahan. Kenyataannya, network perumahan mempunyai masalah keamanan yang sama dengan perusahaan besar. Anda bisa menggunakan firewall untuk melindungi network perumahan dan keluarga dari serangan situs web dan potensi para hacker.

Pada dasarnya, firewall itu seperti dinding pemisah untuk menghalangi tenaga yang merusak jauh dari rumah kita. Sebenarnya, dinding yang disebut firewall didirikan untuk menghalangi api untuk menyebar dari satu tempat ke tempat lain.

Fungsi Firewall

Firewall adalah perangkat lunak atau keras yang menyaring (filter) informasi yang masuk melalui koneksi internet ke network privat atau sistem komputer. Jika paket informasi yang masuk ditandai oleh filter, paket itu tidak boleh masuk lebih dalam dan harus disingkirkan.

Misalkan anda bekerja di perusahaan dengan 500 pekerja. Jadi perusahaan itu mempunyai ratusan komputer yang dihubungkan dengan kartu network. Perusahaan ini juga mempunyai koneksi ke internet melalui T1 atau T3 (semacam kabel modem tapi untuk perusahaan besar). Tanpa menggunakan firewall, ratusan komputer ini akan berhubungan langsung dengan internet. Hacker bisa menganalisa komputer yang dipakai oleh akuntan, misalnya, lalu berusaha membuat koneksi ke komputer tadi melalui FTP, telnet, atau cara lain. Jika satu pekerja membuat kesalahan dan membuka lubang untuk hacker bisa masuk, hacker ini akan mengkontrol komputer tersebut.

Dengan firewall, keadaannya akan sangat berubah. Perusahaan ini memasang firewall ditiap koneksi ke internet (misalnya, ditiap T1 yang masuk ke perusahaan). Di firewall ini bisa dipasang peraturan sekuriti, misalnya:

Dari 500 komputer di perusahaan ini, hanya satu yang diperbolehkan untuk menerima lalu-lintas FTP. Komputer lain harus berubungan dengan komputer ini untuk menggunakan fasilitas FTP.

Perusahaan bisa membuat peraturan seperti diatas untuk FTP server, Web server, Telnet server dan lain-lain. Perusahaan bisa juga mengkontrol bagaimana pekerjanya mengakses ke situs internet, apa boleh mengirim file keluar dari perusahaan melalui network, dll. Firewall menggunakan satu atau lebih metoda untuk mengatur lalu-lintas keluar-masuk network:

* Packet filtering – Paket data dianalisa dan dibandingkan dengan filter. Paket yang lolos filter dikirim ke sistem yang meminta dan sisanya akan dibuang.
* Proxy service – Informasi yang keluar-masuk dari internet harus melalui firewall. Contoh: Komputer A minta informasi dari situs ABC. Komputer A tidak berhubungan langsung dengan situs ABC, tetapi firewall yang akan minta informasi ini dan setelah mendapatkan akan mengirim ke komputer A.
* Stateful inspection – Metoda baru yang tidak memeriksa setiap paket tetapi akan membandingkan kunci bagian dari paket itu dengan database yang berisi informasi yang dipercaya. Informasi yang keluar dan berasal dari dalam firewall akan dimonitor untuk karakter penting, kemudian informasi yang masuk akan dibandingkan dengan karakter ini. Jika perbandingannya cukup dekat informasi ini akan dipersilahkan masuk, jika tidak akan dibuang.

Membuat Firewall Pas

Firewall bisa dikonfigurasi. Ini berarti anda bisa menambah atau mengurangi filter yang akan dipakai tergantung dari keadaan. Sebagian dari filter ini adalah:

* IP address – Tiap komponen (komputer, hub, print server, dll) dari internet diberi alamat unik (tidak ada yang sama) dan disebut IP address. Alamat ini 32-bit, ditayangkan sebagai empat “octets” dengan titik pemisah; contoh: 72.164.215.216. Contoh pengetrapan, jika IP address tertentu diluar perusahaan membaca terlalu banyak file dari server, firewall bisa dikonfigurasi untuk mengeblok semua lalu-lintas dari IP address ini.
* Domain names – Karena sangat susah mengingat urutan nomer-nomer yang membentuk IP address, dan karena kadang-kadang IP addresses harus diganti, semua server di internet juga mempunyai nama yang mudah untuk dibaca, sebagai pengganti IP address, dan disebut domain names. Sebagai contoh, lebih mudah menghafalkan www.howstuffworks.com daripada 216.27.61.137. Contoh pengetrapan: Perusahaan bisa mengeblok atau memberi akses ke domain tertentu.
* Protocol – Protocol adalah cara tertentu bagi seseorang yang mau menggunakan service untuk berkomunikasi dengan service tersebut. “Seseorang” ini bisa berarti orang, atau lebih cenderung ke aplikasi seperti browser, telnet, atau ftp. Contoh protocol misalnya http sebagai web protocol. Protocols yang sering diset di firewall termasuk:
o IP (Internet Protocol) – sistem pengiriman informasi melalui internet
o TCP (Transmission Control Protocol) – digunakan untuk memecah dan membangun balik informasi yang beredar di internet. TCP memerlukan jawaban balik dari sipenerima untuk menyakinkan bahwa paket yang dikirim sudah diterima dan untuk mengetahui jika paket harus dikirim ulang jika hilang.
o HTTP (Hyper Text Transfer Protocol) – digunakan untuk Web pages
o FTP (File Transfer Protocol) – untuk download dan upload file
o UDP (User Datagram Protocol) – semacam TCP tetapi tidak memerlukan jawaban balik, seperti streaming audio dan video
o ICMP (Internet Control Message Protocol) – digunakan oleh router untuk tukar informasi dengan router yang lain
o SMTP (Simple Mail Transport Protocol) – untuk mengirim informasi dalam bentuk teks (e-mail)
o SNMP (Simple Network Management Protocol) – untuk mengumpulkan sistem informasi dari remote komputer
o Telnet – untuk menjalankan perintah di remote komputer

Perusahaan bisa mengkonfigurasi satu atau dua komputer untuk menangani protocol tertentu dan melarang protocol ini di komputer yang lainnya.
* Ports – Server menyediakan service ke internet dengan menggunakan nomer port, satu nomer untuk setiap servis yang tersedia di server tsb. Contoh: HTTP (port 80), FTP (port 21).
* Kata atau kata-kata tertentu – Firewall akan mendeteksi semua paket yang berisi kata-kata ini. Anda bisa mengkonfigurasi firewall untuk mengeblok paket yang berisi kata “X-rated” atau “XXX”. Yang penting kata filter ini harus benar-benar sama– “X-rated” tidak sama dengan “X rated”.

OS (operating systems) tertentu mempunyai built-in firewall built, seperti Unix atau Linux, dan Windows XP dengan SP-2 . Jika tidak, perangkat lunak firewall bisa dipasang di komputer di rumah yang mempunyai koneksi dengan internet. Komputer ini dianggap sebagai gateway karena menyediakan satu titik akses antara network perumahan dengan internet. Dengan perangkat keras firewall, unit ini sendiri biasanya berfungsi sebagai gateway. Contohnya Linksys Cable/DSL router yang mempunyai built-in kartu Ethernet and hub. Komputers di network perumahan disambung ke router, dan router ini disambung ke cable atau DSL modem. Anda bisa mengkonfigurasi router ini melalui browser.

Perangkat keras firewall sangat aman dan tidak mahal. Versi untuk perumahan yang termasuk router, firewall dan Ethernet hub untuk koneksi broadband bisa didapat dengan harga dibawah Rp. 1 juta.

Perlindungan Oleh Firewall

Banyak cara bagi hacker untuk mengakses atau merusak data di komputer yang tidak dilindungi:

* Remote login – Apabila orang bisa masuk ke komputer anda dan bisa ambil kontrol–bisa membaca file atau menjalankan aplikasi.
* Application backdoors – Aplikasi tertentu mempunyai jalan belakang yang mengijinkan akses remote untuk masuk ke komputer.
* SMTP session hijacking – SMTP digunakan untuk mengirim imel melalui internet. Dengan memperoleh akses ke daftar imel, hacker bisa menggunakan informasi ini untuk kirim junk imel atau spam ke ratusan bahkan jutaan orang. Ini biasanya dilakukan dengan merubah jalur imel ke SMTP server yang sudah di-hack, jadi spam ini seakan-akan dikirim dari SMTP server ini. Hal ini membuat pelacakan pengirim yang asli sangat susah.
* Operating system bugs – Seperti program aplikasi, operating sistem ada kalanya mempunyai “bug” yang memungkinkan hacker untuk menggunakan kesempatan ini sebagai pintu masuk.
* Denial of service – Anda mungkin pernah mendengar istilah ini dari berita tentang serangan ke situs yang besar, seperti Microsoft atau Yahoo. Serangan ini sangat susah untuk dibendung. Yang terjadi adalah hacker mengirim permintaan untuk berhubungan dengan server. Ketika server menjawab dan siap membuat session, server ini tidak bisa menemukan alamat pemintanya. Dengan membuat permintaan sedemikian rupa dan sedemikian banyak, server ini akan menjadi sangat lamban dan akhirnya crash.
* E-mail bombs – Bom imel biasanya serangan personal. Seseorang mengirim ratusan atau ribuan imel yang sama sampai imel servernya tidak bisa terima apa-apa lagi.
* Macros – Macro biasanya dibuat untuk mempermudah menjalankan prosedur yang rumit dan sering diulang. Komputer anda bisa mempunyai macro yang jahat karena hacker atau anda men-download macro itu dari internet tanpa anda sadari. Macro ini bisa menghapus dokument/file atau membuat sistem anda crash.
* Viruses – Virus adalah aplikasi kecil yang bisa menduplikasi sendiri ke komputer lain. Dengan demikian virus ini bisa menyebar secara cepat dari satu komputer ke komputer yang lain. Virus ini bisa jinak atau ganas (merusak data).
* Spam – Biasanya jinak tapi membuat kesal. Spam bisa berbahaya karena mengandung pranala ke situs yang salah/palsu.
* Redirect bombs – Hacker bisa menggunakan ICMP untuk merubah arus lalu-lintas internet ke router yang lain. Ini adalah satu cara untuk mengkonfigurasi serangan denial of service.
* Source routing – Umumnya, jalur yang harus ditempuh oleh paket informasi di Internet ditentukan oleh router-router yang dilewati. Tetapi sumber yang menyediakan rute ini bisa memberi rute yang salah atau diganti oleh hacker.

Beberapa topik yang disebut diatas sangat susah, atau bahkan tidak mungkin, untuk di filter dengan firewall. Meskipun ada firewall yang memberi perlindungan seperti anti-virus, memasang anti-virus ditiap komputer memberi perlindungan yang lebih bagus. Meskipun spam itu sangat menjengkelkan akan tetapi spam ini akan terus lewat firewall jika anda menerima dan membuka spam tersebut. Tingkat sekuriti menentukan berapa banyak ancaman serangan ini bisa dihambat oleh firewall. Tingkat sekuriti yang tinggi bisa mengeblok hampir semua ancaman. Tetapi hal ini menutup kemungkinan untuk berhubungan dengan internet. Cara yang biasanya dipakai adalah blok semuanya lalu pilih aktivitas apa yang diperbolehkan. Anda bisa mengijikan lalu-lintas apa yang akan lewat melalui firewall sehingga hanya tipe informasi tertentu, seperti imel, bisa lewat. Ini adalah cara yang bagus untuk bisnis yang mempunyai administrator network yang berpengalaman. Untuk kita semua, sebaiknya terima konfigurasi yang disediakan oleh firewall kecuali ada alasan untuk merubahnya.

Satu hal yang terbagus tentang firewall dilihat dari pandangan sekuritas adalah firewall memblokir kemungkinan orang luar untuk mengakses komputer didalam network (dibelakang dinding firewall). Meskipun hal ini sangat penting untuk bisnis, tetapi network perumahan menderita sedikit atau hampir tidak ada ancaman seperti ini. Akan tetapi memasang firewall memberi keamanan dan rasa tenang.