0% menganggap dokumen ini bermanfaat (0 suara)
1 tayangan83 halaman

How To

Dokumen ini memberikan panduan lengkap tentang cara menginstal dan mengkonfigurasi FTP Server menggunakan vsftpd pada Scientific Linux 6. Prosedur mencakup pemeriksaan instalasi, instalasi melalui internet atau file rpm, konfigurasi file vsftpd.conf, dan pengaturan firewall untuk mengizinkan akses FTP. Selain itu, terdapat penjelasan tentang pengaruh SELinux terhadap akses direktori home pengguna dan cara mengatasinya.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1 tayangan83 halaman

How To

Dokumen ini memberikan panduan lengkap tentang cara menginstal dan mengkonfigurasi FTP Server menggunakan vsftpd pada Scientific Linux 6. Prosedur mencakup pemeriksaan instalasi, instalasi melalui internet atau file rpm, konfigurasi file vsftpd.conf, dan pengaturan firewall untuk mengizinkan akses FTP. Selain itu, terdapat penjelasan tentang pengaruh SELinux terhadap akses direktori home pengguna dan cara mengatasinya.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Daftar Isi

Bab.1 Instalasi FTP Server........................................................................................2


Bab.2 Instalasi DHCP Server....................................................................................9
Bab.3 Instalasi DNS Server.....................................................................................16
Bab.4 Instalasi Dynamic DNS dan DHCP..............................................................28
Bab.5 Instalasi Apache Web Server........................................................................34
Bab.6 Instalasi Database Server MySQL................................................................42
Bab.7 Instalasi WordPress.......................................................................................51
Bab.8 Instalasi Proxy Server SQUID......................................................................55
Bab.9 Instalasi Postfix dan Dovecot........................................................................66
Bab.10 Instalasi Squirrelmail....................................................................................75
Kumpulan How To 2

Bab.1 Instalasi FTP Server

Berikut ini adalah prosedur instalasi FTP Server menggunakan vsftpd pada distro Scientific
Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6 (RHEL).
Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga dengan
Red Hat.

vsftpd adalah salah satu FTP Server yang mudah diinstall dan memiliki fitur keamanan yang
cukup baik. Selain itu vsftpd dengan mudah dapat dari repository masing-masing distro.

Tahap pertama periksa dahulu apakah vsftpd sudah terinstalasi pada komputer anda dengan
menggunakan perintah (sebagai root) seperti terlihat di bawah ini :

[root@sl6 ~]# yum list vsftpd


Loaded plugins: refresh­packagekit
Available Packages
vsftpd.i686 2.2.2­6.el6_0.1 sl­security
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep vsftp


[root@sl6 ~]#

Bagian pertama anda lakukan bila komputer anda terhubung ke internet. Bila komputer anda
tidak terhubung ke internet maka pergunakan perintah pada bagian kedua.

Apabila tampilan yang anda dapatkan seperti pada gambar diatas maka hal itu berarti vsftpd
belum terinstall pada komputer anda. Untuk melakukan instalasi bila komputer anda tidak
terhubung ke internet maka anda harus mencari dulu file rpm dari vsftpd. Copykan lah file
tersebut ke dalam salah satu directory di komputer anda. Misalkan sebagai root anda copy
kan file tersebut ke dalam directory /root seperti tampak pada gambar di bawah ini :

[root@sl6 ~]# ls ­l
total 220
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
­rw­r­­r­­. 1 root root 157624 Nov 25 04:08 vsftpd­2.2.2­[Link]
[root@sl6 ~]#

Bila anda sudah mengcopykan seperti tampak pada gambar diatas selanjutnya untuk
melakukan instalasi anda tinggal memberikan perintah seperti berikut ini :

[root@sl6 ~]# rpm ­ivh vsftpd­2.2.2­[Link]


Kumpulan How To 3

warning: vsftpd­2.2.2­[Link]: Header V4 DSA/SHA1 Signature, key ID


192a7d7d: NOKEY
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@sl6 ~]#

Bila komputer anda terhubung ke internet secara langsung maka anda tidak perlu mencari dan
mengcopy file [Link] terlebih dahulu. Anda langsung dapat melakukan
instalasi dengan memberikan perintah :

[root@sl6 etc]# yum install vsftpd


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package vsftpd.i686 0:2.2.2­6.el6_0.1 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
vsftpd i686 2.2.2­6.el6_0.1 sl­security 154 k

Transaction Summary
==============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 154 k


Installed size: 343 k
Is this ok [y/N]: y

Downloading Packages:
vsftpd­2.2.2­6.el6_0.[Link] | 154 kB 00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : vsftpd­2.2.2­6.el6_0.1.i686 1/1

Installed:
vsftpd.i686 0:2.2.2­6.el6_0.1

Complete!
[root@sl6 etc]#

Hasil dari instalasi ini kita akan mempunyai directory baru dalam directory etc yaitu
/etc/vsftpd yang isinya adalah sebagai berikut :
Kumpulan How To 4

[root@sl6 vsftpd]# ls ­l
total 20
­rw­­­­­­­. 1 root root 125 Mar 10 21:29 ftpusers
­rw­­­­­­­. 1 root root 361 Mar 10 21:29 user_list
­rw­­­­­­­. 1 root root 4494 Mar 10 21:29 [Link]
­rwxr­­r­­. 1 root root 338 Mar 10 21:29 vsftpd_conf_migrate.sh
[root@sl6 vsftpd]#

dan satu file script dalam directory /etc/init.d/ yaitu :

[root@sl6 init.d]# ls ­l vsftpd


­rwxr­xr­x. 1 root root 2824 Mar 10 21:29 vsftpd
[root@sl6 init.d]#

Selanjutnya sebelum menjalankan vsftpd kita perlu melakukan konfigurasi terlebih dahulu
dengan mengedit file [Link] yang terdapat dalam directory /etc/vsftpd.
Ada banyak sekali parameter yang dapat dikonfigurasi untuk vsftpd ini, default nya adalah
sebagai berikut :

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Konfigurasi di atas memfungsikan FTP Server untuk menerima user yang mempunyai
account pada komputer yang menjalankan FTP dan user yang login dengan username
anonymous. User yang mempunyai account dapat melakukan upload dan download
sedangkan anonymous user hanya diijinkan download saja.

Rincian dari semua parameter yang dapat dikonfigurasi dapat dibaca pada manual nya dengan
menggunakan perintah man [Link].

Untuk menjalankan FTP Server tersebut gunakan perintah :

[root@sl6 ~]# service vsftpd start


Starting vsftpd for vsftpd: [ OK ]
[root@sl6 ~]#

Untuk menghentikan gunakan perintah :


Kumpulan How To 5

[root@sl6 ~]# service vsftpd stop


Shutting down vsftpd: [ OK ]
[root@sl6 ~]#

Agar vsftpd ini selalu dijalankan setiap kali komputer dihidupkan dan juga sekaligus
dimatikan setiap kali komputer dimatikan maka buat konfigurasi nya permanen dengan
perintah :

[root@sl6 ~]# chkconfig vsftpd on


[root@sl6 ~]#

Dan periksa apakah konfigurasi nya benar aktif seperti terlihat pada tampilan di bawah ini :

[root@sl6 ~]# chkconfig ­­list vsftpd


vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 ~]#

Terlihat bahwa vsftpd akan aktif pada run level 2,3,4 dan 5.

Satu lagi yang perlu diperhatikan adalah apabila komputer yang menjalankan vsftpd ini
mengaktifkan Firewall dengan menggunakan iptables, maka iptables harus dikonfigurasi
untuk mengijinkan trafik network menuju vsftpd ini terbuka. Default filter yang dijalankan
untuk komputer yang tidak menjalankan service apapun biasanya adalah sebagai berikut :

[root@sl6 ~]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 09:31:24 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [50748:3067649]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 09:31:24 2011
[root@sl6 ~]#

Filter tersebut harus diubah dengan mengedit file /etc/sysconfig/iptables sehingga menjadi
seperti berikut ini (dengan menggunakan vim) :

# Firewall configuration written by system­config­firewall


# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
Kumpulan How To 6

­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT


­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 21 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT

Perhatikan baris yang ditambahkan pada file tersebut yaitu baris yang dicetak miring dan
tebal.

Selain mengedit file /etc/sysconfig/iptables ada satu file konfigurasi lagi yang harus diedit
yaitu file /etc/sysconfig/iptables-config. Konfigurasi ini diperlukan untuk menambahkan
“helper” pada iptables untuk menangani lalu lintas data FTP karena FTP agak sedikit berbeda
dalam melakukan komunikasi. FTP Server menggunakan dua port untuk komunikasi yaitu
port 21 untuk command dan satu port lagi untuk data yang ditentukan kemudian oleh karena
itu tidak dapat dikonfigurasi terlebih dahulu. Helper berfungsi untuk membuka port lain yang
diperlukan tersebut.

Dengan menggunakan editor vim tambahkan parameter pada baris seperti yang terlihat di
bawah ini :

# Load additional iptables modules (nat helpers)


# Default: ­none­
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/[Link].
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"

Perhatikan tambahan paramater pada tulisan yang dicetak tebal.

Setelah selesai menambahkan baris tersebut pada file /etc/sysconfig/iptables selanjutnya


aktifkan filter yang baru dengan menggunakan perintah :

[root@sl6 ~]# service iptables restart


iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
iptables: Loading additional modules: ip_conntrack_ftp ip_n [ OK ]
[root@sl6 ~]#

Perhatikan hasil keluaran perintah seperti gambar diatas terutama periksa apakah baris yang
berisi tulisan “Loading additional modules ..... “ tampak seperti pada gambar diatas.

Periksa sekali lagi apakah filter sudah membuka port 21 untuk FTP dengan menggunakan
perintah :
Kumpulan How To 7

[root@sl6 ~]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 09:51:50 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5125:291678]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 21 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 09:51:50 2011
[root@sl6 ~]#

Bila semua nya sudah benar seperti pada prosedur diatas kita test apakah ftp server kita
berfungsi dengan baik. Untuk itu pergunakan lah komputer lain untuk melakukan koneksi ftp
ke FTP Server kita seperti terlihat di bawah ini

[amir@pc1 ~]$ ftp [Link]


Connected to [Link] ([Link]).
220 (vsFTPd 2.2.2)
Name ([Link]:amir): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Contoh diatas adalah untuk ftp dengan anonymous user. Untuk anonymous user ini password
nya adalah e-mail address dari user tersebut. Kita akan mendapatkan prompt “ftp>” seperti
tampak pada gambar diatas

Selanjut nya kita coba untuk login ftp dengan user account yang ada, seperti terlihat pada
gambar berikut ini :

[amir@pc1 ~]$ ftp [Link]


Connected to [Link] ([Link]).
220 (vsFTPd 2.2.2)
Name ([Link]:amir): user
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/user
Login failed.
ftp>

Ternyata login dengan user yang sudah memiliki account (username nya : user) gagal. Ada
error dengan pesan kesalahan “500 OOPS : cannot change directory:/home/user ” walaupun
Kumpulan How To 8

password nya sudah benar.

Ternyata dalam hal ini ada pengaruh dari SELinux yang tidak membolehkan vsftpd
mengakses home directory user (hal ini terjadi bila SELinux diaktifkan, bila anda sudah
men-disable SELinux maka error ini tidak akan terjadi). Untuk membuka proteksi SELinux
gunakan perintah berikut ini (di server, bukan di client) sebagai root :

[root@sl6 ~]# setsebool ­P ftp_home_dir 1


[root@sl6 ~]#

Setelah itu bila kita coba lagi melakukan ftp dari client hasil nya dapat dilihat seperti berikut :

[amir@pc1 ~]$ ftp [Link]


Connected to [Link] ([Link]).
220 (vsFTPd 2.2.2)
Name ([Link]:amir): user
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,11,217,95).
150 Here comes the directory listing.
drwxr­xr­x 2 500 500 4096 May 08 22:24 Desktop
drwxr­xr­x 2 500 500 4096 May 08 22:24 Documents
drwxr­xr­x 2 500 500 4096 May 08 22:24 Downloads
drwxr­xr­x 2 500 500 4096 May 08 22:24 Music
drwxr­xr­x 2 500 500 4096 May 08 22:24 Pictures
drwxr­xr­x 2 500 500 4096 May 08 22:24 Public
drwxr­xr­x 2 500 500 4096 May 08 22:24 Templates
drwxr­xr­x 2 500 500 4096 May 08 22:24 Videos
226 Directory send OK.
ftp>
Kumpulan How To 9

Bab.2 Instalasi DHCP Server

Berikut ini adalah prosedur instalasi DHCP Server menggunakan ISC DHCP pada distro
Scientific Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6
(RHEL). Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga
dengan Red Hat.

ISC DHCP adalah dhcp server yang paling banyak digunakan pada lingkungan Linux dan
terbukti cukup handal dengan fitur yang lengkap. Selain itu ISC DHCP Server biasanya
sudah termasuk dalam hampir semua distro Linux yang ada.

Tahap pertama periksa dahulu apakah ISC dhcp sudah terinstalasi pada komputer anda
dengan menggunakan perintah (sebagai root) seperti terlihat di bawah ini :

[root@sl6 ~]# yum list dhcp*


Loaded plugins: refresh­packagekit
Available Packages
dhcp.i686 12:4.1.1­12.P1.el6_0.4 sl­security
dhcp­devel.i686 12:4.1.1­12.P1.el6_0.4 sl­security
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep dhcp


[root@sl6 ~]#

Bagian pertama anda gunakan bila komputer anda terhubung ke internet, sedangkan bagian
kedua anda pergunakan bila komputer anda tidak terhubung ke internet.

Apabila tampilan yang anda dapatkan seperti pada gambar diatas maka hal itu berarti dhcp
belum terinstall pada komputer anda. Untuk melakukan instalasi bila komputer anda tidak
terhubung ke internet maka anda harus mencari dulu file rpm dari dhcp. Copykan lah file
tersebut ke dalam salah satu directory di komputer anda. Misalkan sebagai root anda copy
kan file tersebut ke dalam directory /root seperti tampak pada gambar di bawah ini :

[root@sl6 ~]# ls ­l
total 1088
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 888260 Nov 26 01:07 dhcp­4.1.1­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
­rw­r­­r­­. 1 root root 157624 Nov 25 04:08 vsftpd­2.2.2­[Link]
[root@sl6 ~]#

Bila anda sudah mengcopykan seperti tampak pada gambar diatas selanjutnya untuk
melakukan instalasi anda tinggal memberikan perintah seperti berikut ini :
Kumpulan How To 10

[root@sl6 ~]# rpm ­ivh dhcp­4.1.1­[Link]


Preparing... ########################################### [100%]
1:dhcp ########################################### [100%]
[root@sl6 ~]#

Bila komputer anda terhubung ke internet secara langsung maka anda tidak perlu mencari dan
mengcopy file [Link] terlebih dahulu. Anda langsung dapat
melakukan instalasi dengan memberikan perintah :

[root@sl6 ~]# yum install dhcp


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package dhcp.i686 12:4.1.1­12.P1.el6_0.4 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
dhcp i686 12:4.1.1­12.P1.el6_0.4 sl­security 887 k

Transaction Summary
==============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 887 k


Installed size: 2.1 M
Is this ok [y/N]: y
Downloading Packages:
dhcp­4.1.1­12.P1.el6_0.[Link] | 887 kB 00:20
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 12:dhcp­4.1.1­12.P1.el6_0.4.i686 1/1

Installed:
dhcp.i686 12:4.1.1­12.P1.el6_0.4

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini kita akan mempunyai directory baru dalam directory etc yaitu
/etc/dhcp yang isinya adalah sebagai berikut :
Kumpulan How To 11

[root@sl6 dhcp]# ls ­l
total 12
drwxr­xr­x. 2 root root 4096 Apr 8 23:14 dhclient.d
­rw­r­­r­­. 1 root root 193 Apr 8 23:14 [Link]
­rw­r­­r­­. 1 root root 112 Apr 8 23:14 [Link]
[root@sl6 dhcp]#

dan satu file script dalam directory /etc/init.d/ yaitu :

[root@sl6 init.d]# ls ­l dhcpd


­rwxr­xr­x. 1 root root 2939 Jan 26 2010 dhcpd
[root@sl6 init.d]#

Kita mengharapkan bahwa file /etc/[Link] adalah file konfigurasi dari dhcp server. Akan
tetapi bila kita lihat isinya adalah sebagai berikut :

[root@sl6 dhcp]# cat [Link]


#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/[Link]
# see 'man 5 [Link]'
#

Jadi file tersebut tidak berisi konfigurasi untuk dhcp tapi petunjuk untuk mengambil contoh
konfigurasi yang berada di directory /usr/share/doc/dhcp-4.1.1/. Jadi kita copy dulu contoh
konfigurasi itu ke dalam directory /etc/dhcp sebagai berikut :

[root@sl6 dhcp]# cp /usr/share/doc/dhcp­4.1.1/[Link] [Link]


cp: overwrite `[Link]'? y
[root@sl6 dhcp]#

Dalam contoh file tersebut ada sedikit dokumentasi yang disertakan untuk mengkonfigurasi
dhcp secara cepat. Rincian dari masing-masing deklarasi dan parameter untuk dhcp server
dapat dilihat secara detail pada manual nya dengan perintah man [Link]

Berdasarkan contoh tersebut kita dapat membuat konfigurasi dhcp yang melayani subnet
[Link] dan memberikan alokasi ip address dynamic mulai dari [Link] sampai
dengan [Link] dengan file konfigurasi sebagai berikut :

option domain­name "[Link]";


option domain­name­servers [Link];

default­lease­time 600;
max­lease­time 7200;
ddns­update­style none;
authoritative;

subnet [Link] netmask [Link] {


range [Link] [Link];
Kumpulan How To 12

option routers [Link];


option broadcast­address [Link];
}

host BeServer {
hardware ethernet 08:00:07:26:c0:a5;
fixed­address [Link];
}

DHCP server ini juga secara otomatis akan memberikan IP untuk gateway dan dns address.
Selain memberikan alokasi ip dynamic konfigurasi diatas juga memberikan alokasi IP static
untuk satu host yang ethernet card nya memiliki MAC Address 08:00:07:26:c0:a5

Untuk menjalankan DHCP Server tersebut gunakan perintah :

[root@sl6 ~]# service dhcpd start


Starting dhcpd: [ OK ]
[root@sl6 ~]#

Untuk menghentikan gunakan perintah :

[root@sl6 ~]# service dhcpd stop


Shutting down dhcpd: [ OK ]
[root@sl6 ~]#

Agar dhcpd ini selalu dijalankan setiap kali komputer dihidupkan dan juga sekaligus
dimatikan setiap kali komputer dimatikan maka buat konfigurasi nya permanen dengan
perintah :

[root@sl6 ~]# chkconfig dhcpd on


[root@sl6 ~]#

Dan periksa apakah konfigurasi nya benar aktif seperti terlihat pada tampilan di bawah ini :

[root@sl6 ~]# chkconfig ­­list dhcpd


dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 ~]#

Terlihat bahwa dhcpd akan aktif pada run level 2,3,4 dan 5.

Satu lagi yang perlu diperhatikan adalah apabila komputer yang menjalankan dhcpd ini
mengaktifkan Firewall dengan menggunakan iptables, maka iptables harus dikonfigurasi
untuk mengijinkan trafik network menuju dhcpd ini terbuka. Default filter yang dijalankan
untuk komputer yang tidak menjalankan service apapun biasanya adalah sebagai berikut :

[root@sl6 ~]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 09:31:24 2011
Kumpulan How To 13

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [50748:3067649]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 09:31:24 2011
[root@sl6 ~]#

Filter tersebut harus diubah dengan mengedit file /etc/sysconfig/iptables sehingga menjadi
seperti berikut ini (dengan menggunakan vim) :

# Firewall configuration written by system­config­firewall


# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m udp ­p udp ­­dport 67 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT

Perhatikan baris yang ditambahkan pada file tersebut yaitu baris yang dicetak miring dan
tebal. DHCP menggunakan protokol udp pada port nomor 67.

Setelah mengedit file tersebut restart iptables dan periksa sekali lagi filter iptables apakah
sudah sesuai dengan rincian seperti berikut ini :

[root@sl6 sysconfig]# service iptables restart


iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]

[root@sl6 sysconfig]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 15:18:07 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:1664]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
Kumpulan How To 14

­A INPUT ­p icmp ­j ACCEPT


­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­p udp ­m state ­­state NEW ­m udp ­­dport 67 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 15:18:07 2011
[root@sl6 sysconfig]#

Selanjut nya kita tinggal mencoba fungsionalitas DHCP Server tersebut dengan
menggunakan client yang kita konfigurasi agar seting IP address ethernet nya menggunakan
DHCP Server yang sudah kita buat. Atau kalau kita ingin memeriksa secara cepat,
pergunakan komputer lain untuk menjalankan perintah berikut :

[root@sl6c ~]# dhclient eth0


[root@sl6c ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet [Link]/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP qlen 1000
link/ether 52:54:00:fe:9e:b2 brd ff:ff:ff:ff:ff:ff
inet [Link]/24 brd [Link] scope global eth3
inet6 fe80::5054:ff:fefe:9eb2/64 scope link
valid_lft forever preferred_lft forever
[root@sl6c ~]#

Perintah “dhclient” digunakan untuk meminta alokasi IP Address, bila sukses maka hasil nya
dapat kita lihat dengan perintah “ip addr show” seperti tampak pada gambar diatas eth0
mendapatkan IP address dalam range yang sesuai dengan yang kita deklarasikan dalam
[Link]

Berikut contoh konfigurasi apabila Server DHCP anda melayani beberapa subnet (misalkan
ethernet card yang ada di Server lebih dari satu). Tidak semua subnet yang terhubung ke
DHCP Server harus dilayani oleh DHCP Server, namun DHCP Server juga dapat melayani
subnet yang tidak terhubung langsung dengan Server (tetapi melalui router misal nya).
Berikut ini contoh konfigurasi nya.

option domain­name "[Link]";


option domain­name­servers [Link];

default­lease­time 600;
max­lease­time 7200;
ddns­update­style none;
authoritative;

subnet [Link] netmask [Link] {


range [Link] [Link];
Kumpulan How To 15

option routers [Link];


option broadcast­address [Link];
}

subnet [Link] netmask [Link] {


range [Link] [Link];
option routers [Link];
option broadcast address [Link];
default­lease­time 300;
max­lease­time 3600;
}

subnet [Link] netmask [Link] {


}

subnet [Link] netmask [Link] {


range [Link] [Link];
option routers [Link];
option broadcast­address [Link];
}

group {
next­server [Link];
filename "our­[Link]";

host thin1 { hardware ethernet 08:00:07:26:c0:a5; }


host thin2 { hardware ethernet 08:00:07:26:a1:21; }
}

Server DHCP dengan konfigurasi seperti diatas diasumsikan memiliki 3 ethernet card yang
melayani 3 segmen. Segmen pertama dengan subnet [Link], subnet kedua dengan
subnet [Link]. Pada kedua subnet ini DHCP Server melayani alokasi IP address
dynamic. Segmen ketiga adalah [Link]. Pada subnet ketiga ini DHCP Server tidak
memberikan layanan alokasi IP Address. Walaupun tidak memberikan layanan IP address
deklarasi subnet nya harus tetap dibuat agar DHCP Server tidak bingung dimana sebuah IP
address seharusnya berada.

Kemudian terdapat deklarasi subnet ke empat yaitu [Link] yang sebenar nya tidak
terhubung langsung ke DHCP Server. Walaupun tidak terhubung langsung ke DHCP Server
segmen tersebut tetap dapat dilayani oleh DHCP Server dengan menggunakan ISC DHCP
Relay yang dijalankan pada router yang menghubungkan segment tersebut dengan salah satu
segmen yang terhubung langsung ke server.

Kita dapat menggunakan sebuah PC yang dipasangi 2 ethernet card untuk difungsikan
sebagai router. Misalkan pada PC tersebut masing-masing ethernet card dikonfigurasi dengan
IP Address [Link] dan [Link]. Maka pada PC tersebut kita dapat menjalankan
DHCP Relay dengan perintah sebagai berikut :

[root@sl7 sysconfig]# dhcrelay [Link]

IP Adress [Link] adalah IP Adress Server DHCP yang terhubung ke router.


Kumpulan How To 16

Bab.3 Instalasi DNS Server

Berikut ini adalah prosedur instalasi DHCP Server menggunakan ISC BIND pada distro
Scientific Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6
(RHEL). Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga
dengan Red Hat.

ISC BIND adalah dns server yang paling banyak digunakan pada lingkungan Linux dan
terbukti cukup handal dengan fitur yang lengkap. Selain itu ISC BIND biasanya sudah
termasuk dalam hampir semua distro Linux yang ada.

Tahap pertama periksa dahulu apakah ISC bind sudah terinstalasi pada komputer anda
dengan menggunakan perintah (sebagai root) seperti terlihat di bawah ini :

[root@sl6 ~]# yum list bind*


Loaded plugins: refresh­packagekit
Installed Packages
bind­libs.i686 32:9.7.0­5.P2.el6_0.1 @sl­security
bind­utils.i686 32:9.7.0­5.P2.el6_0.1 @sl­security
Available Packages
bind.i686 32:9.7.0­5.P2.el6_0.1 sl­security
bind­chroot.i686 32:9.7.0­5.P2.el6_0.1 sl­security
bind­devel.i686 32:9.7.0­5.P2.el6_0.1 sl­security
bind­dyndb­ldap.i686 0.1.0­0.9.b.el6 sl
bind­sdb.i686 32:9.7.0­5.P2.el6_0.1 sl­security
[root@sl6 ~]#

atau

# rpm ­qa | grep bind


samba­winbind­clients­3.5.4­68.el6_0.2.i686
bind­utils­9.7.0­5.P2.el6_0.1.i686
rpcbind­0.2.0­8.el6.i686
ypbind­1.20.4­29.el6.i686
PackageKit­device­rebind­0.5.8­13.el6.i686
bind­libs­9.7.0­5.P2.el6_0.1.i686
[root@sl6 ~]#

Bagian pertama anda gunakan bila komputer anda terhubung ke internet, sedangkan bagian
kedua anda pergunakan bila komputer anda tidak terhubung ke internet. Untuk melihat
apakah sebuah paket sudah terinstall atau belum dengan menggunakan perintah yum bagian
yang perlu anda lihat adalah pada bagian “Available Packages”. Bila paket terdaftar dalam
bagian ini artinya paket tersedia di repository tetapi belum terinstall pada komputer. Bila
sudah terinstal di komputer nama paket akan muncul di bagian “Installed Packages”

Nama paket untuk ISC BIND adalah [Link], jadi walaupun perintah
rpm -qa memberikan beberapa nama paket tetapi itu bukan nama paket untuk ISC BIND.
Kumpulan How To 17

Apabila tampilan yang anda dapatkan seperti pada gambar diatas maka hal itu berarti dhcp
belum terinstall pada komputer anda. Untuk melakukan instalasi bila komputer anda tidak
terhubung ke internet maka anda harus mencari dulu file rpm dari dhcp. Copykan lah file
tersebut ke dalam salah satu directory di komputer anda. Misalkan sebagai root anda copy
kan file tersebut ke dalam directory /root seperti tampak pada gambar di bawah ini :

[root@sl6 ~]# ls ­l
total 4632
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 3624972 Nov 25 04:04 bind­9.7.0­[Link]
­rw­r­­r­­. 1 root root 888260 Nov 26 01:07 dhcp­4.1.1­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
­rw­r­­r­­. 1 root root 157624 Nov 25 04:08 vsftpd­2.2.2­[Link]
[root@sl6 ~]#

Bila anda sudah mengcopykan seperti tampak pada gambar diatas selanjutnya untuk
melakukan instalasi anda tinggal memberikan perintah seperti berikut ini :

[root@sl6 ~]# rpm ­ivh bind­9.7.0­[Link]


Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[root@sl6 ~]#

Bila komputer anda terhubung ke internet secara langsung maka anda tidak perlu mencari dan
mengcopy file [Link] terlebih dahulu. Anda langsung dapat melakukan
instalasi dengan memberikan perintah :

[root@sl6 ~]# yum install bind


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package bind.i686 32:9.7.0­5.P2.el6_0.1 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
bind i686 32:9.7.0­5.P2.el6_0.1 sl­security 3.5 M

Transaction Summary
==============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 3.5 M


Kumpulan How To 18

Installed size: 6.4 M


Is this ok [y/N]: y
Downloading Packages:
bind­9.7.0­5.P2.el6_0.[Link] | 3.5 MB 00:32
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 32:bind­9.7.0­5.P2.el6_0.1.i686 1/1

Installed:
bind.i686 32:9.7.0­5.P2.el6_0.1

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini kita akan mendapatkan satu file konfigurasi dalam directory /etc
dengan nama [Link] seperti terlihat di bawah ini :

[root@sl6 etc]# ls ­l [Link]


­rw­r­­­­­. 1 root named 930 Feb 15 2010 [Link]
[root@sl6 etc]#

dan sebuah directory baru dalam directory /var yaitu directory /var/named yang isinya
adalah sebagai berikut :

[root@sl6 named]# ls ­l
total 28
drwxrwx­­­. 2 named named 4096 Dec 18 03:51 data
drwxrwx­­­. 2 named named 4096 Dec 18 03:51 dynamic
­rw­r­ ­ ­ ­ ­. 1 root named 1892 Feb 18 2008 [Link]
­rw­r­ ­ ­ ­ ­. 1 root named 152 Dec 15 2009 [Link]
­rw­r­ ­ ­ ­ ­. 1 root named 152 Jun 21 2007 [Link]
­rw­r­ ­ ­ ­ ­. 1 root named 168 Dec 15 2009 [Link]
drwxrwx­­­. 2 named named 4096 Dec 18 03:51 slaves
[root@sl6 named]#

Konfigurasi untuk bind juga sangat bervariasi, tergantung kebutuhan dan keperluan nya.
Secara lengkap penjelasan tentang syntax dan parameter untuk konfigurasi dapat dibaca pada
manual nya dengan menggunakan perintah “man [Link]”

Berikut akan diberikan beberapa contoh konfigurasi bind untuk beberapa keperluan
sederhana. Pertama kita dapat memfungsikan bind sebagai Caching Only DNS Server, yaitu
sebuah DNS Server yang dapat digunakan sebagai DNS Server privat untuk “private
network” kita. Dalam hal ini DNS Server bekerja dengan cara meneruskan permintaan
resolusi address ke “authoritative” DNS Server di Internet dan kemudian selain memberikan
jawaban kepada pemohon juga menyimpan nya dalam cache. Apabila berikut nya ada
permintaan yang sama DNS Server akan menjawab langsung berdasarkan data yang sudah
tersimpan dalam cache asalkan TTL (Time To Live) dari data tersebut belum expire. Bila
expire DNS akan melakukan proses yang awal kembali.
Kumpulan How To 19

Berikut adalah contoh file konfigurasi nya

options {
listen­on port 53 { [Link]; [Link]; };
directory "/var/named";
dump­file "/var/named/data/cache_dump.db";
statistics­file "/var/named/data/named_stats.txt";
memstatistics­file "/var/named/data/named_mem_stats.txt";
allow­query { localhost; [Link]/24; };
recursion yes;
};

logging {
channel default_debug {
file "data/[Link]";
severity dynamic;
};
};

zone "." IN {
type hint;
file "[Link]";
};

include "/etc/[Link]";

Konfigurasi di atas diasumsikan bahwa IP address dari DNS Server adalah [Link]
(dicantumkan dalam options “listen-on port 53”}, dan DNS Server hanya melayani client
pada segmen [Link] saja (dicantumkan dalam options “allow-query”). Perhatikan bahwa
baris terakhir berisi pernyataan “include” yang artinya file [Link] yang berada
dalam directory /etc merupakan bagian yang tidak terpisahkan dari file [Link] (isi nya
dicopy kan untuk menggantikan baris yang berisi pernyataan “include” tersebut).

Untuk menjalankan DNS Server tersebut gunakan perintah :

[root@sl6 ~]# service named start


Starting named: [ OK ]
[root@sl6 ~]#

Untuk menghentikan gunakan perintah :

[root@sl6 ~]# service named stop


Shutting down named: [ OK ]
[root@sl6 ~]#

Agar named ini selalu dijalankan setiap kali komputer dihidupkan dan juga sekaligus
dimatikan setiap kali komputer dimatikan maka buat konfigurasi nya permanen dengan
perintah :
Kumpulan How To 20

[root@sl6 ~]# chkconfig named on


[root@sl6 ~]#

Dan periksa apakah konfigurasi nya benar aktif seperti terlihat pada tampilan di bawah ini :

[root@sl6 ~]# chkconfig ­­list named


named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 ~]#

Terlihat bahwa named akan aktif pada run level 2,3,4 dan 5.

Satu lagi yang perlu diperhatikan adalah apabila komputer yang menjalankan named ini
mengaktifkan Firewall dengan menggunakan iptables, maka iptables harus dikonfigurasi
untuk mengijinkan trafik network menuju named ini terbuka. Default filter yang dijalankan
untuk komputer yang tidak menjalankan service apapun biasanya adalah sebagai berikut :

[root@sl6 ~]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 09:31:24 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [50748:3067649]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 09:31:24 2011
[root@sl6 ~]#

Filter tersebut harus diubah dengan mengedit file /etc/sysconfig/iptables sehingga menjadi
seperti berikut ini (dengan menggunakan vim) :

# Firewall configuration written by system­config­firewall


# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m udp ­p udp ­­dport 53 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
Kumpulan How To 21

Perhatikan baris yang ditambahkan pada file tersebut yaitu baris yang dicetak miring dan
tebal. DNS menggunakan protokol udp pada port nomor 53.

Setelah mengedit file tersebut restart iptables dan periksa sekali lagi filter iptables apakah
sudah sesuai dengan rincian seperti berikut ini :

[root@sl6 sysconfig]# service iptables restart


iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]

[root@sl6 sysconfig]# iptables­save


# Generated by iptables­save v1.4.7 on Tue May 10 15:18:07 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:1664]
­A INPUT ­m state ­­state RELATED,ESTABLISHED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­p tcp ­m state ­­state NEW ­m tcp ­­dport 22 ­j ACCEPT
­A INPUT ­p udp ­m state ­­state NEW ­m udp ­­dport 53 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
# Completed on Tue May 10 15:18:07 2011
[root@sl6 sysconfig]#

Selanjut nya kita tinggal mencoba fungsionalitas DNS Server tersebut dengan menggunakan
client yang kita konfigurasi agar seting IP address ethernet nya menggunakan DNS Server
yang sudah kita buat.

Kita dapat menggunakan perintah “dig” atau “nslookup” pada komputer client seperti
tampak pada gambar di bawah ini :

[user@sl6c ~]$ nslookup [Link] [Link]


Server: [Link]
Address: [Link]#53

Non­authoritative answer:
[Link] canonical name = [Link].
Name: [Link]
Address: [Link]
Name: [Link]
Address: [Link]

[user@sl6c ~]$

Kita tidak perlu mencantumkan ip address (dalam contoh diatas [Link]) sebagai
parameter dari perintah nslookup bila komputer kita sudah diset untuk menggunakan DNS
yang ada pada IP Address tersebut. Demikian juga perintah dig seperti terlihat di bawah ini :
Kumpulan How To 22

[user@sl6c ~]$ dig [Link]

; <<>> DiG 9.7.0­P2­RedHat­9.7.0­5.P2.el6_0.1 <<>> [Link]


;; global options: +cmd
;; Got answer:
;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 37442
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;[Link]. IN A

;; ANSWER SECTION:
[Link]. 85362 IN CNAME [Link].
[Link]. 85362 IN A [Link]
[Link]. 85362 IN A [Link]

;; AUTHORITY SECTION:
[Link]. 171761 IN NS [Link].
[Link]. 171761 IN NS [Link].

;; ADDITIONAL SECTION:
[Link]. 85362 IN A [Link]
[Link]. 85362 IN AAAA 2402:a000:0:7::2
[Link]. 85362 IN A [Link]
[Link]. 85362 IN AAAA 2402:a000:0:3::131

;; Query time: 4 msec


;; SERVER: [Link]#53([Link])
;; WHEN: Wed May 11 12:17:36 2011
;; MSG SIZE rcvd: 212

[user@sl6c ~]$

Modifikasi dari Cache Only DNS Server adalah Forwarding Name Server. Kalau cache
only mencari jawaban dari “authoritative DNS Server” yang ada di internet, maka forwarding
lebih sederhana yaitu meminta tolong untuk mencari jawaban kepada DNS Server tertentu
saja. Jadi kalau cache only mencari jawaban sendiri, forwarding selalu minta tolong kepada
DNS Server tertentu saja.

Contoh nya bila kita punya sambungan internet menggunakan Speedy dan kita ingin tetap
menggunakan DNS Server milik Speedy tetapi memiliki DNS Server sendiri untuk
mendapatkan respon DNS yang lebih cepat (karena DNS Server selalu secara default selalu
melakukan “cache” terhadap semua jawaban).

Berikut konfigurasinya

options {
listen­on port 53 { [Link]; [Link]; };
directory "/var/named";
dump­file "/var/named/data/cache_dump.db";
statistics­file "/var/named/data/named_stats.txt";
Kumpulan How To 23

memstatistics­file "/var/named/data/named_mem_stats.txt";
allow­query { localhost; [Link]/24; };
forwarders { [Link]; [Link]; };
forward only;
};

logging {
channel default_debug {
file "data/[Link]";
severity dynamic;
};
};

zone "." IN {
type hint;
file "[Link]";
};

include "/etc/[Link]";

Tentunya kita tidak hanya memerlukan DNS Server yang berfungsi sebagai cache atau
forwarder saja, kita memerlukan DNS Server yang juga berfungsi sebagai “authoritative
DNS Server” untuk semua host yang ada dalam private network kita. Untuk keperluan itu
kita selain mengkonfigurasi [Link], kita juga harus membuat zone file untuk private
network kita. Misalkan kita menggunakan domain [Link] (hanya valid untuk keperluan
private network saja, jangan dipergunakan untuk DNS Server yang berada di public IP).
Contoh konfigurasi nya adalah sebagai berikut :

options {
listen­on port 53 { [Link]; [Link]; };
directory "/var/named";
dump­file "/var/named/data/cache_dump.db";
statistics­file "/var/named/data/named_stats.txt";
memstatistics­file "/var/named/data/named_mem_stats.txt";
allow­query { localhost; [Link]/24; };
forwarders { [Link]; [Link]; };
forward only;
};

logging {
channel default_debug {
file "data/[Link]";
severity dynamic;
};
};

zone "." IN {
type hint;
file "[Link]";
};

zone "[Link]" IN { ; forward zone [Link]


Kumpulan How To 24

type master;
file "[Link]";
};

zone "[Link]­[Link]" IN { ; reverse zone [Link]


type master;
file "[Link]";
};

include "/etc/[Link]";

Diatas kita telah mendeklarasikan forward zone dan reverse zone untuk domain [Link].
Berikut nya zone file nya harus kita buat dalam directory /var/named sesuai dengan deklarasi
di atas. Isi dari zone file ini adalah sebagai berikut :

[root@sl6 named]# cat [Link]


$TTL 1D
@ IN SOA [Link]. [Link]. (
201105111 ; nomor seri
3600 ; refresh, detik
3600 ; retry, detik
3600 ; expire, detik
3600 ) ; minimum, detik

NS [Link].

sl6 A [Link]
sl6c A [Link]
www A [Link]
mail CNAME www

Perhatikan bahwa “titik” di setiap akhir nama domain dalam zone file ini sangat penting.
Apabila tidak anda cantumkan maka DNS Server anda akan berkelakuan aneh. Sedangkan isi
dari reverse zone nya adalah sebagai berikut :

[root@sl6 named]# cat [Link]


$TTL 1D
@ IN SOA [Link]. [Link]. (
201105111 ; nomor seri
3600 ; refresh, detik
3600 ; retry, detik
3600 ; expire, detik
3600 ) ; minimum, detik

NS [Link].

11 PTR [Link].
12 PTR [Link].
13 PTR www .[Link].
Kumpulan How To 25

Konfigurasi diatas memfungsikan DNS Server kita sebagai Forward DNS untuk semua
domain kecuali domain [Link] (private). Anda tinggal menambahkan record record yang
lain sesuai dengan kebutuhan anda. DNS Server yang berfungsi ganda ini biasa disebut juga
sebagai Mix Mode DNS Server.

Untuk membuat Real Authoritative DNS Server tentu anda harus mempunyai domain yang
legal terlebih dahulu dan juga mempunyai legal IP static agar supaya DNS anda dapat
berfungsi sebagaimana mustinya. Konfigurasi untuk Authoritative DNS Server dapat
mencontoh konfigurasi untuk Forward DNS Server diatas dengan menghilangkan deklarasi
“forwarders” dan “forward only” dan mendeklarasikan zone sesuai dengan nama domain
legal anda serta membuat zone file yang sesuai dengan IP address public yang legal.

Berikut ini adalah contoh konfigurasi untuk Slave DNS Server untuk DNS Server yang
sudah kita buat diatas. Slave DNS Server diperlukan untuk keperluan redundancy dan load
balancing (bila beban DNS Server kita terlalu berat). Untuk kita kita memerlukan 3
komputer untuk mencoba nya. Pertama Master DNS, Slave DNS, dan client untuk melakukan
testing.

Slave DNS Server akan memperoleh zone file dari Master DNS melalui mekanisme yang
disebut zone transfer. Bila terjadi perubahan zone file maka Master DNS akan memberikan
notify kepada semua Slave DNS untuk melakukan zone transfer. Selain itu bila Slave DNS
mendeteksi terjadinya kadaluarsa (expire) pada record SOA maka Slave DNS juga akan
melakukan zone transfer.

Pada Master DNS Server kita hanya perlu mengubah zone file nya saja untuk
memberitahukan kepada Master DNS Server pada IP Address berapa Slave DNS bekerja.
Forward zone nya adalah sebagai berikut :

[root@sl6 named]# cat [Link]


$TTL 1D
@ IN SOA [Link]. [Link]. (
201105111 ; nomor seri
3600 ; refresh, detik
3600 ; retry, detik
3600 ; expire, detik
3600 ) ; minimum, detik

NS [Link].
NS [Link]

sl6 A [Link]
sl6c A [Link]
www A [Link]
mail CNAME www

dan

[root@sl6 named]# cat [Link]


$TTL 1D
@ IN SOA [Link]. [Link]. (
201105111 ; nomor seri
Kumpulan How To 26

3600 ; refresh, detik


3600 ; retry, detik
3600 ; expire, detik
3600 ) ; minimum, detik

NS [Link].
NS [Link].

11 PTR [Link].
12 PTR [Link].
13 PTR www .[Link].

Apabila anda mengaktifkan filtering dengan iptables pada Master DNS Server ini maka anda
harus membuka port 53 tcp agar dapat terjadi zone-transfer. Bila tidak Slave DNS tidak akan
mendapatkan zone file dari Master DNS. Untuk membuka port 53 edit file
/etc/sysconfig/iptables agar terlihat seperti dibawah ini :

# Firewall configuration written by system­config­firewall


# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 53 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m udp ­p udp ­­dport 53 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT

Jangan lupa merestart service iptables dengan perintah “service iptables restart”

Kemudian siapkan Slave DNS Server persis seperti pada prosedur untuk menyiapkan Master
DNS Server. Berikut adalah file konfigurasi [Link] untuk Slave DNS Server

options {
listen­on port 53 { [Link]; [Link]; };
directory "/var/named";
dump­file "/var/named/data/cache_dump.db";
statistics­file "/var/named/data/named_stats.txt";
memstatistics­file "/var/named/data/named_mem_stats.txt";
allow­query { localhost; [Link]/24; };
forwarders { [Link]; [Link]; };
forward only;
};

logging {
channel default_debug {
Kumpulan How To 27

file "data/[Link]";
severity dynamic;
};
};

zone "." IN {
type hint;
file "[Link]";
};

zone "[Link]" IN { ; slave forward zone [Link]


type slave;
file "slaves/[Link]";
masters { [Link]; } ;
};

zone "[Link]­[Link]" IN { ; slave reverse zone [Link]


type slave;
file "slaves/[Link]";
masters { [Link]; } ;
};

include "/etc/[Link]";

Perhatikan bawha zone file untuk Slave DNS ini kita simpan dalam directory
/var/named/slaves berbeda dengan directory untuk menyimpan master zone file. Bila anda
telah me-non-aktifkan SELinux letak slave zone file ini boleh sembarang, tetapi bila SELinux
aktiv maka DNS Server hanya dapat menyimpan slave zone file ini pada directory tersebut,
kecuali anda ubah seting SELinux nya.

Karena Slave DNS mendapatkan zone file dari Master maka kita tidak perlu membuat zone
file untuk Slave DNS Server. Selanjut bila tidak terdapat kesalahan anda dapat mencoba
untuk mengganti seting DNS Server pada client ke Slave DNS dan memeriksa apakah Slave
DNS ini bekerja sama seperti Master nya.
Kumpulan How To 28

Bab.4 Instalasi Dynamic DNS dan DHCP

Dengan menggunakan referensi pada Instalasi DNS Server dan Instalasi DHCP Server kita
akan mencoba menggabungkan kedua nya untuk membuat layanan DNS dan DHCP Server
yang bisa melakukan update zone file secara otomatis.

Cara kerja nya adalah ketika suatu client meminta alokasi IP address kepada DHCP Server
maka bila DHCP Server memberikan alokasi IP address tersebut maka DHCP Server
sekaligus juga akan mengupdate informasi yang terdapat dalam DNS Server sehingga record
untuk client tersebut langsung tercatat dalam DNS Server. Demikian juga bila client tersebut
mengembalikan alokasi IP address nya maka data nya pada DNS Server juga akan dihapus.

Fasilitas ini tentu sangat memudahkan sekali bagi administrator karena administrator tidak
perlu mengedit zone file setiap kali ada client baru yang masuk ke jaringan atau ada client
yang sudah tidak pernah menggunakan jaringan lagi.

Untuk mewujudkan hal tersebut DNS dan DHCP Server kita jalankan pada satu Server
sekaligus (walapun bisa saja dijalankan di server yang terspisah) untuk memudahkan. Update
terhadap zone file kita batasi hanya dapat dilakukan oleh DHCP Server saja, karena
sebenarnya client juga dapat melakukan update tersebut langsung ke DNS Server, akan tetapi
hal itu berarti kita tidak dapat mengontrol siapa yang boleh mengupdate zone file.

DNS Server memberlakukan pengamanan terhadap update kedalam zone file ini dengan
mekanisme yang disebut “key” semacam username dan password bagi pihak yang akan
melakukan update (dalam skenario ini DHCP Server). Jadi hanya pihak yang memiliki “key”
saja yang dapat melakukan update.

Untuk membuat key tersebut kita gunakan perintah “dnssec-keygen” seperti berikut ini :

[root@sl6 ~]# dnssec­keygen ­a hmac­md5 ­b 128 ­n USER belogix Kbelogix.+157+56144


[root@sl6 ~]# ls ­l
total 4640
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 3624972 Nov 25 04:04 bind­9.7.0­[Link]
­rw­r­­r­­. 1 root root 888260 Nov 26 01:07 dhcp­4.1.1­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
­rw­­­­­­­. 1 root root 49 May 12 14:43 Kbelogix.+157+[Link]
­rw­­­­­­­. 1 root root 165 May 12 14:43 Kbelogix.+157+[Link]
­rw­r­­r­­. 1 root root 157624 Nov 25 04:08 vsftpd­2.2.2­[Link]
[root@sl6 ~]#

“belogix” adalah nama key yang kita berikan. Anda dapat menggunakan text apa saja sebagai
nama key untuk keperluan anda. Hasil dari perintah ini kita akan mendapatkan dua file
dengan nama yang dimulai dengan huruf K disambung nama key dan beberapa karakter lagi
dengan extension key dan private seperti terlihat pada gambar diatas. Nah simpan baik-baik
file ini, yang kita perlukan adalah file dengan extension key. Kalau kita lihat isinya adalah
sebagai berikut (contoh) :
Kumpulan How To 29

[root@sl6 ~]# cat Kbelogix.+157+[Link]


belogix. IN KEY 0 3 157 j4fEKxQ63LKIFKi91XOMzQ==
[root@sl6 ~]#

Bagian yang dicetak tebal adalah bagian yang penting yang berfungsi sebagai username dan
password untuk melakukan update zone file.

Berikut nya tinggal mempersiapkan konfigurasi untuk DNS Server yang dibuat seperti
berikut ini :

[root@sl6 etc]# cat [Link]


options {
listen­on port 53 { [Link]; [Link]; };
directory "/var/named";
dump­file "/var/named/data/cache_dump.db";
statistics­file "/var/named/data/named_stats.txt";
memstatistics­file "/var/named/data/named_mem_stats.txt";
allow­query { localhost; [Link]/24; };
forwarders { [Link]; [Link]; };
forward only;
};

key belogix {
algorithm hmac­md5;
secret "j4fEKxQ63LKIFKi91XOMzQ==";
};

logging {
channel default_debug {
file "data/[Link]";
severity dynamic;
};
};

zone "." IN {
type hint;
file "[Link]";
};

zone "[Link]" IN {
type master;
file "dynamic/[Link]";
allow­update { key belogix; };
};

zone "[Link]­[Link]" IN {
type master;
file "dynamic/[Link]";
allow­update { key belogix; };
};
Kumpulan How To 30

include "/etc/[Link]";

[root@sl6 etc]#

Perhatikan perubahan yang terjadi pada definisi zone file dimana zone file sekarang kita
letakkan dalam directory /var/named/dynamic/, terutama bila anda mengaktifkan SELinux
karena SELinux tidak mengijinkan named untuk mengedit dile yang berada dalam
directory /var/named. Selain perubahan letak zone file juga penggunaan key seperti terlihat
diatas, perhatikan semua tanda baca tidak boleh ada yang kurang atau lebih.

Kita masih menggunakan konfigurasi Mix DNS Server yaitu DNS Forwarding untuk semua
domain kecuali untuk private domain [Link]. Ingat konfigurasi DNS ini adalah untuk
keperluan DNS Server dalam private network saja.

Sedangkan konfigurasi untuk DHCP server nya berubah menjadi seperti berikut ini :

[root@sl6 dhcp]# cat [Link]


option domain­name "[Link]";
option domain­name­servers [Link];

default­lease­time 1800;
max­lease­time 3000;
min­lease­time 600;
ddns­update­style interim;
authoritative;

key belogix {
algorithm hmac­md5;
secret 42+tp3kqfPOzB87GB6s4eQ==;
}

subnet [Link] netmask [Link] {


range [Link] [Link];
option routers [Link];
option broadcast­address [Link];
}

zone [Link] {
primary localhost;
key belogix;
}

zone [Link]­[Link] {
primary localhost;
key belogix;
}
[root@sl6 dhcp]#

Perhatikan perbedaan menuliskan deklarasi key antara [Link] dan [Link]. Pada
[Link] tidak menggunakan tanda kutip. Selain itu sekarang dalam [Link] terdapat
deklarasi zone juga walaupun format nya agak sedikit berbeda dengan yang berada di
[Link]. Perhatikan baris deklarasi “primary localhost”, ini menyatakan bahwa update
Kumpulan How To 31

dari DHCP Server ke DNS Server harus dilakukan melalui interface “localhost” ([Link])
karena kebetulan kedua server itu dalam komputer yang sama bila tidak yang harus
dicantumkan disini adalah IP Address DNS Server.

Selanjut nya kita juga harus membuka filter iptables agar melewatkan trafik yang ditujukan
ke DNS dan DHCP Server. Jadi kita ubah filter iptables menjadi seperti di bawah ini :

[root@sl6 sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 53 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m udp ­p udp ­­dport 53 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m udp ­p udp ­­dport 67 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6 sysconfig]#

Jangan lupa untuk merestart iptables setelah membuat perubahan seperti diatas. Selanjut nya
kita tinggal mengaktifkan DNS dan DHCP Server yang sudah diubah konfigurasinya tersebut
dan siap untuk melakukan percobaan.

Perlu diketahui bahwa fasiltas dynamic update ini juga membutuhkan sedikit perubahan
konfigurasi disisi client. Client harus menggunakan perintah “dhclient” untuk mendapatkan
alokasi IP Address yang sekaligus dapat mengupdate zone file pada DNS Server, tanpa
menggunakan perintah dhclient maka update terhadap zone file tidak dilakukan.

Disamping itu pada client juga harus dibuat file konfigurasi untuk perintah dhclient. File
konfigurasi ini gunanya untuk memberikan nama host pada client yang akan dicantumkan
pada zone file. Misal nya saya menginginkan client yang saya pakai akan menggunakan nama
[Link]. Maka nama tersebut harus dicantumkan dalam file konfigurasi dhclient.
Bila tidak darimana DNS Server akan mendapatkan nama untuk dicantumkan dlm zone file ?

File [Link] ini disimpan pada directory /etc/dhcp di masing-masing komputer client
yang nama nya akan dicantumkan dalam zone file. Berikut contoh konfigurasi untuk
[Link]

[root@sl6c1 dhcp]# cat [Link]


send [Link] "[Link]";
send [Link]­update on;
[root@sl6c1 dhcp]#

Kemudian karena client menggunakan perintah dhclient untuk mendapatkan alokasi IP


Kumpulan How To 32

address maka network-script nya harus diubah menjadi seperti di bawah ini :

[root@sl6c1 network­scripts]# cat ifcfg­eth0


DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=none
IPV6INIT=no
[root@sl6c1 network­scripts]#

Pada saat booting client masih belum memiliki IP address, sampai kita mengetikkan perintah
berikut sebagai root :

[root@sl6c1 ~]# dhclient eth0


[root@sl6c1 ~]#

Memang akibat nya hal ini menjadi kurang praktis dari sisi user, apalagi bila user tidak dapat
menjalankan perintah sebagai root karena perintah dhclient hanya dapat dijalankan oleh root.
Salah satu cara untuk mengatasi kendala itu adalah dengan memasukkan perintah tersebut ke
dalam boot script yang ada di dalam file /etc/rc.d/[Link].

Untuk memeriksa apakah bila pada client kita ketikkan perintah dhclient maka selain
didapatkan alokasi IP Address juga terjadi update terhadap zone file kita dapat melihat nya
melalui log file yang berada pada server. Kita akan mendapatkan hasil sebagai berikut :

May 12 15:11:41 sl6 dhcpd: DHCPDISCOVER from 52:54:00:32:a4:79 via eth2


May 12 15:11:42 sl6 dhcpd: DHCPOFFER on [Link] to 52:54:00:32:a4:79
via eth2
May 12 15:11:42 sl6 named[2882]: client [Link]#45165: signer "belogix"
approved
May 12 15:11:42 sl6 named[2882]: client [Link]#45165: updating zone
'[Link]/IN': adding an RR at '[Link]' A
May 12 15:11:42 sl6 named[2882]: client [Link]#45165: updating zone
'[Link]/IN': adding an RR at '[Link]' TXT
May 12 15:11:42 sl6 dhcpd: Added new forward map from [Link] to
[Link]
May 12 15:11:42 sl6 named[2882]: client [Link]#46063: signer "belogix"
approved
May 12 15:11:42 sl6 named[2882]: client [Link]#46063: updating zone
'[Link]­[Link]/IN': deleting rrset at '[Link].in­[Link]' PTR
May 12 15:11:42 sl6 named[2882]: client [Link]#46063: updating zone
'[Link]­[Link]/IN': adding an RR at '[Link].in­[Link]' PTR
May 12 15:11:42 sl6 dhcpd: added reverse map from [Link].in­[Link]. to
[Link]
May 12 15:11:42 sl6 dhcpd: Wrote 2 leases to leases file.

Atau kita dapat mencoba langsung pada komputer client apakah betul namanya sudah
tercantum dalam zone file secara otomatis dengan perintah sebagai berikut :

[root@sl6c1 ~]# host sl6c1


Kumpulan How To 33

[Link] has address [Link]


[root@sl6c1 ~]# host [Link]
Host [Link].in­[Link]. not found: 3(NXDOMAIN)
[root@sl6c1 ~]# nslookup sl6c1
Server: [Link]
Address: [Link]#53

Name: [Link]
Address: [Link]

[root@sl6c1 ~]#

Perhatikan juga bahwa sebelum mematikan client zone file juga perlu diupdate. Karena kalau
tidak nama host dari client tetap tercantum dalam zone file walaupun client sudah tidak aktif.
Oleh karena itu sebelum mematikan komputer client berikan dulu perintah :

[root@sl6c1 ~]# dhclient ­r


[root@sl6c1 ~]#

Untuk memudahkan sekali lagi perintah ini juga dapat dimasukkan ke dalam salah satu script.
Kumpulan How To 34

Bab.5 Instalasi Apache Web Server

Berikut ini adalah prosedur instalasi Web Server menggunakan Apache pada distro
Scientific Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6
(RHEL). Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga
dengan Red Hat.

Apache adalah Web Server yang paling populer dan paling banyak dipakai di seluruh dunia.
Instalasi Apache juga cukup mudah dan Apache biasanya sudah terdapat dalam repository
masing-masing distro.

Untuk distro Scientific Linux ini instalasi default dengan pilihan paling minimum yaitu untuk
pilihan dengan konfigurasi Desktop sudah secara otomatis menginstall Apache tanpa perlu
kita melakukan apa-apa lagi. Hal ini dapat dilihat dengan perintah :

[root@sl6 ~]# yum list httpd


Loaded plugins: refresh­packagekit
Installed Packages
httpd.i686 2.2.15­5.sl6 @anaconda­ScientificLinux­201103021620.i386/6
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep httpd


httpd­2.2.15­5.sl6.i686
httpd­tools­2.2.15­5.sl6.i686
[root@sl6 ~]#

Server Apache ini nama paket nya adalah httpd. Bila di komputer anda belum terinstall
Apache anda dapat melakukan instalasi dengan perintah “yum install httpd” bila terhubung
ke internet. Bila komputer anda tidak terhubung ke internet anda dapat melakukan instalasi
dengan perintah rpm dengan terlebih dahulu mencari paket file rpm untuk Apache yang
sesuai dengan distro yang anda pakai.

Apache meletakkan konfigurasi nya dalam directory /etc/httpd yang isinya adalah sebagai
berikut :

[root@sl6d httpd]# ls ­l
total 8
drwxr­xr­x. 2 root root 4096 May 16 06:02 conf
drwxr­xr­x. 2 root root 4096 May 16 05:08 conf.d
lrwxrwxrwx. 1 root root 19 May 16 05:08 logs ­> ../../var/log/httpd
lrwxrwxrwx. 1 root root 27 May 16 05:08 modules ­> ../../usr/lib/httpd/modules
lrwxrwxrwx. 1 root root 19 May 16 05:08 run ­> ../../var/run/httpd
[root@sl6d httpd]#
Kumpulan How To 35

dan satu file script dalam directory /etc/init.d/ yaitu :

[root@sl6d init.d]# ls ­l httpd


­rwxr­xr­x. 1 root root 3316 Nov 23 23:39 httpd
[root@sl6d init.d]#

Salah satu kemudahan dari Apache web server ini adalah begitu selesai melakukan instalasi
apache web server ini sudah langsung dapat digunakan. Untuk menjalankan Apache web
server ini pergunakan perintah :

[root@sl6d ~]# service httpd start


Starting httpd: httpd: apr_sockaddr_info_get() failed for [Link]
httpd: Could not reliably determine the server's fully qualified domain name, using
[Link] for ServerName
[ OK ]
[root@sl6d ~]#

Walaupun ada sedikit error yang berkaitan dengan masalah nama web server ini sudah
berjalan, anda dapat menggunakan browser yang ada di komputer yang menjalankan Apache
dengan browsing ke “localhost” seperti terlihat berikut :

Bila anda ingin mencoba mengakses web server ini dari komputer lain perhatikan terlebih
dahulu apakah filter yang ada di komputer yang menjalankan Apache web server
mengijinkan komputer dari luar untuk mengakses web site tersebut. Filter untuk iptables yang
mengijinkan akses ke web server adalah sebagai berikut : (edit file /etc/sysconfig/iptables
sehingga isinya adalah sebagai berikut)
Kumpulan How To 36

[root@sl6d sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 80 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6d sysconfig]#

Jangan lupa setelah mengedit file tersebut iptables harus direstart terlebih dahulu dengan
memberikan perintah “service iptables restart”

Untuk membuat agar web server ini selalu dijalankan apabila komputer dihidupkan maka
anda harus memberikan perintah :

[root@sl6d sysconfig]# chkconfig httpd on


You have new mail in /var/spool/mail/root
[root@sl6d sysconfig]# chkconfig ­­list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6d sysconfig]#

Perintah yang kedua adalah untuk memastikan bahwa httpd pasti dijalankan pada run level
2,3,4, dan 5.

Sampai disini selesai sudah instalasi dan konfigurasi sederhana untuk Web Server, namun
tentunya ada beberapa hal lagi yang penting untuk dipelajari sehubungan dengan konfigurasi
web server Apache. Pertama apabila anda melakukan instalasi web server maka sebaik nya
anda sudah meregistrasikan keberadaan web server ini pada DNS Server yang melayani
network anda. Bila tidak anda akan menjumpai error seperti di atas setiap kali anda men –
start web server anda.

Bila anda tidak meregistrasikan web server anda ke DNS Server, untuk menghilangkan error
yang terjadi setiap kali web server tersebut di start ubahlah konfigurasi web server pada baris
yang berisi deklarasi ServerName menjadi seperti di bawah ini (edit file
/etc/dhcpd/conf/[Link]) :

ServerName [Link]:80

Sesuaikan dengan IP Address yang terdapat pada komputer anda. Baris ini default nya
ditandai sebagai komentar (ada tanda “#” di depan nya).
Kumpulan How To 37

Beberapa deklarasi penting yang ada dalam file konfigurasi Apache


(/etc/httpd/conf/[Link]) yang perlu anda ketahui dan seringkali diubah-ubah adalah :

Letak root document, yaitu dimana anda menyimpan file file html anda (untuk static html).
Deklarasinya adalah :

DocumentRoot "/var/www/html"

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Apabila anda mengubah letak document root ini ke directory yang lain penting untuk
diperhatikan bahwa directory tersebut harus “word readable” artinya isi directory tersebut
dapat dibaca oleh semua orang, bila tidak server http akan memberikan pesan kesalahan
"Forbidden 403" ketika anda mengakses web server tersebut.

Satu hal lagi yang perlu anda perhatikan bila mengubah letak document root adalah apabila
server mengaktifkan SELinux. Anda harus menyesuaikan “security context” nya karena bila
tidak web server juga tidak dapat mengakses directory tersebut walaupun permission nya
sudah benar.

Misalkan anda ubah letak document root ke /var/otherwww bila anda periksa security context
nya hasilnya adalah :

[root@sl6d var]# ls ­Z | grep otherwww


drwxr­xr­x. root root unconfined_u:object_r:var_t:s0 otherwww
[root@sl6d var]#

Bandingkan dengan security contex default document root nya :

[root@sl6d var]# ls ­Z www | grep html


drwxr­xr­x. root root system_u:object_r:httpd_sys_content_t:s0 html
[root@sl6d var]#

Untuk mengubah nya gunakan perintah :

[root@sl6d var]# chcon ­R ­h ­t httpd_sys_content_t otherwww


[root@sl6d var]# ls ­Z | grep otherwww
drwxr­xr­x. root root unconfined_u:object_r:httpd_sys_content_t:s0 otherwww

Bila anda ingin bermain dengan dynamic html, atau bermain dengan script cgi maka apache
sudah menyediakan directory khusus untuk menyimpan file-file script anda. Deklarasinya
adalah
Kumpulan How To 38

ScriptAlias /cgi­bin/ "/var/www/cgi­bin/"

<Directory "/var/www/cgi­bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Selanjut nya anda tinggal menyimpan script anda dalam directory tersebut, contoh nya untuk
anda dapat membuat script sederhana seperti di bawah ini :

#!/usr/bin/perl
print "Content­type: text/html\n\n";
print "Hello, World.";

dan menyimpan nya sebagai /var/www/cgi-bin/[Link] maka kalau anda mengakses web
server anda dengan alamat [Link] anda akan mendapatkan tulisan
“Hello World”. Jangan lupa bahwa anda harus memberikan permission world executable
(chmod a+x [Link]) agar script tersebut dapat dieksekusi.

Apabila anda bermaksud meletakkan file script ini dalam directory yang lain pastikan bahwa
directory tersebut word readable juga seperti untuk file html. Selain itu untuk server yang
mengaktifkan SELinux security context nya juga harus disesuaikan. Perhatikan cara merubah
security context bila misal nya anda mengubah letak direcotry yang berisi script ke directory
/var/other-cgi seperti di bawah ini

[root@sl6d var]# chcon ­h ­t httpd_sys_script_exec_t other­cgi


[root@sl6d var]# ls ­Z | grep other
drwxr­xr­x. root root unconfined_u:object_r:httpd_sys_script_exec_t:s0 other­cgi
[root@sl6d var]#

Salah satu penggunaan Apache yang paling populer adalah untuk diintegrasikan dengan PHP
untuk menghasilkan dynamic web site. Sebenar nya hal ini mirip dengan cgi-script hanya
perbedaan pada bahasa yang digunakan. Seiring dengan semakin populer nya PHP untuk
membuat aplikasi berbasis web maka kebutuhan untuk mengintegrasikan PHP dengan
Apache juga semakin diperlukan. Dibawah ini akan dirinci langkah-langkah nya.

PHP secara default tidak diinstall apabila anda melakukan instalasi Scientific Linux dengan
pilihan default. Hal ini dapat dilihat dengan perintah berikut :

[root@sl6 ~]# yum list php


Loaded plugins: refresh­packagekit
Available Packages
php.i686 5.3.2­6.el6_0.1 sl­security
[root@sl6 ~]#

atau bila komputer anda tidak terhubung ke internet anda dapat memeriksa nya dengan
perintah :
Kumpulan How To 39

[root@sl6 ~]# rpm ­qa | grep php


[root@sl6 ~]#

Untuk melakukan instalasi PHP berikut langkah-langkah nya. Bila anda tidak terhubung ke
internet anda harus mencari paket file rpm nya, yaitu [Link]. Akan tetapi
ternyata paket ini punya ketergantungan terhadap paket yang lain, artinya sebelum melakukan
instalasi paket [Link] anda harus menginstall dulu semua paket yang
menjadi ketergantungan tersebut. Hal ini dapat dilihat sebagai berikut :

[root@sl6 ~]# rpm ­ivh php­5.3.2­[Link]


error: Failed dependencies:
php­cli = 5.3.2­6.el6 is needed by php­5.3.2­6.el6.i686
php­common = 5.3.2­6.el6 is needed by php­5.3.2­6.el6.i686
[root@sl6 ~]#

Untuk itu anda harus mencari file [Link] dan php-common-5.3.2-


[Link] terlebih dahulu dan melakukan instalasi kedua paket ini sebelum anda
menginstalasi paket [Link]. Beruntung kedua paket itu tidak punya
ketergantungan lagi terhadap paket yang lain karena ketergantungan ini bisa sambung
menyambung juga.

Setelah mendapatkan kedua paket rpm nya anda dapat melakukan instalasi dengan perintah
sebagai berikut :

[root@sl6 ~]# rpm ­ivh php­common­5.3.2­[Link]


Preparing... ########################################### [100%]
1:php­common ########################################### [100%]
[root@sl6 ~]# rpm ­ivh php­cli­5.3.2­[Link]
Preparing... ########################################### [100%]
1:php­cli ########################################### [100%]
[root@sl6 ~]# rpm ­ivh php­5.3.2­[Link]
Preparing... ########################################### [100%]
1:php ########################################### [100%]
[root@sl6 ~]#

Apabila anda komputer anda terhubung ke internet anda dapat melakukan instalasi PHP ini
dengan lebih mudah menggunakan perintah yum karena perintah yum ini secara otomatis
langsung melakukan instalasi terhadap semua ketergantungan yang diperlukan seperti telihat
di bawah ini :

[root@sl6 ~]# yum install php


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package php.i686 0:5.3.2­6.el6_0.1 set to be updated
­­> Processing Dependency: php­cli = 5.3.2­6.el6_0.1 for package: php­5.3.2­
6.el6_0.1.i686
Kumpulan How To 40

­­> Processing Dependency: php­common = 5.3.2­6.el6_0.1 for package: php­


5.3.2­6.el6_0.1.i686
­­> Running transaction check
­­­> Package php­cli.i686 0:5.3.2­6.el6_0.1 set to be updated
­­­> Package php­common.i686 0:5.3.2­6.el6_0.1 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
php i686 5.3.2­6.el6_0.1 sl­security 1.1 M
Installing for dependencies:
php­cli i686 5.3.2­6.el6_0.1 sl­security 2.2 M
php­common i686 5.3.2­6.el6_0.1 sl­security 515 k

Transaction Summary
==============================================================
Install 3 Package(s)
Upgrade 0 Package(s)

Total download size: 3.8 M


Installed size: 12 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): php­5.3.2­6.el6_0.[Link] | 1.1 MB 01:38
(2/3): php­cli­5.3.2­6.el6_0.[Link] | 2.2 MB 03:12
(3/3): php­common­5.3.2­6.el6_0.[Link] | 515 kB 01:10
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­
Total 11 kB/s | 3.8 MB 06:08
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php­common­5.3.2­6.el6_0.1.i686 1/3
Installing : php­cli­5.3.2­6.el6_0.1.i686 2/3
Installing : php­5.3.2­6.el6_0.1.i686 3/3

Installed:
php.i686 0:5.3.2­6.el6_0.1

Dependency Installed:
php­cli.i686 0:5.3.2­6.el6_0.1 php­common.i686 0:5.3.2­6.el6_0.1

Complete!
[root@sl6 ~]#

Setelah melakukan instalasi PHP seperti diatas berikut nya adan melakukan konfigurasi pada
Apache dengan mengedit file /etc/httpd/conf/[Link]. Tambahkan deklarasi seperti di
bawah ini ke dalam nya.
Kumpulan How To 41

AddHandler php5­script php


DirectoryIndex [Link] [Link]
AddType text/html php
AddType application/x­httpd­php­source phps

Anda dapat menambahkan deklarasi tersebut di bagian bawah dari file [Link] atau supaya
memudahkan tambahkan masin-masing baris sesuai kelompok nya misalkan deklarasi
“AddHandler php5-scipr php” anda tambahkan di bawah deklarasi AddHandler yang sudah
ada, demikian seterus nya.

Untuk memeriksa apakah instalasi PHP anda sudah terintegrasi dengan baik dengan Apache
anda dapat membuat sebuah script php yang sangat sederhana seperti di bawah ini dan
simpan dalam “Document Root” Apache (/var/www/html) dengan nama [Link] :

<h1>PHP Test</h1>
<p>
<b>An Example of PHP in Action</b><br />
<?php echo "The Current Date and Time is: <br>";
echo date("g:i A l, F j Y.");?>
</p>

<h2>PHP Information</h2>
<p>
<?php phpinfo(); ?>
</p>

Selanjut nya anda akses web server tersebut dengan menggunakan browser. Anda harus
mendapatkan tampilan seperti di bawah ini :
Kumpulan How To 42

Bab.6 Instalasi Database Server MySQL

Berikut ini adalah prosedur instalasi Database Server menggunakan MySQL pada distro
Scientific Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6
(RHEL). Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga
dengan Red Hat.

MySQL adalah salah satu Database Server yang paling banyak dipakai di lingkungan Linux
dan biasanya sudah tersedia pada repository masing-masing distro. Paket mysql terpisah
dalam dua kelompok yaitu mysql-server sebagai database server nya dan mysql sebagai client
untuk berinteraksi dengan server melalui perintah-perintah CLI baik untuk keperluan
management user dan database atau untuk keperluan akses data.

Tahap pertama periksa dahulu apakah mysql dan mysql-server sudah terinstalasi pada
komputer anda dengan menggunakan perintah (sebagai root) seperti terlihat di bawah ini :

[root@sl6 html]# yum list mysql­server


Loaded plugins: refresh­packagekit
Available Packages
mysql­server.i686 5.1.52­1.el6_0.1 sl­security
[root@sl6 html]# yum list mysql
Loaded plugins: refresh­packagekit
Available Packages
mysql.i686 5.1.52­1.el6_0.1 sl­security
[root@sl6 html]#

atau

[root@sl6 html]# rpm ­qa | grep mysql


mysql­libs­5.1.52­1.el6_0.1.i686
[root@sl6 html]#

Bagian pertama anda lakukan bila komputer anda terhubung ke internet. Bila komputer anda
tidak terhubung ke internet maka pergunakan perintah pada bagian kedua.

Apabila tampilan yang anda dapatkan seperti pada gambar diatas maka hal itu berarti mysql-
server dan mysql belum terinstall pada komputer anda. Untuk melakukan instalasi bila
komputer anda tidak terhubung ke internet maka anda harus mencari dulu file rpm nya. Perlu
diperhatikan bahwa paket file rpm untuk mysql-server mempunyai ketergantungan pada
beberapa file rpm yang lain. Selengkapnya semua file rpm yang diperlukan untuk instalasi
mysql dan mysql-server dapat dilihat seperti berikut ini :

[root@sl6 ~]# ls ­l
total 10276
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
Kumpulan How To 43

­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]


­rw­­­­­­­. 1 root root 49 May 12 14:43 Kbelogix.+157+[Link]
­rw­­­­­­­. 1 root root 165 May 12 14:43 Kbelogix.+157+[Link]
­rw­r­­r­­. 1 root root 919016 Jan 22 04:06 mysql­5.1.52­1.el6_0.[Link]
­rw­r­­r­­. 1 root root 8655124 Jan 22 04:06 mysql­server­5.1.52­1.el6_0.[Link]
­rw­r­­r­­. 1 root root 136572 Dec 14 05:07 perl­DBD­MySQL­4.013­[Link]
­rw­r­­r­­. 1 root root 720964 Dec 14 05:07 perl­DBI­1.609­[Link]
drwxr­xr­x. 2 root root 4096 May 14 23:51 rpm
[root@sl6 ~]#

Anda dapat melakukan instalasi untuk semua paket file rpm secara sekaligus seperti terlihat
berikut ini :

[root@sl6 ~]# rpm ­ivh mysql­5.1.52­1.el6_0.[Link] perl­DBI­1.609­


[Link] perl­DBD­MySQL­4.013­[Link] mysql­server­5.1.52­
1.el6_0.[Link]
Preparing... ########################################### [100%]
1:perl­DBI ########################################### [ 25%]
2:perl­DBD­MySQL ########################################### [ 50%]
3:mysql ########################################### [ 75%]
4:mysql­server ########################################### [100%]
[root@sl6 ~]#

Bila komputer anda terhubung ke internet secara langsung maka anda tidak perlu mencari
file-file rpm nya terlebih dahulu. Anda langsung dapat melakukan instalasi dengan
memberikan perintah :

[root@sl6 ~]# yum install mysql mysql­server


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package mysql.i686 0:5.1.52­1.el6_0.1 set to be updated
­­­> Package mysql­server.i686 0:5.1.52­1.el6_0.1 set to be updated
­­> Processing Dependency: perl(DBI) for package: mysql­server­5.1.52­
1.el6_0.1.i686
­­> Processing Dependency: perl­DBI for package: mysql­server­5.1.52­
1.el6_0.1.i686
­­> Processing Dependency: perl­DBD­MySQL for package: mysql­server­5.1.52­
1.el6_0.1.i686
­­> Running transaction check
­­­> Package perl­DBD­MySQL.i686 0:4.013­3.el6 set to be updated
­­­> Package perl­DBI.i686 0:1.609­4.el6 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
Kumpulan How To 44

mysql i686 5.1.52­1.el6_0.1 sl­security 897 k


mysql­server i686 5.1.52­1.el6_0.1 sl­security 8.3 M
Installing for dependencies:
perl­DBD­MySQL i686 4.013­3.el6 sl 133 k
perl­DBI i686 1.609­4.el6 sl 704 k

Transaction Summary
==============================================================
Install 4 Package(s)
Upgrade 0 Package(s)

Total download size: 9.9 M


Installed size: 27 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): mysql­5.1.52­1.el6_0.[Link] | 897 kB 01:58
(2/4): mysql­server­5.1.52­1.el6_0.[Link] | 8.3 MB 07:02
(3/4): perl­DBD­MySQL­4.013­[Link] | 133 kB 00:01
(4/4): perl­DBI­1.609­[Link] | 704 kB 00:05
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
Total 18 kB/s | 9.9 MB 09:15
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl­DBI­1.609­4.el6.i686 1/4
Installing : perl­DBD­MySQL­4.013­3.el6.i686 2/4
Installing : mysql­5.1.52­1.el6_0.1.i686 3/4
Installing : mysql­server­5.1.52­1.el6_0.1.i686 4/4

Installed:
mysql.i686 0:5.1.52­1.el6_0.1 mysql­server.i686 0:5.1.52­1.el6_0.1

Dependency Installed:
perl­DBD­MySQL.i686 0:4.013­3.el6 perl­DBI.i686 0:1.609­4.el6

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini kita akan mendapatkan sebuah file konfigurasi /etc/[Link] dan sebuah
startup script dalam directory /etc/init.d/ seperti terlihat berikut ini :

[root@sl6 ~]# ls ­l /etc/[Link]


­rw­r­­r­­. 1 root root 251 Jan 21 05:40 /etc/[Link]

[root@sl6 ~]# ls ­l /etc/init.d/mysqld


­rwxr­xr­x. 1 root root 5509 Jan 21 05:40 /etc/init.d/mysqld

File konfigurasi tersebut isinya adalah sebagai berikut :


Kumpulan How To 45

[root@sl6 ~]# cat /etc/[Link]


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/[Link]
user=mysql
# Disabling symbolic­links is recommended to prevent assorted security risks
symbolic­links=0

[mysqld_safe]
log­error=/var/log/[Link]
pid­file=/var/run/mysqld/[Link]
[root@sl6 ~]#

Dari situ kita mendapatkan informasi dimana MySQL menyimpan data nya yaitu dalam
directory /var/lib/mysql.

Pertama kali anda jalankan MySQL Server anda akan mendapatkan tampilan seperti berikut
ini :

[root@sl6 ~]# service mysqld start


Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy


support­files/[Link] to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !


To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin ­u root password 'new­password'


/usr/bin/mysqladmin ­u root ­h [Link] password 'new­password'

Alternatively you can run:


/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:


cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql­test­[Link]


cd /usr/mysql­test ; perl mysql­test­[Link]

Please report any problems with the /usr/bin/mysqlbug script!

[ OK ]
Kumpulan How To 46

Starting mysqld: [ OK ]
[root@sl6 ~]#

Tampilan di atas hanya muncul sekali saja pada saat pertamakali anda menjalankan MySQL
Server. Selanjutnya tampilan tersebut tidak akan muncul lagi. Yang penting dari tampilan
diatas adalah pesan bahwa instalasi MySQL server anda harus segera diamankan dengan
memberikan password untuk user “root” mysql. Perhatikan bahwa ini bukan root untuk
komputer anda tetapi user yang berfungsi sebagai administrator khusus untuk server MySQL.
User ini dipergunakan untuk conect ke server dari mysql client.

Pada kondisi awal seperti ini maka siapapun dapat melakukan koneksi ke server mysql tanpa
password. Perhatikan tampilan di bawah ini :

[user@sl6 ~]$ mysql


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.52 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Perintah diatas menjalankan mysql client di komputer yang juga menjalankan mysql-server
dengan username sembarang. Konfigurasi awal dari MySQL hanya membolehkan koneksi
melalui “localhost” (dengan username sembarang atau anonymous) artinya hanya di
komputer yang menjalankan mysql-server saja, oleh karena itu anda belum dapat
menjalankan mysql client untuk connect dari komputer lain.

Setelah menjalankan mysql-client selanjut nya anda akan mendapatkan prompt mysql seperti
tampak pada tampilan diatas. Selanjut nya anda berinteraksi dengan mysql-server
menggunakan perintah-perintah SQL (tidak dibahas disini).

Untuk mengubah susunan user dan mengamankan instalasi mysql sesaat setelah melakukan
instalasi seperti di atas anda harus connect ke mysql-server dengan user “root” dari mysql dan
mengakses database “user” yang menyimpan daftar user mysql. Caranya adalah sebagai
berikut :

[user@sl6 ~]$ mysql ­u root mysql


Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with ­A

Welcome to the MySQL monitor. Commands end with ; or \g.


Your MySQL connection id is 7
Server version: 5.1.52 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Kumpulan How To 47

This software comes with ABSOLUTELY NO WARRANTY. This is free software,


and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQL mempunyai aturan tersendiri untuk user yang boleh mengakses server dan kita dapat
memeriksanya dengan memberikan perintah berikut setelah menjalankan perintah diatas :

mysql> SELECT user,host,password FROM user;


+­­­­­­+­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+
| user | host | password |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+
| root | localhost | |
| root | [Link] | |
| root | [Link] | |
| | localhost | |
| | [Link] | |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+
5 rows in set (0.00 sec)

mysql>

Susunan tabel user diatas kita baca dengan pengertian bahwa user “root” dapat melakukan
koneksi dari localhost, [Link] dan “[Link]” yang tidak lain adalah IP address dari
komputer yang menjalankan mysql-server tanpa password. Selain itu user anonymous juga
dapat melakukan koneksi dari localhost dan “[Link]” juga tanpa password.

Agar user root memiliki password kita pergunakan perintah :

mysql> UPDATE user SET password = PASSWORD('passwdmysql')


­> WHERE user = "root";
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0.00 sec)

mysql>

Perintah diatas menset password untuk user root adalah “passwdmysql”. Perhatikan bahwa
perintah “PASSWORD” di depan password yang kita berikan berfungsi untuk melakukan
enkripsi terhadap password yang kita berikan, sehingga kalau kita baca lagi tabel user terlihat
bahwa password yang disimpan sudah melalui proses enkripsi terlebih dahulu :

mysql> SELECT user,host,password FROM user;


+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
| user | host | password |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
Kumpulan How To 48

| root | localhost | *57C636DE5748579CC827E284BA7071D14398EF6F |


| root | [Link] | *57C636DE5748579CC827E284BA7071D14398EF6F |
| root | [Link] | *57C636DE5748579CC827E284BA7071D14398EF6F |
| | localhost | |
| | [Link] | |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
5 rows in set (0.00 sec)

mysql>

Selain menggunakan perintah diatas bisa juga digunakan perintah “mysqladmin” untuk
mengubah password “root” tetapi tidak dibahas disini. Selanjut nya bila anda menghendaki
tidak boleh ada user anonymous yang dapat melakukan koneksi ke server maka anda harus
menghapus user anonymous ini dengan perintah :

mysql> DROP user ''@'localhost';


Query OK, 0 rows affected (0.00 sec)

mysql> DROP user ''@'[Link]';


Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0.00 sec)

Jangan lupa anda harus memberikan perintah “FLUSH PREVILEGES” setiap kali anda
mengubah database user ini agar perubahan tersebut segera diaktifkan. Hasil akhir nya adalah
sebagai berikut :

mysql> SELECT user,host,password FROM user;


+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
| user | host | password |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
| root | localhost | *57C636DE5748579CC827E284BA7071D14398EF6F |
| root | [Link] | *57C636DE5748579CC827E284BA7071D14398EF6F |
| root | [Link] | *57C636DE5748579CC827E284BA7071D14398EF6F |
+­­­­­­+­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+
5 rows in set (0.00 sec)

mysql>

Dengan hasil seperti di atas maka mysql-server anda sudah relatif aman dan sementara hanya
user root yang dapat mengakses dengan password seperti yang telah diberikan.

Untuk menghentikan server MySQL pergunakan perintah :

[root@sl6 user]# service mysqld stop


Stopping mysqld: [ OK ]
[root@sl6 user]#

Agar mysqld ini selalu dijalankan setiap kali komputer dihidupkan dan juga sekaligus
Kumpulan How To 49

dimatikan setiap kali komputer dimatikan maka buat konfigurasi nya permanen dengan
perintah :

[root@sl6 ~]# chkconfig mysqld on


[root@sl6 ~]#

Dan periksa apakah konfigurasi nya benar aktif seperti terlihat pada tampilan di bawah ini :

[root@sl6 user]# chkconfig ­­list mysqld


mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 user]#

Terlihat bahwa mysqld akan aktif pada run level 2,3,4 dan 5.

Apabila anda mengaktifkan firewall dengan iptables maka anda harus membuka port untuk
MySQL Server apabila mysqld ini akan diakses dari komputer lain. Biasanya hal ini jarang
dilakukan kecuali anda membuat aplikasi yang langsung berinteraksi dengan mysql-server.
Port yang harus dibuka adalah seperti terlihat di bawah ini :

[root@sl6 sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 3306 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6 sysconfig]

Satu lagi yang perlu ditambahkan sehubungan dengan instalasi MySQL Server ini adalah
apabila nanti nya MySQL akan diakses dari PHP maka kita harus melakukan instalasi file
paket dukungan bagi PHP-MySQL. Untuk itu carilah dahulu paket file php-mysql-5.3.2-
6.el6_0.[Link] dan php-pdo-5.3.2-6.el6_0.[Link].

Bila anda sudah mendapatkan nya anda dapat langsung menginstall nya dengan perintah :

[root@sl6 ~]# rpm ­ivh php­pdo­5.3.2­6.el6_0.[Link] php­mysql­5.3.2­


6.el6_0.[Link]
Preparing... ########################################### [100%]
1:php­pdo ########################################### [ 50%]
2:php­mysql ########################################### [100%]
[root@sl6 ~]#
Kumpulan How To 50

atau dengan menggunakan perintah yum

[root@sl6 ~]# yum install php­mysql


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package php­mysql.i686 0:5.3.2­6.el6_0.1 set to be updated
­­> Processing Dependency: php­pdo for package: php­mysql­5.3.2­6.el6_0.1.i686
­­> Running transaction check
­­­> Package php­pdo.i686 0:5.3.2­6.el6_0.1 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
php­mysql i686 5.3.2­6.el6_0.1 sl­security 72 k
Installing for dependencies:
php­pdo i686 5.3.2­6.el6_0.1 sl­security 70 k

Transaction Summary
==============================================================
Install 2 Package(s)
Upgrade 0 Package(s)

Total download size: 142 k


Installed size: 329 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): php­mysql­5.3.2­6.el6_0.[Link] | 72 kB 00:03
(2/2): php­pdo­5.3.2­6.el6_0.[Link] | 70 kB 00:00
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
Total 22 kB/s | 142 kB 00:06
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php­pdo­5.3.2­6.el6_0.1.i686 1/2
Installing : php­mysql­5.3.2­6.el6_0.1.i686 2/2

Installed:
php­mysql.i686 0:5.3.2­6.el6_0.1

Dependency Installed:
php­pdo.i686 0:5.3.2­6.el6_0.1

Complete!
[root@sl6 ~]#
Kumpulan How To 51

Bab.7 Instalasi WordPress

Berikut akan diberikan langkah-langkah untuk melakukan instalasi CMS (Content


Management System) yang sederhana. CMS dapat digunakan sebagai web site untuk sekolah,
untuk perusahaan, atau juga untuk membuat blog pribadi.

Untuk keperluan tersebut disini dipilih WordPress ([Link] sebagai contoh


karena prosedur instalasi dan penggunaan nya yang mudah. Sebuah CMS biasanya
memerlukan sebuah platform (wadah) untuk dapat bekerja. Platform yang paling banyak
digunakan dikenal dengan akronim LAMP (Linux, Apache, MySQL, PHP) yaitu sebuah
server Linux yang di dalam nya sudah terinstall dengan baik Apache Web Server, database
MySQL, dan PHP language scripting.

Dengan mempraktekkan instalasi yang sudah dibahas pada bab 5 mengenai Apache Web
Server dan bab 6 mengenai MySQL Server kita secara tidak langsung sudah menyiapkan
platform LAMP yang diperlukan untuk melakukan instalasi CMS sNews. Berikut ini
langkah-langkah yang harus dilakukan.

Pertama kita download terlebih dahulu source code WordPress ini dari web site nya. Versi
terbaru pada saat manual ini ditulis adalah versi 1.7 dengan perintah seperti di bawah ini :

[root@sl6 ~]# wget [Link]


­­2011­05­19 14:38:02­­ [Link]
Resolving [Link]... [Link], [Link]
Connecting to [Link]|[Link]|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x­gzip]
Saving to: “[Link]”

[ <=> ] 2,764,136 47.7K/s in 49s

2011­05­19 14:38:54 (55.1 KB/s) ­ “[Link]” saved [2764136]

[root@sl6 ~]#

kita akan mendapatkan satu file dengan nama [Link] seperti terlihat pada gambar
berikut :

[root@sl6 ~]# ls ­l
total 2776
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
­rw­­­­­­­. 1 root root 49 May 12 14:43 Kbelogix.+157+[Link]
­rw­­­­­­­. 1 root root 165 May 12 14:43 Kbelogix.+157+[Link]
­rw­r­­r­­. 1 root root 2764136 May 19 14:38 [Link]
drwxr­xr­x. 2 root root 4096 May 19 11:49 rpm
Kumpulan How To 52

[root@sl6 ~]#

Karena file tersebut masih dipaket dalam format [Link], kita harus mengurai nya terlebih
dahulu dengan perintah sebagai berikut :

[root@sl6 ~]# tar ­zxvf [Link]


.
.
.
wordpress/wp­[Link]
wordpress/wp­[Link]
wordpress/wp­[Link]
wordpress/wp­config­[Link]
wordpress/wp­links­[Link]
wordpress/wp­comments­[Link]
wordpress/wp­[Link]
wordpress/wp­[Link]
wordpress/wp­[Link]
[root@sl6 ~]#

Hasil uraian tersebut disimpan dalam directory wordpress.

Langkah berikut nya adalah kita menyiapkan database untuk keperluan CMS ini pada
database server yang sudah diinstall dan siap digunakan sesuai dengan pembahasan pada bab
6. Untuk keperluan ini kita membuat sebuah database dengan nama wordpress dengan
perintah berikut :

[root@sl6 ~]# mysql ­p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.52 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE wordpress;


Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "mycms”@”localhost"


­> IDENTIFIED BY "mycmspwd";
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0.00 sec)

mysql> EXIT;
Bye
Kumpulan How To 53

[root@sl6 ~]#

Selanjut nya anda harus membuat file [Link], untuk memudahkan anda dapat meng-
copy nya dari file [Link] yang terdapat dalam directory wordpress hasil dari
perintah tar pada langkah sebelum nya. Dalam file ini anda ubah baris-baris deklarasi dan
sesuaikan dengan yang ada di bawah ini :

// ** MySQL settings ­ You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */


define('DB_USER', 'mycms');

/** MySQL database password */


define('DB_PASSWORD', 'mycmspwd');

/** MySQL hostname */


define('DB_HOST', 'localhost');

Masih dalam file [Link], anda harus membuat “security key” dengan cara
menggunakan key generator yang ada pada web site dari Wordpress
([Link] Dengan mengakses web site pada alamat
tersebut anda sekaligus akan mendapatkan semua security keys yang diperlukan, tinggal
menyalin ke dalam file [Link] pada baris yang sesuai seperti terlihat berikut ini :

define('AUTH_KEY', '{^CT@`­}+R+J,4k<­mm?4:­*.~/rKS@D0sQ:w g7*~O2DU6[2HmHs07~OY#BZxFa');


define('SECURE_AUTH_KEY', 'TdWaGG&+lBN<>8rZ%y5X|OmdL]cB+q|#FZ5!7sDS##sk­,*j8WTqMlUzZ4PbMK=Z');
define('LOGGED_IN_KEY', 'en4jyu~GKJYtFIB^JT vp%<7($nTUr<9@k!B7HR[v}dgvt$rbJ[/A)?S­wryQx1s');
define('NONCE_KEY', 'GHq#lXQVh,l6z`SfKjB*j%N`t[1+S6r2­++):tbL]U)KLHC{XE1M$|`.C@umh:Z+');
define('AUTH_SALT', '8RHq$uu=2S&6[DsWG9CHCnqRTLD9H{_|wRfQm)V3y[UF^ni~jQ#GTfTwB0it|j@S');
define('SECURE_AUTH_SALT', 'O0EXI`LI/aw+h`?iZ|ul)}MSRb7yoT­t8W:|vKt[%NW8DV5:w>vdv[zom`QK0kG?');
define('LOGGED_IN_SALT', '1DU_i0K|D %|8FQ­QO;fFHfXf[r0XX­m9>+YEdqHo+gEbKewN]msb|^RojrCW+fI');
define('NONCE_SALT', '%NxU!M#T~$:Oz*­%i6$s1;]5GZ;wJIidSs =a}]UVFJM]$[A<eHS$a(|jNH0+j`?');

Langkah berikut nya anda tinggal mengcopy kan seluruh isi file dalam directory wordpress
ke dalam root document web server anda misal nya dengan menggunakan perintah sebagai
berikut :

[root@sl6 ~]# mv wordpress/* /var/www/html/


[root@sl6 ~]# cd /var/www/html
[root@sl6 html]# ls
[Link] wp­[Link] wp­content wp­[Link] wp­[Link]
[Link] wp­blog­[Link] wp­[Link] wp­[Link] wp­[Link]
[Link] wp­comments­[Link] wp­[Link] wp­[Link] wp­[Link]
wp­[Link] wp­[Link] wp­includes wp­[Link] wp­[Link]
wp­admin wp­[Link] wp­links­[Link] wp­[Link] [Link]
wp­[Link] wp­config­[Link] wp­[Link] wp­[Link]
[root@sl6 html]#

Perhatikan bila anda mengaktifkan SELinux anda harus men-set security context file-file
Kumpulan How To 54

wordpress yang anda pindahkan dari luar directory tempat anda mengurai source code dari
Wordpress dengan perintah :

[root@sl6 www]# chcon ­R ­h ­t httpd_sys_content_t html


[root@sl6 www]# ls ­Z html
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 [Link]
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 [Link]
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 [Link]
.
.
.
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 wp­[Link]
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 wp­[Link]
­rw­r­­r­­. root root unconfined_u:object_r:httpd_sys_content_t:s0 [Link]
[root@sl6 www]#

Selanjut nya anda sudah dapat melakukan konfigurasi Wordpress dengan mengakses nya
melalui browser ke web server seperti terlihat pada gambar beikut :
Kumpulan How To 55

Bab.8 Instalasi Proxy Server SQUID

Berikut ini adalah prosedur instalasi FTP Server menggunakan squid pada distro Scientific
Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6 (RHEL).
Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga dengan
Red Hat.

squid adalah salah satu Cache/Proxy Server yang paling banyak dipakai dan mudah diinstall,
walaupun penggunaan Cache/Proxy Server kurang begitu relevan saat ini dengan semakin
banyaknya web site yang menggunakan “dynamic content”. Selain itu penggunaan
Cache/Proxy Server juga tidak relevan untuk web site yang “secure” (biasa ditandai dengan
penggunaan https). Namun proxy masih dapat dimanfaatkan untuk masalah “access control”
yaitu untuk membatasi akses.

Tahap pertama periksa dahulu apakah squid sudah terinstalasi pada komputer anda dengan
menggunakan perintah (sebagai root) seperti terlihat di bawah ini :

[root@sl6 ~]# yum list squid


Loaded plugins: refresh­packagekit
Available Packages
squid.i686 7:3.1.4­1.el6 sl
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep squid


[root@sl6 ~]#

Bagian pertama anda lakukan bila komputer anda terhubung ke internet. Bila komputer anda
tidak terhubung ke internet maka pergunakan perintah pada bagian kedua.

Apabila tampilan yang anda dapatkan seperti pada gambar diatas maka hal itu berarti squid
belum terinstall pada komputer anda. Untuk melakukan instalasi bila komputer anda tidak
terhubung ke internet maka anda harus mencari dulu file rpm dari squid. Copykan lah file
tersebut ke dalam salah satu directory di komputer anda. Misalkan sebagai root anda copy
kan file tersebut ke dalam directory /root seperti tampak pada gambar di bawah ini :

[root@sl6 ~]# ls ­l
total 1788
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 769 May 19 15:03 Documents
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
drwxr­xr­x. 2 root root 4096 May 23 14:02 rpm
­rw­r­­r­­. 1 root root 1756620 Nov 25 04:07 squid­3.1.4­[Link]
[root@sl6 ~]#
Kumpulan How To 56

Bila anda sudah mengcopykan seperti tampak pada gambar diatas selanjutnya untuk
melakukan instalasi anda tinggal memberikan perintah seperti berikut ini :

[root@sl6 ~]# rpm ­ivh squid­3.1.4­[Link]


Preparing... ########################################### [100%]
1:squid ########################################### [100%]
[root@sl6 ~]#

Bila komputer anda terhubung ke internet secara langsung maka anda tidak perlu mencari dan
mengcopy file [Link] terlebih dahulu. Anda langsung dapat melakukan
instalasi dengan memberikan perintah :

[root@sl6 ~]# yum install squid


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package squid.i686 7:3.1.4­1.el6 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
squid i686 7:3.1.4­1.el6 sl 1.7 M

Transaction Summary
==============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 1.7 M


Installed size: 5.4 M
Is this ok [y/N]: y
Downloading Packages:
squid­3.1.4­[Link] | 1.7 MB 01:49
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 7:squid­3.1.4­1.el6.i686 1/1

Installed:
squid.i686 7:3.1.4­1.el6

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini kita akan mempunyai directory baru dalam directory etc yaitu /etc/suid
Kumpulan How To 57

yang isinya adalah sebagai berikut :

[root@sl6 squid]# ls ­l
total 56
­rw­r­­r­­. 1 root squid 419 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 419 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 1411 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 1411 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 11651 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 11651 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 421 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 421 Nov 24 14:17 [Link]
­rw­r­­­­­. 1 root squid 2549 Nov 24 14:17 [Link]
­rw­r­­r­­. 1 root root 2549 Nov 24 14:17 [Link]
[root@sl6 squid]#

dan satu file script dalam directory /etc/init.d/ yaitu :

[root@sl6 init.d]# ls ­l squid


­rwxr­xr­x. 1 root root 3492 Nov 24 14:17 squid
[root@sl6 init.d]#

Konfgurasi untuk squid disimpan dalam file /etc/squid/[Link]. Tanpa melakukan


perubahan apa-apa Cache/Proxy Server Squid ini sudah dapat langsung dijalankan dengan
perintah :

[root@sl6 squid]# service squid start


Starting squid: . [ OK ]
[root@sl6 squid]#

dan dihentikan dengan perintah :

[root@sl6 squid]# service squid stop


Stopping squid: ................ [ OK ]
[root@sl6 squid]#

Agar setiap kali komputer booting squid langsung dijalankan berikan perintah :

[root@sl6 squid]# chkconfig squid on


[root@sl6 squid]#

Hasil nya kita lihat dengan perintah :

[root@sl6 squid]# chkconfig ­­list squid


squid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 squid]#
Kumpulan How To 58

Terlihat bahwa squid dijalankan pada run level 2,3,4, dan 5.

Konfigurasi standar ini menjalankan squid untuk bekerja pada port 3128, artinya bila
komputer client bermaksud menggunakan Cache/Proxy Server maka komputer client harus
dikonfigurasi untuk berkerja dengan port 3128. Contoh nya untuk browser Firefox
konfigurasi itu dilakukan pada menu Edit --> Preferences --> Advanced --> Settings seperti
terlihat di bawah ini :

Apabila komputer client tidak dikonfigurasi untuk menggunakan proxy seperti pada gambar
di atas maka komputer client tidak akan menggunakan Proxy.

Perlu diingat juga bila pada komputer yang menjalankan squid ini terpasang firewall dengan
iptables maka anda harus mengkonfigurasi iptables untuk membuka akses yang menuju port
3128, atau dengan kata lain file /etc/sysconfig/iptables nya harus diedit hingga menjadi
seperti berikut ini :

[root@sl6 sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 3128 ­j ACCEPT
Kumpulan How To 59

­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited


­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6 sysconfig]#

Cara ini bagi kebanyakan administrator jaringan dinilai kurang praktis karena komputer client
harus dikonfigurasi satu persatu, bila jumlah komputer client cukup banyak tentu pekerjaan
ini cukup merepotkan. Jalan keluar nya adalah dengan mengkonfigurasi agar Squid bekerja
sebagai “transparent proxy”. Untuk itu Squid harus dikombinasikan dengan Firewall
menggunakan IPTABLES.

Cara kerja transparent proxy adalah dengan menjalankan IPTABLES pada komputer yang
berfungsi sebagai gateway, sebagai contoh untuk menghemat Cache/Proxy server dijalankan
juga di komputer yang berfungsi sebagai gateway ini. Misalkan semua client berada pada
network [Link] dan terhubung ke eth0 dan IP address eth0 [Link], maka iptables di
gateway tersebut harus diubah dengan mengedit file /etc/sysconfig/iptables menjadi seperti di
bawah ini :

[root@sl6 sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A PREROUTING ­i eth0 ­p tcp ­m tcp ­­dport 80 ­j DNAT ­­to­destination
[Link]:3128
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 3128 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6 sysconfig]#

Perhatikan tambahan tabel nat pada konfigurasi iptables diatas. Iptables dengan konfigurasi
ini akan memblok semua trafik keluar yaitu semua trafik yang berasal dari internal network
yang terhubung ke eth0 termasuk juga trafik http yang bercirikan port tujuan nya adalah port
80 (http port).

Namun khusus untuk trafik http (dengan tujuan port 80) dengan tujuan kemana saja yang
berasal dari internal network yang terhubung ke eth0 dialihkan ke alamat [Link] port
3128 yaitu ke Cache/Proxy Server yang berjalan di komputer yang berfungsi sebagai gateway
tersebut. Agar Cache/Proxy Server segera menangkap trafik ini maka anda perlu mengubah
konfigurasi Proxy/Cache dengan cara mengedit file /etc/squid/[Link] pada baris yang
Kumpulan How To 60

berisi deklarasi http_port seperti berikut ini :

# Squid normally listens to port 3128


http_port 3128 intercept

Sekarang anda tidak perlu repot-repot lagi mengkonfigurasi komputer client untuk
menggunakan proxy lagi. Semua akses ke web dari client secara otomatis akan dibelokkan
menuju Proxy/Cache Server. Namun perlu diingat bahwa dengan konfigurasi diatas client
anda tidak dapat mengakses web server yang dikonfigurasi dengan “secure http” ditandai
dengan penggunaan syntax https://

Secure http memang tdak dapat dilayani dengan Proxy/Cache Server karena akan menjadi
tidak secure lagi, Proxy/Cache Server akan menjadi “man in the middle”. Jadi trafik yang
menuju ke secure http server harus diteruskan tanpa cache, untuk keperluan tersebut yang
perlu dimodifikasi adalah IPTABLES, dengan mengedit file /etc/sysconfig/iptables menjadi
seperti berikut :

[root@sl6d sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A PREROUTING ­i eth0 ­p tcp ­m tcp ­­dport 80 ­j DNAT ­­to­destination
[Link]:3128
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 3128 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­p tcp ­m tcp –dport 443 ­j ACCEPT
­A FORWARD ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6d sysconfig]#

Bila anda sudah berhasil mengkonfigurasi squid untuk keperluan transparent proxy berikut
nya anda dapat memanfaatkan squid untuk mengontrol akes internet yang melalui protocol
http menggunakan “access control list” (ACL). Ada dua macam deklarasi untuk melakukan
hal tersebut yang kita masukkan dalam file /etc/squid/[Link] yaitu deklarasi “acl” dan
“http_access”. Misal nya kita bermaksud membatasi akses berdasarkan jam atau client
tertentu. Kita tambahkan deklarasi berikut :

#
Kumpulan How To 61

# Tambahkan baris berikut di bagian bawah deklarasi ACL dari [Link]


#
acl home_network src [Link]/24
acl jam_kerja time M T W H F 9:00­17:00
acl RestrictedHost src [Link]

#
# Tambahkan diatas deklarasi http_access dari [Link]
#
http_access deny RestrictedHost
http_access allow home_network jam_kerja

Contoh lain misalkan untuk pembatasan waktu dengan deklarasi sebagai berikut :

#
acl pagi time 7:30­10:00
#
http_access allow pagi
#

Untuk memfilter berdasarkan web site anda dapat membuat list mana web site yang boleh
dikunjungi atau mana web site yang tidak boleh dikunjungi dengan deklarasi sebagai berikut :

#
acl home_network src [Link]/24
acl jam_kantor time M T W H F 9:00­17:00
acl Boleh dstdomain "/usr/local/etc/[Link]"
acl Dilarang dstdomain "/usr/local/etc/[Link]"

#
#
http_access deny Dilarang
http_access allow home_network jam_kantor Boleh

kemudian anda membuat dua buah file dalam directory /usr/local/etc dengan nama
[Link] dan [Link]. Misalnya sebagai berikut :

# File: /usr/local/etc/[Link]
[Link]
[Link]

# File: /usr/local/etc/[Link]
[Link]
[Link]

Perhatikan bahwa default ACL dari squid membolehkan semua privat network untuk
mengakses squid dengan deklarasi berikut :

acl localnet src [Link]/8 # RFC1918 possible internal network


Kumpulan How To 62

acl localnet src [Link]/12 # RFC1918 possible internal network


acl localnet src [Link]/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

http_access allow localnet

Jadi bila anda membuat acl yang akan membatasi berdasarkan ip address perhatikan apakah
deklarasi anda tidak ternetralisir oleh deklarasi di atas. Artinya walaupun anda sudah
membuat deklarasi untuk membatasi berdasarkan IP Address tertentu bila IP Address tersebut
adalah private network dalam salah satu deklarasi di atas maka pembatasan anda akan
diabaikan.

Untuk itu ada sebaiknya anda hilangkan deklarasi “http_access allow localnet” terlebih
dahulu.

Squid juga dapat berfungsi sebgai “bandwidth limiter” untuk trafik http. Jadi bila anda ingin
mengendalikan trafik http agar tidak menghabiskan seluruh bandwidth anda dapat
menggunakan squid. Pembatasan yang dilakukan bahwan dapat di atur untuk setiap user dan
setiap subnet (bila anda memiliki beberapa subnet).

Untuk keperluan tersebut squid menggunakan konsep yang disebut “pool” atau dapat kita
terjemahkan secara bebas sebagai kelompok penjatahan. Setiap “pool” memiliki kelas atau
kategori mulai dari 1 s/d 5 akan tetapi yang sering digunakan dan lebih mudah dimengerti
adalah kelas 1 s/d 3 saja.

Berdasarkan kelas nya setiap pool akan memiliki beberapa parameter yang merupakan angka
pembatas berupa sepasang angka. Pool kelas 1 hanya memiliki 1 parameter (sepasang angka
pembatas), pool kelas 2 memiliki 2 parameter (dua pasang angka pembatas) dan pool kelas 3
memiliki 3 parameter (tiga pasang angka pembatas), pool kelas 4 dan 5 memiliki definisi
tersendiri, tidak kita bahas disini.

Angka pembatas ini menggambarkan cara keja squid dalam membatasi trafik. Setiap pool
dapat dianalogikan dengan sebuah keranjang. Ke dalam keranjang ini squid akan mengisikan
data yang nantinya akan diambil oleh client. Angka pertama mencerminkan seberapa cepat
squid mengisi keranjang tersebut dengan data dalam satuan Byte/Sec, misalkan 8 KBps
artinya squid mengisi keranjang (pool) dengan kecepatan 8 Kilo Byte setiap detik nya. Bila
data ini tidak diambil oleh client maka data akan menumpuk terus dalam keranjang oleh
karena itu perlu ada angka ke dua yang membatasi sampai berapa banyak squid boleh
mengisi keranjang tersebut misalkan 64 KB maka setelah 8 detik bila data dalam keranjang
tadi tidak diambil oleh client squid akan berhenti mengisi keranjang (8 x 8KBps = 64 KB).
Pada umum nya kecepatan client mengosongkan data dalam keranjang lebih cepat dari
kecepatan squid mengisi keranjang seolah-olah angka kedua tidak terlalu penting.

Pool kelas 1 hanya memiliki satu parameter artinya semua client secara total dibatasi oleh
satu pasang angka saja. Contoh nya adalah deklarasi berikut :

delay_pools 1
delay_class 1 1
Kumpulan How To 63

delay_parameters 1 8000/8000
delay_access 1 allow my_net
delay_access 1 deny all

Deklarasi pertama yaitu “delay_pools 1” menyatakan kita hanya membuat 1 pool saja,
deklarasi kedua “delay_class 1 1” menentukan bahwa pool 1 adalah pool kelas 1 (angka
pertama nomor pool angka kedua kelas), deklarasi ketiga “delay_parameters 1 8000/800”
menyatakan pool nomor 1 dibatasi dengan kecepatan mengisi 8000 byte/detik dan maksimum
data sebanyak 8000 byte, deklarasi keempat dan kelima menentukan siapa yang terkena
pembatasan pool ini (dalam hal ini my_net dan sudah harus didefinisikan sebelum nya
dengan deklarasi acl.

Berikut contoh yang lain :

delay_pools 1
delay_class 1 2
delay_parametes 1 62500/62500 6250/6250
delay_access 1 allow my_net
delay_access 1 deny all

Menyatakan bahwa hanya ada satu pool kelas 2 dengan parameter pembatas (karena kelas 2
berarti ada 2 pasang) pertama berlaku terhadap total client yang dibatasi oleh pool ini sebesar
62500 Bps (5 Mbps) dan parameter pembatas kedua berlaku untuk masing-masing client
sebesar 6250 Bps (0,5 Mbps). Jadi pool kelas 2 mempunyai 2 parameter pembatas yaitu total
dan individual.

delay_pools 2
delay_class 1 2
delay_class 2 3
delay_parametes 1 62500/62500 6250/6250
delay_parametes 1 62500/62500 31250/31250 6250/6250
delay_access 1 allow my_net
delay_access 1 deny all
delay_access 2 allow other_net
delay_access 2 deny all

Menyatakan ada 2 pool, pool pertama kelas 2 pool kedua kelas 3. Definisi pool 1 seperti
contoh di atas. Definisi pool kedua mempunyai 3 parameter pembatas yang pertama adalah
untuk total semua client dalam pool sebesar 62500 Bps, parameter kedua untuk total client
dalam satu subnet sebesar 31250 Bps, dan parameter ketiga untuk masing-masing client
sebesar 6250 Bps.

Pool kelas 3 biasanya digunakan apabila network kita memiliki beberapa subnet dan kita
ingin membatasi tidak hanya per client tetapi juga per subnet selain pembatasan total untuk
semua client dalam pool tersebut. Tentunya deklarasi “my_net” dan “other_net” sudah harus
dideklarasikan dulu sebelum nya dengan “acl”

Penggunaan squid juga dapat ditambah dengan fitur proteksi dengan username dan password.
Dengan demikian hanya user yang mempunyai account saja yang dapat browsing ke internet.
Akan tetapi hal ini tidak dapat dijalankan pada konfigurasi “transparent proxy”. Jadi
Kumpulan How To 64

terpaksa bila anda bermaksud untuk menggunakan proteksi user name dan password client
harus dikonfigurasikan menggunakan proxy.

Langkah pertama anda harus menyiapkan aplikasi pembantu untuk melakukan autentikasi
karena squid tidak dapat melakukan nya sendiri. Aplikasi yang paling banyak dipakai dan
mudah digunakan adalah aplikasi “ncsa_auth” yang biasanya akan terinstall bersama dengan
instalasi Apache Web Server. Carilah dimana aplikasi tersebut berada dengan perintah :

[root@sc ~]# locate ncsa_auth


/usr/lib/squid/ncsa_auth
/usr/share/man/man8/ncsa_auth.[Link]
[root@sc ~]#

bila tidak ditemukan maka install terlebih dahulu Apache Web Server (yang paling mudah).
Berikut nya siapkan file untuk menyimpan username dan password bagi user yang akan
mengakses proxy tersebut. Untuk memudahkan boleh disimpan dalam directory /etc/squid,
seperti berikut ini :

[root@sc ~]# touch /etc/squid/squid_passwd


[root@sc ~]# ls ­l /etc/squid
total 60
­rw­r­­r­­. 1 root squid 419 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 419 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 1411 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 1411 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 11651 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 11651 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 421 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 421 Nov 24 2010 [Link]
­rw­r­­­­­. 1 root squid 3107 May 26 12:52 [Link]
­rw­r­­r­­. 1 root root 2549 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 0 May 25 16:55 squid_passwd
[root@sc ~]#

Untuk membuat username dan password bagi user yang akan mengakses proxy gunakan
perintah berikut ini :

[root@sc squid]# htpasswd squid_passwd ujang


New password:
Re­type new password:
Adding password for user ujang
[root@sc squid]#

Argumen perintah di atas “squid_passwd” adalah file yang menyimpan password dan
“ujang” adalah nama user yang akan mengakses proxy.

Berikut nya tambahkan deklarasi beikut pada file /etc/squid/[Link] :

auth_param basic program /usr/lib64/squid/ncsa_auth


Kumpulan How To 65

/etc/squid/squid_passwd

acl ncsa_users proxy_auth REQUIRED

http_access allow ncsa_users my_net

masing-masing pada bagian yang sesuai. Perhatikan penulisan pada deklarasi “auth_param ...
“ jangan sampai ada kesalahan ketik karena kesalahan ketik disini tidak muncul sebagai error
ketika squid dijalankan (direstart) sehingga yang terjadi squid tidak berfungsi tetapi ketika di
start atau di restart tidak ada masalah.

Jangan lupa konfigurasi diatas harus dijalankan dalam mode proxy tidak boleh dalam kondisi
transparent proxy. Lihat konfigurasi di bagian awal bab ini sebagai referensi.

Semua batasan yang ada pada deklarasi http_access dapat dikombinasikan dari beberapa
deklarasi acl yang ada untuk memberikan fleksibilitas pembatasan yang maksimal. Anda
dapat mencoba untuk menggabungkan nya sendiri.
Kumpulan How To 66

Bab.9 Instalasi Postfix dan Dovecot

Berikut ini adalah prosedur instalasi Mail Server menggunakan Postfix pada distro Scientific
Linux 6 yang merupakan distro yang setara dengan Red Hat Enterprise Linux 6 (RHEL).
Prosedur ini pun dapat dilakukan untuk distro yang lain selama masih satu keluarga dengan
Red Hat.

Postfix adalah default Mail Server pada distro Scientific Linux, pada distro yang lain
biasanya default mail Server adalah SendMail. SendMail adalah Mail Server tertua sekaligus
paling rumit. Konfigurasi untuk SendMail bahkan harus dilakukan dengan mengkonfigurasi
sebuah script yang nanti nya digunakan untuk men-generatate file konfigurasi untuk
SendMail. Postfix merupakan Mail Server generasi baru yang lebih sederhana dan mudah
dikonfigurasi dan kompatibel dengan SendMail sehingga perlahan mulai menggantikan
kedudukan SendMail sebagai default Mail Server di Linux.

Sebagai default Mail Server maka Postfix secara otomatis sudah terinstal pada saat anda
melakukan instalasi Scientific Linux. Hal ini dapat dilihat dengan perintah :

[root@sl6 ~]# yum list postfix


Loaded plugins: refresh­packagekit
Installed Packages
postfix.i686 2:2.6.6­2.1.el6_0 @sl­security
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep postfix


postfix­2.6.6­2.1.el6_0.i686
[root@sl6 ~]#

Bila anda menggunakan distro yang default Mail Server nya bukan Postfix maka anda dapat
dengan mudah melakukan instalasi Postfix dengan perintah “yum install postfix” bila
terhubung ke internet. Bila komputer anda tidak terhubung ke internet anda dapat melakukan
instalasi dengan perintah rpm dengan terlebih dahulu mencari paket file rpm untuk Postfix
yang sesuai dengan distro yang anda pakai.

Posfix meletakkan konfigurasi nya dalam directory /etc/postfix yang isinya adalah sebagai
berikut :

[root@sl6 postfix]# ls ­l
total 140
­rw­r­­r­­. 1 root root 19579 Apr 7 11:13 access
­rw­r­­r­­. 1 root root 11681 Apr 7 11:13 canonical
­rw­r­­r­­. 1 root root 9904 Apr 7 11:13 generic
­rw­r­­r­­. 1 root root 18287 Apr 7 11:13 header_checks
­rw­r­­r­­. 1 root root 27014 Apr 7 11:13 [Link]
Kumpulan How To 67

­rw­r­­r­­. 1 root root 5113 Apr 7 11:13 [Link]


­rw­r­­r­­. 1 root root 6816 Apr 7 11:13 relocated
­rw­r­­r­­. 1 root root 12500 Apr 7 11:13 transport
­rw­r­­r­­. 1 root root 12494 Apr 7 11:13 virtual
[root@sl6 postfix]#

dan satu file script dalam directory /etc/init.d/ yaitu :

[root@sl6 init.d]# ls ­l postfix


­rwxr­xr­x. 1 root root 3852 Apr 7 11:13 postfix
[root@sl6 init.d]#

Sebelum menjalankan dan mengkonfigurasi Postfix perlu anda perhatikan bahwa Postfix
hanya akan bekerja secara normal bila anda memiliki IP statik yang legal. Artinya instalasi
Postfix dilakukan pada Server yang terhubung ke internet secara langsung dan memiliki IP
address legal yang tidak berubah-ubah. Mail Server bekerja dengan cara mempertukarkan e-
mail yang dikirim/diterima hanya dengan sesama Mail Server lain. Oleh karena itu Mail
Server juga harus on-line penuh (24 jam) untuk bekerja secara normal.

Pada umum nya kendala ini yang menyebabkan instalasi Mail Server menjadi seolah-olah
sulit dilakukan karena umum nya kita tidak memiliki IP address statik yang legal. Selain itu
kendala lain adalah Mail Server hanya dapat bekerja apabila Mail Server tersebut mempunyai
“MX Record” pada DNS Server yang real, artinya anda harus sudah mempunyai domain
yang legal juga. Bila anda tidak mempunyai domain legal, kemungkinan anda tidak memiliki
DNS Server yang real, dan biasanya anda tidak memiliki IP statik yang legal juga.

Namun anda masih dapat menggunakan Mail Server dalam modus kerja “hanya untuk
mengirim” bila ketiga persyaratan diatas tidak terpenuhi. Artinya anda dapat memanfaatkan
Mail Server anda untuk menampung semua e-mail yang akan dikirim dari dalam network
internal anda (private network) sehingga client anda mendapatkan manfaat seolah-olah
pengiriman e-mail menjadi lebih cepat.

Hal ini terjadi karena semua client mengirimkan melalui Mail Server yang terhubung dengan
jaringan lokal dengan kecepatan network anda. Mail Server akan menampung dulu semua e-
mail yang datang dan kemudian akan mengirimkan nya satu persatu sampai semua e-mail
terkirim. Jadi sebenar nya kecepatan mengirim nya tetap lambat sesuai dengan kecepatan link
anda ke internet tetapi proses tersebut diambil alih oleh Mail Server dan client tidak perlu
terlalu lama menunggu ketika mengirimkan e-mail. Bahkan bila ada beberapa client
mengirim e-mail secara bersamaan.

Proses menerima e-mail tetap seperti semula yaitu masing-masing client harus terhubung ke
mail box nya masing-masing (yang berada di luar jaringan internal) dan tetap lambat sesuai
dengan kondisi link yang anda miliki.

Manfaat lain dari adanya Mail Server internal adalah untuk e-mail lokal, artinya e-mail yang
dikirim oleh dan ditujukan kepada semua user internal dapat dilakukan dengan mudah dan
dapat dibuat untuk sebanyak-banyak nya user lokal anda tanpa dibatasi oleh kuota dari pihak
ISP. Akan tetapi tentu saja untuk kasus ini anda harus menggunakan domain yang berbeda.
Artinya user akan memiliki e-mail address yang berbeda untuk menerima e-mail internal
(hanya berlaku di dalam privat network) dan untuk menerima e-mail dari internet. E-mail
Kumpulan How To 68

address internal hanya dapat dicantumkan untuk e-mail yang digunakan secara internal saja
dan tidak dapat dipakai untuk mengirim ke internet.

Contoh kita menggunakan domain internal : [Link] (“.int” tidak ada dalam top level
domain di internet jadi aman digunakan untuk keperluan internal sehingga kalau tidak
sengaja terkirim keluar tidak akan terkirim ke siapapun). Maka kita dapat membuat
konfigurasi untuk Postfix sebagai berikut :

myhostname = [Link]
myorigin = $mydomain
inet_interfaces = all
mydestination = [Link], $myhostname, localhost.$mydomain, localhost,
mynetworks_style = subnet

File konfigurasi utama Postfix adalah /etc/postfix/[Link]. File ini cukup panjang karena di
dalam nya disertakan beberapa petunjuk untuk deklarasi yang terdapat dalam file [Link].
Carilah baris-baris yang berisi deklarasi diatas dan sesuaikan dengan contoh. Baris deklarasi
yang lain jangan diubah-ubah.

Setelah mengubah file konfigurasi /etc/postfix/[Link] restart Mail server dengan perintah :

[root@sl6 postfix]# service postfix restart


Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@sl6 postfix]#

Secara default juga pada distro Scientific Linux ini Postfix sudah dijalankan sebagai service
pada saat komputer booting. Hal ini dapat dilihat sebagai berikut :

[root@sl6 postfix]# chkconfig ­­list postfix


postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 postfix]#

Bagaimana mengkonfigurasi user ? Secara default Postfix akan menggunakan daftar user
account pada komputer yang menjalankan Postfix. Artinya setiap user yang memiliki account
pada komputer yang menjalankan Postfix (memiliki username dan password / dapat login)
adalah user Postfix dan otomatis memiliki mailbox.

Mailbox untuk user secara default disimpan dalam directory /var/spool/mail. Anda harus
merencanakan dengan baik kapasitas untuk directory ini disesuaikan dengan jumlah user dan
besar mail box yang diperlukan masing-masing user. Bila anda menghendaki untuk
memindahkan letak mailbox ini maka deklarasi dalam file /etc/postfix/[Link] yang harus
diedit adalah :

mail_spool_directory = /var/spool/mail

Directory ini harus dapat diakses (read & write) oleh user “mail” (user yang menjalankan
Postfix).
Kumpulan How To 69

Setelah melakukan konfigurasi dengan benar sekarang anda dapat mencoba untuk
mengirimkan e-mail menggunakan Postfix. Cara yang paling mudah adalah dengan
menggunakan aplikasi mail client contohnya Evolution yang selalu ada di setiap distro Linux.
Untuk itu anda harus mengkonfigurasi mail client anda agar menggunakan Postfix sebagai
SMTP Server nya. Caranya klik menu --> Edit --> Preference kemudian pada bagian “Mail
Account” anda buat Account baru atau anda edit dulu Account yang ada dan cocokkan tab
“Sending Email” seperti gambar berikut :

Pada bagian “Server” anda isi dengan IP Address dari komputer yang menjalankan Postfix.
Berikut nya anda coba untuk mengirimkan e-mail kepada user internal atau user yang
memiliki alamat internet yang legal dengan menggunakan account yang sudah anda buat/edit
tadi. Bila konfigurasi anda benar maka anda dapat memeriksa catatan log nya seperti berikut
ini :

[root@sl6 postfix]# tail /var/log/maillog


May 30 12:46:15 sl6 postfix/pickup[2838]: BEBDF43666: uid=0 from=<root>
May 30 12:46:15 sl6 postfix/cleanup[2845]: BEBDF43666: message­
id=<20110530054615.BEBDF43666@[Link]>
May 30 12:46:15 sl6 postfix/qmgr[2839]: BEBDF43666: from=<root@[Link]>,
size=452, nrcpt=1 (queue active)
May 30 12:46:15 sl6 postfix/local[2847]: BEBDF43666: to=<user@[Link]>,
orig_to=<user>, relay=local, delay=0.17, delays=0.1/0.04/0/0.04, dsn=2.0.0,
status=sent (delivered to mailbox)
May 30 12:46:15 sl6 postfix/qmgr[2839]: BEBDF43666: removed
[root@sl6 postfix]#
Kumpulan How To 70

Anda harus menemukan baris yang berisi pernyataan “status=send” untuk email yang
dikirimkan. Contoh diatas ini adalah untuk kasus user “root” mengirimkan e-mail kepada
user dengan nama “user”. Anda dapat menyesuaikan dengan user yang terdapat pada
komputer anda.

Sampai disini anda sudah berhasil mengkonfigurasi Postfix sebagai Mail Server internal yang
dapat mengirimkan e-mail baik untuk user internal maupun user di internet. Problem nya
adalah bagaimana user internal dapat membaca e-mail yang dikirim oleh sesama user lain.
Ingat bahwa untuk e-mail yang dikirim melalui internet Postfix anda tidak dapat menerima
nya, anda tetap harus menggunakan Mail Server yang berada di ISP anda.

Misalkan untuk kasus contoh di atas bagaimana user dengan email account internal
“user@[Link]” membaca e-mail yang dikirim oleh “root@[Link]” menggunakan
Evolution misal nya. Ternyata untuk dapat membaca e-mail yang berada dalam mailbox kita
tidak dapat hanya menggunakan Postfix saja karena Postfix hanya bekerja dengan protocol
SMTP saja.

Mail Client (Evolution, Thunderbird atau Outlook Express) membaca e-mail yang berada di
mailbox suatu Mail Server menggunakan protocol POP3 atau IMAP. Tugas dari Mail Server
(semua Mail Server, tidak hanya Postfix) hanya terbatas sampai menyimpan e-mail untuk
seorang user ke dalam mail box nya saja. Sedangkan untuk melayani “e-mail retrieval”
(membaca e-mail menggunakan Mail Client) kita butuh POP3/IMAP Server.

Hal ini seringkali membingungkan user karena user tidak mengetahui bahwa masing-masing
harus dikonfigurasi sendiri-sendiri secara terpisah pada Mail Client yang digunakan nya.
Untuk mengirim e-mail Mail Client harus diberitahu ke SMTP (Mail Server) mana Mail
Client harus terhubung dan ketika membaca e-mail ke POP/IMAP Server mana Mail Client
harus terhubung. Masing-masing bekerja secara independen dan hanya kebetulan saja kalau
ISP kadang menamai kedua Server itu dengan nama yang sama. Secara teknis kedua nya
merupakan Server yang berbeda.

Jadi kita harus melakukan instalasi POP/IMAP Server ke komputer yang sudah terinstal
Postfix di dalam nya. POP/IMAP Server yang sering digunakan pada distro Scientific Linux
adalah Dovecot. Periksa terlebih dahulu apakah dovecot sudah terinstal :

[root@sl6 ~]# yum list dovecot


Loaded plugins: refresh­packagekit
Available Packages
dovecot.i686 1:2.0­0.10.beta6.20100630.el6 sl
[root@sl6 ~]#

atau

[root@sl6 ~]# rpm ­qa | grep dovecot


[root@sl6 ~]#

Bila hasil nya seperti diatas berarti Dovecot belum terinstal, lakukan instalasi dengan paket
rpm sebagai berikut :
Kumpulan How To 71

[root@sl6 ~]# ls ­l
total 2324
­rw­­­­­­­. 1 root root 1608 May 9 04:55 anaconda­[Link]
­rw­r­­r­­. 1 root root 769 May 19 15:03 Documents
­rw­r­­r­­. 1 root root 2303948 Nov 25 2010 dovecot­2.0­[Link]
­rw­r­­r­­. 1 root root 44528 May 9 04:55 [Link]
­rw­r­­r­­. 1 root root 10232 May 9 04:53 [Link]
drwxr­xr­x. 2 root root 4096 May 30 14:25 rpm
[root@sl6 ~]#

Pastikan paket rpm nya sudah anda peroleh seperti diatas kemudian lanjutkan dengan
perintah :

[root@sl6 ~]# rpm ­ivh dovecot­2.0­[Link]


Preparing... ########################################### [100%]
1:dovecot ########################################### [100%]
[root@sl6 ~]#

atau bila anda terhubung ke internet anda dapat menggunakan perintah yum seperti berikut :

[root@sl6 ~]# yum install dovecot


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package dovecot.i686 1:2.0­0.10.beta6.20100630.el6 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

==============================================================
Package Arch Version Repository
Size
==============================================================
Installing:
dovecot i686 1:2.0­0.10.beta6.20100630.el6 sl 2.2
M

Transaction Summary
==============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 2.2 M


Installed size: 6.6 M
Is this ok [y/N]: y
Downloading Packages:
dovecot­2.0­[Link] | 2.2 MB 00:43
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Kumpulan How To 72

Running Transaction
Warning: RPMDB altered outside of yum.
Installing : 1:dovecot­2.0­0.10.beta6.20100630.el6.i686 1/1

Installed:
dovecot.i686 1:2.0­0.10.beta6.20100630.el6

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini kita akan mendapatkan directory yang menyimpan konfigurasi untuk
Dovecot dalam directory /etc/dovecot sebagai berikut :

[root@sl6 dovecot]# ls
conf.d [Link]
[root@sl6 dovecot]# ls conf.d
10­[Link] 20­[Link] auth­[Link]
10­[Link] 20­[Link] auth­[Link]
10­[Link] 90­[Link] auth­[Link]
10­[Link] 90­[Link] auth­[Link]
10­[Link] 90­[Link] auth­[Link]
10­[Link] auth­[Link] auth­[Link]
15­[Link] auth­[Link]
20­[Link] auth­[Link]
[root@sl6 dovecot]#

Konfigurai untuk Dovecot ini terdiri dari satu file utama /etc/dovecot/[Link] dan
semua file dalam directory /etc/dovecot/conf.d. Hal ini dapat dilihat dengan adanya satu
deklarasi dalam [Link] seperti berikut :

!include conf.d/*.conf

Konfigurasi Dovecot ini tidak banyak yang perlu diubah. Dengan konfigurasi default nya
Dovecot sudah dapat bekerja namun seringkali yang menjadi masalah adalah letak mailbox
untuk user. Dovecot seringkali tidak dapat mendeteksi secara otomatis dimana letak mailbox
user terutama sekali bila user tersebut belum pernah menerima e-mail sama sekali. Untuk itu
kita perlu menambahkan deklarasi yang menegaskan letak mail box user. Untuk itu edit lah
file /etc/dovecot/conf.d/[Link]. Cocokanlah baris yang berisi deklarasi mail box
menjadi seperti di bawah ini :

mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u

Deklarasi diatas bila anda tidak mengubah default mail box dalam konfigurasi Postfix seperti
telah dijelaskan pada pembahasan mengenai Postfix di atas. Variabel “%u” mewakili nama-
nama user yang valid pada Mail Server yang sudah kita install. Apabila anda memindahkan
letak directory untuk mail ke ke lokasi yang lain maka yang perlu anda sesuaikan adalah
deklarasi setelah kata “INBOX” dengan lokasi directory yang baru.
Kumpulan How To 73

Selanjutnya anda tinggal menjalankan Dovecot dengan perintah :

[root@sl6 sysconfig]# service dovecot start


Starting Dovecot Imap: [ OK ]
[root@sl6 sysconfig]#

Lalu membuat nya permanen agar setiap kali komputer dihidupkan Dovecot juga langsung
dijalankan dengan perintah :

[root@sl6 sysconfig]# chkconfig dovecot on


[root@sl6 sysconfig]# chkconfig ­­list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sl6 sysconfig]#

Sekarang anda tinggal mengkonfigurasi e-mail client anda di bagian Receiving Mail agar
Mail Client anda menggunakan protocol POP3 untuk terhubung ke server Dovecot yang
sudah anda install, contoh nya untuk Evolution anda akses menu Edit --> Preference dan di
bagian Mail Account anda edit atau tambahkan account baru kemudian pada tab “Receiving
Email” nya anda buat seperti di bawah ini :

Sekarang anda dapat mencoba untuk mengirim dan menerima e-mail dalam ruang lingkup
domain private anda yaitu untuk semua user yang mempunyai account di komputer yang
sudah terinstall Postfix dan Dovecot. Untuk e-mail yang bukan internal (e-mail ke internet)
anda harus membuat account tersendiri dalam Evolution dengan seting SMTP dan POP
Server sesuai dengan yang ditetapkan oleh ISP anda. Kerepotan untuk system yang seperti ini
adalah memang anda terpaksa harus bekerja dengan dua domain dan setiap kali mengirim e-
Kumpulan How To 74

mail anda harus memilih account yang tepat untuk keperluan internal atau untuk keperluan
internet.

Perhatikan bahwa apabila komputer yang menjalankan Postfix dan Dovecot mengaktifkan
Firewall dengan iptables maka anda harus membuka port 25 dan 110 agar komputer-
komputer lain yang berada dalam network internat dapat terhubung ke server Postfix dan
Dovecot. Isi dari file /etc/sysconfig/iptables untuk keperluan ini kira-kira seperti yang tertera
di bawah ini :

[root@sl6 sysconfig]# cat iptables


# Firewall configuration written by system­config­firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
­A INPUT ­m state ­­state ESTABLISHED,RELATED ­j ACCEPT
­A INPUT ­p icmp ­j ACCEPT
­A INPUT ­i lo ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 22 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 25 ­j ACCEPT
­A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 110 ­j ACCEPT
­A INPUT ­j REJECT ­­reject­with icmp­host­prohibited
­A FORWARD ­j REJECT ­­reject­with icmp­host­prohibited
COMMIT
[root@sl6 sysconfig]#
Kumpulan How To 75

Bab.10 Instalasi Squirrelmail

Squirrelmail adalah aplikasi Mail Client yang berbasis Web sehingga user dapat membaca e-
mail dan mengirim e-mail cukup menggunakan browser saja. Kegunaan Squirrelmail setara
dengan Evolution, Thunderbird, atau Outlook Express.

Mail client yang berbasis web memberikan kemudahan kepada user untuk dapat membaca
dan mengirim e-mail dimana saja sepanjang web yang menjalankan e-mail client tersebut
dapat diakses. User dapat dengan mudah berganti-ganti komputer tanpa perlu khawatir e-mail
nya berceceran dimana-mana. Selain itu dengan menggunakan web mail user tidak terlalu
dipusingkan dengan setting untuk koneksi ke SMTP dan POP/IMAP server lagi.

Web mail client biasanya diinstall di server yang menjalankan mail server untuk
memudahkan akses ke mail box masing-masing user. Pada umum nya web mail client bekerja
dengan protokol IMAP sehingga anda juga dapat belajar mengkonfigurasi mail client yang
menggunakan protokol IMAP. Dengan demikian anda juga dapat mempelajari perbedaan
antara protokol POP dan IMAP.

Disisi lain web mail client memerlukan kerja extra bagi administrator karena dari sisi
instalasi dan setting web mail client memerlukan prasyarat dan ketergantungan terhadap
instalasi lainnya seperti Apache Web Server dan support utuk bahasa pemrograman yang
digunakan untuk membuat aplikasi web mail tersebut.

Salah satu web mail client yang mudah diinstall dan dikonfigurasi adalah Squirrelmail.
Sayang nya Squirellmail ini tidak tersedia di repository Scientific Linux demikian juga pada
repository Red Hat Enterprise Linux (RHEL) yang menjadi master dari distro Scientific
Linux ini. Kita harus mencarinya di repository pelengkap Scientific Linux. Salah satu
repository pelengkap yang menjadi acuan bagi distro berbasis RHEL ini adalah repository
EPEL (Extra Package for Enterprise Linux) yang merupakan repository dari Project
Fedora. Fedora tidak lain adalah jalur pengembangan (development) dan testing dari distro
RHEL.

Sebelum melakukan instalasi Squirrelmail pastikan komputer anda sudah terinstall Apache
Web Server dengan dukungan PHP terlebih dahulu (ikuti petunjuk di bab 5 tentang instalasi
Apache dan PHP). Selain itu pastikan juga di komputer tersebut telah terinstall Mail Server
(contoh nya Postfix) dan juga POP/IMAP Server dan keduanya sudah berjalan dengan baik
seperti terinci pada bab 9. Sebelum melakukan instalasi Squirellmail ini pastikan mail server
anda sudah berfungsi dengan baik juga.

Dalam kasus seperti dijelaskan pada bab 9 bila komputer yang anda pakai tidak memiliki
domain dan ip statik legal sehingga tidak dapat menerima e-mail secara langsung dari internet
dan hanya berfungsi sebagai mail server lokal saja maka instalasi dari Squirrelmail juga akan
terbatas pada fungsionalitas untuk membaca hanya e-mail lokal saja, e-mail anda yang
berada di internet tetap tidak dapat diakses melalui Squirrelmail. Untuk mengirim e-mail
tidak ada masalah baik lokal atu internet. Anda tetap harus menggunakan mail client anda
yang lain untuk mengakses e-mail internet anda.

Berikut prosedur untuk melakukan instalasi Squirellmail. Karena Squirellmail tidak tersedia
Kumpulan How To 76

dalam repository Scientific Linux maka anda harus mencari nya terlebih dahulu dari
repository EPEL untuk keperluan tersebut mau tidak mau anda harus terhubung ke internet.
Dengan demikian cara instalasi menggunakan yum adalah cara yang termudah untuk
melakukan hal tersebut. Langkah pertama kita harus menambahkan repository EPEL ke
daftar repository yang akan dipakai oleh yum. Sebelum anda menambahkan repository EPEL
ini bila anda periksa dengan yum paket Squirellmail ini hasil nya adalah sebagai berikut :

[root@sl6 ~]# yum list squirellmail


Loaded plugins: refresh­packagekit
Error: No matching Packages to list
[root@sl6 ~]#

Untuk menambahkan repository EPEL ke dalam daftar maka anda harus pergi ke web site
EPEL di alamat [Link] ke bagian seperti terlihat pada gambar di
bawah ini

Anda dapat melakukan instalasi penambahan repository ini secara otomatis dengan cara
mengklik pada link “[Link]” dan memilih pilihan “open with” pada
pilihan yang muncul seperti pada gambar di bawah ini :
Kumpulan How To 77

atau anda dapat mendownload terlebih dahulu paket rpm nya dan kemudian menginstall nya
dengan perintah rpm. Bila prosedur diatas anda jalankan dengan benar maka perintah yum
untuk mencari paket Squirellmail harus menampilkan tampilan seperti berikut :

[root@sl6 ~]# yum list squirrelmail


Loaded plugins: refresh­packagekit
Available Packages
[Link] 1.4.21­3.el6 epel
[root@sl6 ~]#

Perhatikan nama repository yang muncul di sebelah kanan (“epel”) berbeda dengan yang
selama ini dipakai karena paket Squirellmail berada pada repository ini. Selanjut nya anda
tinggal melakukan instalasi dengan perintah yum :

[root@sl6 ~]# yum install squirrelmail


Loaded plugins: refresh­packagekit
Setting up Install Process
Resolving Dependencies
­­> Running transaction check
­­­> Package [Link] 0:1.4.21­3.el6 set to be updated
­­> Processing Dependency: php­mbstring for package: squirrelmail­1.4.21­
[Link]
­­> Running transaction check
­­­> Package php­mbstring.i686 0:5.3.2­6.el6_0.1 set to be updated
­­> Finished Dependency Resolution

Dependencies Resolved

================================================================
Package Arch Version Repository Size
================================================================
Installing:
squirrelmail noarch 1.4.21­3.el6 epel 4.1 M
Installing for dependencies:
php­mbstring i686 5.3.2­6.el6_0.1 sl­security 503 k

Transaction Summary
================================================================
Install 2 Package(s)
Kumpulan How To 78

Upgrade 0 Package(s)

Total download size: 4.6 M


Installed size: 22 M
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php­mbstring­5.3.2­6.el6_0.1.i686 1/2
Installing : squirrelmail­1.4.21­[Link] 2/2

Installed:
[Link] 0:1.4.21­3.el6

Dependency Installed:
php­mbstring.i686 0:5.3.2­6.el6_0.1

Complete!
[root@sl6 ~]#

Hasil dari instalasi ini anda akan mendapatkan beberapa directory baru yaitu :

[root@sl6 ~]# cd /usr/share/squirrelmail/


[root@sl6 squirrelmail]# ls
class functions images [Link] plugins themes
config help include locale src

[root@sl6 squirrelmail]# cd /var/lib/squirrelmail/


[root@sl6 squirrelmail]# ls
prefs

[root@sl6 squirrelmail]# cd /etc/squirrelmail/


[root@sl6 squirrelmail]# ls
config_local.php [Link] default_pref sqspell_config.php

dan sebuah file konfigurasi untuk Apache web server dalam directory /etc/httpd/conf.d

[root@sl6 conf.d]# ls ­l
total 24
­rw­r­­r­­. 1 root root 118 May 20 2009 mod_dnssd.conf
­rw­r­­r­­. 1 root root 674 Feb 9 04:51 [Link]
­rw­r­­r­­. 1 root root 392 Nov 23 2010 README
­rw­r­­r­­. 1 root root 332 Nov 24 2010 [Link]
­rw­r­­r­­. 1 root root 539 May 31 10:28 [Link]
­rw­r­­r­­. 1 root root 299 May 21 2009 [Link]
[root@sl6 conf.d]#

Langkah berikut nya adalah anda melakukan konfigurasi terhadap Squirrelmail dengan cara
menjalankan aplikasi konfigurasi nya yang terdapat dalam directory
/usr/share/squirrelmail/config seperti berikut ini :
Kumpulan How To 79

[root@sl6 config]# ./[Link]

yang akan memberikan tampilan seperti berikut ini :

SquirrelMail Configuration : Read: [Link] (1.4.0)


­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
Main Menu ­­
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre­defined settings for specific IMAP servers

C Turn color off


S Save data
Q Quit

Command >>

Squirellmail memberikan kemudahan konfigurasi dengan cara memberikan pilihan “D” (pada
tampilan diatas) yaitu konfigurasi standard untuk beberapa POP/IMAP Server yang sering
digunakan. Karena dalam contoh ini kita menggunakan Dovecot maka untuk mudah nya
ketik pilihan “D” pada tampilan diatas yang akan memberikan tampilan sebagai berikut :

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre­defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:


bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
Kumpulan How To 80

uw = University of Washington's IMAP server


gmail = IMAP access to Google mail (Gmail) accounts

quit = Do not change anything


Command >>

Ketikkan “dovecot” untuk memilih konfigurasi untuk POP/IMAP Server Dovecot, yang akan
melanjutkan dengan tampilan sebagai berikut :

Command >> dovecot

imap_server_type = dovecot
default_folder_prefix = <none>
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false

Press any key to continue...

tekan tombol enter yang akan membawa anda kembali ke menu utama kemudian pilih tombol
“S” untuk menyimpan konfigurasi dilanjutkan dengan tombol “Q” untuk selesai.

Default instalasi Squirrelmail pada distro Scientific Linux ini mengharuskan web mail
diakses dengan “secure http” (ditandai dengan https:// di awal penulisan alamat), sedangkan
langkah-langkah yang kita lakukan pada bab 5 untuk instalasi Apache Web Server tidak
menyiapkan konfigurasi untuk secure http. Oleh karena itu kita perlu mengubah setting
secure http ini pada file konfigurasi Squirrelmail untuk Apache yang terdapat dalam file
/etc/httpd/conf.d/[Link]. Berikan tanda komentar untuk seting secure http seperti
berikut ini :

#
# SquirrelMail is a webmail package written in PHP.
#

Alias /webmail /usr/share/squirrelmail

<Directory "/usr/share/squirrelmail/plugins/squirrelspell/modules">
Deny from all
</Directory>

# this section makes squirrelmail use https connections only, for this you
# need to have mod_ssl installed. If you want to use unsecure http
# connections, just remove this section:
#<Directory /usr/share/squirrelmail>
# RewriteEngine on
# RewriteCond %{HTTPS} !=on
Kumpulan How To 81

# RewriteRule (.*) [Link]


#</Directory>

Selanjut nya anda siap melakukan testing untuk instalasi Squirellmail ini. Seperti terlihat
pada konfigurasi di atas Squirellmail terinstall dengan alamat [Link]
Untuk melakukan testing Squirellmail memberikan halaman web test, pergunakan browser
anda dan jalankan test ini di alamat [Link] seperti
terlihat pada gambar di bawah ini :

Bila terdapat ERROR seperti ditunjukkan oleh gambar di atas maka anda harus melakukan
editing pada konfigurasi untuk PHP yang disimpan pada file /etc/[Link]. Carilah deklarasi
yang error dan sesuaikan dengan yang diminta oleh Squirellmail. Untuk contoh diatas edit
file [Link] seperti berikut :

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; [Link]
Kumpulan How To 82

short_open_tag = On

Sampai tampilan dari [Link] tidak menunjukkan error


lagi (perhatikan akses ke alamat ini adalah jika anda menjalankan browser di komputer yang
juga menjalankan Squirellmail, bila tidak ganti localhost dengan IP Address dari komputer
yang menjalankan Squirrelmail).

Bila semua nya sudah berhasil maka Squirellmail anda siap untuk digunakan. User cukup
mengakses alamat [Link] dan mendapatkan halaman login
seperti berikut :

Setiap user menggunakan alamat yang sama dan login dengan username dan password nya
masing-masing untuk bekerja dengan web mail. Setelah login tampilan dari web mail ini
dapat dilihat seperti berikut ini :
Kumpulan How To 83

Membaca e-mail :

Anda mungkin juga menyukai