Gentoo Logo

Panduan Router Rumah

Daftar Isi:

1.  Pendahuluan

Membuat router sendiri dari perangkat-perangkat lama memiliki beberapa keutamaan dibandingkan dengan membeli router jadi buatan - misalnya - Linksys. Keutamaan utamanya adalah kendali penuh atas koneksi. Keutamaan tergantung pada imajinasi anda; apa saja dapat dilakukan dengan skenario ini, tinggal menyesuaikan saja dengan kebutuhan.

Panduan ini akan menjelaskan cara menyiapkan Network Address Translation (NAT) di router (kernel dan iptables), menambahkan dan mengkonfigurasi beberapa servis (Domain Name System (DNS) melalui dnsmasq, dhcp melalui dhcpcd, ADSL melalui ppp), lalu ditutup dengan banyak hal menyenangkan yang dapat dilakukan (port forwarding, traffic shaping, proxies/caching, dll...).

Sebelum memulai, ada beberapa kebutuhan dasar yang harus anda penuhi. Pertama, anda memerlukan komputer yang paling tidak memiliki 2 Network Interface Cards (NIC). Kedua, anda memerlukan setting konfigurasi untuk koneksi internet anda (seperti IP/DNS/Gateway/username/password). Terakhir, anda memerlukan sedikit waktu luang dan kecintaan pada Gentoo.

Konvensi yang digunakan pada panduan ini adalah:

  • eth0 - NIC terhubung ke Local Area Network (LAN)
  • eth1 - NIC terhubung ke Wide Area Network (WAN)
  • LAN berada di jaringan pribadi 192.168.0.xxx
  • router ditetapkan di IP standar 192.168.0.1
  • router menjalankan Linux 2.4 atau 2.6; anda tidak akan dibantu jika menjalankan 2.0/2.2

Penting: Dengan alasan keamanan, Penulis sangat menganjurkan anda untuk menghentikan semua servis yang tidak diperlukan di router sampai firewall sudah diaktifkan. Untuk melihat servis yang sedang berjalan, jalankan rc-status.

2.  Setup kernel (Kenali dulu diri anda sendiri)

Kernel anda harus memilki driver yang menjalankan kedia NIC anda. Untuk melihat apakah kartu-kartu anda telah diatur, jalankan saja ifconfig. Output anda mungkin akan sedikit berbeda, tidak apa-apa. Yang penting adalah kartu anda ditampilkan.

Daftar Kode 2.1: Memeriksa NIC

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:60:F5:07:07:B8
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0x9800

eth1      Link encap:Ethernet  HWaddr 00:60:F5:07:07:B9
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:10 Base address:0x9400

Jika anda tidak melihat kedua kartu anda dan anda tidak yakin jenis kartu yang anda miliki, coba jalankan lspci | grep Ethernet. Anda bisa mendapatkannya dari emerge pciutils. Ketika anda sudah memiliki info ini, masuklah ke source kernel anda lalu tambahkan dukungan untuk driver yang sesuai.

Hal kedua yang anda butuhkan adalah dukungan untuk iptables dan NAT (juga packet shaping jika anda mau). Daftar berikut ini dipecah menjadi semua yang semua diperlukan (*), diperlukan hanya untuk adsl melalui PPPoE (a), dianjurkan untuk semua (x), dan hanya untuk fitur-fitur shape (s). Tidak jadi masalah apakah anda menjadikan fitur-fitur ini ke dalam kernel atau menjadikannya modul selama anda tidak lupa untuk me-load-nya ketika diperlukan.

Daftar Kode 2.2: Opsi-opsi Jaringan

Networking options  --->
   [*] TCP/IP networking
      [*] IP: advanced router
   [*] Network packet filtering (replaces ipchains)
Jika anda menggunakan kernel 2.4.x, anda harus mengaktifkan yang berikut ini untuk DHCP:
   [*] Socket Filtering

   IP: Netfilter Configuration  --->
      [*] Connection tracking (required for masq/NAT)
         [x] FTP protocol support
         [x] IRC protocol support
      [*] IP tables support (required for filtering/masq/NAT)
         [*] IP range match support
         [x] MAC address match support
         [*] Multiple port match support
         [*] Packet filtering
            [*] REJECT target support
            [x] REDIRECT target support
         [*] Full NAT
            [*] MASQUERADE target support
         [s] Packet mangling
            [s] MARK target support
         [x] LOG target support

   QoS and/or fair queueing  --->
      [s] QoS and/or fair queueing
         [s] HTB packet scheduler
         [s] Ingress Qdisc

   [a] PPP (point-to-point protocol) support
      [a] PPP filtering
      [a] PPP support for async serial ports
      [a] PPP support for sync tty ports
      [a] PPP Deflate compression
      [a] PPP BSD-Compress compression
      [a] PPP over Ethernet

Catatan: Beberapa opsi mungkin agak berbeda di kernel 2.4 dan 2.6, anda harus bisa mencarinya :). Bahkan pada sesama kernel 2.6, opsi-opsi ini sering berpindah-pindah. Selamat Mencari!

3.  Peluk WAN (a.k.a. Internet)

Intro

Ada beberapa cara untuk terhubung ke internet, tetapi penulis hanya menjelaskan cara yang penulis kenal, yaitu dengan menggunakan ADSL (PPPoE) dan modem kabel (statik/dinamik). Jika ada metode lain, silakan tulis lalu kirimkan ke penulis. Anda boleh melewatkan bagian-bagian pada bab ini yang tidak anda perlukan. Bab ini hanya berisi cara menghubungkan router ke internet melalui eth1.

ADSL dan PPPoE

Semua software PPPoE yand dahulu disediakan oleh rp-pppoe (Roaring Penguin) telah diintegrasikan ke dalam paket PPP standar. Jalankan saja emerge ppp. Masih ingat pesan penulis untuk menyediakan informasi username/password kan? Na, sekarang saatnya untuk mengedit /etc/conf.d/net.

Catatan: Agar aturan-aturan jaringan berikut dapat digunakan, anda harus memiliki baselayout-1.12.9 atau yang lebih baru di sistem anda.

Daftar Kode 3.1: Pengaturan eth1

(Gantikan 'vla9h924' dengan username dan 'boogie' dengan password anda sendiri)

# nano /etc/conf.d/net


Perintahkan baselayout untuk menggunakan adsl melalui eth1 untuk ppp0:
config_ppp0=( "ppp" )
link_ppp0="eth1"
plugins_ppp0=( "pppoe" )
pppd_ppp0=(
       "defaultroute"
       "usepeerdns"
       Anda mungkin ingin menerapkan pengaturan lain, bacalah /etc/conf.d/net.example
)
username_ppp0="vla9h924"
password_ppp0="boogie"

# ln -s net.lo /etc/init.d/net.ppp0
# rc-update add net.ppp0 default
# /etc/init.d/net.ppp0 start

Peringatan: Ketika antarmuka DSL dinyalakan, ppp0 akan diciptakan. Walaupun NIC anda dinamakan eth1, IP-nya sebenarnya diikatkan ke ppp0. Dari sekarang, jika anda menemukan contoh yang berisi eth1, gantikan dengan ppp0.

Peringatan: Jangan lupa ganti perizinan file /etc/conf.d/net agar hanya dapat dibaca/tulis oleh root karena anda telah menuliskan username/password anda di dalamnya.

Peringatan: Bagi anda yang berpindah dapri paket rp-pppoe, atau bagi anda yang mendapatkan koneksi yang aneh, bacalah bagian MTU pada bagian Pemecahan Masalah.

Kabel dan/atau IP dinamik/statik

Jika anda memiliki IP statik, berarti anda memerlukan rincian yang sedikit lebih banyak daripada IP dinamik. Untuk pengguna IP statik, anda memerlukan IP anda, gateway, dan server DNS.

Daftar Kode 3.2: Pengaturan eth1

Untuk pengguna IP dinamik:
# emerge dhcpcd
# nano /etc/conf.d/net
Anda memerlukan sebuah entri seperti:
config_eth1=( "dhcp" )

Untuk pengguna IP statik:
# nano /etc/conf.d/net
Anda memerlukan entri seperti:
config_eth1=( "66.92.78.102 broadcast 66.92.78.255 netmask 255.255.255.0" )
routes_eth1=( "default gw 66.92.78.1" )
# nano /etc/resolv.conf
Tambahkan satu baris untuk setiap server DNS:
nameserver 123.123.123.123

Untuk Setup Dinamik dan Statik:
# ln -s net.lo /etc/init.d/net.eth1
# rc-update add net.eth1 default
# /etc/init.d/net.eth1 start

Sekarang anda sudah siap.

4.  Peluk LAN (Ajak teman-teman)

Langkah ini lebih mudah daripada langkah-langkah sebelumnya.

Daftar Kode 4.1: Pengaturan eth0

# nano /etc/conf.d/net
Tambahkan sebuah baris seperti berikut:
config_eth0=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )
# rc-update add net.eth0 default
# /etc/init.d/net.eth0 start

5.  Servis-servis LAN (Karena kita orang baik)

Server DHCP

Penulis yakin bahwa akan sangat baik jika semua orang di rumah anda hanya perlu menyambungkan komputer mereka ke jaringan dan semuanya bisa berfungsi. Tidak perlu mengingat hal-hal rumit atau membuat mereka melotot ke layar konfigurasi yang membingungkan! Hidup akan lebih mudah kan? Perkenalkan Dynamic Host Configuration Protocol (DHCP) dan mengapa anda harus peduli.

DHCP berfungsi benar-benar seperti namanya. Sebuah protokol yang dapat anda gunakan untuk mengatur komputer lain dengan otomatis secara dinamis. Anda hanya perlu menjalankan server DHCP di router, berikan semua info tentang jaringan anda, (IP, server DNS, gateway, dll...), maka ketika ada komputer lain dinyalakan, komputer tersebut akan menjalankan klien DHCP dan mengkonfigurasi dirinya sendiri secara otomatis. Untuk info lebih lanjut tentang DHCP, kunjungilah Wikipedia.

Kita akan menggunakan sebuah paket bernama dnsmasq yang menyediakan layanan DHCP dan DNS. Untuk saat ini, kita fokus ke aspek DHCP dulu. Perlu dicatat bahwa jika anda ingin menjalankan server DHCP yang lain, anda bisa mendapatkan contoh lain di bab "Hal-hal Asyik". Juga, jika anda ingin mengutak-atik setting server DHCP, bacalah komentar-komentar di file /etc/dnsmasq.conf. Semua default seharusnya bisa berfungsi.

Daftar Kode 5.1: Setup server DHCP

# emerge dnsmasq
# nano /etc/dnsmasq.conf
Tambahkan baris berikut untuk mengaktifkan dhcp:
dhcp-range=192.168.0.100,192.168.0.250,72h
Batasi dnsmasq hanya ke kartu untuk LAN
interface=eth0

# rc-update add dnsmasq default
# /etc/init.d/dnsmasq start

Sekarang router kecil anda sudah menjadi server DHCP bonafit! Hubungkan komputer-komputer lain dan perhatikan, semuanya bisa langsung tersambung! Dengan sistem Windows anda perlu masuk ke setting TCP/IP lalu pilih opsi "Obtain an IP address automatically" dan "Obtain DNS server address automatically". Terkadang perubahannya tidak langsung diterapkan, jadi anda mungkin perlu membuka prompt perintah untuk menjalankan ipconfig /release dan ipconfig /renew. Cukup tentang Windows, mari kita kembali ke pinguin tercinta kita.

Server DNS

Ketika seseorang ingin mengunjungi suatu tempat di internet, ia hanya perlu perlu mengingat namanya, bukan sejumlah nomor acak. Lagi pula, mana yang lebih mudah diingat. ebay.com atau 66.135.192.87? Di sinilah DNS digunakan. Server DNS merubah 'ebay.com' (kata yang kita mengerti) menjadi '66.135.192.87' (yang dimengerti komputer). Untuk lebih mengenal DNS, kungjungilah Wikipedia.

Karena kita menggunakan dnsmasq untuk server DHCP, server DNS sudah diikutsertakan, anda tidak perlu melakukan apa-apa lagi! Router kecil anda sudah bisa menyediakan DNS untuk klien DHCP-nya. Andai semuanya semudah ini ;).

Anda boleh memilih server DNS lain jika anda merasa lebih nyaman dengannya, tetapi alasan digunakannya dnsmasq adalah karena ia dirancang hanya untuk melakukan hal yang kita perlukan, tanpa embel-embel lain. dnsmasq adalah server DNS caching/forwarding untuk jaringan lokal. Kita tidak bermaksud untuk menyediakan DNS untuk domain kita sendiri di sini, hanya menyediakan layanan DNS sederhana untuk semua komputer di LAN.

NAT (alias IP-masquerading)

Pada saat ini, semua komputer di jaringan anda sudah dapat saling berhubungan satu sama lain dan dapat mengetahui nama host melalui DNS, tetapi belum bisa terhubung ke internet. Walaupun menurut anda itu asyik (lebih banyak bandwidth untuk anda!), penulis yakin orang lain akan kurang senang.

Di sinilah Network Address Translation (NAT) digunakan. NAT merupakan salah satu cara untuk menghubungkan banyak komputer di dalam sebuah jaringan lokal pribadi ke internet ketika anda hanya memiliki sedikit alamat IP. Biasanya hanya anda diberikan satu IP oleh ISP anda, tetapi anda ingin agar semua komputer di rumah terhubung ke internet. NAT adalah sulap yang menjadikannya nyata. Bacalah Wikipedia untuk lebih mengenal NAT.

Catatan: Sebelum kita mulai, kita perlu memastikan bahwa iptables telah tersedia di sistem. Walaupun biasanya sudah langsung terinstal pada kebanyakan sistem, anda mungkin belum memilikinya. Jika belum, jalankan saja emerge iptables.

Daftar Kode 5.2: Setup iptables

Pertama hapus semua aturan
# iptables -F
# iptables -t nat -F

Setup aturan-aturan default untuk menangani traffic yang tidak cocok
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD DROP

Salin contoh-contoh ini ...
# export LAN=eth0
# export WAN=eth1

Kemudian kunci layanan kita agar hanya dapat digunakan di LAN
# iptables -I INPUT 1 -i ${LAN} -j ACCEPT
# iptables -I INPUT 1 -i lo -j ACCEPT
# iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
# iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

(Opsional) Ijinkan akses ke server ssh kita dari WAN
# iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

Tolak paket-paket TCP/UDP ke port-port khusus
# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

Terakhir tambahkan aturan untuk NAT
# iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
# iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
Beritahukan kernel bahwa IP forwarding sudah siap
# echo 1 > /proc/sys/net/ipv4/ip_forward
# for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

Ini agar ketika kita boot, kita tidak perlu membuat aturan lagi
# /etc/init.d/iptables save
# rc-update add iptables default
# nano /etc/sysctl.conf
Tambahkan baris-baris ini atau hapus tanda komentar jika ada:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

Jika anda memiliki alamat internet dinamik anda mungkin perlu mengaktifkan ini:
net.ipv4.ip_dynaddr = 1

Setelah anda menyelesaikannya, semua komputer di jaringan anda sekarang sudah dapat menggunakan internet seakan-akan terhubung langsung.

Opsi ip_dynaddr berguna untuk dial on demand systems atau ketika ISP ada memberikan alamat dinamik. Ini akan menyiasati masalah ketika ada komputer yang mencoba melakukan koneksi sebelum antarmuka untuk internet siap. Sebenarnya hal ini hanya agar pengguna internet di belakang router anda merasa lebih nyaman.

6.  Hal-hal Asyik (Untuk hari-hari hujan)

Intro

Percaya atau tidak, anda sudah selesai :). Dari sini, penulis akan memberikan banyak topik umum yang mungkin anda sukai. Semua hal yang ada di bab ini hanyalah opsional.

Port Forwarding

Terkadang anda ingin menyediakan layanan pada sebuah komputer yang berada di belakang router, atau hanya ingin mempermudah ketika mengakses sistem anda dari jauh. Mungkin anda ingin menjalankan server FTP, HTTP, SSH, atau VNC pada salah satu komputer di belakang router dan ingin terhubung ke semua komputer. Satu-satunya kelemahan di sini adalah, anda hanya boleh menggunakan satu layanan/komputer pada satu port. Misalnya, tidak ada cara yang mudah untuk mengatur tiga server FTP yang sama-sama menggunakan port 21 di belakang satu router; hanya salah satunya yang boleh menggunakan port 21, sedangkan yang lain harus menggunakan port lain, misalnya port 123 dan port 567.

Semua aturan port forwarding berformat iptables -t nat -A PREROUTING [-p protocol] --dport [port luar di router] -i ${WAN} -j DNAT --to [ip/port tujuan]. Sayangnya, iptables tidak menerima nama host ketika dilakukan port forwarding. Jika anda mem-forward sebuah port luar ke port yang sama di komputer dalam, anda boleh tidak mengetikkan port tujuan. Bacalah manual iptables(8) untuk info lebih lanjut.

Daftar Kode 6.1: Menjalankan perintah-perintah iptables

Salin contoh-contoh ini...
# export LAN=eth0
# export WAN=eth1

Forward port 2 ke ssh ke komputer dalam
# iptables -t nat -A PREROUTING -p tcp --dport 2 -i ${WAN} -j DNAT --to 192.168.0.2:22

Forward FTP ke komputer dalam
# iptables -t nat -A PREROUTING -p tcp --dport 21 -i ${WAN} -j DNAT --to 192.168.0.56

Forward HTTP ke komputer dalam
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.0.56

Forward VNC untuk komputer dalam
# iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 192.168.0.2
# iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 192.168.0.3:5900
If you want to VNC in to 192.168.0.3, then just add ':1' to the router's hostname

Forward Bittorrent
# iptables -t nat -A PREROUTING -p tcp --dport 6881:6889 -i ${WAN} -j DNAT --to 192.168.0.2

Forward eDonkey/eMule
# iptables -t nat -A PREROUTING -p tcp --dport 4662 -i ${WAN} -j DNAT --to 192.168.0.55

Dukungan Game Cube Warp Pipe
# iptables -t nat -A PREROUTING -p udp --dport 4000 -i ${WAN} -j DNAT --to 192.168.0.56

Dukungan Playstation 2 Online
# iptables -t nat -A PREROUTING -p tcp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11
# iptables -t nat -A PREROUTING -p udp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11

Xbox Live
# iptables -t nat -A PREROUTING -p tcp --dport 3074 -i ${WAN} -j DNAT --to 192.168.0.69
# iptables -t nat -A PREROUTING -p udp --dport 3074 -i ${WAN} -j DNAT --to 192.168.0.69
# iptables -t nat -A PREROUTING -p udp --dport 88 -i ${WAN} -j DNAT --to 192.168.0.69

Catatan: Jika anda memiliki contoh-contoh umum/bagus lainnya, silakan e-mail penulis.

Identd (untuk IRC)

Internet Relay Chat sangat banyak menggunakan layanan ident. Karena klien IRC berada di belakang router, kita perlu menemukan satu cara untuk menyediakan ident bagi router dan klien. Ada satu server semacam ini yang dinamakan midentd.

Daftar Kode 6.2: Setup ident

# emerge midentd
# rc-update add midentd default
# /etc/init.d/midentd start

Ada beberapa server ident lain di portage. Tergantung pada kebutuhan anda, penulis menganjurkan anda untuk mencoba oidentd dan fakeidentd.

Server Waktu

Menjaga waktu di sistem kita sangatlah penting untuk mendapatkan sistem yang sehat. Salah satu cara yang paling umum digunakan adalah dengan Network Time Protocol (NTP) dan paket ntp (yang menyediakan implementasi untuk server dan klien).

Banyak pengguna yang menjalankan klien ntp di komputernya. Tentunya, semakin banyak klien di dunia ini, semakin besar pula beban yang ditanggung oleh server ntp. Namun pada lingkungan seperti jaringan di rumah, kita dapat membantu meringankan beban server publik dengan tetap menyediakan waktu yang tepat untuk semua komputer di jaringan kita. Sebagai bonus tambahan, update pribadi kita juga akan lebih cepat untuk semua klien. Yang perlu kita lakukan hanyalah menjalankan server ntp di router yang mengsinkronkan dirinya dengan server internet publik dan menyediakan waktu untuk semua komputer di jaringan. Untuk memulai, jalankan emerge ntp di router.

Daftar Kode 6.3: Setup server NTP

# nano /etc/conf.d/ntp-client
Sesuaikan dengan keinginan anda, tetapi nilai-nilai default juga sudah cukup
# rc-update add ntp-client default

# nano /etc/ntp.conf
Tambahkan baris-baris berikut:
restrict default ignore
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap
Ini agar hanya klien ntp pada reng alamat
192.168.0.xxx yang boleh menggunakan server ntp anda
# nano /etc/conf.d/ntpd
Sesuaikan dengan keinginan anda, tetapi nilai-nilai default sudah cukup
# rc-update add ntpd default

# /etc/init.d/ntp-client start
# /etc/init.d/ntpd start

Catatan: Anda harus memastikan bahwa anda telah mengijinkan komunikasi inbound dan outbound pada port ntp (123/udp) ketika mengatur server. Klien hanya memerlukan akses outbound di port 123/udp.

Sekarang, di klien, jalankan juga emerge ntp. Tetapi, kita hanya perlu menjalankan klien ntp, jadi pengaturannya lebih sederhana.

Daftar Kode 6.4: Setup klien NTP

# nano /etc/conf.d/ntp-client
Ganti server 'pool.ntp.org' di variabel NTPCLIENT_OPTS menjadi '192.168.0.1'
# rc-update add ntp-client default
# /etc/init.d/ntp-client start

Server Rsync

Bagi anda yang memiliki banyak komputer Gentoo di dalam LAN yang sama, anda mungkin tidak ingin semua komputer menjalankan emerge sync ke server yang jauh. Dengan menyiapkan rsync lokal, anda telah menghemat bandwidth anda dan bandwidth server rsync Gentoo. Sangat mudah melakukannya:

Catatan: Untuk panduan rsync yang lebih mendalam, bacalah panduan resmi rsync.

Karena sistem Gentoo membutuhkan rsync, anda tidak perlu lagi menginstalnya. Edit file konfigurasi /etc/rsyncd.conf default, hapus tanda komentar di bagian [gentoo-portage], lalu tambahkan sebuah opsi address. Semua nilai default lain sudah cukup.

Daftar Kode 6.5: Konfigurasi server rsync

pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes
address = 192.168.0.1

[gentoo-portage]
  path = /mnt/space/portage
  comment = Gentoo Linux Portage tree
  exclude = /distfiles /packages

Kemudian anda perlu menjalankan servis (lagi-lagi, nilai default sudah cukup).

Daftar Kode 6.6: Menjalankan server rsync

# /etc/init.d/rsyncd start
# rc-update add rsyncd default

Satu lagi yang perlu diatur adalah memberitahukan klien anda untuk melakukan sync ke router.

Daftar Kode 6.7: Pengaturan SYNC klien di make.conf

SYNC="rsync://192.168.0.1/gentoo-portage"

Server Mail

Terkadang senang rasanya memiliki server Simple Mail Transfer Protocol (SMTP) kita sendiri di router. Anda mungkin punya alasan anda sendiri untuk melakukannya, tetapi alasan penulis adalah agar pengguna bisa melihat surat langsung terkirim dan kerja pengiriman ulang/routing diserahkan kepada server mail. Beberapa ISP tidak mengijinkan mail relaying untuk akun yang bukan merupakan bagian jaringan mereka (seperti Verizon). Anda juga dapat 'mencekik' pengiriman surat agar surat-surat besar tidak memperlambat koneksi anda dalam waktu yang lama.

Daftar Kode 6.8: Pengaturan SMTP

# emerge netqmail
pastikan agar output `hostname` sudah benar
# emerge --config netqmail
# iptables -I INPUT -p tcp --dport smtp -i ! ${LAN} -j REJECT
# ln -s /var/qmail/supervise/qmail-send /service/qmail-send
# ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd
# cd /etc/tcprules.d
# nano tcp.qmail-smtp

Tambahkan sebuah entri seperti berikut ke bagian allow:
192.168.0.:allow,RELAYCLIENT=""

# make
# rc-update add svscan default
# /etc/init.d/svscan start

Penulis adalah penggemar berat netqmail, tetapi anda bebas memilih mta yang lain :). Ketika anda mengatur e-mail pada satu komputer di jaringan anda, jadikan 192.168.0.1 sebagai server SMTP dan semuanya akan berfungsi. Anda mungkin perlu mengunjungi website qmail untuk membaca dokumentasi lain.

Server DHCP Lengkap

Tadi kita sudah menggunakan dnsmasq untuk menyediakan layanan DHCP untuk semua klien. Bagi kebanyakan pengguna dengan LAN kecil yang sederhana, ini sudah sempurna. Tetapi anda mungkin memerlukan sesuatu yang lain dengan fitur yang lebih banyak lagi. Untuk itu kita akan menyiapkan server DHCP yang memiliki banyak fitur seperti yang disediakan oleh teman-teman di ISC.

Daftar Kode 6.9: Setup dhcpd

# emerge dhcp
# nano /etc/dhcp/dhcpd.conf
(Contoh file konfigurasi:)
authoritative;
ddns-update-style interim;
subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.100 192.168.0.250;
    default-lease-time 259200;
    max-lease-time 518400;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
}
# nano /etc/conf.d/dhcpd
(Set IFACE="eth0")
# rc-update add dhcpd default
# /etc/init.d/dhcpd start

Ini adalah pengaturan minimal yang diperlukan untuk mengganti fungsionalitas DHCP dnsmasq yang sebelumnya kita gunakan. Anda masih ingat untuk menonaktifkan fitur DHCP di dnsmasq 'kan? Jika tidak, anda harus melakukannya sekarang (beri saja tanda komentar pada setting dhcp-range di /etc/dnsmasq.conf lalu restart servisnya).

Melakukan koneksi ke LAN lain

Terkadang anda perlu terhubung ke router di LAN lain. Mungkin anda ingin bertemu sebentar dengan teman-teman, atau anda ingin mengelompokkan beberapa komputer dalam sejumlah grup, atau anda hanya sedang bosan. Apapun alsannya, menghubungkan router ke LAN lain sangatlah mudah. Pada contoh-contoh berikut ini, penulis menganggap jaringan baru ini terhubung melewati kartu jaringan ketiga, yaitu eth2.

Pertama-tama anda perlu mengkonfigurasi kartu tersebut. Ikuti saja petunjuk di daftar perintah 4.1 dan gantikan eth0 dengan eth2 serta 192.168.0 dengan 192.168.1.

Kemudian anda perlu men-tweak dnsmasq untuk melayani kartu baru. Edit saja /etc/conf.d/dnsmasq dan tambahkan -i eth2 ke DNSMASQ_OPTS; menggunakan banyak opsi -i boleh-boleh saja. Lalu edit /etc/dnsmasq.conf dan tambahkan baris lain seperti baris dhcp-range di daftar kode 5.1, dengan mengganti 192.168.0 menjadi 192.168.1. Menggunakan banyak dhcp-range juga boleh boleh saja.

Terakhir, lihatlah aturan-aturan di daftar kode 5.2 dan salin aturan-aturan yang memiliki -i ${LAN}. Anda mungkin ingin membuat variabel lain, katakanlah LAN2, agar lebih mudah.

7.  Mengatasi Masalah

Tool-tool Berguna

Jika anda mendapatkan masalah ketika menghubungkan komputer anda, mungkin anda perlu mencoba beberapa tool berikut (semuanya berada di kategori net-analyzer di portage):

Tool Penjelasan
wireshark Tool GUI untuk melihat semua data mentah jaringan menurut penyaringan
tcpdump Tool konsol untuk men-dump semua data mentah jaringan menurut penyaringan
iptraf monitor IP LAN berbasis ncurses
ettercap Monitor/pengendali jaringan berbasis ncurses

DHCP Gagal Dijalankan

Ketika menjalankan skrip init.d dhcp untuk pertama kali, kemungkinan terjadi kegagalan tanpa memberikan info yang dapat membantu.

Daftar Kode 7.1: Contoh kegagalan DHCP

# /etc/init.d/dhcp start
 * Setting ownership on dhcp.leases ...          [ ok ]
 * Starting dhcpd ...                            [ !! ]

Siasatnya adalah mengetahui di mana dhcpcp mengirimkan outputnya. Masuk saja ke /var/log dan baca file-file log yang ada. Karena log yang tepat bergantung pada paket yang anda gunakan sebagai log sistem, coba jalankan grep -Rl dhcpd /var/log untuk melihat kemungkinan yang ada. Mungkin anda salah ketik di file konfigurasi. Anda juga bisa mencoba dhcpd -d -f (singkatan untuk debug / foreground) dan mencari kesalahan berdasarkan output.

Nilai MTU yang Salah

Jika anda mendapatkan masalah aneh (misalnya tidak dapat mengakses beberapa website sedangkan website lain bisa), anda mungkin mendapatkan masalah Path MTU Discovery. Cara cepat untuk mengatasinya adalah dengan menjalankan perintah iptables berikut ini:

Daftar Kode 7.2: Masalah MTU

# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Ini akan mempengaruhi semua koneksi baru, jadi cukup refresh website yang tadi tidak bisa anda buka untuk mencobanya. Jika sudah teratasi, nilai standar MTU untuk koneksi jaringan 100Mbit adalah 1500; nilai ini juga sama dengan koneksi PPPoA. Untuk koneksi PPPoE, nilainya adalah 1492. Untuk info lebih rinci, bacalah bab 15 dari Linux Advanced Routing & Traffic Control HOWTO.

Tidak dapat menghubungkan dua komputer secara langsung

Jika (karena alasan apapun) anda ingin menghubungkan dua komputer secara langsung tanpa hub atau switch, kabel jaringan biasa tidak bisa digunakan, kecuali anda memiliki kartu jaringan Auto MDI/MDI-X (dikenal juga dengan "autosensing"). Anda membutuhkan kabel lain yang disebut kabel crossover. Halaman Wikipedia ini menjelaskannya.

8.  Catatan Akhir

Penulis tidak memiliki catatan lain kecuali jika anda mendapatkan masalah dengan panduan ini, silakan hubungi penulis atau laporkan bug di Bugzilla Gentoo. Jika anda tertarik untuk memperbagus panduan ini, dengan senang hati, kirimkan ke penulis.



Print

Diperbarui 27 Juli 2007

Versi asli dari dokumen ini terakhir diupdate 30 Oktober 2011

Rangkuman: Dokumen ini menjelaskan cara merubah komputer Gentoo lama menjadi router untuk menghubungkan jaringan di rumah anda ke internet.

Mike Frysinger
Author

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.