March 21, 2012

Filter Mac Address Menggunakan Iptables Linux

filter mac address
Pada tulisan ini di-asumsikan anda sudah memiliki router aktif yang berjalan di Sistem Operasi Linux seperti Fedora atau CentoS, terkadang masalah timbul bila kita ingin melakukan filter atau blok akses dari klien, apakah menggunakan ip address atau dengan metode yang lain.

Bila konfigurasi klien sebelum melewati router adalah dhcp akan sangat sulit untuk menentukan ip address mana yang dipakai oleh klien yang akan diblok, begitupun bila kita memakai ip static, akan sulit bila klien mengerti dan paham cara merubah ip. Untuk itu cara yang tepat menurut saya untuk blok akses dari klien yang melewati router kita adalah dengan blok Mac-Address-nya.

Caranya adalah kita memperbolehkan Mac-Address yang terdaftar, sehingga bila ada penggantian Ethernet card hal tersebut juga harus sepengetahuan kita sebagai pengelola.

Atau bisa juga blok ip address dikombinasikan dengan Mac-Address, pokoknya itu terserah pilihan kita metode seperti apa yang paling efektif dan juga tidak menyulitkan dari sisi pemeliharaanya

Dalam system operasi fedora atau redhat, konfigurasi iptables bisa kita temukan di /etc/sysconfig/iptables, kita dapat langsung merubahnya disitu. Selain itu juga bisa kita buat script sederhana untuk menjalankannya, misalnya iptables.sh

Gunakan editor vi untuk membuat atau mengedit file konfigurasi :

# vi /etc/sysconfig/iptables ---> edit file bawaan OS ( Ubah pada chain filter )

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:icmp_packets - [0:0]
-A FORWARD -m mac --mac-source 18:A9:05:24:1D:95 -j ACCEPT
-A FORWARD  -j DROP
-A FORWARD -p icmp -j icmp_packets
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A icmp_packets -s 127.0.0.1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -s X.X.X.X/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
COMMIT

# vi /etc/rc.d/init.d/iptables.sh , isikan

#!/bin/sh
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain
iptables –t filter -A  FORWARD -m mac --mac-source 18:A9:05:24:1D:95 -j ACCEPT
iptables –t filter -A  FORWARD –j DROP
iptables –t filter -A  FORWARD -p icmp -j icmp_packets
iptables –t filter -A  FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables –t filter -A  FORWARD -j REJECT --reject-with icmp-host-prohibited

Anda bisa pilih ingin memakai metode yang mana, pada prinsipnya sama.

Jangan lupa setelah selesai simpan file konfigurasi tersebut, bila kita membuat file iptables.sh ubah permisinya aga bisa di eksekusi oleh sistem, perintahnya :

# chmod 755 /etc/rc.d/init.d/iptables.sh

kemudian restart iptables,
# service iptables restart atau
# /etc/rc.d/init.d/iptables.sh (enter)

Perintah iptables lain dalam hal memblok mac address :
Untuk mengkonfigurasi agar klien hanya bisa mengakses website tertentu dengan mengkombinasikan filter ip address dan mac address :

iptables –t filter -A FORWARD –s 192.168.20.10 -d 203.190.242.69 -m mac --mac-source 18:A9:05:24:1D:95 -j ACCEPT
iptables –t filter -A FORWARD –s 192.168.20.10 -d 203.190.242.69 -m mac --mac-source 18:A9:05:24:1D:95 -j ACCEPT
iptables –t filter -A FORWARD –s 192.168.20.10 -m mac --mac-source 18:A9:05:24:1D:95 -j DROP

Contoh diatas maksudnya adalah memblok ip klien 192.168.20.10 untuk akses internet selain akses ke www.detik.com, IP Address 203.190.242.69, 203.190.241.43 adalah IP Address detik.

Demikianlah, anda bisa mengutak-atik perintah iptables sesuai dengan kebutuhan filter mac address yang diinginkan, tinggalkan komentar jika menghadapi kendala, Terima kasih.

No comments:

Post a Comment