Membuat CD Linux Router Sendiri

Onno W. Purbo

Mengapa CD Linux Router?

Mengapa saya membutuhkan router linux di CD-ROM? Jawabannya sebetulnya sederhana saja, karena listrik di rumah saya tidak stabil sering mati karena PLN kurang stabil & sering mati mendadak. Akibat seringnya listrik mati, harddisk akan crash dengan mudah.

Salah satu solusi yang paling sederhana untuk mengatasi harddisk crash tersebut adalah menggantikan harddisk di router rumah saya ke Internet dengan menggunakan CDROM, dan di operasikan tanpa harddisk sama sekali.

Istilah keren dari CDROM yang disiapkan untuk operasikan di PC tanpa menggunakan harddisk adalah “livecd”. Ada baiknya anda search di Internet (seperti http://www.google.com) menggunakan keyword “livecd”. Knoppix adalah salah satu jenis livecd yang cukup beken di dunia open source.

Pada kesempatan ini, saya akan menceritakan sedikit tentang cara membuat livecd router (bukan untuk desktop) untuk keperluan gateway Internet 24 jam di rumah. Tentunya teknik ini dapat digunakan di kantor, di sekolah, di mana saja sebetulnya.

Peralatan Router Yang Digunakan

Dalam experimen ini saya menggunakan PC Pentium III 933MHz memory 128Mbyte dengan card Wireless LAN PCI dari Planet yang tersambung ke ISP VisionNet http://www.vision.net.id yang berjarak sekitar 500 meter dari rumah saya. Sambungan Internet berjalan 24 jam menggunakan frekuensi 2.4GHz (untuk tidak di sweepng aparat).

Untuk menyambungkan  semua komputer yang berada di LAN local, saya menggunakan Ethernet card D-Link 10/100Mbps.

System operasi yang digunakan adalah Linux Mandrake 10.0 yang diperoleh dari InfoLinux http://www.infolinux.web.id. Penggunaan Linux Mandrake 10.0 agak membuat susah hidup karena memory 64Mbyte tidak cukup untuk Linux Mandrake 10.0, jika anda ingin GUI yang beroperasi dengan baik sebaiknya di naikan memory ke 128Mbyte untuk Mandrake 10.0.

Sebetulnya PC Pentium III 933MHz memory 128Mbyte terlalu besar untuk router, pengalaman saya dapat menggunakan PC Pentium 75MHz memory 64Mbyte untuk router tersebut. Hanya proses pembuatan livecd menjadi amat sangat lelet sekali.

Kebutuhan & Persiapan System Operasi

Hardware yang dibutuhkan untuk membuat livecd router adalah:

•	PC Pentium, saya menggunakan Pentium III 933MHz Memory 128Mbyte.
•	Harddisk 5-6 Gbyte.
•	Card Wireless LAN PCI Planet 11-22Mbps.
•	Card Ethernet D-Link 10/100Mbps.

Lakukan partsisi harddisk sebagai berikut:

	swap		256Mbyte
	/livecd		2 Gbyte
	/		3-4 Gbyte

Anda harus membuat partisi sendiri yang terpisah untuk nantinya membuat file iso dari LiveCD. Di sini saya menggunakan partisi yang saya namakan /livecd.

Install Linux Mandrake 9.2 atau Mandrake 10.0 di PC tersebut seperti biasa, konfigurasikan agar semua card terdetect & beroperasi dengan baik.

Yang agak sulit adalah mengkonfigurasi card Wireless LAN PCI Planet yang berbasis chipset Texas Instrument ACX100. Sebaiknya anda membaca-baca http://www.houseofcraig.net/acx100_howto.php.

Tapi pada prinsip-nya untuk Linux Mandrake 10.0 relatif sederhana, karena driver acx100_pci.o sudah tersedia, tapi anda harus mengkonfigurasi

	/etc/modules.conf

di isi dengan 

	alias wlan0 acx100_pci
	options acx100_pci firmware_dir=/usr/share/acx100_pci

isi directory

	/usr/share/acx100_pci

dengan file

RADIO0d.BIN
RADIO11.BIN
RADIO15.BIN
WLANGEN.BIN

Ke empat (4) file BIN tersebut dapat anda ambil dari CD driver yang di distribusikan bersama card Wireless LAN PCI Planet.

jangan lupa untuk mengkonfigurasi isi

	/etc/sysconfig/network-scripts/ifcfg-wlan0
	/etc/sysconfig/network-scripts/ifcfg-eth0

di sesuaikan dengan kondisi jaringan yang anda gunakan.

Kesulitan / Kelemahan LiveCD

Beberapa kesulitan / kelemahan penggunaan LiveCD yang saya alami adalah:

•	Tidak ada swap. Saya belum tahu cara membuat swap di livecd, akibatnya cukup fatal berbagai server yang saya butuhkan seperti dhcp, squid dll tidak bisa di aktifkan
•	Akan sulit untuk membuat livecd jika kernel Thomas blacklund (kernel-tmb) tidak mensupport driver yang dibutuhkan, kecuali jika anda dapat mengcompile kernel dan memasukan cloop.o ke dalamnya.

Solusi router yang saya gunakan saat ini hanya mengoperasikan NAT, iptables saja. Mungkin dilain waktu jika saya berhasil mengaktifkan swap secara automatis di livecd maka berbagai servis dapat saya jalankan langsung dari livecd.

Persiapan Software LiveCD

Bagi pengguna Linux Mandrake, kunci utamanya adalah menggunakan kernel buatan Thomas Blacklund atau di kenal sebagai kernel-tmb. Mengapa? Karena kernel-tmb-2.4.22.21 mengandung module cloop.o yang digunakan untuk mengkompress file system agar file menjadi kecil dan sangat berguna untuk digunakan di CDROM.

Sebetulnya kernel Thomas Backlund yang terbaru baik dari versi 2.4 maupun 2.6 tersedia di http://www.netikka.net/tmb/Cooker/, akan tetapi saya biasanya mengambil RPM versi 2.4.22.21 yang mengandung modul cloop.o dari http://fr2.rpmfind.net/.

Bagi anda yang cukup punya nyali untuk menginstall cloop.o sendiri di kernel Linux dapat mengambil-nya dari http://www.knopper.net/download/knoppix/cloop_0.68-2.tar.gz. Terus terang saya gagal menginstall cloop.o di kernel 2.6.3 dari Mandrake 10.0, karena tampaknya cloop.o di siapkan untuk kernel 2.4. Saya belum sempat mencoba untuk menginstall-nya di kernel 2.4.

Secara praktis, paket software yang dibutuhkan adalah:

•	kernel-tmb
•	busybox
•	cloop-utils
•	mklivecd
•	mkisofs

Bagi pembaca yang seperti saya, males untuk mengcompile kernel dsb, akan memperoleh banyak kemudahan dengan mengambil RPM yang dibutuhkan dari http://fr2.rpmfind.net/.

Gunakan keyword “kernel-tmb”, ambil ftp://fr2.rpmfind.net/linux/Mandrake/9.2/contrib/i586/kernel-tmb-2.4.22.21.tmb.1mdk-1-1mdk.i586.rpm

Gunakan keyword “busybox”, ambil ftp://fr2.rpmfind.net/linux/MandrakeCooker/cooker/contrib/i586/busybox-1.00-0.pre5.1mdk.i586.rpm

Gunakan keyword “cloop-utils”, ambil ftp://fr2.rpmfind.net/linux/MandrakeCooker/cooker/contrib/i586/cloop-utils-1.02-5mdk.i586.rpm

Gunakan keyword keyword “mklivecd”, ambil ftp://fr2.rpmfind.net/linux/MandrakeCooker/cooker/contrib/alpha/mklivecd-0.5.6-4mdk.noarch.rpm

Sedang mkisofs ada di CD distribusi Linux Mandrake 10.0, dapat langsung anda install pada saat instalasi Mandrake 10.0

Setelah semua RPM yang dibutuhkan di ambil. Untuk menginstalasi RPM secara manual sebetulnya tidak sukar, dapat dilakukan melalui perintah

	 # rpm –ivh nama-file-rpm.rpm

lakukanlah untuk semua paket RPM yang anda ambil di atas.

Mengkonfigurasi Router untuk Pembuatan CD Router

Konfigurasi router yang saya gunakan relatif sederhana sebetulnya hanya menggunakan sebuah script yang saya ambil dari posting rekan akuhon@kompas.com di mailing list linux-admin@linux.or.id beberapa tahun yang lalu. Cukup lumayan lah untuk mengaktifkan NAT di router yang saya gunakan.

Adapun script tersebut di aktifkan melalui /etc/rc.d/rc.local yang berisi kira-kira sebagai berikut:

#!/bin/bash

# From: AHK <akuhon@kompas.com>
# 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="wlan0"

# 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 10.10.10.224 to your static IP address of UPLINK device.
# For those who use dial-up or dynamic IP, please enter .dynamic.

NAT="10.10.10.224"

# NAT="dynamic"

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

INTERFACES="lo eth0 wlan0"

if [ "$1" = "start" ]
  then
  echo "Activate Firewall ..... "
  /sbin/iptables -P INPUT 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

# 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

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
      # Turn off NAT or MASQUERADING
      /sbin/iptables -t nat -F POSTROUTING
fi

Pembuatan Live CD

Secara umum langkah pembuatan LiveCD menggunakan Mandrake 9.2 (bukan Linux Mandrake 10.0) dapat diperoleh di forum diskusi http://www.mandrakeusers.org. Secara umum langkah yang dilakukan adalah sebagai berikut:

Step 1

Install ‘basic’ Mandrake 10.0 (atau Mandrake 9.2). Minimal harus ada account root dan satu buah user. Buat partisi khusus, misalnya, /livecd sebesar 1.5-2Gbyte untuk membuat livecd. Saya pernah mencoba menggunakan 700Mbyte /livecd tapi gagal membuat livecd, jadi sebaiknya menggunakan partisi /livecd yang besar.

Step 2

Install RPM 

	kernel-tmb-2.4.22.21
	busybox
	cloop-utils
	mklivecd
	mkisofs

Ubah /etc/lilo.conf supaya booting & menggunakan kernel-tmb-2.4.22.21 sebagai default. Jangan lupa menjalankan 

	# lilo

sesudah mengubah isi /etc/lilo.conf

Step 3

Buang paket-paket software yang tidak digunakan, anda dapat menggunakan Mandrake Control Center untuk uninstall RPM atau manual mendelete folder yang tidak digunakan. Beberapa paket yang tidak banyak digunakan seperti python dan gimp.

Check berapa space yang anda gunakan menggunakan perintah

	# df

Anda harus mengatur agar file iso yang dihasilkan jangan melebihi 700Mbyte agar dapat di burn ke CDROM. Jika kompresi rata-rata sekitar 40-50% maka isi folder root / harus maximum sekitar 1.4-1.7 Gbyte.

Jika anda masih merasa kekurangan space, anda dapat mendelete folder usr/share/doc, /usr/share/man dan /usr/share/wallpapers untuk memperoleh tambahan ~200 MB.

Step 4

Konfigurasikan supaya nantinya livecd dapat berfungsi seperti yang anda inginkan, jangan lupa buang semua isi /home/user/tmp, coockes, cache browser dll.

Lagi-lagi jangan lupa check space yang anda gunakan, melalui perintah

	# df

Step 5

Masuk ke shall dan su untuk menjadi root, jalankan perintah

	# cd /livecd
# mklivecd --help
 
anda akan melihat semua option untuk menjalankan script mklivecd. Salah satu option / cara yang paling sederhana untuk membuat livecd adalah
 
# mklivecd namaisolivecd.iso

Saya sendiri dalam membuat livecd menggunakan  

# mklivecd --verbose --lowmem --splash=no --resolution=800x600 router.iso
 
Kira-kira membutuhkan waktu 10-15 menit untuk membuat file iso untuk CDROM yang anda inginkan di Pentium III 933MHz.

Step 6

Burn iso ke cd-rw (atau cd-r).

Step 7

Berdo’alah & boot livecd router linux anda.