August 8, 2012

Membuat Router Menggunakan Linux

Router adalah sebuah alat untuk menghubungkan dua buah network yang berbeda, sehingga mereka dapat saling berkomunikasi antara satu dengan yang lainnya.

Dalam dunia Internet, router bisa menghubungkan IP Publik dengan IP Publik atau dengan IP Privat.
Dalam istilah router kita pasti mengenal dan tidak asing dengan metode NAT (Network Address Translation), yaitu salah satu metode router untuk menterjemahkan alamat IP ke alamat IP yang lain.
Router NAT umumnya dipergunakan untuk meneruskan IP Private ke dunia internet dengan menterjemahkannya menjadi IP Publik ataupun sebaliknya.

Dalam membuat router NAT, kawan bisa memakai berbagai macam sistem operasi seperti Linux, Mikrotik, FreeBSD, bahkan Windows ataupun MacOS, namun disini akan dijelaskan bagaimana membuat PC Router NAT menggunakan Fedora Linux dengan 2 ethernet card.

Oke, kita langsung saja, persiapkan komputer lalu install menggunakan Fedora Linux, diasumsikan kawan sudah menguasai teknik installasi pada Linux dan sudah dapat berjalan degan baik.

Seperti yang kawan lihat pada gambar diatas, skema topologi yang akan digunakan adalah akses untuk dua klien dengan IP address: 192.168.100.2 dan 192.168.100.3 yang terhubung dengan switch dan akan menuju internet melewati PC Router dengan IP address 192.168.100.1 (gateway) dan mempunyai IP Publik dengan alamat 666.666.55.55

Langkah-langkah yang harus dilakukan;

Cek koneksi antara klien 1, 2 dan pc router dengan melakukan ping
C:\>ping 192.168.100.1 -t
Pinging 192.168.100.1 with 32 bytes of data:
Reply from 192.168.100.1: bytes=32 time<1ms TTL=64
Reply from 192.168.100.1: bytes=32 time<1ms TTL=64
Reply from 192.168.100.1: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Cek pada pc router untuk ip-forwarding, caranya login menggunakan root, dan ketikkan:
# vi /etc/sysctl.conf , scroll kebawah dan pastikan konfigurasi berikut:
net.ipv4.ip_forward = 1  < pastikan angkanya 1

Atau kawan bisa juga menambahkannya di rc.local
# vi /etc/rc.d/rc.local , tambahkan kode dibawah
touch /var/lock/subsys/local
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 256288 > /proc/sys/net/ipv4/route/max_size

Replace konfigurasi iptables dengan konfigurasi berikut:
# vi /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [127173:7033011]
:POSTROUTING ACCEPT [31583:2332178]
:OUTPUT ACCEPT [32021:2375633]
-A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 666.666.55.55
COMMIT

*mangle
:PREROUTING ACCEPT [444:43563]
:INPUT ACCEPT [444:43563] :FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [402:144198]
:POSTROUTING ACCEPT [402:144198]
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:icmp_packets - [0:0]

-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -j icmp_packets
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A OUTPUT -m tcp -p tcp --dport 135 -j DROP
-A OUTPUT -m tcp -p tcp --dport 445 -j DROP
-A OUTPUT -p icmp -j icmp_packets
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -m tcp -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A FORWARD -m tcp -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A FORWARD -m tcp -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A FORWARD -m tcp -p tcp --tcp-flags RST RST,ACK -j DROP
-A FORWARD -m tcp -p tcp --dport 135 -j DROP
-A FORWARD -m tcp -p tcp --dport 445 -j DROP
-A FORWARD -s 192.168.100.0/24 -j ACCEPT
-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 192.168.100.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -s 666.666.55.55/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

Demikian yang dapat disampaikan, jika kawan ingin bertanya jangan ragu untuk meninggalkan komentar.

No comments:

Post a Comment