Mac Address with Ip Address Filtering (Mikrotik ‘n Linux)

Berhubung ada beberapa rekan yang bertanya via Japri, maka saya mencoba untuk membagi sedikit pengalaman, tentang topik di atas. Paparan berikut ini, juga hasil percobaan sendiri melalui Referensi yang di peroleh ketika Googling. Saya tidak menuliskan siapa sumber aslinya, karena saya lupa dimana ketemu Linksnya. Kalau ada yang merasa, paparan dibawah ini, hasil pemikirannya, dengan senang hati, saya akan menuliskan nama anda.

Di Mikrotik

Setingan memakai interface GUI via Winbox.

Tambahkan IP Client dan Mac Address di ‘/ip arp’, biasanya, di menu ip arp tersebut telah ada Interface, mac address dan ip address client secara dinamis, tinggal di Statis kan saja. Di Winbox klik kanan, ambil Make Statik.

Setelah IP address dan Mac Address client tersebut di statiskan, sekarang ke menu Interface. Pada Terminal ‘/interface’.

arp.gif

Pada submenu Interface List, Klik aja Interface yang ada disitu. Perhatikan di bagian ARP. Ambil option, reply-only, atau arp=reply-only.

Untuk mainin di Firewall silahkan telaah script berikut.

/ ip firewall filter
add chain=forward action=drop src-address=x.x.x.x \
src-mac-address=!yy:yy:yy:yy:yy:yy comment="" disabled=no

/ ip firewall filter
add chain=forward action=drop src-address=!x.x.x.x \
src-mac-address=yy:yy:yy:yy:yy:yy comment="" disabled=no

Di Linux dengan IP Tables

Sumber asli http://mujie.blog.palangkaraya.net/

Skrip berikut di tulis via Bash di Linux, yang sudah mendukung untuk banyak Client (Mac dan IP Address).

Berikut langkah-langkahnya :

1. Buat file bernama rc.iplock didalam directory /etc/rc.d/ dengan isi sebagai berikut:

#!/bin/bash
# Bash script Lock IP Address dan MAC Address
iptables="/sbin/iptables" #path ke iptables
files="/etc/rc.d/list.txt" #path ke list IP Address dan MAC Address
device="eth1" #ethernet devices ke client
lockall="yes" #yes|no ,yes jika mendaftarkan semua IP & MAC Address
#jika tidak, tulis no.
#yes untuk metode pertama, no untuk metode kedua

if [ $lockall = "yes" ]; then
$iptables -I PREROUTING -t nat -i $device -j DROP
cat $files | while read ip_address mac_address; do
$iptables -I PREROUTING -t nat -i $devices -s $ip_address
-m mac --mac-source $mac_address -j ACCEPT
$iptables -I FORWARD -i $device -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
$iptables -I PREROUTING -t nat -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
done
elif [ $lockall = "no" ]; then
$iptables -I PREROUTING -t nat -i $device -j ACCEPT
cat $files | while read ip_address mac_address; do
$iptables -I FORWARD -i $device -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
$iptables -I PREROUTING -t nat -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
done
fi

echo “Locking IP Address and Mac Address…”
#end script

2. Buat file bernama list.txt didalam directory /etc/rc.d/ dengan format penulisan sebagai berikut :

<IP Address> <MAC Address>

Peringatan!! Jangan tambahkan baris apapun atau kalimat apapun selain format diatas!

Contoh isi file /etc/rc.d/list.txt untuk 3 client:

192.168.1.5 00:89:CD:64:01:EF
192.168.1.20 00:90:DD:14:11:CF
192.168.1.14 00:40:EE:21:26:GE

3. Set file rc.iplock agar dapat di eksekusi :

chmod +x /etc/rc.d/rc.iplock

4. Tambahkan didalam file /etc/rc.d/rc.local agar dapat di eksekusi pada saat start up :

/etc/rc.d/rc.iplock

5. Jalankan :

/etc/rc.d/rc.iplock

6. Selesai!
————————-
a) add the -s a.b.c.d -m mac –mac aa:bb:cc:dd:ee:ff to each rule which you
only want to match a specific machine

or

b) put all your rules into a user-defined chain, and then jump to that chain
only for packets which match the required IP/MAC combination:

iptables -N myrules
iptables -A myrules -p tcp --dport 21 -j ACCEPT
iptables -A myrules -p tcp --dport 23 -j ACCEPT
etc
iptables -A INPUT -s a.b.c.d -m mac --mac aa:bb:cc:dd:ee:ff -j myrules

With this design you can also easily allow more than one machine to connect if
you wish, by adding another INPUT rule:

iptables -A INPUT -s w.x.y.z -m mac --mac uu:vv:ww:xx:yy:zz -j myrules

Selamat mencoba,

Bacaan

  1. ARP Spoofing
  2. Iptraf
  3. Cracking MAC Address
  4. Wifi Crack

15 Responses to “Mac Address with Ip Address Filtering (Mikrotik ‘n Linux)”


  1. 1 fl3xu5 4 August 2007 at 3:02 pm

    mantap..
    =saya juga lagi pingin belajar iptables ..

    mohon bimbingannya :)

  2. 3 Donald 7 August 2007 at 3:56 am

    wah muncul original authornya, yah thank juga ya mas. Saya sempat juga jadi beta tester scriptnya, dan jalan.

  3. 4 cingkele 8 August 2007 at 8:42 am

    Apakah cara diatas bisa di terapkan pada sytem bridge?

  4. 5 Donald 8 August 2007 at 11:37 am

    Saya perhatikan pada sistem Bridge, MAC Address yang nantinya akan terbaca di mesin Mikrotiknya (pada Mikrotik), adalah MAC Address perangkat yang melakukan Bridge. Berarti akan Terdapat 1 (Satu) MAC Address untuk beberapa IP Address.

    Begitu juga pada GNU/Linux.

    Konfigurasi Di atas, saya terapkan juga pada sistem Bridge. Tentu saja nantinya mempunyai Kelemahan, dimana MAC Address pada Perangkat Bridge, andaikata dapat di Spoof.

    Bagusnya pada Perangkat Bridge tersebut, ditambahkan juga MAC Address Filteringnya.

  5. 6 Taufik 10 August 2007 at 3:52 am

    Kalau dilihat nampaknya pakai linux semua packet di drop dulu, sesudah itu dimasukkan ip dan mac-nya. Nah pada mikrotik saya kok nggak melihat hal itu, jadi kemungkinan ip dan mac yang tidak di rule bisa lewat.
    Mohon maaf kalau saya salah
    Thanks

  6. 7 Donald 10 August 2007 at 2:05 pm

    @Taufik
    Bukankah konfigurasi diatas pd Mikrotik, untuk menfilter Ip dan Mac address, yang telah terdaftar ?.
    Jadi hanya ip dan mac address yang telah terdaftar saja bisa koneksi ke mesin Mikrotik tersebut. Diluar daftar, akan di Drop.

    Pengalaman saya, salah satu dari metode tersebut dapat diterapkan. Setingan di interface atau konfigurasi di Firewall, seperti yang telah dipaparkan di atas.

  7. 8 faisal 2 September 2007 at 11:40 am

    untuk blok ip dan mac address pada linux bisa coba contoh ini :
    ##blok komputer yg coba konek ke saya
    /usr/sbin/iptables -A FORWARD -s 10.0.0.10. -m mac –mac-source 00:xx:xx:xx:xx:xx -i eth0 -j DROP
    /usr/sbin/iptables -A OUTPUT -d 10.0.0.10 -o eth0 -j DROP
    /usr/sbin/iptables -A FORWARD -d 10.0.0.10 -o eth0 -j DROP

  8. 9 cemy 19 January 2008 at 6:12 am

    Assalamu’alaikum.
    Mau nanya nih..
    untuk mematikan proses iplock nya gimana? terus gimana caranya kita tau bahwa ip atau MAC yg udah di lock itu udah berhasil di lock?
    makasih
    wassalam

  9. 10 ramadhian 6 February 2008 at 5:23 pm

    hi mo tanya donk

    gw kan bikin DHCP Server
    tapi gw bikin Fix IP Address utk Mac Address yg sudah ditentukan

    ada nggak cara nya dgn menggunakan IP Table atau settingan DHCP Server
    utk tidak memberikan izin utk setiap DHCP Request dari PC Client
    yg Mac Address nya blom gw daftarin ?

  10. 11 Mujie 31 August 2008 at 6:50 pm

    Bro Donald, numpang minta tolong bisa ga bantu saya hapusin link blog yang nomor 2 :D . Sudah pindah “rumah” nih soalnya. Ini lagi keliling-keliling buat hapusin link yang lama, pada jadi cache di google, padahal dead link. Makasih banyak ya bro :)

  11. 12 Mujie 31 August 2008 at 6:55 pm

    @cemy : paketnya tidak akan lewat jika kita lihat dari MT atau dari linux server misalnya menggunakan perintah tcpdump

    @ramadhian : allow dulu, sisanya 00:00:00:00:00:00 drop

  12. 13 maman 18 November 2008 at 7:25 am

    masih ga mudeng maksudnya apa

  13. 14 Ari 25 December 2008 at 6:20 am

    Kok Gak jalan scripts diatas boss… masa ke blok semua…client gak bisa keluar…

    trus ada info di bawah ini :

    Warning: wierd character in interface `-s’ (No aliases, :, ! or *).
    Bad argument `10.10.0.14′
    Try `iptables -h’ or ‘iptables –help’ for more information.
    Ciattttttttttttttttttttttttt………………………..

    salah nya dimana tuh ?? mohoon penjelasan..

  14. 15 shoeisparrows 31 July 2009 at 5:33 pm

    makasih bwt tutorialnya sangat membantu bgt, apa lg bwt newbie


Leave a Reply