Friday, December 21, 2007

Web Server

Webserver Apache merupakan webserver yang paling populer digunakan di dunia dengan 64.52 % pengguna (berdasarkan survey netcraft.com september 2003), diikuti Microsoft IIS (23.54%) dan SunOne (3.48%). Hal tersebut karena sampai saat ini Apache merupakan webserver open source yang free (open source) dan handal.
Beberapa kelebihan Apache antara lain:# Free of Charge / Gratis# Cepat dan Tangguh dengan konfigurasi yang benar# Setting dan Instalasi sesuai dengan kebutuhan dengan modules dan DSO-nya# Dapat diakses (API ke berbagai scripting languange) dan digabung dengan berbagai aplikasi lain (databaseserver, ssl, ext)# Advanced setting dan configuration support# Keuggulan lainnya….cari sendiri ya :)More…Dengan berbagai keungulan tersebut maka Apache sangat bagus jika kombinasikan dengan aplikasi lainnya. Penggabungan yang paling sering adalah dengan menggabungkan Apache, PHP dan MySQL yang berjalan di server linux atau yang terkenal dengan istilah LAMP (Linux, Apache, Mysql, PHP). Eittt…. bagi pengguna windows.. jangan khawatir dulu karena Apache, PHP dan MySQL bisa diinstall di OS Windows juga. Pada pokok bahasan kali ini kita akan mencoba menginstall LAMP di OS Windows dan Linux. Asumsi distro Linux yg digunakan adalah versi Redhat atau Mandrake dan Windows yang digunakan Win 9x, 2k atau xp. Saat ini apache terdiri dari dua versi yaitu versi 1.3 dan versi 2 silakan pilih versi yg diinginkan, masing memiliki kelebihan dan kekurangan.
1. Instalasi LAMP di OS Linux
a. Instalasi dengan menggunakan RPM
Untuk instalasi menggunakan rpm biasanya secara default sudah disediakan di cd distro linux yang diinstall. Untuk instalasinya cukup dengan perintah : rpm -ivh paket_versi.rpm dan untuk upgrade dengan perintah rpm -Uvh paket_versi.rpm
Langkahnya adalah sebagai berikut:
Apache : rpm -ivh Apache-versi.rpmPHP : rpm -ivh php-versi.rpm php-mysql.rpm (rpm lain yg dibutuhkan)Mysql : rpm -ivh MySQL-versi.rpm MySQL-client-versi.rpm
Secara default php akan terinstall sebagai CGI tetapi apabila kita menginstall rpm untuk modul Apache maka php akan menjadi modul Apache. Instalasi php sebagai modul Apache dapat mempercepat eksekusi script php.
Untuk konfigurasi webserver apache dapat dilakukan di /etc/http/conf/http.conf (lokasi default ) dan php dapat dilakukan di /etc/php.ini
b. Intalasi dengan menggunakan source
Yang dibutuhkan adalah source-source berikut :
1. mysql-3.23.58.tar.gz (versi terbaru dapat diakses di http://www.mysql.com/downloads/index.html)2. apache_1.3.27.tar.gz (versi terbaru dapat diakses http://httpd.apache.org/download.cgi)3. php-4.3.1.tar.gz (versi terbaru dapat diakses http://www.php.net/downloads.php)Setiap konfigurasi yang disebutkan adalah konfigurasi minimal dan umum digunakan, untuk konfigurasi secara lengkap dapat mengetikkan ./configure –help
Install MySQL-nya dulu—————————–
unpack source nya, compile dan Install :
/usr/local > tar -xzvf mysql-3.23.58.tar.gz/usr/local > cd mysql-3.23.58//usr/local/mysql-3.23.58 > ./configure –prefix=/usr/local/mysql/usr/local/mysql-3.23.58 > make/usr/local/mysql-3.23.58 > make install/usr/local/mysql-3.23.58 >./scripts/mysql_install_db
menjalankan MySQL :
/usr/local/mysql-3.23.58 > cd /usr/local/mysql/bin/usr/local/mysql/bin > ./safe_mysqld &
untuk informasi lengkap installasinya ada pada http://www.mysql.com/doc/en/Installing.htmlUnpack dan configure Apache————————————-
/usr/local > tar -xzvf pache_1.3.27.tar.gz/usr/local > cd apache_1.3.27//usr/local/apache_1.3.26 > ./configure –prefix=/usr/local/apacheInstall PHP————-
unpack source nya, compile dan Install :
/usr/local > tar -xzvf php-4.3.1.tar.gz/usr/local > cd php-4.3.1//usr/local/php-4.3.1 > ./configure –with-mysql=/usr/local/mysql> –with-xml> –with-apache=/usr/local/apache_1.3.27> –enable-track-vars
/usr/local/php-4.3.1 > make/usr/local/php-4.3.1 > make install/usr/local/php-4.3.1 > cp php.ini-dist /usr/local/lib/php.ini
Install Apache——————-
/usr/local > cd apache_1.3.26//usr/local/apache_1.3.26 >> ./configure> –activate-module=src/modules/php4/libphp4.a> –enable-module=php4> –prefix=/usr/local/apache
/usr/local/apache_1.3.27> make/usr/local/apache_1.3.27> make certificate TYPE=custom/usr/local/apache_1.3.27> make install
selesai .Konfigurasi Apache————————-
Edit httpd.conf yang berada di /usr/local/apache/conf/ , dan tambahkan baris berikut :
AddType application/x-tar .tgzAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
jalankan apache :
# /usr/local/apache/bin/apachectl start
Untuk melihat konfigurasi yang kita buat dapat membuat suatu file php. misalnya kita buat file phpinfo.php dan isinya adalah sebagai berikut:
simpan file tersebut dan letakkan di direktori web server. Untuk melihatnya kita dapat mengakses halaman http://localhost/phpinfo.php
2. Intalasi LAMP di OS Windows
Untuk instalasi di windows bisa dilakukan beberapa cara antara lain:
- Install PHP Triad yg secara langsung akan menginstall Apache, php dan mysql. Dapat diakses dari sini http://sourceforge.net/projects/phptriad
- Install paket secara terpisah dengan mengambil installer dari website sumber dan menggabungkannya yaitu dengan mengambil paket dari :
Apache : http://www.apache.orgPHP : http://www.php.netMySQL : http://www.mysql.com
Setiap paket akan dilengkapi dengan readme file yang berisi langkah2 instalasi dan manualnya. Untuk konfigurasi Apache dapat dilakukan di file httpd.conf

Samba Server

Berikut tampilan dari file smb.conf dan penjelasan konfigurasinya :

#======================= Global Settings =======================

[global] workgroup = Yodi ----> nama workgroup yang muncul nantinya server string = %h server dns proxy = no interfaces = 127.0.0.0/8 eth0 ---> eth0 merupakan LANcard,bisa diganti menurut medianya bind interfaces only = true log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d###### Authentication ####### security = user ---> hanya untuk user yang terdaftar. encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes passwd program = /usr/bin/passwd %u passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .#

======================= Share Definitions =======================

[data] ---> menentukan nama filesharing path = /media/repo/ ---> path tempat folder dishare guest ol = no - ---> akses guest ditolak, untuk menghidupkan ganti dengan yes browseable = yes ---> bisa dibrowsing read-only = no ---> read-only memiliki opsi yes atau no valid-users = yodi, root ----> list user yang memiliki akses writeable = yes ---> bisa ditulis. create mask = 700 ----> hak membuat file directory mask = 700 ----> hak membuat direktori [my data] path = /media/ guest ol = yes browsable = yes read-only = no writeable = yes valid users = yodi,root[printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes public = no writable = no create mode = 0700# Sharing Printer Windows clients look for this share name as a source of downloadable[print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes writable = yes guest ok = no ----> guest dilarang masuk write list = root, @ntadmin# Sharing CD-ROM with others.[cdrom] comment = Samba server's CD-ROM writable = no locking = no path = /cdrom public = yes ----> public berarti bebas dipakai oleh siapa saja
Nah, logikanya pembuatan sharing folder dapat dilihat pada bagian [data]. Yang perlu diperhatikan adalah security= user / share, writeable= yes / no, browseable = yes / no, path dan valid users.

FTP Server

Untuk keluarga Linux yang menggunakan .rpm packet bagi yang sudah
menginstall “Yum” maka tinggal download saja. Untuk keluarga Debian
seperti Ubuntu, dll dapat langsung menjalankan perintah :
#apt-get install vsftp
Contoh :
# apt-get install vsftpd
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
vsftpd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/114kB of archives.
After unpacking 418kB of additional disk space will be used.
Selecting previously deselected package vsftpd.
(Reading database ... 91726 files and directories currently installed.)
Unpacking vsftpd (from .../vsftpd_2.0.5-2_i386.deb) ...
Setting up vsftpd (2.0.5-2) ...
Starting FTP server: vsftpd


Konfigurasi vstfp
Setelah selesai instalasi jalan service dari FTP Server yang telah di install
dengan perintah :
#service vsftpd start
Untuk keluarga Debian biasanya langsung running service dari vsftp ini
setelah selesai instalasi jadi kita bisa langsung mencobanya :
dony@NOC-DONY:$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.5)
Name (localhost:dony):


Setelah FTP Server terinstall dengan baik maka yang perlu diperhatikan
adalah konfigurasi dari vsftp ini karena menyangkut privacy maupun security
dari FTP Server ini sendiri.
File konfigurasi dari vsftp ini berada pada “/etc/vsftpd.conf”
isi nya adalah sebagai berikut :
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
#local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,

# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#

# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
Sebetulnya dari file konfigurasi tersebut sudahlah jelas option - option untuk
mengatur segala sesuatu terhadap FTP Server yang akan digunakan.
Seperti contoh pada baris :
# Uncomment this to enable any form of FTP write command.
#write_enable=YES

Disini option untuk menentukan apakah folder yang di share dengan FTP
attribut nya Read Only atau Writeable.
Satu contoh lagi pada baris :
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
pada bagian ini adalah option untuk menentukan apakah anonymous (siapa
saja) dapat masuk kedalam FTP anda atau tidak.
# Uncomment this to allow local users to log in.
#local_enable=YES
Sedangkan pada bagian ini adalah option untuk mangaktifkan user pada linux
sebagai user pada FTP Server anda. Jadi setiap orang yang akan masuk ke
Server FTP anda harus terlebih dahulu terdaftar pada user login pada Linux
nya.
Untuk security memang hanya terbatas dari option file tersebut. Namun
untuk lebih meningkatkan security yang ada anda dapat meletakan Server
FTP ini dibelakang Firewall yang anda gunakan. Tentunya dengan berbagai
rule yang ada pada firewall seperti access-list ataupun port yang digunakan

DNS dan DHCP Server Debian


Dynamic DNS dengan BIND dan DHCP Server

Pendahuluan

Dynamic DNS merupakan sebuah sistem dalam jaringan yang memungkinkan untuk memberikan alamat IP dan nama domain padaclient secara otomatis. Konfigurasi sistem seperti ini banyak dilakukan oleh pihak-pihak yang memberikan layananhosting-hosting domain, sehingga administrator tidak perlu repot-repot mengupdate DNS-server setiap kali ada permintaandomain baru.
Untuk implementasi sistem Dynamic DNS dibutuhkan paket BIND, DHCP-Server dan DHCP-Client. Versi paket yangdigunakan :
bind-9.3.4
dhcp3-server
dhcp3-client
Sistem operasi yang digunakan Debian 4.0 Etch.
Skenario Percobaan
Pada sebuah jaringan yang ingin mengimplementasikan Dynamic DNS, terdapat sebuah server dhcp dengan IP 167.200.17.65,sebuah DNS server dengan IP 167.200.17.66 dan beberapa komputer client. Domain yang digunakan adalah gerhana.edu.Host client yang akan dikonfigurasi sebagai contoh memiliki hostname eclipse.
Instalasi Paket
Intalasi paket pada debian cukup mudah dengan menggunakan apt-get.
root@ns:~$ apt-get install bind9
root@dhcp:~$ apt-get install dhcp3-server
root@eclipse:~$ apt-get install dhcp3-client
Konfigurasi DNS-Server
Konfigurasi yang dibutuhkan pada DNS-server dilakukan pada file named.conf dan file db yang menanganizone domain gerhana.edu.
Konfigurasi named.confKonfigurasi untuk zone file tidak ada perbedaan dari konfigurasi DNS-server yang biasa. Contoh konfigurasi named.conf :
zone "gerhana.edu" { //deklarasi zone domain.
type master; //tipe dari zone ini adalah master.
file "/etc/bind/db.gernaha"; //file konfigurasi db dari zone ini.
allow-update { key wind-key; }; //
Mengijinkan update dengan menggunakan key yang sudah ada.
};
//Key yang digunakan untuk update, key ini harus sama dengan key yang ada pada dhcp server
key "wind-key" {
algorithm hmac-md5;
secret "J5A3SaVGipZNa0LPT8BWHQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; 167.200.17.65;} keys { "wind-key"; };
};
Generate key dapat dilakukan dengan dnssec-keygen atau rndc-confgen.
Konfigurasi Zone FileZone file yang akan dibuat adalah file db.gerhana yang contoh isinya seperti berikut :
$TTL 15m
@ IN SOA ns.gerhana.edu. root.ns.gerhana.edu (
2007042401
2h
15m
2h
2h)
IN NS ns.gerhana.edu.
IN A 167.200.17.66
$ORIGIN gerhana.edu.
ns IN A 167.200.17.66
dhcp IN A 167.200.17.65

Kita hanya menentukan nama untuk komputer-komputer server yang memiliki static IP, sedangkan untuk client-client akandiupdate sesuai dengan kondisi. Setelah selesai restartlah service bind dengan perintah :
root@ns:~# /etc/init.d/bind9 restart
Note : Jangan lupa untuk memberikan hak write user dan group bind pada direktori /etc/bind agardaemon bind dapat melakukan update.
Konfigurasi DHCP-Server
DHCP-Server hanya butuh melakukan konfigurasi pada file dhcp.conf. Konfigurasi yang akan dilakukan adalah :
Nama Domain : gerhana.edu.
IP DNS sever : 167.200.17.66.
IP Gateway : 167.200.17.65.
Range IP yang ditangani DHCP : 167.200.17.67-167.200.17.78

Contoh konfigurasi file dhcpd.conf :
//Key yang digunakan untuk update ke dns server, sama dengan key yang ada di dns server.
key wind-key {
algorithm hmac-md5;
secret "J5A3SaVGipZNa0LPT8BWHQ==";
};
server-identifier dhcp.gerhana.edu;
authoritative;
ddns-update-style interim;
ddns-updates on;
subnet 167.200.17.64 netmask 255.255.255.240 {
//
Deklarasi zone yang dipakai, sama dengan zone yang ada pada dns server
zone gerhana.edu. {
primary 167.200.17.66;
key wind-key;
}
option domain-name "gerhana.edu";
//Domain yang akan diberikan kepada client.
option domain-name-servers 167.200.17.66; //IP dns server
range 167.200.17.67 167.200.17.78; //Range IP yang digunakan untuk DHCP
option subnet-mask 255.255.255.240; //Subnet mask domain yang akan diberikan ke client
option broadcast-address 167.200.17.79; //Alamat broadcast yang akan diberikan kepada client
option routers 167.200.17.65; //Alamat gateway yang diberikan kepada client
option ip-forwarding off;
one-lease-per-client on;
default-lease-time 14400;
max-lease-time 14401;
}
Setelah itu restartlah service dhcp dengan perintah :
root@dhcp:~# /etc/init.d/dhcp3-server restart
Konfigurasi Client
Pada client kita hanya butuh manambahkan konfigurasi ini pada file dhclient.conf :
send host-name "eclipse"; //hostname yang dikirimkan client dan yang akan di tambahkan ke dns-server.
send dhcp-client-identifier MAC-address; //Mengirimkan identifier MAC Address dari lan card
Dengan tambahan konfigurasi diatas maka client akan mengirimkan request IP DHCP-Server, sekaligus mengirimkanhostname-nya agar DHCP-Server melakukan update ke DNS server dengan informasi kalau di subnet ini ada tambahanclient baru dengan nama eclipse.gerhana.edu dan IP yang sesuai dengan alokasi DHCP-Server
Setelah melakukan konfigurasi client, konfigurasilah client tersebut untuk mendapatkan IP dari DHCP. Konfigurasinyadilakukan pada file /etc/network/interfaces. Contoh konfigurasinya :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Setelah itu restartlah konfigurasi network client dengan perintah :
root@eclipse~$ /etc/init.d/networking restart
Untuk mengetahui ada error atau tidak dapat diamati melalui pesan syslog dengan perintah
tail -f /var/log/syslogpada masing-masing server.

Sunday, December 16, 2007

Server Debian

Sebelum membuat server Debian terlebih dahulu kita menginstal CD Debian yang berjumlah 9 CD. Setelah menginstall Cd,kita mengemount dengan perintah apt -cdrom add -m ulangi sampai seluruh CD terupdate. Lalu kita menginstall paket-paket yang belum terinstall dengan perintah aptitude lalu pilih not install package tekan tombol slash ( / ) setelah itu ketikkan perintah atau paket yang ingin di install sebagai perangkat pembuatan server Debian. Macam-macam data yang perlu dalam membuat server Debian antara lain : php4 , vsftpd , apache , samba , bind 9 , mc , dll. Dengan perintah diatas kita sudah dapat menginstall paket-paket yang dibutuhkan dalam membuat server Debian.
Setelah itu kita hanya mengisi atau mengubah konfigurasi dalam paket server, pertama-tama kita masuk ke mc lalu kita hanya tinggal mengubah konfigurasi server yang kita butuhkan.