Instalasi dan Konfigurasi FreeBSD Lighttpd Plus Mod OpenSSL

· 2 min read

Lighttpd adalah server web yang ringan, efisien, tangguh, dan serbaguna yang menonjol di antara banyak perangkat lunak server web lainnya seperti NGIN

Server web yang didistribusikan di bawah lisensi BSD ini termasuk salah satu server web yang paling ringan, aman, dan cepat. Lighttpd sangat andal dalam lingkungan berkinerja tinggi dengan jumlah memori yang kecil dibandingkan dengan server web lainnya, dan berfungsi untuk mengelola beban CPU secara efektif dari serangkaian fungsi yang diperluas seperti SCGI, Output-Compression, Auth, FastCGI, URL Rewriting, dan banyak lainnya.

Bagi pengguna yang mengalami beban kerja saat mengoperasikan server web, Lighttpd merupakan solusi ideal untuk server yang mengalami masalah beban kerja. Lighttpd merupakan alternatif yang hebat untuk server web Nginx dan Apache yang banyak digunakan. Karena Lighttpd merupakan server web sumber terbuka yang ringan yang dioptimalkan untuk lingkungan berkecepatan tinggi dan penggunaan sumber daya yang rendah sehingga mengurangi kinerja CPU.

Dalam proses server web, Anda pasti sudah tahu bahwa beberapa situs memproses ribuan file secara paralel, sehingga diperlukan memori dalam jumlah besar dan jumlah maksimum utas atau proses juga tinggi.

Untuk mengatasi masalah ini, Dan Kegel telah merinci masalah dalam memproses ribuan permintaan bersamaan di halaman masalah C10K miliknya. Pada tahun 2003, seorang pengembang MySQL asal Jerman bernama Jan Kneschke mulai tertarik dengan masalah ini dan memutuskan bahwa ia dapat menulis server web yang lebih cepat daripada Apache, dengan berfokus pada teknik yang tepat.

Kemudian Jan Kneschke merancang lighttpd sebagai proses tunggal dengan satu utas dan I/O non-pemblokiran. Lighttpd juga menggunakan pengendali peristiwa tercepat pada sistem target polling, epoll, kqueue, atau /dev/polling. Lighttpd lebih menyukai panggilan sistem yang tidak terhubung seperti sendfile daripada membaca dan menulis. Hasil jerih payahnya adalah, dalam beberapa bulan, lighttpd mulai memproses berkas statis lebih cepat daripada Apache.

Dalam artikel ini, Anda akan mempelajari cara menginstal dan mengonfigurasi Lighttpd pada server FreeBSD. Tidak hanya itu, untuk meningkatkan keamanan server web Lighttp, kami juga telah menambahkan mode Openssl ke konten artikel ini.

Spesifikasi sistem

OS: FreeBSD 13.2 Stable
Hostname: ns5
IP Address: 192.168.5.2
Domain: datainchi.com
Lighttpd version: lighttpd/1.4.67 (ssl) - a light and fast webserver

A. Proses Instal Lighttpd

Seperti yang Anda ketahui, pada server FreeBSD terdapat dua cara untuk menginstal masing-masing aplikasi, yaitu sistem port dan paket PKG. Khusus untuk instalasi Lighttp, kami lebih memilih menggunakan sistem port, karena dapat membangun semua library yang dibutuhkan Lighttpd.

Sebelum memulai proses instalasi Lighttpd, Anda terlebih dahulu menginstal dependensi Lighttpd, yaitu "Build dependencies" dan "Library dependencies". Berikut cara menginstal dependensi tersebut.
root@ns5:~ # pkg install cmake-core ninja pkgconf
Perintah di atas digunakan untuk menginstal "Build dependencies". Sekarang kita menginstal "Library dependencies" yang akan digunakan Lighttpd.
root@ns5:~ # pkg install pcre2 nettle lua54
Kita sudah menginstal semua dependensi, kita lanjutkan dengan menginstal Lighttpd.
root@ns5:~ # cd /usr/ports/www/lighttpd
root@ns5:/usr/ports/www/lighttpd # make config
Dalam perintah "make config", Anda harus mengaktifkan beberapa opsi, karena kita akan menggunakan mod OpenSSL, aktifkan opsi "OPENSSL".


menu instalasi lighttpd


Gunakan perintah "make install clean" untuk memulai proses instalasi.
root@ns5:/usr/ports/www/lighttpd # make install clean

B. Buat Start Up rc.d

Anda tentu tidak ingin setiap aplikasi dijalankan secara manual. Apa jadinya jika Lighttpd dijalankan secara manual, tentu akan sangat merepotkan. Berikut ini adalah cara agar Lighttpd dapat berjalan otomatis di server FreeBSD Anda.

Linux memiliki systemd untuk membuat aplikasi berjalan otomatis, sedangkan FreeBSD memiliki rc.d. Agar Lihttpd Anda dapat berjalan otomatis, buka file "/etc/rc/conf" dan ketik perintah di bawah ini di dalam file tersebut.

lighttpd_enable="YES"
lighttpd_conf="/usr/local/etc/lighttpd/lighttpd.conf"
lighttpd_pidfile="/var/run/lighttpd.pid"
lighttpd_instances=""

Dalam skrip di atas, berkas konfigurasi Lighttpd berada di folder "/usr/local/etc/lighttpd", dengan nama berkas konfigurasi "lighttpd.conf".

Anda dapat menjalankan Lighttpd dengan perintah berikut.
root@ns5:~ # service lighttpd restart

C. Konfigurasi Lighttpd

Berkas konfigurasi utama Lighttpd adalah "/usr/local/etc/lighttpd/lighttpd.conf", Anda membuka berkas tersebut dan mengedit skrip yang Anda perlukan saja. Untuk mengaktifkan port privat dan alamat IP, aktifkan skrip di bawah ini.

server.port = 80
server.use-ipv6 = "disable"
server.bind = "192.168.5.2"
server.username  = "www"
server.groupname = "www"
server.document-root = "/usr/local/www" + "/data"
server.pid-file = state_dir + "/lighttpd.pid"

Bagi Anda yang baru mengenal Lighttpd, konfigurasi "log" penting, karena sering kali banyak hal yang gagal atau Lighttpd tidak berjalan, karena konfigurasi "log" yang salah. Ikuti skrip di bawah ini untuk mengonfigurasi "log".

server.errorlog-use-syslog = "enable"
include conf_dir + "/conf.d/debug.conf"

Konfigurasi log di atas akan memberikan hak istimewa LightTPD untuk mengelola log-nya sendiri.

Sering kali ketika menjalankan LightTPD muncul pesan kesalahan seperti berikut.

2024-01-15 10:31:51: (configfile.c.1287) WARNING: unknown config-key: dir-listing.encoding (ignored)
2024-01-15 10:31:51: (configfile.c.1287) WARNING: unknown config-key: dir-listing.exclude (ignored)

Untuk mengatasi hal ini, Anda dapat mengaktifkan opsi "dir-listing.activate" di file "/usr/local/etc/lighttpd/lighttpd.conf".

include conf_dir + "/conf.d/dirlisting.conf"
dir-listing.activate = "enable"

Sekarang Anda menjalankan Lighttpd.
root@ns5:~ # service lighttpd restart
Performing sanity check on lighttpd configuration:
Stopping lighttpd.
Waiting for PIDS: 12730.
Starting lighttpd.
Anda dapat melihat skrip lengkap untuk berkas "/usr/local/etc/lighttpd/lighttpd.conf" di Github unixwinbsd.

Semua data Lighttpd disimpan di folder "/usr/local/www/data". Buat berkas index.html dan ketik skrip yang Anda unduh di Github unixwinbsd.
root@ns5:~ # cd /usr/local/www
root@ns5:/usr/local/www # mkdir -p data
root@ns5:/usr/local/www # cd data
root@ns5:/usr/local/www/data # touch index.html
root@ns5:/usr/local/www/data # chown -R www:www /usr/local/www/data/

D. Buat Mod Openssl

Fungsi utama enkripsi adalah mengubah komunikasi teks biasa menjadi teks sandi yang tidak dapat dibaca oleh pihak yang tidak berwenang. Semua data pengguna yang sensitif seperti kredensial login dan informasi pribadi dienkripsi sebelum dikirim melalui jaringan. Kemudian hanya penerima dengan kunci dekripsi yang benar yang dapat mengakses situs web.

Secara umum server web memiliki dua protokol enkripsi utama yang digunakan pada situs web yaitu:
  • SSL: Secure Sockets Layer.
  • TLS: Transport Layer Security (pengganti SSL).
Lighttpd juga memiliki kemampuan enkripsi yang sangat canggih. Ada banyak cara untuk mengenkripsi server web. Dalam artikel ini kita hanya membahas cara mengenkripsi dengan OpenSSL.

Sebagai langkah awal kita akan Generate Private Keys dan CSR. Kita akan menyimpan file private key dan CSR pada direktori di FreeBSD, yaitu /etc/ssl. Aktifkan direktori tersebut dan jalankan perintah di bawah ini.
root@ns5:~ # cd /etc/ssl
root@ns5:/etc/ssl # openssl genrsa -out /etc/ssl/unixwinbsd.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
....................................................................................................................................................++++
.........................++++
e is 65537 (0x010001)
Untuk keamanan yang lebih baik, tetapkan izin file terbatas ke 400 atau 600.
root@ns5:/etc/ssl # chmod 400 /etc/ssl/unixwinbsd.key
Langkah selanjutnya adalah membuat file .csr yang menyediakan detail domain/organisasi yang diperlukan tentang situs web Anda.
root@ns5:/etc/ssl # openssl req -new -sha256 -key /etc/ssl/unixwinbsd.key -out /etc/ssl/unixwinbsd.csr
Tandatangani berkas CSR Anda.
root@ns5:/etc/ssl # openssl x509 -req -days 365 -in unixwinbsd.csr -signkey unixwinbsd.key -out unixwinbsd.crt
Signature ok
Gabungkan sertifikat utama, sertifikat perantara, dan kunci privat menjadi satu.
root@ns5:/etc/ssl # cat unixwinbsd.crt unixwinbsd.key > unixwinbsd-ssl.pem
Setelah Anda berhasil membuat sertifikat SSL, edit file konfigurasi Lighttpd, yaitu "/usr/local/etc/lighttpd/lighttpd.conf".

Ketik skrip di bawah ini untuk mengaktifkan OpenSSL di Lighttpd.

server.modules += ( "mod_openssl" )
ssl.pemfile = "/etc/ssl/unixwinbsd-ssl.pem"

   $SERVER["socket"] == "*:443" {
     ssl.engine  = "enable"
   }


E. Test Lighttpd

Sebagai langkah terakhir dalam konfigurasi di atas, kami melakukan pengujian, jalankan server web Lighttpd terlebih dahulu dengan perintah berikut.
root@ns5:/etc/ssl # service lighttpd restart
Jika dengan perintah di atas, terjadi kesalahan pada file SSL, karena Lighttpd sering kali lambat dalam merespons file SSL yang Anda buat, untuk menghindarinya, Anda dapat mengulangi perintah tersebut.
root@ns5:/etc/ssl # openssl x509 -req -days 365 -in unixwinbsd.csr -signkey unixwinbsd.key -out unixwinbsd.crt
root@ns5:/etc/ssl # cat unixwinbsd.crt unixwinbsd.key > unixwinbsd-ssl.pem
Sekarang Anda membuka peramban web Google Chrome, pada menu bilah alamat ketik "http://192.168.5.2" atau "https://192.168.5.2". Hasilnya akan tampak seperti gambar di bawah ini.


Test-Results lighttpd



Kesimpulannya, Lighttpd adalah server web yang ringan, efisien, tangguh, dan serbaguna yang menonjol di antara banyak perangkat lunak server web lainnya seperti NGINX dan Apache. Arsitekturnya yang berbasis peristiwa, fitur-fitur canggih, dan fokus pada keamanan menjadikannya pilihan yang sangat baik untuk menyajikan konten web di berbagai lingkungan.
Subscribe on LinkedIn Instalasi dan Konfigurasi FreeBSD Lighttpd Plus Mod OpenSSL

Enclosures Link: Instalasi dan Konfigurasi FreeBSD Lighttpd Plus Mod OpenSSL

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar