04
Sub Materi : 1. SSH Server 2. DHCP Server 3. DNS Server 4. Linux Apache MySQL PHP 5. Proxy Squid 6. Zimbra Mail Server
Dokumen Tutorial Versi. 0.9 Lisensi : GPLv2 Di ijinkan untuk copy paste, memperbanyak, bahkan menjual, namun tetap menyertakan nama penulis sebagai referensi, berikut sumber referensi yang terdapat dalam dokumen ini.
Table of Contents
Membangun Network Services di Linux Ubuntu 10.04 ...................................................1 SSH Server ...................................................................................................................2 Mengenal SSH Server .............................................................................................2 Instalasi OpenSSH ..................................................................................................2 Web Server dengan Linux, Apache, MySQL, PHP......................................................4 Instalasi MySQL......................................................................................................4 Instalasi Apache ......................................................................................................4 Instalasi PHP5 dan module apache mysql ..............................................................4 Instalasi PhpMyAdmin.............................................................................................5 DNS Server dengan Bind9............................................................................................6 Membuat Virtual Host (multiple domain dalam 1 server)..........................................10 Konfigurasi Bind9 untuk mendukung virtual host......................................................12 FTP Server..................................................................................................................14 Instalasi FTP...........................................................................................................14 Konfigurasi Proftpd................................................................................................14 Membuat DHCP Server..............................................................................................15 Mengenal DHCP Server ........................................................................................15 Instalasi DHCP Server............................................................................................15 Konfigurasi DHCP Sever ......................................................................................15 Proxy Server ...............................................................................................................19 Instalasi Paket Squid dari Repository ...................................................................20 Konfigurasi Squid .................................................................................................20 Cache Managemen ................................................................................................21 Content Filtering Menggunakan Squid .................................................................22 Konfigurasi Tranparent Proxy ...............................................................................23 Menjalankan Squid ................................................................................................24 Sumber Referensi........................................................................................................25 Change Log.................................................................................................................26 Versi 0.9 .................................................................................................................26 Versi 0.8..................................................................................................................26 Versi 0.5..................................................................................................................26
SSH Server
Mengenal SSH Server Pengguna telnet, rlogin, dan ftp mungkin tidak menyadari bahwa password mereka ditransmisikan melalui Internet tanpa enkripsi, tetapi OpenSSH mengenkripsi semua lalu lintas (termasuk password) untuk secara efektif menghilangkan pembajakan koneksi, percakapan, dan serangan lainnya. Selain itu, OpenSSH menyediakan kemampuan tunneling yang aman dan beberapa metode autentikasi, dan mendukung semua versi protokol SSH. Instalasi OpenSSH Untuk menginstal aplikasi client dan server OpenSSH, gunakan perintah ini pada terminal prompt:
$sudoaptgetinstallopensshserveropensshclient
Metode pengamanan sederhana, sebenarnya sudah terdapat pada file konfigurasi /etc/ssh/sshd_config. Untuk melakukan perubahan, gunakan perintah :
$sudopico/etc/ssh/sshd_config
Agar anda tidak login ssh sebagai root, edit baris berikut sehingga seperti ini :
Port2999 #Authentication: LoginGraceTime30 #PermitRootLoginyes StrictModesyes
Menjalankan SSH :
$sshp22agung@192.168.7.253
agung adalah nama user pada server yang akan di remote, dan 192.168.7.253 adalah ip server yang di tuju. Opsi -p berarti port SSH yang digunakan
Instalasi Apache
$sudoaptgetinstallapache2
Kemudian buka browser anda, dan ketik url localhost atau 192.168.7.253 Document root apache secara default terletak di /var/www, dan konfigurasi file terletak di /etc/apache2/apache2.conf. Konfigurasi tambahan terletak di /etc/apache2 seperti /etc/apache2/mods-enabled (untuk module apache), /etc/apache2/sitesenabled (untuk virtual hosts), dan /etc/apache2/conf.d. Instalasi PHP5 dan module apache mysql
$sudoaptgetinstallphp5libapache2modphp5php5mysql phppearphp5xcachephp5suhosin
Perintah diatas untuk menginstal php dan module yang terkait apache dan php. Setelah selesai instalasi module php5 dan module mysql, selanjutnya kita lakukan restart services apache.
$sudo/etc/init.d/apache2restart
Untuk melakukan testing apakah php5 sudah berjalan atau tidak, masuklah ke direktori /var/www dan buatlah file infophp.php dengan teks editor.
$sudopico/var/www/infophp.php
Selanjutnya, bukalah browser anda, dan ketik url http://localhost/infophp.php atau http://192.168.7.253/infophp.php. Gunakan phpinfo ini untuk melihat module-module yang telah terinstall di mesin anda. Instalasi PhpMyAdmin PhpmyAdmin merupakan interface untuk memudahkan dalam manajemen database mysql. Untuk instalasi phpmyadmin, lakukan perintah berikut :
$sudoaptgetinstallphpmyadmin
alamat berikut
Edit file named.conf menggunakan editor pico atau editor lain sesuai selera dengan perintah:
$sudopico/etc/bind/named.conf
Setelah itu buatlah 2 file yang ada pada file named.conf yang anda buat tadi (lab7.com.db dan lab7.com-ptr.db). Baiklah, mari kita mulai dengan lab7.com.db :
$sudopico/etc/bind/lab7.com.db
2419200; Expire 604800); NegativeCacheTTL ; @ @ localhost www ns1 IN IN IN IN IN NS A A A A ns1.lab7.com. 192.168.7.253 127.0.0.1 192.168.7.253 192.168.7.253
Simpan konfigurasi.
Input parameter seperti dibawah ini (sesuaikan dengan parameter server anda) :
domain search nameserver lab7.com lab7.com 192.168.7.253
listenonv6{any;};
Output :
Server: Address: 192.168.7.253 192.168.7.253#53
$hostlab7.com
Output :
lab7.comhasaddress192.168.7.253
Hasil dari syslog dapat anda gunakan untuk analisa kesalahan dalam konfigurasi
Kemudian ganti menjadi seperti dibawah ini (sesuaikan IP dengan milik anda) :
NameVirtualHost192.168.7.253:80 Listen80
Selanjutnya, menjalankan perintah berikut untuk menonaktifkan default virtual host apache.
$sudoa2dissitedefault $sudo/etc/init.d/apache2reload
Setiap konfigurasi virtual host tersimpan dalam sebuah file yang diberi nama domain dan terletak pada direktori /etc/apache2/sites-available/. Dalam contoh ini, Anda akan membuat file dengan basis nama domain lab7.net dan lab7.com. Pertama kita buat terlebih dahulu file lab7.net (/etc/apache2/sites-
Selanjutnya,
membuat
file
konfigurasi
lab7.com
(/etc/apache2/sites-
available/lab7.com) :
$sudopico/etc/apache2/sitesavailable/lab7.com
Seluruh file web akan diletakkan pada direktori /srv/www. Direktori ini dapat anda sesuaikan dengan kebutuhan, tidak harus di /srv Buat direktori yang kita butuhkan dengan perintah berikut :
$sudomkdirp/srv/www/lab7.net/public_html $sudomkdir/srv/www/lab7.net/logs
$sudomkdirp/srv/www/lab7.com/public_html $sudomkdir/srv/www/lab7.com/logs
Terakhir, restart layanan Apache untuk mengetahui hasil perubahan yang kita lakukan :
$sudo/etc/init.d/apache2restart
Ketika anda membuat atau melakukan editing file virtual host, lakukan reload konfigurasi dengan perintah berikut :
$sudo/etc/init.d/apache2reload
Masukkan konten web yang berbeda pada /srv/www/lab7.net/public_html dan /srv/www/lab7.com/public_html. Kemudian Buka browser anda, lakukan akses ke lab7.net dan lab7.com untuk ujicoba.
FTP Server
Ftp umumnya digunakan untuk manajemen file di server, ftp memungkinkan client untuk melakukan upload dan download ke server. Biasanya layanan ini digunakan untuk hosting website. Dalam contoh ini, kita menggunakan ftp server proftpd. Instalasi FTP Berikut adalah cara instalasi proftpd :
$sudoaptgetinstallproftpd
Jika terdapat pilihan untuk menentukan metode service standalone atau inetd, maka pilihlah inetd Konfigurasi Proftpd Untuk konfigurasi dapat anda lihat di /etc/proftpd/proftpd.conf
$sudovi/etc/proftpd/proftpd.conf
Mengenal DHCP Server DHCP (Dynamic Host Cotrol Protocol) server merupakan sistem yang digunakan untuk melayani client-client untuk mengkonfigurasi ip secara otomatis sehingga kita tidak perlu untuk mengkonfigurasi client-client dengan menseting pengaturan jaringan secara manual satu-persatu, dengan menggunakan DHCP server client cukup di seting untuk menggunakan ip otomatis maka client akan secara otomatis akan mendapatkan konfigurasi jaringan yang kita tentukan sebelumnya pada DHCP server seperti konfigurasi ip, netmask, default gateway, dan juga DNS server. Instalasi DHCP Server
$sudoaptgetinstalldhcp3server
Konfigurasi DHCP Sever File konfigurasi DHCP server terdapat di /etc/dhcp3/dhcpd.conf, secara default file ini memang telah di buat ketika kita menginstall aplikasi dhcp3-server akan tetapi untuk menyesuaikan opsi konfigurasi dengan kondisi jaringan di tempat kita maka kita harus mengeditnya dan menyesuaikan dengan konfigurasinya sesuai dengan yang kita inginkan. Edit file konfigurasi /etc/dhcp3/dhcpd.conf
$sudopico/etc/dhcp3/dhcpd.conf
Edit file konfigurasi /etc/default/dhcp3-server, untuk menyesuaikan interface yang akan digunakan.
$sudopico/etc/default/dhcp3server
Contoh config :
defaultleasetime360; maxleasetime7200; optionsubnetmask255.255.255.0; optionrouters192.168.1.254; #optiondomainnameservers172.16.30.7; optionbroadcastaddress192.168.1.255; subnet192.168.1.0netmask255.255.255.0{ range192.168.1.1192.168.1.100; }
Opsi konfigurasi di atas dapat di jelaskan sebabai berikut : default-lease-time merupakan default waktu sewa yang akan diberikan oleh DHCP server kepada clientnya, opsi max-lease-time merupakan waktu sewa maksimal yang akan diberikan kepada client , option subnet-mask menentukan subnetmask, client yang menerima ip dari server DHCP akan mendapatkan netmask sesuai yang diberikan pada opsi ini, option routers opsi ini akan menentukan default gateway dari client yang mendapatkan ip dari DHCP server, option domain-name-servers opsi ini akan menentukan DNS server yang akan digunakan oleh client, option broadcast-address opsi ini menentukan alamat broadcast dari client, opsi subnet dan netmask merupakan opsi pengaturan subnet dan netmask, sedangkan opsi range merupakan opsi daftar ip yang akan disewakan ke client, juka dalam contoh kita mengisikanya dengan 192.168.1.1 192.168.1.100 berarti range ip dari 192.168.1.1 sampai dengan 192.168.1.100 akan diberikan kepada client. Menjalankan Daemon DHCP Setelah kita yakin dengan konfigurasi DHCP server kita maka tugas kita adalah menjalankan daemon dhcpd agar DHCP server dapat melayani perminta permintaan konfigurasi jaringan dari client, untuk menjalankan daemon dhcpd dapat kita lakukan dengan perintah service
FOSS AMIKOM http://foss.amikom.ac.id - Membuat Network Services di Linux - 16
DHCP Untuk Banyak Jaringan DHCP server dapat di set up untuk bisa melayani permintaan konfigurasi jaringan dari beberapa network dengan range ip yang berbeda, sebagai contoh ketika kita memiliki 3 interface card (NIC) dengan 1 interface menghadap ke jaringan internet dan 2 interface terhubung dengan jaringan ln dengan ip yang berbeda, berikut adalah contoh konfigurasi dhcpd untuk dua jaringan dengan ip 192.168.1.0/24 dan 192.168.2.0/24
subnet192.168.1.0netmask255.255.255.0{ defaultleasetime360; maxleasetime720; optionbroadcastaddress192.168.1.255; optionrouters192.168.1.254; optiondomainnameservers192.168.1.254; range192.168.1.1192.168.1.100; } subnet192.168.2.0netmask255.255.255.0{ defaultleasetime720; maxleasetime1440; optionbroadcastaddress192.168.2.255; optionrouters192.168.2.254; optiondomainnameservers192.168.2.254; range192.168.2.1192.168.2.200; }
Dengan konfigurasi di atas maka jaringan LAN yang terhubung dengan ethernet pada server DHCP yang mempunyai ip 192.168.1.254 akan mendapatkan ip 192.168.1.1 sampai dengan 192.168.1.100 dengan default gateway 192.168.1.254 dan DNS server
FOSS AMIKOM http://foss.amikom.ac.id - Membuat Network Services di Linux - 17
192.168.1.254, dan mendapatkan default waktu sewa selama 1 jam, dan maksimal waktu sewa selama 2 jam, begitu juga pada jaringan LAN yang terhubung dengan ethernet dari DHCP server yang mempunyai ip 192.68.2.254 maka akan mendapatkan range ip dari 192.168.2.1 sampai dengan 192.168.2.200 dengan default gateway 192.168.2.254 dan DNS server 192.168.2.254 dan mendapatkan waktu sewa selama 720 detik (2 jam) dan maksimal sewa selama 14400 detik (4 jam). Konfigurasi DHCP untuk IP Statis Pada contoh-contoh konfigurasi di atas semua range ip address yang di deklarasikan dapat digunakan oleh semua client, artinya client dapat saja mendapatkan ip yang berbeda setiap kali client meinta konfigurasi dari server, DHCP server dapat di set agar memberikan ip statis ke pada suatu client, metode yang digunakan adalah dengan menandai alamat MAC (Medium Access Control) atau alamat hardware, sehingga server DHCP akan memberikan ip statis kepada host yang almat MAC nya terdaftar dalam konfigurasi dhcpd, berikut adalah contoh pemberian alamat static pada DHCP server.
defaultleasetime360; maxleasetime7200; optionsubnetmask255.255.255.0; optionrouters192.168.1.254; optiondomainnameservers172.16.30.7; optionbroadcastaddress192.168.1.255; subnet192.168.1.0netmask255.255.255.0{ range192.168.1.1192.168.1.100; } hoststatichost{ optionhostnamestatichost; hardwareethernet00:90:F2:65:DC:D2;
Dengan
konfigurasi
diatas
maka
client
yang
memiliki
alamat
MAC
00:90:F2:65:DC:D2 akan selalu mendapatkan ip 192.168.1.50, dan alamat tersebut tidak akan disewakan kepada client lain.
Proxy Server
Proxy umumnya digunakan untuk memberikan layanan caching ke jaringan lokal, dengan mengunakan squid cache client-client proxy tidak perlu mengakses langsung halaman web yang ditujunya, melainkan cukup dengan mengambilnya di cache server (proxy), cara kerjanya adalah ketika ada client yang mengkses suatu alamat web, maka squid akan menyimpan file-file halaman web tersenut ke dalam cache lokal proxy tersebut untuk kemudian diberikan lagi kepada client yang mengakses halaman web yang sama, ketika ada client yang mengakses halaman web yang sama proxy server hanya melakukan pengecekan ke server yang dituju, apakah obyek yang disimpan di cache local proxy masih sama dengan yang ada di server web tujuan, apabila ternyata telah ada perubahan barulah proxy server memintakanya untuk client yang mengakses server web tujuan, sementara itu file yang diberikan kepada client tersebut juga akan disimpan di direktori cache pada proxy sever, dan begitu seterusnya sehingga secara tidak langsung metode ini akan menghemat bandwidth dan secara tidak langsung akan mempercepat koneksi internet, selain fungsi diatas proxy server juga dapat digunakan untuk membuat kebijakan keamanan untuk jaringan lokal. Aplikasi proxy server yang paling populer digunakan adalah squid, dikarenakan squid memiliki tingkat performa yang baik dan keamanan yang relatif lebih baik daripada aplikasi-aplikasi proxy server lainya.
Instalasi Paket Squid dari Repository Untuk memudahkan kita dalam menginstall squid proxy server maka kita akan menggunakan instalasi squid dari repository dengan menggunakan apt-get, adapun cara instalasi squid :
$sudoaptgetinstallsquid
Konfigurasi Squid Setelah proses instalasi squid proxy server selesai maka yang harus kita lakukan selanjutnya adalah menyesuaikan konfigurasi default squid agar sesuai dengan kebutuhan kita, adapun file konfigurasi squid terdapat di /etc/squid/squid.conf. Berikut adalah beberapa opsi-opsi konfigurasi dasar yang harus kita sesuaikan
AccessControllist(ACL) acllocal_netsrc192.168.1.0/24 http_accessallowlocal_net
Opsi diatas dapat dijelaskan sebagai berikut : Pernyataan acl *local_net src* menunjukan jaringan local kita yang akan kita perbolehkan untuk mengakses mesin proxy server, sebagai contoh disini kita hanya akan mengizinkan jaringan 192.168.1.0/24 yang diperbolehkan mengakses proxy server Pernyataan http_access allow local_net harus diletakan sebelum baris http_access deny all. berikut contoh penggunaan acl dalam squid
acllocal_netsrc192.168.1.0/24 http_accessallowlocalhost http_accessallowlocal_net http_accessdenyall Logging FOSS AMIKOM http://foss.amikom.ac.id - Membuat Network Services di Linux - 20
Secara default squid akan membuat beberapa file log (catatan) yang berhubungan dengan aktifitas squid itu sendiri, dan berikut adalah konfigurasi default squid yang digunakan
access_log/var/log/squid/access.logsquid cache_log/var/log/squid/cache.log cache_store_lognone
Dengan opsi diatas squid akan menyimpan pesan-pesan error dalam file /var/log/squid/cache.log, kemudian informasi akses dari client akan disimpan dalam file access_log /var/log/squid/access.log dan pada bagian opsi cache store log karena tidak terlalu penting maka kita dapat menonaktifkanya dengan mengisikan opsi none sehingga menjadi cache_store_log none
Cache Managemen Pada bagian ini merupakan opsi konfigurasi yang digunakan untuk melakukan manajemen cache, adapun opsi penting yang harus kita perhatikan adalah sebagai berikut :
cache_dirufs/var/spool/squid10016256
Keterangan opsi diatas adalah menentukan letak (path) dari direktori cache yang akan kita gunakan, sedangkan ufs merupakan metode cache storing yang nantinya akan digunakan, ada beberapa metode yang dapat digunakan dalam opsi ini, yaitu ufs,aufs dan diskd, opsi selanjutnya menentukan besaran ukuran directori yang nantinya disitu akan dialokasikan untuk menaruh cache squid, ukuran yang digunakan disini adalah MegaByte(MB), sehingga apabila kita mengisinya dengan 100, maka berarti kita akan mengalokasikan direktori untuk meletakan cache squid sebesar 100MB, opsi selanjutnya adalah jumlah directori tree yang akan kita buat dalam directory cache, pada contoh diatas kita mengisinya dengan 16 dan 254, maka artinya di dalam direktori cache
FOSS AMIKOM http://foss.amikom.ac.id - Membuat Network Services di Linux - 21
nantinya akan memiliki jumlah direktori sebanyak 16 dan masing-masing direktori akan memiliki sub direktori sebanyak 254.
Content Filtering Menggunakan Squid Selain difungsikan sebagai cache server, squid juga dapat sekaligus berfungsi sebagai content filtering untuk mengeblok alamat-alamat situs yang tidak boleh di akses oleh client. Opsi yang digunakan pada dasarnya adalah hanya dengan mamanfaatkan fitur ACL pada squid, contoh penggunaannya adalah sebagai berikut
aclblockdstdomain"/etc/squid/block" http_accessdenyblock
Sedangkan isi dari file /etc/squid/block adalah alamat-alamat situs yang akan kita larang untuk di akses oleh clien proxy, contoh isi file block adalah sebagai berikut
rapidshare.com facebook.com friendster.com indowebster.com
Setelah ini maka alamat-alamat yang terdapat di dalam file /etc/squid/block tidak akan dapat diakses lagi oleh client dengan pesan error access denied, selain alamatalamat yang dapat kita block sebenarnya kita juga dapat memblok eksternsi-ekstensi file yang akan kita larang untuk di akses oleh client dengan jam dan pada hari-hari tertentu, berikut adalah contoh untuk memblock beberapa ekstensi file yang akan kita larang untuk di akses oleh client pada jam dan hari tertentu
aclblokurl_regexi\.mpeg$\.avi$\.mpg$ acljam_kerjatimeMTWHF08:0016:00
http_access deny blok jam_kerja Keterangan opsi diatas adalah sebagai berikut : kita akan menolak client mengakses file-file dengan ekstensi mpeg, avi dan mpg pada hari senin sampai jumat (MTWHF) mulai jam 08-14.
Konfigurasi Tranparent Proxy Transparent proxy merupakan metode dimana kita menempatkan proxy server diantara jaringan LAN dan jaringan internet kemudian semua koneksi web dari jaringan LAN yang menuju inernet akan secara otomatis di belokan untuk dipaksa melalui proxy server kita, metode ini akan mempermudah kita dalam melakukan pengaturanya, karene dengan menggunakn metode ini kita tidak harus menseting cient satu-persatu untuk menggunkan proxy server, dan metode ini sangat cocok untuk penerapkan kebijakan keamanan krena client mau atau tidak mau harus melewti proxy untuk mengkses internet, dan berikut adalah seting squid dan juga iptables untuk konfigurasi transparent proxy. Agar squid bisa menjalankan fungsi transparent proxy maka kita peru menmbahkan beris berikut ada file konfigurasi squid
http_port3128transparent
dengan menggunakan rules diatas maka semua koneksi (tcp/udp) yang menuju port 80 akan secara otomatis di belokan ke port proxy server (3128).
Menjalankan Squid Ketika kita pertama kali akan menjalankan squid maka kita harus menjalankan perintah berikut agar squid membuat file cache terlebih dahulu.
#squidz
Sumber Referensi
http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-supporton-ubuntu-10.04-lamp http://www.aqsha-a.co.cc/instalasi-dan-konfigurasi-dns-server-dengan-bind9pada-ubuntu-server-9-10/ http://library.linode.com/web-servers/apache/installation/ubuntu-10.04-lucid http://ugos.ugm.ac.id/wiki http://www.jonathanmoeller.com/screed/?p=1677 http://seeksadmin.com/blog/2007/basic-ssh-security/ http://www.ubuntugeek.com/how-to-install-and-configure-dhcp-server-inubuntu-server.html Apache: http://httpd.apache.org/ PHP: http://www.php.net/ MySQL: http://www.mysql.com/ Ubuntu: http://www.ubuntu.com/ phpMyAdmin: http://www.phpmyadmin.net/
Change Log
Versi 0.9 Revisi file konfigurasi /etc/bind/named.conf Revisi menambahkan cara troubleshooting bind9 Revisi tutorial virtual host Menambahkan tutorial Konfigurasi Bind9 untuk mendukung virtual host
Versi 0.8 Menambahkan dhcp server, ssh server, dan proxy server Versi 0.5 Dokumen belum termasuk dhcp server dan ssh server