untuk mempublikasikan informasi apa pun kepada publik melalui internet atau intranet tentang
apa saja, baik oleh individu, kelompok, lembaga pemerintahan, perusahaan, dan lain-lain. Web
server umumnya tidak berdiri sendiri, namun ada aplikasi yang mendukungnya, semacam PHP,
OpenSSL, dan lain sebagainya. Salah satu aplikasi yang sudah sangat populer adalah Apache
HTTP Server. Aplikasi ini mulai dirilis ke publik sejak tahun 1995. Web server yang
menggunakan aplikasi Apache di seluruh dunia saat ini berdasarkan survei Netcraft Web Server
Survey pada November 2006 saja sudah lebih dari 60% dari total 101,435,253 situs.
Proyek Apache HTTP Server ini merupakan proyek open-source yang dikembangkan oleh
Apache Software Foundation. Lembaga ini bertujuan mengembangkan Apache sebagai aplikasi
web server modern yang bisa dipergunakan di multi platform OS, khususnya Unix dan
Windows.
Saya tidak akan membahas sejarah perkembangan Apache ini secara rinci. Untuk mengetahui
lebih lengkap perkembangannya silakan kunjungi About the Apache HTTP Server Project.
Dalam artikel ini, saya tidak hanya membahas Apache secara khusus saja, namun juga beberapa
aplikasi yang umum dipergunakan bersama aplikasi ini, seperti OpenSSL, MySQL, dan PHP.
1. Download
Aplikasi yang dipergunakan dalam artikel ini adalah Apache versi 2.2.3, MySQL versi 5.0.22,
OpenSSL versi 0.9.8d, dan PHP versi 5.2.0.
Dari semua aplikasi di atas, hanya Apache dan PHP yang akan diinstall secara manual, sedang
MySQL dan OpenSSL diinstall via ports. Jadi yang akan didownload secara manual hanya
Apache dan PHP.
2. Instalasi
Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan
OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
$ cd /usr/ports/database/mysql51-server
$ sudo make install
$ sudo portupgrade -rR mysql51-server
mysql_enable = “YES”
Bila berhasil, seharusnya Anda akan melihat baris berikut saat menjalankan command ps ax |
grep mysql:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \q
Bye
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini
menggunakan ports juga.
$ cd /usr/ports/security/openssl
$ sudo make install clean
$ cd /usr/local/openssl
$ sudo /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
$ cd /home/users
$ tar -jxvf httpd-2.2.3.tar.bz2
$ cd httpd-2.2.3
$ ./configure \
–prefix=/usr/local/apache2 \
–enable-rewrite \
–enable-dav \
–enable-ssl \
–with-ssl=/usr/local \
–enable-vhost-alias \
–with-included-apr
$ make
$ sudo make install
Sebelum Anda menginstalasi PHP, saya sarankan untuk menginstall aplikasi-aplikasi via ports
yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
Saya asumsikan pula, source PHP yang Anda download disimpan di /home/users.
$ cd /home/users
$ tar -jxvf php-5.2.0.tar.bz2
$ cd php-5.2.0
$ ./configure \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-mysql=/usr/local \
–with-openssl=/usr/local \
–with-config-file-path=/usr/local/apache2/conf \
–with-png-dir=/usr/local/lib \
–with-gettext=/usr/local/lib \
–with-gd \
–with-zlib \
–with-xml \
–with-mcrypt=/usr/local/lib \
–enable-mbstring=all \
–disable-short-tags
$ make
$ make install
Edit file /usr/local/apache2/conf/php.ini dan sesuaikan dengan kebutuhan Anda. Pada dasarnya
default file konfigurasi ini sudah cukup baik.
Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori
PHP yang hanya akan mengijinkan akses kepada user root dan www saja.
<IfModule !mpm_netware_module>
User www
Group www
</IfModule>
ServerAdmin hostmaster@namadomain.com
ServerName www.namadomain.com:80
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi
</IfModule>
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
$ cd /usr/local
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel
dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan
mengeksekusi file-file di bawahnya.
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat
membaca dan menulisinya dengan mengubah permission menjadi:
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori
apache2:
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh
group www.
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti
merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses
penulisan ke direktori ini hanya dibatasi kepada user root saja.
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar
dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori
/usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script
apache2_enable=”YES”
apache2_flags=”-DSSL”
$ ps ax | grep httpd
33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL
33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL
33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL
33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSL
Bila output di console Anda sudah seperti di atas, selamat! Anda sudah berhasil menginstall web
server pada server Anda.
3. Referensi
1. http://www.bowe.id.au/michael/isp/webmail-server.htm#MYSQL
2. http://httpd.apache.org/docs/2.2/
3. http://www.google.co.id
Dalam artikel kali ini, saya akan mengemukakan langkah-langkah instalasi mail server dengan
Postfix yang diintegrasikan dengan MySQL. Artikel ini erat juga kaitannya dengan artikel
sebelumnya yaitu Membangun Web Server di FreeBSD. Namun, langkah-langkah instalasi pada
artikel di sini tidak hanya dibatasi kepada pengguna FreeBSD lagi, tapi juga bisa diaplikasikan
pada platform Unix lain, tentu dengan penyesuaian seperlunya.
Catatan: Pada beberapa langkah di dalamnya, saya menggunakan script untuk BSD saja dan
fasilitas ports pada BSD family, sehingga bagi Anda yang menggunakan Linux, bisa
menggunakan RPM source maupun tar.gz source dan mencari script-script yang sesuai dengan
kebutuhan pada Linux server.
Postfix adalah sebuah program pengirim email yang ditulis oleh Wietse Venema, yang mulai
menjadi alternatif lain terhadap dominasi penggunaan Sendmail. Postfix berusaha menjadi
program yang cepat, mudah dikelola, dan aman, di mana juga harus cukup sesuai dan cocok
dengan Sendmail sehingga tidak mengecewakan penggunanya. Maka dari itu, jika dilihat sekilas
dari luar nampak mirip seperti Sendmail, tapi di dalam semuanya berbeda.
Di sini kita tidak akan membahas perbedaannya, tetapi lebih menekankan kepada cara atau
langkah-langkah yang dilakukan ketika menginstalasinya.
Sebelum melakukan instalasi mail server Postfix, ada beberapa aplikasi pendukung yang harus
didownload dan diinstalasi dengan baik dan benar. Aplikasi tersebut adalah:
1. MySQL
2. OpenSSL
3. Cyrus-SASL
Cara instalasi dua aplikasi pertama, MySQL dan OpenSSL sudah saya sampaikan pada artikel
sebelumnya. Silakan dilihat kembali pada artikel tersebut. Jadi, di sini hanya akan menginstall
Cyrus-SASL.
Cyrus SASL adalah paket yang berisi sebuah Simple Authentication and Security Layer dan
merupakan metode yang dipergunakan untuk menambahkan dukungan autentikasi ke
connection-based protocol. Untuk menggunakan SASL, sebuah protocol menyertakan sebuah
perintah agar mengidentifikasi dan menerima autentikasi user pada suatu server atau dengan kata
lain, menegosiasikan interaksi proteksi protocol secara berurutan, sehingga sebuah layer security
akan disisipkan antara protocol dan koneksinya.
HTTP Server :
http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
FTP Server :
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
$ wget http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
$ tar -zxf cyrus-sasl-2.1.22.tar.gz
$ cd cyrus-sasl-2.1.22
$ CPPFLAGS=”-I/usr/local/include/mysql” \
./configure \
–enable-anon \
–enable-plain \
–enable-login \
–disable-krb4 \
–enable-otp \
–enable-cram \
–enable-digest \
–enable-sql \
–with-mysql=/usr/local/lib/mysql \
–with-pam \
–with-saslauthd=/var/run/saslauthd \
–with-dblib=berkeley \
–with-bdb-libdir=/usr/local/lib \
–with-bdb-incdir=/usr/local/include \
–with-openssl=/usr/local \
–with-plugindir=/usr/local/lib/sasl2
$ make
$ sudo make install
Sampai langkah ini, langkah pra instalasi Postfix sudah selesai. Saya tidak akan
mengikutsertakan penjelasan mengenai opsi-opsi instalasi di atas, karena pembahasan artikel ini
cukup panjang.
Release versi stable Postfix saat artikel ini ditulis adalah Postfix versi 2.3.4. Source terakhir
dapat didownload di http://www.postfix.org. Postfix akan kita install dengan dukungan MySQL
dan SSL/TLS. Jadi, pastikan aplikasi-aplikasi pendukungnya sudah terinstall dengan baik.
$ wget ftp://mirror.cbn.net.id/pub/postfix-release/official/postfix-2.3.4.tar.gz
$ tar -zxf postfix-2.3.4.tar.gz
$ cd postfix-2.3.4
$ make tidy
$ make makefiles ‘CCARGS=-DHAS_MYSQL \
-I/usr/local/include/mysql -DUSE_SASL_AUTH \ -DUSE_CYRUS_SASL \
-I/usr/local/include/sasl -I/usr/local/include/db44 \
-DUSE_TLS -I/usr/local/include/openssl’ \
‘AUXLIBS=-L/usr/local/lib/mysql -lmysqlclient \
-lz -lm -L/usr/local/lib -lsasl2 -L/usr/local/lib/db44 -ldb \
-L/usr/local/lib/openssl -lssl -lcrypto -lpthread’
Catatan: Untuk postfix 2.3.x ke atas bila menggunakan autentikasi SASL harus menyertakan opsi
-DUSE_CYRUS_SASL
Kemudian cek library yang disupport oleh Postfix, apakah sudah sesuai dengan kebutuhan kita.
$ ldd /usr/libexec/postfix/smtpd
a. Install program expect dari ports, ini berfungsi untuk mengubah password via web.
b. Download source file di http://www.courier-mta.org/?download.php~authlib
c. Ekstrak source, tar -jxf courier-authlib-0.58.tar.bz2
d. cd courier-authlib-8.58
d. Compile:
$ ./configure \
–with-mysql-libs=/usr/local/lib/mysql \
–with-mysql-includes=/usr/local/include/mysql \
–with-authmysql \
–with-authmysql=yes \
–with-mailuser=vmail \
–with-mailgroup=postfix
$ make
$ sudo make install
$ CPPFLAGS=”-I/usr/local/include” \
./configure \
–prefix=/usr/local/courier-imap \
–enable-workarounds-for-imap-client-bugs \
–with-authchangepwdir \
–enable-unicode \
–with-trashquota \
–with-ssl=/usr/local
$ make
$ sudo make install
Sampai langkah di atas, SSL belum terkompilasi dengan Courier IMAP. Agar Courier IMAP
support SSL maka lakukan langkah-langkah berikut:
$ cd <courier-source-dir>/tcpd
$ make distclean
$ export LD_RUN_PATH=${LD_RUN_PATH}:/usr/local/lib
$ export C_INCLUDE_PATH=${C_INCLUDE_PATH}:/usr/local/lib
$ export LDFLAGS=”${LDFLAGS} -L/usr/local/lib -Wl,–rpath=/usr/local/lib”
$ export CC=”gcc -L/usr/local/lib -Wl,–rpath=/usr/lib”
$ ./configure
$ make couriertls
$ sudo cp ./couriertls /usr/local/courier/bin
Perintah-perintah di atas akan menginstalasi TLS interface courier dengan support SSL.
Kemudian buatlah SSL certificate dengan menjalankan:
$ /usr/local/courier/share/mkimapdcert
$ make
$ sudo make instal
Sebelum menginstalasi SpamAssassin terlebih dahulu install beberapa perl module yang
diperlukan berikut.
$ sudo perl -MCPAN -e shell
$ cd /usr/ports/mail/razor-agents
$ sudo make install
$ cd ~/
$ wget http://apache.mirror.pacific.net.au/spamassassin/source/Mail-SpamAssassin-
3.1.3.tar.gz
$ perl Makefile.PL
#[pertanyaan, silakan dijawab sesuai keperluan]
Pada saat proses di atas mungkin ada beberapa perl module opsional yang diperlukan, install bila
belum tersedia (ingat module-module tersebut hanya opsional saja). Setelah selesai lakukan:
$ make
$ sudo make install
$ cd /usr/ports/mail/p5-Mail-SpamAssassin
$ sudo make install
Akan muncul windows baru untuk memilih opsi-opsi yang diinginkan. Karena saya mensupport
SPF dan dan DomainKeys saya aktifkan dua opsi tersebut.
## Enable auto-whitelisting
use_auto_whitelist 1
####
# WILL HAVE NO EFFECT. THE EQUIVALENT SETTINGS IN AMAVISD ARE THE
ONES YOU NEED TO SET
#
# ## Required point score before considered spam
# required_score 5
#
#
# ## What to tag the subject line with
# rewrite_header Subject [SPAM]
#
# ## Put the report in the headers. Dont touch the body of the message at all
# report_safe 0
## Give spamassassin some hints as to what IPs are under our control.
## Generally this will be a similar list to what you have put in the postfix mynetworks file
trusted_networks 127.0.0.1 # needed so amavisd headers don’t trip up spamassassin
trusted_networks 192.168.1.0/24 # you need to include all the IPs your mail server, and local
LAN workstation
… bersambung