KLIK DAPAT DOLLAR$$

KLIK DAPAT DOLLAR $$$


SELFI BUAT ARTIKEL CURHAT DAPAT DOLLAR $$$

Jumat, 07 Oktober 2011

Manajemen Jaringan dengan IPTables

Tools konfigurasi firewall Iptables bukan hanya berguna untuk memblokir atau mengizinkan akses jaringan. Lebih dari itu, iptables bisa menjadikan PC Anda sebuah pengelola jaringan yang cukup lengkap tanpa perlu membeli perangkat khusus.

Apabila Anda berpikir bahwa pe­rin­tah iptables untuk melakukan konfigurasi firewall, hanya mengurusi pemblokiran akses. Namun lebih dari itu, iptables bisa menyediakan berbagai macam fungsi yang berguna.
Artikel ini akan mencoba menyajikan beberapa fungsi di antaranya:
1 Pengalihan port (port redirection).
2 Membatasi kecepatan koneksi.
3 Membuat sistem Linux sebagai router atau gateway Internet komputer lain.
4 Membatasi akses Internet pada waktu (jam, hari, tanggal) tertentu.

Referensi yang digunakan dalam artikel ini adalah iptables versi 1.4.1.1 (disertakan dalam distro Linux Fedora 9). Versi yang lebih rendah mungkin tidak menyertakan modul yang dibahas saat ini. Cara mengecek versi iptables adalah de­ngan perintah:
$ iptables -V
iptables v1.4.1.1

Seperti biasa, prompt # berarti perintah dilakukan sebagai root. Sementara prompt $ berarti bisa dilakukan sebagai user biasa.

Port redirect

Apa yang dimaksud dengan redirect? Secara mudahnya, redirect berarti membelokkan suatu komunikasi dari tujuan sebenarnya ke arah lain. Di sini, yang dibelokkan adalah tujuan port. Misalnya, jika awalnya suatu data TCP mengarah ke port 80 lalu dialihkan ke port 8080. Teknik ini biasanya digunakan untuk mengalihkan suatu komunikasi secara transparan. Salah satu contoh yang umum diterapkan adalah mengalihkan suatu akses ke web server (port 80) ke proxy server (port 8080). Pengalihan ini bertujuan untuk:
1 Mengurangi beban web server. Re­quest akan dilayani oleh proxy server dahulu. Selanjutnya, jika ada content yang perlu langsung dijawab oleh webserver, web server akan menjawab.

2 Mempercepat akses. Proxy server (contohnya Squid) menyimpan halaman-halaman web yang terakhir diakses. Dengan demikian, jika suatu alamat web diakses bersama-sama oleh banyak client, maka proxy bisa membantu dengan langsung memberikan halaman yang diminta.

Untuk melakukan redirect, gunakan perintah seperti berikut ini.
# iptables -t nat -p tcp -A OUTPUT -s 10.1.1.0/24 -d
11.1.1.1 –dport 80 -j REDIRECT –to-ports 8080

Perintah di atas dapat diartikan, semua data yang berasal dari semua komputer pada kelompok jaringan 10.1.1.0 dengan tujuan komputer ber-IP 11.1.1.1 pada port 80 dialihkan ke port 8080 (pada komputer yang menjadi firewall).

Hal lainnya yang perlu Anda ingat adalah metode redirect ini harus ditempatkan pada tabel NAT atau lebih tepatnya pada bagian chain PREROUTING atau OUTPUT.

Redirect http ke smtp Pada contoh di atas, penerapan redirect mengalihkan tujuan semula ke web server menuju mail server.Redirect http ke smtp Pada contoh di atas, penerapan redirect mengalihkan tujuan semula ke web server menuju mail server.

Membatasi kecepatan koneksi

Sebenarnya, istilah membatasi kecepatan koneksi tidaklah sepenuhnya tepat. Yang dilakukan iptables untuk melakukan pem­batasan sebenarnya adalah mengizinkan suatu koneksi mencapai batas kecepatan tertentu dan memblokir jika telah melebihi batas ini. Salah satu tujuannya adalah untuk mengendalikan beban lalu lintas data yang terjadi pada suatu komputer.

Ada beberapa cara untuk melakukan hal ini. Pertama dengan modul hashlimit. Sebagai contoh, pembatasan dilakukan agar PC hanya dapat merespons ping sebanyak 2 kali selama 1 menit:
# iptables -A INPUT -p icmp -d 192.168.1.2 -m hashlimit
–hashlimit 1/minute –hashlimit-name PING-BLOCK –
hashlimit-mode srcip -j ACCEPT

# iptables -A INPUT -p icmp -d 192.168.1.2 -j DROP
Pada perintah pertama, digunakan parameter -m untuk memanggil modul hash­limit. Berikutnya, kita sebutkan kecepatan yang kita inginkan. Di sini digunakan batas 1 paket ICMP per menit. ICMP (Internet Control Message Protocol) adalah nama teknis dari jenis data yang dikirim saat proses ping dilakukan. Suatu catatan penting disini: kita masukkan rule ini pada chain INPUT karena kita hendak membatasi jumlah paket ping yang ingin direspons komputer.

Apabila komputer digunakan sebagai gateway dan ingin menyaring paket serupa, maka atauran atau rule harus dimasukkan ke chain FORWARD.

Parameter lainnya yang tidak kalah penting adalah “hashlimit-mode”. Argumen pada parameter ini menentukan bagaimana perhitungan limit kecepatan di­lakukan. Pada contoh di atas, digunakan argumen srcip. Artinya, perhitungan limit dihitung per komputer asal koneksi. Lebih jelasnya, semisal ada tiga komputer melakukan koneksi ke komputer ini, jika masing-masing komputer (dianggap A, B dan C) melakukan koneksi bersamaan ke komputer kita, masing-masingnya akan mendapat kecepatan respon 1 paket per menit.

Adapun kemungkinan nilai lainnya antara lain.
ldstip Kebalikan dari srcip, pada dstip limit dihitung pada komputer tujuan. Kembali pada contoh di atas, A, B dan C secara keseluruhan akan mendapat kecepatan 1 paket per menit.

lsrcport Seperti srcip, tetapi pe­nge­lom­pok­kan didasarkan pada port asal (sumber) koneksi.

ldstport Seperti dstip, tetapi pengelompokan didasarkan pada port tujuan koneksi.

Pada perintah kedua mungkin timbul pertanyaan, kenapa parameter drop disertakan? Module hashlimit akan match selama jumlah paket per interval waktu sesuai dengan yang kita sebutkan. Dalam contoh di atas, sampai dengan jumlah paket 1 per menit, rule akan tepat (match). Di sini, kita sebutkan bahwa paket akan diterima. Bagaimana jika kecepatan paket melebihi batas tersebut? Rule-nya tentu saja tidak lagi match. Hal inilah yang ingin dicegah. Oleh karena itu, paket ICMP perlu di-drop pada baris berikutnya. Cara lain yang mirip adalah de­ngan menggunakan modul limit:
# iptables -I INPUT -d 192.168.1.2 -p icmp -m limit –
limit 12/min -j ACCEPT

# iptables -I INPUT -p icmp -d 192.168.1.2 -j DROP
Perbedaannya di sini adalah limit berlaku universal, tidak dikelompokkan berdasar IP node asal atau tujuan. Namun, faktor kapan rule dianggap sesuai atau tidak identik dengan hashlimit yang menjadi pertimbangan, kenapa pada baris kedua tetap diperperlukan rule drop.
Catatan: limitasi 12 menit kurang lebih mengizinkan paket ping 1 kali per 5 detik.

Membatasi respons ping Untuk mengurangi beban komputer, Anda dapat mengurangi respons ping menjadi dua kali dalam 1 menit.
Respons ping setelah limitasi diberlakukan Setelah limitasi, perintah ping direspon kira-kira tiap 30 detik sekaliRespons ping setelah limitasi diberlakukan Setelah limitasi, perintah ping direspon kira-kira tiap 30 detik sekali

Membuat Linux sebagai router

Ini pertanyaan yang kerap terlontar jika kita ingin menghubungkan beberapa PC di rumah atau warnet ke Internet. Misalnya di sebuah warnet ada 16 komputer yang disiapkan untuk pelanggan. Lalu, Anda selaku pemilik berlangganan layanan ADSL dari suatu provider di Indonesia. Bia­sanya, hanya ada satu sampai dengan empat PC yang bisa langsung tersambung ke ADSL router (tergantung jumlah port Ethernet yang tersedia). Lalu, bagaimana dengan sisanya?

Apabila kita pikirkan sejenak, dibutuhkan suatu cara agar sekitar 14 komputer sisanya dapat “menumpang” koneksi pada komputer yang tersambung langsung ke router. Pengertian menumpang di sini adalah komputer berkomunikasi dengan Internet via komputer lainnya.

Ilustrasi lain adalah sebuah perusahaan memiliki hampir seratusan PC. Sang administrator selain meminta sambungan Internet, juga meminta dua alamat IP publik. Alamat IP ini untuk area Indonesia biasanya berawalan 202.x.x.x atau 203.x.x.x. Satu alamat akan digunakan untuk mail server, sementara satunya digunakan untuk gateway. Komputer yang memiliki IP publik bisa langsung berkomunikasi dengan Internet. Lalu, bagaimana dengan sisanya? Kita perlu trik seakan-akan komputer lain yang terhubung lewat gateway tersebut menggunakan IP publik.

Untuk mencapai hal ini, kita buat dulu beberapa asumsi:
1 Komputer yang dijadikan gateway memiliki dua network card. Network card pertama (eth0) memiliki IP 202.130.1.2 dan terhubung ke Internet
2 Network card kedua (eth1) memiliki IP 192.168.1.254 dan terhubung ke jaringan lokal lewat switch. Komputer-komputer lain dikoneksikan di kelompok switch yang sama.
3 Komputer-komputer pada LAN memiliki IP berawalan 192.168.1.x.

Hal pertama yang perlu dilakukan adalah memastikan bahwa semua komputer di LAN mengeset IP gateway-nya de­ngan benar. Pe­rintahnya adalah:
# route add default gw 192.168.1.254

Untuk membuatnya menjadi permanen setiap kali Linux di-reboot, kita bisa mengedit file konfigurasi network. Pada keluarga distribusi Fedora dan Redhat, kita edit file /etc/sysconfig/network-scripts/ifcfg-eth0 dan edit baris berikut:
GATEWAY=192.168.1.254
Simpan lalu restart fungsi network:
# service network restart

Hal di atas tidak perlu dilakukan jika alamat IP dan setting gateway dikirim oleh server DHCP (Dynamic Host Control Protocol). Cukup pastikan server DHCP telah mengirim informasi gateway yang benar. Di sisi gateway, kita gunakan suatu target yaitu MASQ, singkatan dari masquerade:
# iptables -t nat -A POSTROUTING -o eth0 -s
192.168.1.1/24 -d ! 192.168.1.1/24 -j MASQUERADE

Dari perintah di atas bisa disimpulkan bahwa target masquerade hanya bisa dile­takkan di tabel NAT di chain postrouting. Penyebutan output interface (-o), alamat asal (-s), dan alamat tujuan (-d) hanya bertujuan untuk lebih memperjelas jenis lalu lintas data yang ingin kita “samarkan”. Anda boleh saja membuang parameter ini dan tetap mencapai hasil yang sama.

Perintah berikut melengkapi masque­rade kita:
# iptables -A FORWARD -i eth1 -o eth0 -m state –state
RELATED,ESTABLISHED -j ACCEPT

Rule di atas akan memastikan bahwa koneksi balik dari Internet yang berhubung­an dengan inisiatif koneksi dari komputer-komputer di LAN diizinkan masuk. Tanpa rule ini, kemungkinan besar hubungan ke Internet akan macet.

Cara lain yang adalah dengan menggunakan target bernama SNAT (Source Network Address Translation):
# iptables -t nat -A POSTROUTING -j SNAT –to-source
192.168.1.254

Perhatikan bahwa opsi –to-source diberikan setelah definisi target. Di sini Anda perlu menyebutkan alamat IP “pengganti” bagi komputer-komputer pada jaringan (LAN). Di sinilah perbedaan paling utama antara SNAT dan MASQUERADE. Pada MASQUERADE, alamat IP “pengganti” tidak perlu disebutkan karena otomatis akan digantikan oleh alamat IP interface yang mengirim data (eth0).

Perbedaan lain menurut manual iptables adalah pada situasi penggunaan. Target masquerade sesuai untuk gateway yang tersambung secara dinamis pada Internet. Yang dimaksud dinamis disini adalah mendapat alamat IP yang belum tentu sama alias bukan statis. Sementara itu, SNAT sesuai untuk koneksi yang menggunakan alamat IP statis. Pada skenario kali ini, digunakan alamat statis sehingga solusi SNAT lebih tepat.

Pelacakan wireshark untuk masquerade Wireshark dapat digunakan untuk menampilkan isi request dari guest yang divirtualisasi ke Google.
Informasi padet data via Wireshark Request terlihat seperti dari IP host setelah melakukan proses masquerading dalam firewall.Informasi padet data via Wireshark Request terlihat seperti dari IP host setelah melakukan proses masquerading dalam firewall.

Mengatur waktu koneksi

Belakangan ini, koneksi Internet cenderung ditawarkan tanpa batas (unlimited). Kompetisi yang ketat di antara para penyedia layanan Internet di Indonesia mungkin menjadi salah satu penyebabnya. Meskipun demikian, pada situasi ter­tentu, kita harus membatasi waktu ak­ses Internet agar kegiatan utama kita tidak terganggu. Contohnya saat di kantor, akses Internet cenderung dibatasi pada jam istirahat makan siang atau waktu break lainnya. Itupun bisa saja ditambah dengan pemblokiran lainnya, misalnya karyawan tidak dapat mengakses website porno atau website lainnya yang dianggap menurunkan produktivitas (Facebook, Friendster, dan sejenisnya). Contoh lainnya, adanya pemblokiran pada program komunikasi, seperti Yahoo Messenger, IRC, dan Google Talk.

Hal serupa bisa juga diterapkan di tempat lain, misalnya di sekolah, lab di kampus, atau bahkan rumah kita sendiri.

Namun, bagaimana cara melakukannya? Katakanlah dipakai cara sangat sederhana dengan mematikan router ADSL di saat-saat tertentu. Cara ini cukup merepotkan. Cara lainnya yang lebih praktis adalah menggunakan fasilitas Access Control List (ACL) pada sistem proxy. Software Squid menyediakan fasilitas tersebut. Namun, coba tanyakan pada diri Anda sendiri, bagaimana agar user bisa meng­­akses Internet tetapi tetap melalui proxy?

Cara yang dianggap lebih efisien adalah menggunakan bantuan modul time di iptables. Modul ini tidak selalu ada di semua distro (distribusi). Yang jelas, modul ini telah tersedia langsung di distro Fedora 9, tetapi tidak tersedia di distro CentOS 5.3. Cara termudah memeriksa ada tidaknya modul tersebut adalah de­ngan perintah:
$ find /lib/xtables/ -iname “*time*”
/lib/xtables/libxt_time.so
Atau:
$ find /lib/iptables/ -iname “*time*”

Anda dipersilahkan mengecek sendiri, mana direktori yang eksis di sistem Linux Anda. Kalau digunakan asumsi seperti pada contoh pembuatan router dan kita hendak membatasi agar akses tidak bisa dilakukan pada jam 10 sampai dengan 12 siang, perintahnya adalah:
# iptables -A FORWARD -i eth1 -o eth0 -m time –time
start 10:00 –timestop 12:00 -j DROP
Kita bisa juga mengatur pemblokiran akses pada hari tertentu dengan perintah:
# iptables -I FORWARD 1 -i eth1 -o eth0 -m time -
-timestart 07:30 –timestop 12:00 –weekdays
Mon,Tue,Wed,Thu,Fri -j DROP

# iptables -I FORWARD 1 -i eth1 -o eth0 -m time -
-timestart 13:00 –timestop 17:00 –weekdays
Mon,Tue,Wed,Thu,Fri -j DROP

Dengan dua baris perintah di atas, kita tentukan agar pada jam 7 pagi sampai jam 12 siang, dilanjutkan jam 1 siang sampai 5 sore, akses diblokir. Peraturan ini berlaku untuk hari Senin sampai dengan Jumat. Pada perintah tersebut, terlihat penyebutan hari cukup dituliskan dengan tiga huruf pertama dari nama hari dalam bahasa Inggris, contohnya “Sat” untuk “Saturday”. Huruf pertama harus huruf kapital.
Selain penyebutan jam dan nama hari, kita bisa juga menggunakan parameter-parameter berikut:

–datestart: menandakan awal suatu interval tanggal. Formatnya adalah YYYY-MM-DD, contoh 2010-05-01 untuk menyebutkan 1 Mei 2010.

–datestop: menandakan akhir suatu interval tanggal. Formatnya sama seperti di atas.

–monthdays: menyebutkan tanggal rule berlaku. Yang bisa dimasukkan di sini adalah angka 1 sampai dengan 31. Di sini tanggal terbesar disesuaikan dengan bulan bersangkutan, misalnya di bulan April tanggal terbesar adalah 30.

Penutup

Masih banyak fungsi lain dari iptables yang bisa digunakan. Melalui perintah “man iptables”, Anda bisa belajar banyak hal, seperti membatasi jumlah koneksi, memblokir koneksi jika data mengandung string tertentu, dan lain sebagainya. Selamat belajar dan mencobanya!

ref:http://gerakanopensource.wordpress.com/2011/06/21/manajemen-jaringan-dengan-iptables/

Tidak ada komentar: