Standar Instalasi FreeBS D @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id)


Setting FreeBSD 8

Ada beberapa setting standar yang harus dilakukan pada system FreeBSD yang
telah ter-install, terutama sebagai server yang akan melayani berbagai service dan
protocol karena tersambung dengan jaringan. Seperti halnya suatu komputer yang
terhubung dengan jaringan, beberapa informasi akan diperlukan server untuk bisa
bergabung dengan suatu jaringan :
    1. IP Address, sebagai identifikasi diri di jaringan
    2. netmask, sebagai pembatas (melokalisasi jaringan)
    3. Gateway, sebagai pintu keluar ke jaringan lain
    4. DNS, sebagai tujuan bertanya untuk resolusi nama

1. setting DNS (Domain Name Service) server, ada pada file /etc/resolv.conf

# cat /etc/resolv.conf
search imtelkom.ac.id
nameserver 10.1.1.12


dengan setting diatas, FreeBSD atau suatu aplikasi akan dapat menanyakan ke
server dengan IP "10.1.1.12" setiap kali membutuhkan resolusi nama (mengubah
nama menjadi IP address atau sebaliknya)

Tips:

- Apache dan Squid akan menanyakan validitas nama-nya ke DNS server, jika
  gagal melakukan query ke DNS server maka aplikasi akan di-shutdown. Jadi
  pastikan name server sudah aktif sebelum server lain di-reboot

-   untuk mencoba koneksi DNS bisa dilakukan dengan :

    # host mail  query ke DNS server sesuai isi /etc/resolv.conf
    mail.imtelkom.ac.id has address 10.1.1.2

    # host mail.imtelkom.ac.id 10.1.1.12  query ke DNS server 10.1.1.12
    mail.imtelkom.ac.id has address 10.1.1.2

-   IM Telkom memiliki 2 DNS system, 1 untuk di-query dari intranet dan 1 lagi
    untuk di-query dari internet. Hal ini ditujukan untuk memisahkan server mana
    yang bisa diakses dari internet dan server mana yang hanya bisa diakses dari
    intranet, dg tujuan utama adalah security

    # host imtelkom.ac.id  query domain imtelkom.ac.id dari intranet
    imtelkom.ac.id has address 10.1.1.2
    imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id.

    # host imtelkom.ac.id 10.1.1.12  query ke DNS server 10.1.1.12
    Using domain server:
    Name: 10.1.1.12
    Address: 10.1.1.12#53  DNS intranet
    Aliases:
Standar Instalasi FreeBS D @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id)


   imtelkom.ac.id has address 10.1.1.2
   imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id.

   # host imtelkom.ac.id 10.1.1.2  query ke DNS server 10.1.1.2
   Using domain server:
   Name: 10.1.1.2
   Address: 10.1.1.2#53  DNS internet
   Aliases:

   imtelkom.ac.id has address 118.97.187.12
   imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id.


2. setting hostname, IP address, gateway, dan aktivasi firewall, ada pada file
   /etc/rc.conf

# cat /etc/rc.conf
hostname = "www.imtelkom.ac.id"
ifconfig_em0 = "inet 10.1.1.2 netmask 0xfffffff0"  10.1.1.2/28
defaultrouter = "10.1.1.1"  gateway
firewall_enable = "YES"
firewall_type = "CLIENT"


Tips:

   -    kode "em0" disesuaikan dengan hasil deteksi sysInstall (instalasi step 16)

   -    untuk memberi IP Address lain (pada subnet yg sama) pada interface
        (Ethernet Card) yg sama, file /etc/rc.conf akan menjadi :

        ifconfig_em0_alias0 = "inet 10.1.1.12 netmask 0xffffffff"
        ifconfig_em0_alias1 = "inet 10.1.1.14 netmask 0xffffffff"

        untuk eksekusi langsung pada prompt (konfigurasi akan hilang jika reboot):

        ifconfig em0 alias 10.1.1.12 netmask 0xffffffff
        ifconfig em0 –alias 10.1.1.12 netmask 0xffffffff (untuk menghapus)


   -    untuk memberi IP lain (pada subnet yg beda) pada interface yg sama :

        cloned_interfaces = "vlan0"
        ifconfig_vlan0 =
                "inet 10.1.2.2 netmask 0xffffff00 vlan 205 vlandev em0"


   -    defaultrouter adalah gateway untuk IP yg bukan alias dan bukan cloned,
        untuk mengeset gateway untuk subnet lain bisa dilakukan dengan cara:

        static_routes = "intranet"
        route_intranet = "10.1.2.0 10.1.2.1 255.255.255.0"
        (yang berarti: untuk mengakses subnet 10.1.2.0/24 arahkan ke 10.1.2.1)

   -    untuk menambah routing :
        route add 10.1.2.0 10.1.2.254 255.255.255.0
        (yang berarti: untuk mengakses subnet 10.1.2.0/24 arahkan ke 10.1.2.254)
Standar Instalasi FreeBS D @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id)


   -   untuk melihat table routing, gunakan :
       netstat -r
       Routing tables
       Internet:
       Destination           Gateway         Flags       Refs      Use       Netif Expire
       default               10.1.1.1        UGS        21919 44178604         em0
       10.1.1.0              link#1          U             98 49635966         em0
       10.1.1.2              link#1          UHS            0 8404431          lo0
       10.1.1.12             link#1          UHS            0        8         lo0
       10.1.10.32/29         10.16.10.81     UGS            0        0         em1
       10.16.10.80/29        link#2          U              0        0         em1
       10.16.10.84           link#2          UHS            0        0         lo0
       localhost             link#3          UH             0 1586570          lo0



3. jika aktivasi firewall ada di /etc/rc.conf, isi setting firewall ada pada file
   /etc/rc.firewall


Firewall dengan type CLIENT diset secara default untuk menutup semua protokol
(TCP, UDP, GRE) dan port (deny all), untuk kemudian akan dibuka seperlunya.
Protokol dan port yg perlu dibuka tergantung dari peruntukan server tersebut :
- FTP server : TCP port 21
- mail server : TCP port 25 untuk SMTP (kirim email) dan TCP port 110 untuk
    POP3 (download email)
- DNS server : UDP port 53
- web server : TCP port 80 untuk HTTP dan TCP port 443 untuk HTTPS (web
    browsing dengan SSL, Secure Socket Layer)
- news server : TCP port 119 untuk NNTP (forum diskusi)
- VPN server : TCP port 1723 untuk autentikasi VPN dan GRE untuk enkripsi
- proxy server : TCP port 8080
(TCP = Transmission Control Protocol, UDP = User Datagram Protocol, IP =
Internet Protocol, GRE = Generic Routing Encapsulation)

# cat /etc/rc.firewall
………
[Cc][Ll][Ii][Ee][Nn][Tt])

net="10.1.1.0"
mask="255.255.255.240"
ip="10.1.1.2"

setup_loopback
………
${fwcmd} add pass      gre   from   10.1.0.0/16 to ${ip}  allow incoming GRE
${fwcmd} add pass      gre   from   ${ip} to 10.1.0.0/16  allow outgoing GRE
${fwcmd} add pass      all   from   ${ip} to any  allow anything outgoing
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 21    allow FTP
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 25    allow SMTP
${fwcmd} add pass      udp   from   10.1.0.0/16 to ${ip} 53    allow DNS
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 80    allow HTTP
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 110  allow POP3
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 119  allow NNTP
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 443  allow HTTPS
${fwcmd} add pass      tcp   from   10.1.0.0/16 to ${ip} 1723  allow VPN
Standar Instalasi FreeBS D @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id)


${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 8080  allow proxy
${fwcmd} allow ip from ${ip} to ${net}:${netmask}
     rule untuk meng-allow semua paket ke subnet 10.1.1.0/24
………
;;  deny everything (last rule)


Tips :
- IPFW dipilih karena merupakan default firewall dari FreeBSD
- urutan rule sangat berpengaruh karena IPFW akan membandingkan setiap
   paket data dengan rule2 yg ada secara berurutan sesuai dengan nomor rule
   dari nomor terkecil sampai nomor terbesar (nomor terbesar adalah "deny all")
- semakin sedikit jumlah rule yang digunakan maka semakin cepat pemrosesan
   paket oleh IPFW, dan semakin generic/simple rule yang digunakan maka
   semakin cepat pula pemrosesan paket oleh IPFW
- dynamic rules (semua rule setelah "check-state") akan mempercepat
   pengecekan suatu paket data terhadap rule2 yg ada, namun rentan terhadap
   flooding. Jadi hanya paket2 outgoing (keluar dari server) yg sebaiknya
   dimasukkan ke dynamic rule seperti contoh di bawah ini :

   ${fwcmd} add check state
   ${fwcmd} allow tcp from any to {ip} keep-state


   selain mempercepat pengecekan data, kelebihan dari dynamic rule adalah rule
   untuk paket data arah sebaliknya tidak perlu lagi dibuat. Pada contoh diatas
   rule untuk arah incoming tidak perlu dibuat.

4. setting host yang boleh masuk ke server, ada pada file /etc/hosts.allow

# cat /etc/hosts.allow
sshd : 10.1.1.0/255.255.255.0 : allow
sshd : ALL : deny
mysqld : 10.1.1.0/255.255.255.0 : allow
mysqld : ALL : deny


entry pertama akan memperbolehkan semua komputer dari subnet 10.1.1.0/24
untuk menggunakan aplikasi SSH dan diluar itu akan ditolak (entry kedua).
entry ketiga akan memperbolehkan semua komputer dari subnet 10.1.1.0/24
untuk menggunakan aplikasi MySQL dan diluar itu akan ditolak (entry keempat).

5. tuning variable system pada file /boot/loader.conf dan file /etc/sysctl.conf

# cat /boot/loader.conf
dummynet.ko_load="YES"                   #   load modul DUMMYNET untuk trafic shaper
kern.maxfiles="4096"                     #   maximum file yang bisa dibuka
kern.maxusers="64"                       #   maximum static tables (per user)
kern.ipc.maxsockets="4096"               #   maximum sockets yg tersedia
kern.ipc.nmbclusters="32768"             #   maximum Network Memory Buffer Clusters
kern.maxproc="8192"                      #   maximum processes

# cat /etc/sysctl.conf
kern.ipc.somaxconn=4096                  # maximum socket untuk koneksi

FreeBSD Installation

  • 1.
    Standar Instalasi FreeBSD @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id) Setting FreeBSD 8 Ada beberapa setting standar yang harus dilakukan pada system FreeBSD yang telah ter-install, terutama sebagai server yang akan melayani berbagai service dan protocol karena tersambung dengan jaringan. Seperti halnya suatu komputer yang terhubung dengan jaringan, beberapa informasi akan diperlukan server untuk bisa bergabung dengan suatu jaringan : 1. IP Address, sebagai identifikasi diri di jaringan 2. netmask, sebagai pembatas (melokalisasi jaringan) 3. Gateway, sebagai pintu keluar ke jaringan lain 4. DNS, sebagai tujuan bertanya untuk resolusi nama 1. setting DNS (Domain Name Service) server, ada pada file /etc/resolv.conf # cat /etc/resolv.conf search imtelkom.ac.id nameserver 10.1.1.12 dengan setting diatas, FreeBSD atau suatu aplikasi akan dapat menanyakan ke server dengan IP "10.1.1.12" setiap kali membutuhkan resolusi nama (mengubah nama menjadi IP address atau sebaliknya) Tips: - Apache dan Squid akan menanyakan validitas nama-nya ke DNS server, jika gagal melakukan query ke DNS server maka aplikasi akan di-shutdown. Jadi pastikan name server sudah aktif sebelum server lain di-reboot - untuk mencoba koneksi DNS bisa dilakukan dengan : # host mail  query ke DNS server sesuai isi /etc/resolv.conf mail.imtelkom.ac.id has address 10.1.1.2 # host mail.imtelkom.ac.id 10.1.1.12  query ke DNS server 10.1.1.12 mail.imtelkom.ac.id has address 10.1.1.2 - IM Telkom memiliki 2 DNS system, 1 untuk di-query dari intranet dan 1 lagi untuk di-query dari internet. Hal ini ditujukan untuk memisahkan server mana yang bisa diakses dari internet dan server mana yang hanya bisa diakses dari intranet, dg tujuan utama adalah security # host imtelkom.ac.id  query domain imtelkom.ac.id dari intranet imtelkom.ac.id has address 10.1.1.2 imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id. # host imtelkom.ac.id 10.1.1.12  query ke DNS server 10.1.1.12 Using domain server: Name: 10.1.1.12 Address: 10.1.1.12#53  DNS intranet Aliases:
  • 2.
    Standar Instalasi FreeBSD @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id) imtelkom.ac.id has address 10.1.1.2 imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id. # host imtelkom.ac.id 10.1.1.2  query ke DNS server 10.1.1.2 Using domain server: Name: 10.1.1.2 Address: 10.1.1.2#53  DNS internet Aliases: imtelkom.ac.id has address 118.97.187.12 imtelkom.ac.id mail is handled by 5 mail.imtelkom.ac.id. 2. setting hostname, IP address, gateway, dan aktivasi firewall, ada pada file /etc/rc.conf # cat /etc/rc.conf hostname = "www.imtelkom.ac.id" ifconfig_em0 = "inet 10.1.1.2 netmask 0xfffffff0"  10.1.1.2/28 defaultrouter = "10.1.1.1"  gateway firewall_enable = "YES" firewall_type = "CLIENT" Tips: - kode "em0" disesuaikan dengan hasil deteksi sysInstall (instalasi step 16) - untuk memberi IP Address lain (pada subnet yg sama) pada interface (Ethernet Card) yg sama, file /etc/rc.conf akan menjadi : ifconfig_em0_alias0 = "inet 10.1.1.12 netmask 0xffffffff" ifconfig_em0_alias1 = "inet 10.1.1.14 netmask 0xffffffff" untuk eksekusi langsung pada prompt (konfigurasi akan hilang jika reboot): ifconfig em0 alias 10.1.1.12 netmask 0xffffffff ifconfig em0 –alias 10.1.1.12 netmask 0xffffffff (untuk menghapus) - untuk memberi IP lain (pada subnet yg beda) pada interface yg sama : cloned_interfaces = "vlan0" ifconfig_vlan0 = "inet 10.1.2.2 netmask 0xffffff00 vlan 205 vlandev em0" - defaultrouter adalah gateway untuk IP yg bukan alias dan bukan cloned, untuk mengeset gateway untuk subnet lain bisa dilakukan dengan cara: static_routes = "intranet" route_intranet = "10.1.2.0 10.1.2.1 255.255.255.0" (yang berarti: untuk mengakses subnet 10.1.2.0/24 arahkan ke 10.1.2.1) - untuk menambah routing : route add 10.1.2.0 10.1.2.254 255.255.255.0 (yang berarti: untuk mengakses subnet 10.1.2.0/24 arahkan ke 10.1.2.254)
  • 3.
    Standar Instalasi FreeBSD @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id) - untuk melihat table routing, gunakan : netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 10.1.1.1 UGS 21919 44178604 em0 10.1.1.0 link#1 U 98 49635966 em0 10.1.1.2 link#1 UHS 0 8404431 lo0 10.1.1.12 link#1 UHS 0 8 lo0 10.1.10.32/29 10.16.10.81 UGS 0 0 em1 10.16.10.80/29 link#2 U 0 0 em1 10.16.10.84 link#2 UHS 0 0 lo0 localhost link#3 UH 0 1586570 lo0 3. jika aktivasi firewall ada di /etc/rc.conf, isi setting firewall ada pada file /etc/rc.firewall Firewall dengan type CLIENT diset secara default untuk menutup semua protokol (TCP, UDP, GRE) dan port (deny all), untuk kemudian akan dibuka seperlunya. Protokol dan port yg perlu dibuka tergantung dari peruntukan server tersebut : - FTP server : TCP port 21 - mail server : TCP port 25 untuk SMTP (kirim email) dan TCP port 110 untuk POP3 (download email) - DNS server : UDP port 53 - web server : TCP port 80 untuk HTTP dan TCP port 443 untuk HTTPS (web browsing dengan SSL, Secure Socket Layer) - news server : TCP port 119 untuk NNTP (forum diskusi) - VPN server : TCP port 1723 untuk autentikasi VPN dan GRE untuk enkripsi - proxy server : TCP port 8080 (TCP = Transmission Control Protocol, UDP = User Datagram Protocol, IP = Internet Protocol, GRE = Generic Routing Encapsulation) # cat /etc/rc.firewall ……… [Cc][Ll][Ii][Ee][Nn][Tt]) net="10.1.1.0" mask="255.255.255.240" ip="10.1.1.2" setup_loopback ……… ${fwcmd} add pass gre from 10.1.0.0/16 to ${ip}  allow incoming GRE ${fwcmd} add pass gre from ${ip} to 10.1.0.0/16  allow outgoing GRE ${fwcmd} add pass all from ${ip} to any  allow anything outgoing ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 21  allow FTP ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 25  allow SMTP ${fwcmd} add pass udp from 10.1.0.0/16 to ${ip} 53  allow DNS ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 80  allow HTTP ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 110  allow POP3 ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 119  allow NNTP ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 443  allow HTTPS ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 1723  allow VPN
  • 4.
    Standar Instalasi FreeBSD @ Institut Manajemen Telkom ( http://www.imtelkom.ac.id) ${fwcmd} add pass tcp from 10.1.0.0/16 to ${ip} 8080  allow proxy ${fwcmd} allow ip from ${ip} to ${net}:${netmask}  rule untuk meng-allow semua paket ke subnet 10.1.1.0/24 ……… ;;  deny everything (last rule) Tips : - IPFW dipilih karena merupakan default firewall dari FreeBSD - urutan rule sangat berpengaruh karena IPFW akan membandingkan setiap paket data dengan rule2 yg ada secara berurutan sesuai dengan nomor rule dari nomor terkecil sampai nomor terbesar (nomor terbesar adalah "deny all") - semakin sedikit jumlah rule yang digunakan maka semakin cepat pemrosesan paket oleh IPFW, dan semakin generic/simple rule yang digunakan maka semakin cepat pula pemrosesan paket oleh IPFW - dynamic rules (semua rule setelah "check-state") akan mempercepat pengecekan suatu paket data terhadap rule2 yg ada, namun rentan terhadap flooding. Jadi hanya paket2 outgoing (keluar dari server) yg sebaiknya dimasukkan ke dynamic rule seperti contoh di bawah ini : ${fwcmd} add check state ${fwcmd} allow tcp from any to {ip} keep-state selain mempercepat pengecekan data, kelebihan dari dynamic rule adalah rule untuk paket data arah sebaliknya tidak perlu lagi dibuat. Pada contoh diatas rule untuk arah incoming tidak perlu dibuat. 4. setting host yang boleh masuk ke server, ada pada file /etc/hosts.allow # cat /etc/hosts.allow sshd : 10.1.1.0/255.255.255.0 : allow sshd : ALL : deny mysqld : 10.1.1.0/255.255.255.0 : allow mysqld : ALL : deny entry pertama akan memperbolehkan semua komputer dari subnet 10.1.1.0/24 untuk menggunakan aplikasi SSH dan diluar itu akan ditolak (entry kedua). entry ketiga akan memperbolehkan semua komputer dari subnet 10.1.1.0/24 untuk menggunakan aplikasi MySQL dan diluar itu akan ditolak (entry keempat). 5. tuning variable system pada file /boot/loader.conf dan file /etc/sysctl.conf # cat /boot/loader.conf dummynet.ko_load="YES" # load modul DUMMYNET untuk trafic shaper kern.maxfiles="4096" # maximum file yang bisa dibuka kern.maxusers="64" # maximum static tables (per user) kern.ipc.maxsockets="4096" # maximum sockets yg tersedia kern.ipc.nmbclusters="32768" # maximum Network Memory Buffer Clusters kern.maxproc="8192" # maximum processes # cat /etc/sysctl.conf kern.ipc.somaxconn=4096 # maximum socket untuk koneksi