FreeBSD 9 Install Lighttpd Web Server

Kali ini saya akan mencoba installasi webserver selain Apache, yakni Lighttpd (dibaca : lighty) yang juga mendukung MySQL dan PHP.

light_logo

Sekilas tentang Lighttpd adalah alternatif web server; jika di install pada hardware yang sama, menghasilkan kinerja yang lebih bagus dari kompetitor (baca: Apache). Benchmark Lighttpd bisa anda lihat-lihat disini: http://www.lighttpd.net/benchmark/

Lighty bisa di Install di Linux distro Popular, Windows, BSD. Untuk dukungan OS yang lainnya saya kurang tahu.  Untuk tutorial kali ini saya coba install pada OS FreeBSD 9 menggunakan sistem ports. read more

Installasi Lusca Squid Head pada FreeBSD 9

Tidak jauh berbeda dengan installasi Squid cache 3.1 pada bahasan sebelumnya. Lusca adalah pengembangan dari Squid 2 yang di optimalkan untuk caching lebih agresif. Support single-core ataupun multi-core baik pada single socket CPU atau lebih.

Jika mesin anda masih kosong, tidak ada FreeBSD yang terinstall. Coba tengok cara Install FreeBSD di blog ini juga, yang intinya berisi tentang cara install awal, paket-paket (aplikasi) yang perlu di Install (editors, tools), dan cara mengkonfigurasi aplikasi. read more

Website accelerator dengan Freebsd 9 dan squid 3.1 (reverse proxy)

Teknik mempercepat website ada banyak; baik di level DNS, peletakan file static di domain/server yang berbeda dll. kali ini saya akan mempergunakan OS Freebsd 9 dan squid bawaan dari Port System.

Oke, pertama-tama konsep dari Web-accelerator dipahami dulu. Misalkan ada user A dari IP External me-request file index.htm pada server Z, dimana untuk menghasilkan file index.htm *** tsb melibatkan banyak komponen; antara lain service apache (webserver), mysql (database server).

Begitu file index.htm terunduh oleh browser user A, di dalam file index.htm tsb membutuhkan file statik image-jpg, css  & js pada server Z yang sama, hanya beda direktori, karena browser secara default akan merambat semua file yang diperlukan di proses lagi request ke Server Z untuk mengunduh file css dsb nya. sampai selesai. Dan ini membuat apache (webserver) pada server Z sibuk. Bayangkan kalau ada 50-100 pengunjung dalam 1 menit, dan index.htm membutuhkan 70 file jpg/css/js didalamnya!

reverse proxy 01
Yang kebanyakan terjadi pada website sibuk (konfigurasi single server)

Lihat diagaram diatas, Web server dan DB server akan sibuk hanya untuk menghasilkan output index.htm yang sama untuk setiap request. Apalagi jika Webserver tidak di konfigurasi untuk menghasilkan gzip output. Deflate/Compressed/Gzipped output memang mengurangi trafik network sangat signfikan untuk file-file css/js. Tetapi, prosesor server akan banyak terutilitas untuk meng-gzip-kan file-file static tsb.

Nah untuk website yang sibuk, diperlukan sebuah mesin lagi untuk menampung object-object static; biasanya dinamakan Web Accelerator. Engine-X (nginx) bisa dimanfaatkan juga untuk kepentingan ini, tetapi setahu saya lebih baik menggunakan SQUID pada situasi diatas. Sehingga diagram networknya berubah menjadi:

reverse proxy 02
Mesin Freebsd akan dijadikan Reverse Proxy; memperingan kerja webserver.

Tidak jauh berbeda untuk membuat proxy untuk kepentingan internet sharing; web-accelerator hanya ‘tweak’ di sisi squid.conf. Untuk itu, pelajari dulu artikel sebelumnya yang sudah saya pernah buat tentang pembuatan proxy server dengan freebsd.

Modifikasi saja squid.conf dari artikel sebelumnya, rubah squid.conf:

acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines #nama domain disini, termasuk sub-dom, www, m. dll acl website dstdomain www.anu.com anu.com m.anu.com acl SSL_ports port 443 8443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow website http_access allow localnet http_access allow localhost http_access deny all #http_port 3128 transparent http_port 8080 # untuk yang manual seting. http_port 80 accel defaultsite=anu.com vhost forwarded_for on cache_peer 192.168.30.100 parent 80 0 no-query no-digest originserver login=PASS name=webserver cache_peer_access webserver allow website cache_peer_access webserver deny all #hanya contoh saja. gunakan calculator squid untuk lebih pastinya cache_dir ufs /squid/cache1 1000 16 256 cache_dir ufs /squid/cache2 15000 16 256 cache_mem 64 MB #brp MB? squid bisa menggunakan ram fisik. visible_hostname squidproxy.freebsd.local cache_mgr sibewok@dimana.aja cache_access_log none #saya tidak memerlukan log, jadi saya disabled. # cache_access_log /squid/log/access.log #enable yg ini kalau butuh log akses cache_log /squid/log/cache.log cache_store_log /squid/log/store.log coredump_dir /squid/cache2 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern . 0 20% 4320 refresh_pattern -i .gif$ 10080 100% 43200 refresh_pattern -i .jpg$ 10080 100% 43200 refresh_pattern -i .jpeg$ 10080 100% 43200 refresh_pattern -i .png$ 10080 100% 43200 refresh_pattern -i .bmp$ 10080 100% 43200 refresh_pattern -i .mid$ 10080 100% 43200 refresh_pattern -i .wav$ 10080 100% 43200 refresh_pattern -i .mp3$ 10080 100% 43200 refresh_pattern -i .swf$ 10080 100% 43200 refresh_pattern -i .zip$ 10080 100% 43200 refresh_pattern -i .rar$ 10080 100% 43200 refresh_pattern -i .msu$ 10080 100% 43200 refresh_pattern -i .msi$ 10080 100% 43200 refresh_pattern -i .flv$ 10080 100% 43200 refresh_pattern -i .exe$ 10080 100% 43200 dns_nameservers 192.168.30.1 #DNS musti melalui router cache_effective_user squid cache_effective_group squid maximum_object_size_in_memory 32 KB maximum_object_size 93000 KB #kalau sering ada updatean s/w utk client bisa diperbesar. connect_timeout 133 seconds request_timeout 3 minutes #tambahakan url yg dilarang disini acl dilarang dstdomain .milf.com .redtube.com http_access deny dilarang read more

FreeBSD 9 sebagai proxy server Squid

Pada artikel FreeBSD sebelumnya, hanyalah tutorial dasar installasi FreeBSD 9. Kali ini saya akan menginstall fbsd sebagai mesin proxy server; Menggunakan 2 harddisk cache. Harddisk boot di jadikan cache #1 dan harddisk lainnya menjadi cache #2. Squid yang dipergunakan bukan type Head (lusca). Bawaan dari directory ports system.

Sebagai topologi networknya; internet-> router-> freebsd squid ->client. FreeBSD sejajar dengan client; untuk itu masukan pengecualian redirect request http dari ip Freebsd; redirect semua httpp request dari LAN ke Ip freebsd. Karena ada banyaknya jenis router. Saya tidak menjelaskan bagaimana caranya 😀

muka gile

Pada harddisk boot system, partisi sewaktu installasi saya biarkan system yang mengaturnya. Jadi tidak ada partisi khusus cache pada harddisk boot, hanya folder untuk cache saja yang saya buat.

Pertama-tama (jika fresh install), saya install dulu nano-editor

# cd /usr/ports/editors/nano
# make clean install

Tunggulah beberapa saat, ini mengambil paket dari internet dan mengcompile paket nano.

Jika sudah, aktifkan ssh untuk root login, jika memang membutuhkan root di SSH.

# nano /etc/ssh/ssh_config
# nano /etc/ssh/sshd_config

Lalu tambahkan ini ke file ssh_config & sshd_config

PermitRootLogin yes
PasswordAuthentication yes
AllowUsers root
Port 22

jangan lupa di restart service ssh nya:

# service sshd restart

Jika tidak tampak pesan error, anda sudah bisa meremote ssh mesin freebsd ini. Saatnya berpindah dari monitor mesin freebsd ke ruangan lain 😀

yang bener5

Lalu saatnya squid di install. Pada fbsd 9, di dalam /usr/ports ada terdapat 2 versi squid; 3.1 dan 3.2. Saya pilih yang 3.1 saja 😀 untuk itu; install squid 3.1 dengan cara ports:

# cd /usr/ports/www/squid31
# make clean install

Pastikan SQUID_PF dan SQUID_AUFS dipilih, karena saya membutuhkan delaypools, saya cek delay-pool juga. Pilih tombol {OK} lalu {enter} untuk memulai. Proses compile agak lama; jadi harap sabar. Karena metode ini mengcompile dari file source — bukan mengunduh file binari. Jika sudah terlanjur enter, tekan {ctrl-c} lalu ketik ‘make config’ untuk kembali ke menu awal konfigurasi.

freebsd squid install 002 freebsd squid install 001

Karena saya memiliki 1 harddisk lagi yang belum di partisi dan di format, untuk itu saya siapkan dulu harddisk tsb untuk tempat penampungan cache.

# mkdir /squid
# mkdir /squid/cache1
# mkdir /squid/cache2
# mkdir /squid/log
# chown -R squid:squid /squid

Contoh direktori diatas bisa menimbulkan masalah sekuriti, harap jangan ditiru 😀

Lalu list saja daftar harddisk pada mesin:

# dmesg | grep ata
# dmesg | grep scsi
# dmesg | grep ide

Pilih saja, yang mana sesuai dengan controller disk di mesin. Pada controller scsi link harddisk ada di /dev/daXX. Untuk IDE /dev/adXX. Misalnya /dev/da0p2 artinya harddisk scsi urutan 1 partisi 2; dsb dsb.

Untuk partisi harddisk tambahan, ada 2 cara. Bisa memakai cli gparted atau ‘sysinstall’. Saya akan memakai cara kedua, karena lebih gui walaupun text-mode 😀

Ketikkan sysinstall pada prompt lalu pilih ‘configure’ — Partition. Tekan {a} (untuk memakai semua kapasitas harddisk). Setelah itu tekan {q} untuk keluar. pilih NONE pada bootloader. lalu Pilih kembali dibawah partition yaitu Label (Format disk).

freebsd squid install 003freebsd squid install 004freebsd squid install 005

Pada menu LABEL — tekan {C} untuk menformat partisi. Lalu pilih FS. Masukkan mount point /squid/cache2. Tekan {W} {yes} untuk proses formating. Diakhiri dengan {Q} untuk keluar ke menu.

freebsd squid install 008.pgfreebsd squid install 008.pg freebsd squid install 009

Lakukan tes baca tulis dulu untuk memastikan 😀

# cd /squid/cache2
# echo tes tulis>tes.txt
# tail tes.txt

cari tahu dulu apa simbolik link untuk harddisk tambahan. dengan menggunakan:

# df -h

Filesystem Size Used Avail Capacity Mounted on
/dev/da0p2 16G 2.9G 12G 19% /
devfs 1.0k 1.0k 0B 100% /dev
/dev/da1s1 36G 17M 33G 0% /squid/cache2

/dev/da1s1 adalah partisi yang dibuat untuk cache2 oleh sysinstall diatas.

Selanjutkan buat mount point tsb aktif saat boot.

# nano /etc/fstab

Lalu isikan  pada akhir file. Ini belum tentu sama pada setiap mesin freebsd.

/dev/da1s1 /squid/cache2 ufs rw 1 1

Save dengan menekan tombol {ctrl-x} {y} {enter}

Sekarang saatnya mengkonfigurasi squid 3.1 ini. File config ada di /usr/local/etc/squid/squid.conf

# nano /usr/local/etc/squid/squid.conf

acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 8443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access deny all http_port 3128 transparent http_port 8080 #untuk yang manual seting. #hanya contoh saja. gunakan calculator squid untuk lebih pastinya cache_dir ufs /squid/cache1 1000 16 256 cache_dir ufs /squid/cache2 15000 16 256 cache_mem 64 MB #brp MB? squid bisa menggunakan ram fisik. visible_hostname squidproxy.freebsd.local cache_mgr sibewok@dimana.aja cache_access_log none #saya tidak memerlukan log, jadi saya disabled. #cache_access_log /squid/log/access.log #enable yg ini kalau butuh log akses cache_log /squid/log/cache.log cache_store_log /squid/log/store.log coredump_dir /squid/cache2 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern . 0 20% 4320 refresh_pattern -i .gif$ 10080 100% 43200 refresh_pattern -i .jpg$ 10080 100% 43200 refresh_pattern -i .jpeg$ 10080 100% 43200 refresh_pattern -i .png$ 10080 100% 43200 refresh_pattern -i .bmp$ 10080 100% 43200 refresh_pattern -i .mid$ 10080 100% 43200 refresh_pattern -i .wav$ 10080 100% 43200 refresh_pattern -i .mp3$ 10080 100% 43200 refresh_pattern -i .swf$ 10080 100% 43200 refresh_pattern -i .zip$ 10080 100% 43200 refresh_pattern -i .rar$ 10080 100% 43200 refresh_pattern -i .msu$ 10080 100% 43200 refresh_pattern -i .msi$ 10080 100% 43200 refresh_pattern -i .flv$ 10080 100% 43200 refresh_pattern -i .exe$ 10080 100% 43200 dns_nameservers 192.168.30.1 8.8.8.8 #dns squid secara manual. cache_effective_user squid cache_effective_group squid maximum_object_size_in_memory 32 KB maximum_object_size 93000 KB #kalau sering ada updatean s/w utk client bisa diperbesar. connect_timeout 133 seconds request_timeout 3 minutes #tambahakan url yg dilarang disini acl dilarang dstdomain .milf.com .redtube.com http_access deny dilarang read more

Installasi FreeBSD 9.1 beserta konfigurasi dasar

Kali ini saya membahas installasi FreeBSD 9 sang pangeran dari dinasti UNIX. Untuk itu silakan unduh ISO dari www.freebsd.org. Saya mengunduh versi 9.1 x86, yang ukuran .iso nya hampir 700mb.

Yak langsung saja burn dan masukan ke drive, atau via virtual box –masukan iso nya.

Awal booting; sambutan boot-splashnya sangat sederhana. Benar-benar mencirikan operating system untuk network.

freebsd 9.1 inst -- 0001Tekan enter atau tekan 1, untuk melanjutkan installasi.

Setelah muncul tulisan aneh-aneh untuk beberapa saat, akan muncul tampilan biru seperti ini, sebagai tanda ‘selamat datang’ di proses installasi. read more

membuat router-firewall sederhana dengan Monowall x86

Mengapa monowall? tidak pfsense sekalian? hmmm Saya pernah mengalami kasus unik. Router hardware saya kebetulan rusak. Dan besok server musti UP dengan konfigurasi yang boleh dilakukan di level router. Untuk penggantian router hardware setidaknya butuh beberapa hari. Mulai dari request, pembelian, pembuatan surat izin masuk ke IDC dll. Dan itupun kalau mendapatkan merek dan jenis yang sama. Kalau barang baru, terpaksa meraba-raba dulu.

Untung saya pernah membaca artikel tentang monowall, yang dikhususkan untuk firewall dan routing. Tanpa ada embel-embel IDS, Proxy dll. Cocok sekali yang saya cari. Langsung saya unduh monowall dari situs mirror nya di http://m0n0.ch/wall/download.php?file=cdrom-1.34.iso yang hanya sebesar <18 mb 😀 Lalu saya unduh juga Sun Virtualbox  (sekarang Oracle VirtualBox), yang ukuran installer-nya lebih besar. Vbox bisa di unduh dari sini https://www.virtualbox.org/wiki/Downloads. Installasi Vbox seperti installasi software-software biasa, dan butuh RESTART OS 🙁 read more