Satu lagi artikel untuk para admin jaringan nih, kali ini saya akan mencoba menjelaskan langkah demi langkah untuk melakukan filter MAC address dengan menggunakan iptables.
Pertanyaannya buat apa sih kita pake filter-filter segala ?? jawabannya adalah sebagai langkah pengamanan jaringan komputer yang kita kelola. Dengan menerapkan filtering MAC address, kita dapat memastikan komputer mana saja yang dapat terhubung dan menggunakan jaringan komputer. Pertama-tama mari kita lihat definisi dari MAC address.
MAC Address (Media Access Control Address) adalah sebuah alamat jaringan yang
diimplementasikan pada lapisan data-link dalam OSI Reference Model tujuh lapisan model OSI, yang merepresentasikan sebuah node tertentu dalam jaringan. Dalam sebuah jaringan berbasis Ethernet, MAC address merupakan alamat yang unik yang memiliki panjang 48-bit (6 byte) yang mengidentifikasikan sebuah komputer, interface dalam sebuah router, atau node lainnya dalam jaringan. MAC Address juga sering disebut sebagai Ethernet address, physical address, atau hardware address. from : (http://id.wikipedia.org/wiki/MAC_address)
Lumayan berat kan bahasanya :p, sederhananya sih mac address itu adalah nama/alamat dari interface jaringan yang kita miliki. Mau itu ethernet,Wireless ethernet,Modem, pasti semuanya punya MAC address :). Cara untuk melihat mac address adalah dengan mengetikan perintah ifconfig. Ayo kita coba :
maka akan muncul informasi sebagai berikut :
Informasi MAC address dapat dilihat pada pada tulisan Hwaddr yang biasanya ditulis dengan format 2 digit angka yang dipisahkan titik dua (:). Contohnya seperti 00:19:21:c5:29:83
Mari kita beranjak ke teknis cara filtering
Pertama-tama kita harus membuat skrip iptables yang akan disimpan di direktori /etc/init.d/ :
Isi skripnya adalah sebagai berikut : #!/bin/sh # Start/stop/restart firewall
# Minimal ip.tables for router.45 iptables="/sbin/iptables" modprobe="/sbin/modprobe"
SERVIS="/etc/iptables/servis" MACFILE="/etc/iptables/macfile" # Start firewall firewall_start() { # enable ip_conntrack $modprobe ip_conntrack
$modprobe ip_conntrack_ftp # tcp properties echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Starting firewall.. "
$iptables -F $iptables -X $iptables -Z #$iptables -t nat -F #$iptables -t nat -X #$iptables -t nat -Z
# default policy
$iptables -P INPUT ACCEPT
$iptables -P FORWARD DROP
$iptables -P OUTPUT ACCEPT
# Aktifkan service sesuai dengan list yang di ijinkan
# if [ -e $SERVIS ]; then
# while read line
# do
# servis="$(echo $line | cut -d " " -f1)"
# protokol="$(echo $line | cut -d " " -f2)"
# # Servis yang di ijinkan
# #$iptables -A INPUT -p $protokol -m $protokol -s $alamat --dport $servis -j ACCEPT
# $iptables -A INPUT -p $protokol -m $protokol -s ! $alamat --dport $servis -j DROP # done # fi ## ATURAN FORWARD
$iptables -A FORWARD -p tcp --dport 135:139 -j DROP
$iptables -A FORWARD -p udp --dport 135:139 -j DROP
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
## Filter registered MAC & IP
if [ -e $MACFILE ]; then
do
macaddr="$(echo $line | cut -d " " -f1)"
#ipaddr="$(echo $line | cut -d " " -f2)"
# Allow registered MAC & IP
$iptables -A FORWARD -m mac --mac-source $macaddr -j ACCEPT
done
fi
# $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#$iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 8080
#$iptables -t nat -A PREROUTING -i br0 -p tcp --dport 3128 -j REDIRECT --to-port 8080
#$iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
}
firewall_stop() {
echo "Shutting down firewall.. " # disable tcp syncookies echo 0 > /proc/sys/net/ipv4/tcp_syncookies
# accept default policy
$iptables -X $iptables -Z
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD DROP
}
firewall_restart() { firewall_stop firewall_start } firewall_status() { $iptables -n -L
} case "$1" in 'start' ) firewall_start ;; 'stop' )
firewall_stop ;; 'restart' ) firewall_restart ;; 'status' )
firewall_status ;; *)
echo "usage $0 start|stop|restart|status"
esac
cd /etc/init.d/
sudo chmod 755 iptables
Langkah kedua adalah membuat aturan Service dan Macfile sesuai dengan yang ada di baris skrip iptables yang sebelumnya kita buat (SERVIS="/etc/iptables/servis"
MACFILE="/etc/iptables/macfile") cd /etc
sudo mkdir iptables
Membuat file macfile untuk list filter MAC address
nano macfile
Isi file macfile :
00:1f:29:bd:1e:a2 nama-komputer #20101025
00:00:00:00:00:00 #DUMMY, MASUKAN MAC ADDRESS SEBELUM BARIS INI + TGL
Setelah selesai save file dan buatlah file servis
nano servis
Isi filenya sebagai berikut : 137 udp 192.168.1.0/26 netbios-ns 138 udp 192.168.1.0/26 netbios-dgm
139 tcp 192.168.1.0/26 netbios-ssn 445 tcp 192.168.1.0/26 microsoft-ds 3306 tcp 192.168.1.0/26 mysql 3306 udp 192.168.1.0/26 mysql
Isi dari file servis memungkinkan kita untuk melakukan filter terhadap port yang diperbolehkan bekerja pada iptables. Setelah disimpan
cd /etc/iptables
sudo chmod 755 macfile
sudo chmod 755 servis
kita lakukan restart pada iptables.
sudo /etc/init.d/iptables restart
Done,, filtering MAC addressnya sudah berfungsi, itu artinya MAC address yang tidak didaftarkan di file /etc/iptables/macfile tidak akan dapat menggunakan service server :) From [1] Command Description
# iptables -t filter -L show all chains of filtering table
# iptables -t nat -L show all chains of nat table
# iptables -t nat -F clear all rules from table nat
# iptables -t filter -X delete any chains created by user
# iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT allow telnet connections to input
# iptables -t filter -A OUTPUT -p tcp --dport http -j DROP block HTTP connections to output
# iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT allow POP3 connections to forward chain
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE configure a PAT (Port Address Traslation) on eth0 masking outbound packets
# iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 redirect packets addressed to a host to another host
Kontributor: Dwiharyanto, Estiyand
Sumber : http://saung.igoscenter.org