Rabu, 09 September 2009

Membangun PC Router with UNIX FreeBSD

Konfigurasi Kernel :
Login sebagai root.
Kemudian masuk ke direktory kernelnya dengan mengetik perintah seperti dibawah ini :
skur# cd /usr/src/sys/i386/conf [enter]
Kernel aslinya adalah file yang bernama GENERIC. Untuk menghindari resiko yang fatal sebaiknya kernel kita copy saja dulu.
Copylah kernel asli menjadi ROUTER dengan perintah berikut :
skur# cp GENERIC ROUTER [enter]
Edit file ROUTER :
Editlah konfigurasi ROUTER dengan perintah berikut ini :
skur# ee ROUTER [enter]
Tambahkan opsi dibawah ini ke dalam script kernel anda :
options IPDIVERT
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options DUMMYNET
Setelah di edit tekan tombol Ctrl+C lalu muncul Command : lalu ketik exit untuk simpan dan keluar, atau ketik quit untuk keluar tanpa menyimpan konfigurasi.
Langkah selanjutnya adalah mengcompile kernel dengan cara sebagai berikut :
skur# config ROUTER [enter]
skur# cd ../compile/ROUTER [enter]
skur# make depend && make && make install && reboot [enter]
Tunggu beberapa saat sekitar 15-20 menit sampai komputer restart otomatis.
Konfigurasi IP Address:
skur# ee /etc/rc.conf [enter]
Lalu isikan sebagai berikut :
hostname=”skur.syukur.net”
ifconfig_rl0=”inet 172.16.0.2 netmask 255.255.255.0″ (eth0 kalo di linux)
ifconfig_rl1=”inet 192.168.0.1 netmask 255.255.255.0″ (eth1 kalo di linux)
defaultrouter=”172.16.0.1″
Setelah di edit tekan tombol Ctrl+C lalu muncul Command : lalu ketik exit untuk simpan dan keluar, atau ketik quit untuk keluar tanpa menyimpan konfigurasi.
Setting DNS:
skur# ee /etc/resolve.conf [enter]
domain syukur.net
nameserver 118.98.136.202
nameserver 202.134.0.155
Setting Firewall, Natd
skur# ee /etc/defaults/rc.conf [enter]
selanjutnya edit file seperti dibawah ini:
defaultrouter =”YES”
gateway_enable =“YES”
firewall_enable =”YES”
firewall_type =”OPEN”
natd_enable =”YES”
natd_interface =”rl0″
Setelah di edit tekan tombol Ctrl+C lalu muncul Command : lalu ketik exit untuk simpan dan keluar, atau ketik quit untuk keluar tanpa menyimpan konfigurasi, kemudian reboot komputer :
skur# reboot [enter]
Selesai............................................

.:: Good Luck ::.

Script NAT Proxy

Isi script.sh adalah seperti tampak di bawah ini. Ada beberapa parameter yang perlu di perhatikan yaitu

* UPLINK
* NAT
* INTERFACES

Pastikan bahwa anda mengisi ketiga-nya dengan benar

#!/bin/bash
# From: AHK
# To: linux-admin@linux.or.id
# Save this file and activate through # file_name start
# and de-activate through # file_name stop
# This firewall-script can be used for workstation, laptop, router
# or server that are not running network service (such as web server, ftp
# server etc)
# change the parameter UPLINK with Interface device to the Internet.
# In our case WLAN router with NIC wlan0 connected to the Internet
# and LAN connection with eth0.
# if you use dial-up modem, you might use ppp0 as your UPLINK

UPLINK="eth1"

# if you run the gateway as router and forward IP packet between eth devices
# please fill .yes., if not, please fill .no.

ROUTER="yes"

# Please change 202.150.10.45 to your static IP address of UPLINK device.
# For those who use dial-up or dynamic IP, please enter .dynamic.
# NAT="192.168.1.100"

NAT="dynamic"

# please list all network interfaces including eth devices
# as well as dial-up interface such as ppp0

INTERFACES="lo eth0 eth1 eth2"

if [ "$1" = "start" ]
then
echo "Activate Firewall ..... "
/sbin/iptables -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp -i eth0 --destination-port 25 -s ! 192.168.0.1 -j DROP
/sbin/iptables -A INPUT -p tcp -i eth1 --destination-port 25 -s ! 192.168.0.1 -j DROP
/sbin/iptables -A INPUT -i ! ${UPLINK} -j ACCEPT
/sbin/iptables -A INPUT -i ${UPLINK} -p tcp -s 0/0 --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i ${UPLINK} -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i ${UPLINK} -j REJECT --reject-with icmp-port-unreachable
/sbin/iptables -A FORWARD -p tcp --destination-port 25 -s ! 192.168.0.1 -j DROP

# block bad sites
/sbin/iptables -I INPUT -s 68.178.211.34 -j DROP
/sbin/iptables -I INPUT -d 68.178.211.34 -j DROP
/sbin/iptables -I INPUT -s 64.27.5.168 -j DROP
/sbin/iptables -I INPUT -d 64.27.5.168 -j DROP

# turn off packet spoofing in all interfaces
for x in ${INTERFACES}
do
echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter
done
if [ "$ROUTER" = "yes" ]
then

# Activate IP forwarding at router
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ "$NAT" = "dynamic" ]
then

# Dynamic IP address, activate Masquerading
echo "Activate Masquerading (Dynamic IP) ...."
/sbin/iptables -t nat -A POSTROUTING -o ${UPLINK} -j MASQUERADE
elif [ "$NAT" != "" ]
then

# Static IP address use source NAT
echo "Activate SNAT (static IP) ...."
/sbin/iptables -t nat -A POSTROUTING -o ${UPLINK} -j SNAT --to ${NAT}
fi

# echo "Activate Port Forwarding .."
# /sbin/iptables -t nat -A PREROUTING -i ${UPLINK} -m multiport -p tcp \
# --dport 25 -d ${NAT} -j DNAT --to 192.168.0.1:25
# /sbin/iptables -A FORWARD -i ${UPLINK} -m multiport -p tcp -d 192.168.0.1 \
# --dport 25 -j ACCEPT

fi
elif [ "$1" = "stop" ]
then
echo "Deactivate Firewall ..."
/sbin/iptables -F INPUT
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F FORWARD
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P OUTPUT ACCEPT

# Turn off NAT or MASQUERADING
/sbin/iptables -t nat -F POSTROUTING
fi