Anda di halaman 1dari 55

Septian Jauhariansyah

Server dengan Slackware


Distro Slackware
Septian

Server Area ....."Keep It Short & Simple !" Slackware sangat mumpuni diarea Server ! (meski semua tergantung "The Man behind the Gun" :). Anda telah mempunyai 'senjata' yang hebat. Sekarang ajang untuk membuktikan bahwa Anda seorang jagoan :) Pada bagian ini akan dibahas konfigurasi server yang diusung Slackware. Area Server meliputi :Apache Webserver, Sendmail Mail Server,DHCP Server, Samba Server, Bind DNS Server, MySQL DataBase server, ProFTP FTP Server, SSH (Secure Shell) Server, dan NFS Server. Squid Proxy server juga ditambahkan pada bagian ini. Masalah security Server juga ikut dibahas pada akhir penjelasan. Sebagai penyemangat, tiap area server diawali dengan pengantar ! Dimana saya mengharapkan Anda dapat menjalankan server dalam tempo singkat. (Dengan konfigurasi dasar yang diusung oleh slackware). Para Slackers (Slackware Hackers :) yang terlibat langsung dalam penulisan :

AMad - http://makassar-slackers.org Arman - http://makassar-slackers.org Michael D - http://slackerbox.com Willy SR - http://slackblogs.blogspot.com Yulius - http://slackerbox.com

Last but not the least, rekan Lenny O - http://slackerbox.com mendokumentasikan tulisan ini dalam format .pdf. Anda sudah siap ?

Web Server
Apache Web Server Anda tidak ingin membuat Web server sendiri ? Menjalankan isi situs yang berada pada komputer Anda dirumah ? Atau 'mendeploy' server di data center ? Jika Anda melihat situs ini, berarti browser Anda berhubungan langsung dengan program Apache server yang bertugas agar halaman situs ini dapat ditampilkan pada browser Anda. Slackware mengusung Apache HTTPD server pada paketnya. Pada Slackware versi 11, Apache yang digunakan adalah versi 1.3.37 Sedang pada Slackware versi 12 Apache yang digunakan versi 2.2.4. Untuk Slackware 13.0 Httpd yang digunakan versi 2.2.13. Pada intinya cara konfigurasi kedua jenis web server hampir sama. Ala teks mode Hehehe Httpd pada Slackware 12 dan 13 memberikan banyak contoh file konfigurasi apache. Mulai dari virtual host, ssl, dan lain sebagainya. Peletakan dokument root pada Slackware 12 dan 13 adalah pada direktory /srv tetapi tetap ter-link dengan direktory /www seperti pada slackware 11. Apa beda Apache versi 1.3.37 dengan 2.2.X ? Secara internal proses "fork" kedua versi beda. Oops ! Tidak tepat untuk membahas hal tersebut disini. Lalui 15 Menit pertama, kemudian melangkah ke virtual host, terus ke GOOnline, dan seterusnya. Semua terserah Anda :) 15 Menit Bagian ini dirancang agar Anda dapat menjalankan Apache Kurang dari 15 menit :) Siapkan secangkir Kopi untuk menemani . Oke ! Aktifkan apache di slackware :
root@darkstar~#chmod 755 /etc/rc.d/rc.httpd

Oh ! Apache baru akan aktif jika Anda merebot komputer Anda. Jadi instruksi diatas akan mengaktifkan apache setiap kali komputer dihidupkan secara otomatis. Tidak perlu reboot :)
root@darkstar~# /usr/sbin/apachectl -k start

instruksi di atas akan menjalankan apache saat itu juga. Mungkin Anda akan menerima peringatan seperti ini :

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName Tidak apa2 karena kita belum memulai

yang sesungguhnya :) Buka browser favorit Anda, dan ketikkan http://localhost Seharusnya Anda sudah mendapat Salam hangat dari Apache. Jadi ingat2 instruksi dasar Apache :
/usr/sbin/apachectl /usr/sbin/apachectl /usr/sbin/apachectl /usr/sbin/apachectl -k start untuk men-start apache -k restart untuk merestart apache -k stop instruksi untuk men-stop apache configtest Tes dulu konfigurasi baru

Tentunya instruksi diatas dilakukan sebagai root.Anjuran saya, sebaiknya Anda tidak melangkah ketahap selanjutnya jika Anda belum mendapatkan Salam Hangatdari Apache. Selanjutnya : Konfigurasi httpd.conf. File konfigurasi terletak di /etc/apache/httpd.conf (Slackware 11) dan di /etc/httpd/httpd.conf untuk Slackware 12. Berbeda dengan Slackware 11, file konfigurasi utama Apache Httpd 2.2.x pada Slackware 12 menggunakan sistem include file konfigurasi lain.(terletak di /etc/httpd/extra ). Buka file konfigurasi tersebut dengan teks editor favorit Anda. Bagian dasar yang perlu dicermati Slackware 11 (Apache 1.3.37) : Server Admin :
ServerAdmin root@tree.slackware.lan

(e-mail baris di atas ganti dengan e-mail Anda). Contoh :


ServerAdmin mic@xdeira.com

Server Name :
#ServerName www.example.com

(Baris diatas ganti dengan situs Anda jika web server Anda online) Contoh :

ServerName xdeira.com

(Tapi jika ingin berjalan di localhost saja, maka biarkan tanda # tetap Ada.) Document Root :
DocumentRoot "/var/www/htdocs"

(Ganti dengan folder pilihan Anda) Contoh :


DocumentRoot /var/www/public_html

atau
DocumentRoot /home/mic/public_html

Directory : (Ganti dengan direktori Anda) Contoh :


< Directory "/home/mic/public_html" > Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all < /Directory >

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

Index :
DirectoryIndex index.html

(Tambahkan direktori index yang Anda inginkan. Misal agar apache dapat menjalankan .php)
DirectoryIndex index.html index.php

Slackware 12 (Httpd 2.2.4) dan 13 ((Httpd 2.2.13): Server Admin :


ServerAdmin you@example.com

(e-mail baris di atas ganti dengan e-mail Anda). Contoh :


ServerAdmin michaelx@slackerbox.com

Server Name :
#ServerName www.example.com

(Baris diatas ganti dengan situs Anda jika web server Anda online) Contoh :
ServerName slackerbox.com

(Tapi jika ingin berjalan di localhost saja, maka ganti dengan


localhost:80.)

Document Root :
DocumentRoot "/srv/httpd/htdocs"

(Ganti dengan folder pilihan Anda) Contoh :


DocumentRoot /srv/httpd/public_html

atau
DocumentRoot /home/mic/public_html

Directory : Sama dengan DocumentRoot, ganti dengan direktori Anda


< Directory "/srv/httpd/htdocs" > Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all < /Directory >

Index :

DirectoryIndex index.html

(Tambahkan direktori index yang Anda inginkan. Misal agar apache dapat menjalankan .php)
DirectoryIndex index.html index.php

Include mod_php : Agar halaman .php dapat jalan, Cari baris #Include /etc/httpd/mod_php.conf (di bagian bawah ). Hilangkan tanda # baris diatas. Oke ! restart Apache Server agar menjalankan konfigurasi baru. Catatan : Anda dapat mengecek hasil 'oprekan' httpd.conf (apa syntaks sudah bener, atau Anda melakukan kesalahan konfigurasi pada httpd.conf) dengan mengetikan instruksi : #/usr/sbin/apachectl configtest. Jika Oke, maka Apache akan memberikan komentar : Syntax OK
root@mic:/home/mic# apachectl configtest Syntax OK

User dan grup pada Apache 1.3.37 adalah nobody . Sedang pada Httpd 2.2.x user maupun group adalah apache Buat direktory dulu (jika Anda ingin meletakkan data situs pada tempat tertentu) baru menulisnya di konfigurasi Apache. Maksud saya, apache tidak akan membuatkan Anda direktory otomatis. Setelah mengaktifkan httpd apache, Anda dapat mengecek lewat nmap. Jalankan instruksi $nmap localhost. Jika proses Anda benar, semestinya servis httpd akan muncul. Jika httpd apache tetap tidak mau jalan meskipun sudah Anda aktifkan (berulang kali)... lihat log error di direktory /var/log/httpd biasanya kesalahan terletak pada qualified name. Jika menjalankan local jaringan, Anda dapat mengabaikan nama domain. Jika tidak order domain dulu. Minta kopi dunk ! Punya saya habis :P

Virtual Host Apache dapat menjalankan banyak situs sekaligus. Misalkan www.myhost.com, www.yourhost.net, www.fgsas.org, semua situs ini dapat dijalankan dengan fasilitas virtual host. Untuk bagian ini, virtual host dijalankan dengan share IP Address. Jadi sebuah IP Address dapat menjalankan banyak situs sekaligus. Untuk vitual host berbasis IP, lihat bagian HostBaseIP Untuk Slackware 11 Edit file httpd.conf yang terletak di /etc/apache/httpd.conf Aktfikan VirtualHost :
#NameVirtualHost *:80

(Hilangkan tanda # sehingga menjadi dibawah ini)


NameVirtualHost *:80

Mengatur Direktive : Misalkan saya punya 3 situs sekaligus :) Situs Utama saya :
< VirtualHost *:80> ServerAdmin mic@xdevel.net DocumentRoot /home/mic/public_html ServerName xdevel.net ErrorLog logs/xdevel.net-error_log < /VirtualHost>

Situs Eksperimen :
< VirtualHost *:80> DocumentRoot /home/mic/joomla ServerName joomla.xdevel.net < /VirtualHost>

Situs belajar apache :


< VirtualHost *:80> DocumentRoot /var/www/htdocs ServerName apache.xdevel.net < /VirtualHost>

Untuk Slackware 12

Edit file httpd.conf yang terletak di /etc/httpd/httpd.conf Aktifkan Virtual Host, cari pada bagian :
# Virtual hosts #Include /etc/httpd/extra/httpd-vhosts.conf hilangkan tanda "#" pada #Include /etc/httpd/extra/httpd-vhosts.conf,

sehingga menjadi :
Include /etc/httpd/extra/httpd-vhosts.conf

Jangan lupa untuk menambahkan direktive dari file web anda, ini sebagai contoh dari virtual host : (file ini terletak di /etc/httpd/extra/httpd-vhosts.conf ) Direktif minimal :)
< VirtualHost *:80> DocumentRoot /var/www/htdocs ServerName situsgue.com < /VirtualHost>

Direktif lengkap :
< VirtualHost *:80> ServerAdmin emailanda@domain.com DocumentRoot /var/www/htdocs ServerName domain.com ErrorLog /var/log/httpd/situsgue.com-error_log CustomLog/var/log/httpd/situsgue.com-access_log < /VirtualHost>

Jangan lupa untuk simpan hasil konfigurasi, lalu restart service apache anda dengan menjalankan :
#apachectl -k restart

Lakukan testing pada browser anda dengan mengetikkan alamat http://situsgue.com, nah muncul "IT WORKS" :) Selamat virtual host anda sudah berjalan. ---------User direktory / public_html ---------Jika server Anda terdiri dari puluhan sampai ratusan user dengan homepagenya masing2, maka cara paling praktis meletakkan homepage pada alamat home direktorinya masing2. Misalkan 6 user bernama Michael, Harry, Yulius, Lenny, Eko, dan Indra.

Karena tiap user punya home direktorynya masing2, maka buat konvensi untuk meletakkan index.html atau index.php di /home/user/public_html Jadi untuk user Michael punya folder website
/home/michael/public_html

Untuk user Harry p :


/home/harry/public_html

Untuk user Yulius :


/home/yulius/public_html

Untuk user Lenny :


/home/lenny/public_html

Begitu seterusnya. Untuk Slackware 12 Konfigurasi terdapat di :


/etc/httpd/extra/httpd-userdir.conf

Untuk mengaktifkan user directory anda edit di httpd.conf dan cari bagian :
# User home directories #Include /etc/httpd/extra/httpd-userdir.conf hilangkan tanda "#" pada #Include /etc/httpd/extra/httpd-userdir.conf,

sehingga menjadi :
Include /etc/httpd/extra/httpd-userdir.conf

Jangan lupa untuk menyimpan hasil perubahan ini, lalu restart service apache anda. Lakukan testing pada browser anda dengan mengetikkan alamat http://domainanda.com/~useranda, nah kalo ada muncul "Parent Directory", maka anda telah berhasil. Selamat sekarang tiap user anda dapat mempunyai homepage sendiri. userdir dapat jalan tanpa mengaktifkan virtualhost. Btw, jika menggunakan virtualhost userdir Anda juga tetap jalan :) Oh ya ! Jika Anda pengguna Slackware 11, user-dir langsung aktif. Catatan Slacker :

Catatan 1 : Jika Anda mengaktifkan VirtualHost, maka pengaturan direktory situs utama (pada contoh awal tanpa virtualhost) akan diabaikan. Jadi letakkan situs utama Anda pada direktive virtualhost. Catatan 2 : Edit file /etc/host Anda dan tambahkan virtualHost.
# For loopbacking. 127.0.0.1 localhost # Ini yang ditambahkan. 192.168.1.111 xdevel.net xdevel 192.168.1.111 joomla.xdevel.net joomla 192.168.1.111 apache.xdevel.net apache # End of hosts. Penambahan di /etc/hosts

sangat vital jika Anda menjalankan server juga di jaringan internal. Jika tidak, maka komputer lain dalam jaringan akan mengakses webserver Anda dengan IP address. Definisikan juga resolve domain (local) Anda di komputer client. Sehingga komputer client dapat mengakses webserver dengan nama domain lokal Anda. Dalam kasus ini, resolve nama cukup di /etc/hosts. Kecuali Anda mempunyai banyak server yang perlu diresolve lewat dns server. /etc/hosts tidak mutlak dperlukan oleh webserver untuk domain yang dijalankan sebagai virtualhost jika Anda mendeploy sebuah server didata center. (Anda dapat menggunakan dns pihak ISP atau pihak luar)Kecuali Anda ingin membangun dns server sendiri. (dalam kasus ini Anda membuka perusahaan hosting misalnya :) Catatan 3 : Anda dapat membuat folder public_html otomatis setiap penambahan user baru dengan meletakkan prototip folder public_html pada /etc/skel Contoh : Saya membuat folder public_html pada
/etc/skel/public_html Maka setiap melakukan #adduser

folder public_html akan ditambahkan otomatis. (Plus

file tambahan lain bila perlu :) Tentu tidak harus bernama public_html kalau tidak suka :), bisa www atau yang lain. catatan 4:

Anda tidak perlu membuat directive virtual host jika Anda menggunakan model public_html berbasis home direktory. Sehingga alamat tiap user menjadi
http://domainAnda.com/~user

misal saya mempunyai domain http://xdevel.net maka untuk user Michael punya alamat :
http://xdevel.net/~michael

Sedang untuk user Lenny punya alamat :


http://xdevel.net/~lenny

Begitu seterusnya. Terhubung Ke Net ! Ingin web server Anda bisa diakses banyak orang ? Atau cukup untuk kalangan internal saja ? Dimana Anda ingin meletakkan Server ? Di kantor, dengan segala perangkatnya, atau di data center ? Pada bagian ini akan dijelaskan sekilas Home server dan deploy server di data center. Home Server Ternyata Anda ingin memamerkan webserver (yang ada di kamar) dan situs buatan Anda ke teman2 di kampus. Go Ahead ! Intinya Anda punya saluran Internet, impian Anda akan terkabul ! Hehehe 1. Punya akses lumayan cepat (katakanlah speedy) 2. Punya Modem ADSL/DSL Oke, mari mulai. IP Anda : Anda musti mengetahui IP yang diberikan oleh provider Internet.Ada 2 jenis IP. Statik dan dinamis. IP statik tidak akan berubah selama Anda online atau terhubung ke internet. Misalkan IP Anda 202.123.243.543. Maka selama Anda berlangganan, IP Anda tetap tidak berubah. IP dinamis akan berubah setiap periode saat online atau terhubung ke Internet. Saat pagi saya mendapatkan IP 125.164.234.234, saat sore habis mandi sudah berubah

lagi jadi 125.164.222.222 , 2 jam lagi berubah lagi jadi 125.164.123.174 begitu seterusnya. Tahu dari mana IP Anda ? Cek saja di modem atau disitus yang memberi informasi IP Anda. Misal di xdeira.com :) Port Forwarding: Langkah selanjutnya adalah seting port forwarding Modem ADSL Anda. Buka port 80 (untuk webserver) agar dapat diakses dari luar. Jika IP komputer Anda statik misal 192.168.1.111, maka port forwarding modem harus diarahkan ke IP tersebut. Hati2 !!! IP komputer berbeda dengan IP yang diberikan provider Internet !! Domain : Jika IP yang diberikan provider internet Anda statik, misal 202.235.223.234 maka teman Anda di jakarta sudah dapat mengakses webserver Anda dengan memasukkan http://203.235.043.234 pada browsernya. Jika ingin lebih 'manusiawi' Anda membutuhkan nama domain. Anda dapat memilih nama komersial atau yang disediakan gratis. Jika Ingin nama domain gratis, daftar ke www.dyndns.com Oke, Anda sudah memilih nama (fire_angel.homeunix.com), dan meletakkan IP statik Anda pada dyndns, Selamat !! Siapapun dapat mengakses webserver Anda dengan nama pilihan Anda. http://fire_angel.homeunix.com (Selama komputer Anda hidup :) Ip Dinamis : Untuk IP dinamis, maka yang diperlukan adalah update nomor IP Anda ke jasa nameserver (misalkan dyndns). Ada program ddclient untuk mengupdate IP Anda secara otomatis. Install ddclient dan lakukan set agar selalu melakukan update IP Address Provider (yang selalu berubah) ke dyndns. So...Anda sudah bisa pamer Webserver nih ! Jangan lupa pamerkan ke saya juga :)

Deploy Server : Saya perlu menulis ini, karena Slackware Linux jarang disediakan oleh ISP/provider. Distro Populer macam Fedora,Ubuntu, Debian, Centos, bahkan FreeBSD lebih mudah diperoleh secara default. Tentu Anda tidak berkecil hati bukan :) Kita khan Slackers ! (Slackware Hacker !)Jika Anda memilih Slackware, berarti Anda tahu apa yang akan di perbuat. Bukan sekedar Klik-klik-klik :P IP Address Jika Anda mendeploy server di data center(dedicated), atau mengirim server racikan sendiri ke gedung Cyber misalnya, maka Anda akan mendapatkan IP Gateway, IP produktif, dan IP broadcast. Juga tidak ketinggalan netmask.(plus tagihan tiap bulan Hehehe) Semisal saya mendeploy sebuah dedicated server disebuah ISP X, (Oke, saya mendapat 16 IP Address) maka saya mendapatkan Ip Gateway 66.165.101.241, Range IP produktif 66.165.101.242---66.165.101.254, dan IP broadcast 66.165.101.255. Netmask digunakan untuk membatasi range IP address yang menjadi hak saya :) Untuk kali ini saya mendapatkan netmask 255.255.255.240 IP Address yang dapat saya gunakan adalah 13 buah. Mulai dari 66.165.101.242 sampai 66.165.101.254. Untuk slackerbox.com menggunakan IP Address 66.165.101.251 :) Oke, pertama kali instalasi, (mungkin) hanya port ssh yang tersedia untuk Anda dari provider atau ISP :) Tentu Anda mendapatkan hak akses root :) Uji Coba Jika Anda meracik server sendiri, lebih baik memastikan server Anda jalan dulu, plus melakukan patch terakhir. Uji coba beban juga disarankan ! Lihat http://slackerbox.com/?q=node/319. Uji keamanan awal perlu dipikirkan, terlebih situs Anda menyangkut hajat hidup orang banyak :) Ada banyak tool penetration tester yang dapat digunakan. Lihat tool Nikto di http://slackerbox.com/?q=node/338. Jika pihak ISP yang menginstallkan Slackware kesayangan Anda, jangan lupa beri catatan kecil sebelum instalasi & konfigurasi. (kalau mereka bisa ! Hehehe) Karena SLackware merupakan distro "Do it Your Self" Mungkin Anda perlu menginstall sendiri paket Httpd APache, PHP, dan MySQL. Paket instalasi minimal (yang dilakukan banyak ISP ) tidak menyertakan paket2 vital buat produksi. Heem....Sisanya Anda perlu tanya ke provider/ISP yang Anda pilih. Host Berdasar IP Address

Jika Anda mempunyai lebih dari 1 IP Address, maka Anda dapat melakukan virtual Host berbasis IP Address. Penulisan Direktif hampir sama dengan sebelumnya, cuma Anda perlu menambahkan IP Address Anda dan menambahkan virtual eth0. Karena kebanyakan server hanya mempunyai sebuah atau 2 buah ethernet card, maka Anda perlu menambahkan virtual Eth (saya menyebutnya begitu :) Coba ketik instruksi #ifconfig maka akan terlihat kondisi Ethernet card Anda.
Link encap:Ethernet HWaddr 00:D0:B7:2E:E9:C9 inet addr:66.165.101.242 Bcast:66.165.101.255 Mask:255.255.255.240 inet6 addr: fe80::1d0:b72f:f22e:c9f9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:149375183 errors:0 dropped:0 overruns:0 frame:0 TX packets:5651113 errors:0 dropped:0 overruns:0 carrier:1 collisions:191680 txqueuelen:1000 RX bytes:1887978237 (1.7 GiB) TX bytes:2090119617 (1.9 GiB) Interrupt:21

Misal data Anda: eth0


inet addr:66.165.101.242 Bcast:66.165.101.255 Mask:255.255.255.240

eth0:1
inet addr:66.165.101.243 Bcast:66.165.101.255 Mask:255.255.255.240

Untuk menambahkan Host dengan IP : 66.165.101.247 dan eth0:2, maka lakukan instruksi dibawah ini :
#ifconfig eth0:2 ip 66.165.101.247 netmask 255.255.255.240 broadcast 66.165.101.255

Cek lagi dengan ifconfig


#ifconfig

Semestinya eth0:2 Anda sudah keluar.


inet addr:66.165.101.247 Bcast:66.165.101.255 Mask:255.255.255.240

Contoh Direktif Apache : Contoh direktif vhost IP:66.165.101.247


< VirtualHost 66.165.101.247> DocumentRoot /home/xbagz/public_html ServerName xbagz.org

< Directory "/home/xbagz/public_html"> allow from all Options +Indexes < /Directory> < /VirtualHost>

Atau.....
< VirtualHost 66.165.165.247> DocumentRoot /home/inimybox/public_html ServerName inimybox.com ErrorLog /home/inimybox/logs/error_log CustomLog /home/inimybox/logs/acces_log combined < /VirtualHost>

Oke dech ! Sekarang Anda sudah bisa set virtual host berbasis IP :) Mengamankan Apache Jika Anda menjalankan situs yang menanggung hajat hidup orang banyak Sebaiknya Anda meningkatkan keamanan Web Server Anda. Bagian ini akan menjelaskan sedikit cara mengamankan APache dari 'serbuan' kaum barbar Hehehe Sebelum memulai, ada aturan emas yang sebaiknya Anda ikuti : Rendah hatilah ! Jangan sesumbar bahwa website Anda Tak dapat di tembus ! Mengatakan secara terbuka bahwa Hacker bakalan Keok ! Ingatlah selalu diatas langit masih ada langit ! Dengan rendah hati Anda akan selalu waspada dan.........tidak mengundang Macan ke kandang Domba. Mari kita mengamankan kandang domba :) Buang Modul Apache lainnya.. Pertimbangkan membuang modul di bawah yang 'biasanya' tidak di pakai. Cukup beri tanda # pada baris LoadModule.
LoadModule LoadModule LoadModule LoadModule LoadModule info_module status_module cgi_module dav_fs_module autoindex_module

LoadModule userdir_module LoadModule include_module

Samarkan Identitas Apache Senapan angin buat menembak burung. Exocet buat menembak kapal laut. Tomahawk buat menghancurkan gedung.
ServerSignature Off

MaxKeepAliveRequests Meski di default 100, Jika webserver Anda dari hari ke hari Maksimum cuma di hit < 15 secara bersamaan, kecilkan ajadech. :)
MaxKeepAliveRequests 60

TimeOut Default 300. Mungkin Anda ingin mengecilkan untuk mengurangi efek DDoS :)
TimeOut 75

KeepAliveTimeout Mungkin Anda ingin sedikit membesarkan KeepAliveTimeout ?. :) Semakin besar akan mengurangi performance akses bertubi2 user (karena di beri jangka waktu 10 detik) Tapi hal ini akan mengurangi efek DDoS.
KeepAliveTimeout 10

Disable Trace Trace umumnya digunakan untuk acara gedebag-debug :). Matikan Trace dengan menambah beberapa baris pada konfigurasi HTTPD Apache.
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F]

Mod_security Mod_security perlu dipertimbangkan sebagai firewall internal web server. Modul ini bukan modul default Httpd Apache dan Slackware. Anda bisa memulai dengan mengkompile modul mod_security.c dengan apxs, kemudian memulai dengan rule dasar modsecurity. Lihat di http://modsecurity.org untuk info lebih lanjut. Contoh rule dasar :

< IfModule mod_security.c> # Enable ModSecurity SecFilterEngine On # Reject requests with status 403 SecFilterDefaultAction "deny,log,status:403" # Some sane defaults SecFilterScanPOST On SecFilterCheckURLEncoding On SecFilterCheckUnicodeEncoding Off # Accept almost all byte values SecFilterForceByteRange 1 255 # Server masking is optional # SecServerSignature "Microsoft-IIS/5.0" # Designate a directory for temporary files # storage. It is a good idea to change the # value below to a private directory, just as # an additional measure against race conditions SecUploadDir /tmp SecUploadKeepFiles Off # Only record the interesting stuff SecAuditEngine RelevantOnly # Uncomment below to record responses with unusual statuses # SecAuditLogRelevantStatus ^5 SecAuditLog /var/log/apache/audit.log # You normally won't need debug logging SecFilterDebugLevel 0 SecFilterDebugLog logs/modsec_debug.log # Only accept request encodings we know how to handle # we exclude GET requests from this because some (automated) # clients supply "text/html" as Content-Type SecFilterSelective REQUEST_METHOD "!^(GET|HEAD)$" chain SecFilterSelective HTTP_Content-Type "!(^application/x-www-formurlencoded$|^multipart/form-data;)" # Do not accept GET or HEAD requests with bodies SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain SecFilterSelective HTTP_Content-Length "!^$" # Require Content-Length to be provided with # every POST request SecFilterSelective REQUEST_METHOD "^POST$" chain SecFilterSelective HTTP_Content-Length "^$" # Don't accept transfer encodings we know we don't handle SecFilterSelective HTTP_Transfer-Encoding "!^$" < /IfModule>

Chrootjail Jika ingin repot, model 'penjara' dapat Anda terapkan bagi HTTPD Apache :). Patch ! Jangan lupakan Patch ! Jika web server Anda sangat kadaluarsa, maka titik rentan sudah terekspos cukup lama. Upgrade program web server Anda jika Ada patch yang tersedia.

PHP Selain konfigurasi HTTPD Apache, 'tetangga' lain yang perlu mendapat perhatian adalah PHP. Akan saya sarikan dari http://apachesecurity.net chapter 2 mengenai PHP :) Konfigurasi agak paranoid buat php.ini :P
allow_url_fopen = Off register_global = Off enable_dl = Off expose_php = Off disable_functions = openlog,apache_child_terminate,apache_get_modules,apache_get_vers ions,apache_getenv, apache_note,apache_setenv,virtual open_basedir = /home/slackerbox/public_html/ display_errors = off display_startup_errors = off max_input_time = 60 max_execution_time = 30 safe_mode = On

Suhosin Extension. Alternatif lain untuk mengamankan PHP adalah Patch atau extension dari Suhosin. Lihat di situs mereka. Saya menjelaskan Suhosin di http://slackerbox.com/?q=node/359 Libsafe Secara global, penggunaan Libsafe (ada di CD extra Slackware) akan menyaring penggunaan/pemanggilan library pada system yang ada kemungkinan akan menyebabkan kerusakan.(Buffer overflow, kiss of death- stack overflow, dan lain2) Anda tinggal install saja Libsafe, selesai :) Terakhir, Anda bisa cek keamanan web server dengan tool scanner macam nikto. Cek dengan Nikto ! Mungkin Anda ingin mencoba program Nikto untuk men-scan web server Anda ? Nikto akan memberitahukan titik lemah web server Anda.
perl nikto.pl -h hostAnda

Akhirnya...Selamat berjuang !

Mail Server
SendMail Ingin punya Mail server sendiri ? Dari e-mail dengan domain sendiri sampai inbox yang berada di Komputer Jelek Anda ? Sendmail merupakan program mail server bawaan Slackware. Meskipun banyak kritikan mengenai masalah keamanan Sendmail, kritikan saya kepada mereka : COba dulu dunk ! Hehehe Lha yang ada aja gak bisa apa lagi coba yang lainnya. Mulai dari 15 Minutes , Sendmail akan dapat dioperasikan untuk mengirim maupun menerima email dengan baik. Prasyarat Sendmail Dibawah ini merupakan syarat untuk menjalankan Sendmail :

Port 25 (smtp) dan 110 (pop3) open. Cek Port forwarding modem ANda atau cek Firewall agar tidak memblok port tersebut. Aktifkan IMAP dan POP3 ! Hilangkan tanda # pada file /etc/inetd pada bagian POP3 dan IMAP kemudian restart inetd dengan cara : #kill -HUP nomorPIDinet Anda mempunyai domain. Semisal www.inidomainkulho.com Jika tidak, daftar di dyndns.com GRATIS kok. Anda terhubung ke Internet dengan modem ADSL/DSL :) IP Address Anda, Netmask, dan Broadcast Anda valid. (ini sebenerya dah otomatis kok)

15 Menit SendMail Pada Slackware 11, Sendmail di aktifkan secara default. Sedang pada Slackware 12, Sendmail dalam kondisi mati. Pada bagian ini diperlukan kurang dari 15 menit untuk mengaktifkan Sendmail :) Sebenarnya Sendmail Anda Sudah aktif !! Coba gunakan PINE untuk mengirim dan menerima email. Lha kok bisa begitu ? Selama port 25 SMTP dan IMAP terbuka, maka Sendmail default Slackware sudah bisa untuk mengirim dan menerima e-mail. Baiklah selama 15 menit kedepan kita menghaluskan konfigurasi Sendmail agar lebih mulus dalam urusan 'surat menyurat' Untuk mengaktifkan Sendmail :
chmod 755 /etc/rc.d/rc/sendmail

Instruksi dasar Sendmail :) :

Start Sendmail --> #/etc/rc.d/rc.sendmail start


Restart Sendmail --> #/etc/rc.d/rc.sendmail restart Stop Sendmail --> #/etc/rc.d/rc.sendmail stop

Maksud instruksi diatas adalah : ketika melakukan seting ulang sendmail tidak perlu melakukan booting Linux keseluruhan. Cukup lakukan restart sendmail saja misaln Tentu rc.sendmail berisi script untuk melakukan aksinya terhadap sendmail. Jadi lebih tepatnya instruksi di atas adalah instruksi dasar slackware terhadap Sendmail ;) Jika ANda melakukan konfigurasi eth0 dengan benar (IP address, netmask, dan broadcast) Sendmail sudah aktif BUNG !!! Maksudnya Anda SUDAH DAPAT melakukan pengiriman / penerimaan e-mail dengan baik. Sebelum melakukan aksi berikutnya, disinilah letak file konfigurasi utama Sendmail :
/etc/mail/sendmail.conf

Oke ! Stop dulu Sendmail.(Pada Slackware 11, default Sendmail adalah aktif saat booting pertama kali) . Sedang pada Slackware 12, default Sendmail adalah off. Gunakan editor favorit Anda. Edit file /usr/share/sendmail/cf/cf/slackware.mc Ganti bagian VersionID
VERSIONID(`default setup for Slackware Linux')dnl

menjadi :
VERSIONID(`MyFirst Setup for My MailServer')dnl

Tambahkan define di bawah agar lebih aman :


define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

menjadi :
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun,goaway')dnl

SmartHost
dnl define(`SMART_HOST',`mailserver.example.com')

Menjadi :
define(`SMART_HOST',`smtp-ISP-Anda.example.com')

Sekarang saatnya menjadikan file konfigurasi Anda dari format .mc ke format .cf agar dapat dimengerti oleh Sendmail. Catatan 1:

Version ID dapat Anda ganti sesuka hati Anda. Define 'goaway' bertujuan agar user tidak dapat mengirimkan e-mail secara 'borongan' sehingga mencegah Server Anda menjadi Relay SPAM.

SMARTHOST - Tanpa smarthost percayalah e-mail Anda 99,99 % akan dianggap spam dan langsung dibuang di tong sampah oleh Yahoo mail dan sejenisnya. Jika Anda menggunakan Speedy - Telkom, maka smtp Anda = smtp.telkom.net. Atau gunakan smarthost dari ISP Anda.

Catatan 2: Anda tetap dapat mengabaikan semua perubahan diatas. Untuk menerima e-mail tidak akan masalah, masalah baru ditemui saat Anda mengirim e-mail keluar. Anda tetap dapat mengirim e-mail, tapi ditolak oleh SMTP server lain :) Catatan 3: Go Ahead !! Kalau sudah bisa, kirim e-mail ke saya :) Sendmail akan membaca konfigurasi utama yang terletak di :
/etc/mail/sendmail.cf

(JANGAN EDIT FILE INI SECARA LANGSUNG!!)

Untuk mengedit file konfigurasi, editlah di bagian :


/usr/share/sendmail/cf/cf/sendmail-slackware.mc

Berikut ini contoh konfigurasi sendmail saya :


dnl# This is the default sendmail .mc file for Slackware. To generate dnl# the sendmail.cf file from this (perhaps after making some changes), dnl# use the m4 files in /usr/share/sendmail/cf like this: dnl# dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc dnl# cd /usr/share/sendmail/cf dnl# sh Build config.cf dnl# dnl# You may then install the resulting .cf file: dnl# cp config.cf /etc/mail/sendmail.cf dnl# include(`../m4/cf.m4') VERSIONID(`My Mail Server') OSTYPE(`linux')dnl dnl# These settings help protect against people verifying email addresses dnl# at your site in order to send you email that you probably don't want: define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun,goaway') dnl# Uncomment the line below to send outgoing mail through an external server: define(`SMART_HOST',`smtp.telkom.net') dnl# No timeout for ident:

define(`confTO_IDENT', `0')dnl dnl# Enable the line below to use smrsh to restrict what sendmail can run: dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl dnl# See the README in /usr/share/sendmail/cf for a ton of information on dnl# how these options work: FEATURE(`use_cw_file') FEATURE(`use_ct_file') FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db') FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db') FEATURE(`access_db', `hash -T /etc/mail/access') FEATURE(`blacklist_recipients') FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u') FEATURE(`always_add_domain') FEATURE(`redirect') dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: FEATURE(`accept_unresolvable_domains') EXPOSED_USER(`root')dnl dnl# Also accept mail for localhost.localdomain: LOCAL_DOMAIN(`localhost.localdomain')dnl MAILER(local) MAILER(smtp) MAILER(procmail)

Perhatikan, ada beberapa dari kata dnl yang saya hilangkan, karena maksud dnl disini adalah delete until new line, jadi kemungkinan ada konfigurasi yang tidak berhasil di-compile oleh M4, jika mengandung kata dnl. Selain itu perhatikan juga opsi SMART_HOST disini, karena inilah yang membuat email anda dapat diterima oleh yahoo dll, supaya tidak diangap spam Nah setelah anda edit file ini, jangan lupa untuk di save. Setelah itu ketik ini :
#sh Build sendmail-slackware.mc

Nah dari sini akan dihasilkan file sendmail-slackware.cf Sebelumnya backup terlebih dahulu file sendmail.cf yang terletak di /etc/mail Setelah itu, kopikan file sendmail-slackware.cf tadi ke /etc/mail dengan nama sendmail.cf, sehingga akan meng-overwrite file yang asli. Setelah itu jangan lupa untuk restart sendmail :
. /etc/rc.d/rc.sendmail restart

Selamat sendmail anda telah jalan. Test kirim email ke account yahoo anda, maka email akan masuk ke inbox, bukan ke bulk mail lagi :D

FTP Server
ProFTP Server FTP = File Transfer Protocol. Banyak digunakan jika Anda hanya sekedar mengirim dan mengambil data file pada server/komputer Anda. Baik jaringan lokal maupun internasional tidak masalah bagi FTP. Menggunakan Protocol FTP baru terasa keuntungannya jika jumlah dan macam file sangat besar sehingga merepotkan jika harus melakukanya satu persatu :) ProFTP tidak support untuk meng-eksekusi (menjalankan)sebuah file di server. Program FTP lain di Ms Windows seperti Wu-FTP bisa melakukannya. (Hey ! Hal ini berbahaya jika tidak hati-hati.) Anda dapat menjalankan FTP langsung di terminal, atau dimode grafik dengan gFTP. Sudah siap ? ProFTP Server ProFTP Server pada Slackware dijalankan lewat inetd daemon. Gunakan editor favorit Anda dan edit /etc/inetd.conf Cari baris dibawah ini :
#ftp stream tcp nowait root /usr/sbin/tcpd proftpd

Hilangkan tanda # sehingga menjadi :


ftp stream tcp nowait root /usr/sbin/tcpd proftpd

Restart inetd daemon : #kill -HUP noPIDinetd Untuk mengetahui no PID, lakukan instruksi #ps x
.......... .......... 2408 ? Ss 0:00 /usr/sbin/klogd -c 3 -x 2853 ? Ss 0:00 /usr/sbin/inetd 2874 ? Ss 0:00 /usr/sbin/sshd 2916 ? S 0:00 /usr/sbin/crond -l10 .......... ..........

Dari hasil #ps x pada komputer saya diketahui no PID dari inetd adalah 2853 Sehingga untuk merestart inetd adalah :
#kill -HUP 2853

Untuk memastikan, coba scan port FTP dengan nmap.


#nmap localhost

Semestinya akan muncul seperti ini :


Interesting ports on slacker.slackerbox.com (127.0.0.1): Not shown: 1675 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 37/tcp open time 113/tcp open auth 6000/tcp open X11 Nmap finished: 1 IP address (1 host up) scanned in 0.084 seconds

ProFTP Server sudah aktif :) Gunakan program gFTP yang berbasis grafik atau FTP biasa dari komputer lain untuk mentest FTP server Anda. Catatan : Jika FTP Server Anda melewati Modem ADSL, jangan lupa buka port 21 pada bagian port forwarding agar bisa diakses dari luar. Oh ya ! Mungkin istilah port forwarding berbeda untuk tiap jenis modem. Jika menggunakan Firewall Jangan lupa buka port 21 :) Kalau bisa, Lakukan nmap dari komputer lain dalam jaringan untuk memastikan port FTP Anda terbuka. Misal IP FTP server saya 192.168.1.111, maka lewat komputer lain saya akan melakukan nmap:
#nmap 192.168.1.111

Kalau melakukan nmap localhost port FTP terbuka sedang nmap lewat komputer lain dalam jaringan tidak muncul, berarti........Local jaringan Anda bermasalah Hehehe Mengamankan FTP Salah satu cara mudah mengamankan FTP Server adalah : Jangan abaikan Patch ! Lihat di changelog Slackware. Selanjutnya edit file /etc/proftpd.conf Kurangi MaxInstances bila perlu :
MaxInstances 15

Selanjutnya edit file /etc/ftpusers

Pastikan user potensial tidak mengakses FTP (termasuk root:)


ftp root uucp news

Catatan : Untuk mengaktifkan anonymous FTP, hilangkan baris ftp pada /etc/ftpuser kemudian restart inetd daemon. Heemm... Apa benar Anda memerlukan anonymous FTP ? MaxInstance menentukan jumlah user yang mengakses FTP secara bersamaan. Jika Hanya Anda sendiri yang mengakses FTP, isi dengan 2 saja (satu buat cadangan :), trus ubah port default FTP dari 21 menjadi 2112 misalnya Hehehe FTP tidak menghalangi siapapun untuk menyadap (intercept) transmisi data Anda. Jika berhubungan dengan data krusial, pertimbangkan untuk menggunakan VSFTP (Very Secure FTP). Apa benar Anda membutuhkan FTP Server ? Jika tidak, matikan saja servis FTP ini :) Maksud saya, Anda tetap dapat mengakses FTP Server orang lain tanpa perlu mengaktifkan FTP Server komputer Anda. Hati2 jangan salah persepsi.

DHCP Server
Untuk mengadministrasi sebuah jaringan kecil, pemberian ip static sangat memudahkan bagi administrator jaringan. Namun jika jaringan sudah mulai luas kemungkinan untuk menggunakan ip yang sama akan lebih besar sehingga menyebabkan konflik. Dengan dasar ini maka penggunaan DHCP (Dynamic Host Configuration Protocol) Server sangat dianjurkan. Fungsi utama dari DHCP Server ini adalah memberikan IP kepada host atau komputer yang tersambung kepada jaringan tersebut secara otomatis. Hal ini hanya berlaku jika komputer tersebut menggunakan setting IP dengan DHCP atau di Windows mengaktifkan pilihan "Obtain IP Address Automatically". Bagaimana jika telah ada komputer yang terhubung dengan jaringan dan menggunakan IP statis? Tidak ada masalah.IP tersebut tidak akan diberikan pada komputer yang akan meminta IP pada DHCP Server.IP Komputer yang sebelumnya sama dengan IP statik akan diganti oleh DHCP server.

Contoh: Jika terdapat sebuah DHCP Server dengan range IP 192.168.1.100 sampai dengan 192.168.10.200, maka setiap komputer yang terhubung pada jaringan tersebut dan mengaktifkan penggunaan DHCP, maka DHCP Server akan memberikan alamat IP pada range diatas yaitu antara 100 - 200. Biasanya DHCP Server memberikan IP pada range paling atas terlebih dahulu. Jika pada contoh kita ini baru satu yang menggunakan DHCP maka kemungkinan besar mendapat IP 192.168.1.200. Jika pada jaringan tersebut terdapat sebuah komputer dengan IP Statik dan masih dalam range dari IP DHCP Server maka DHCP Server tidak akan menggunakan IP tersebut untuk diberikan kepada pengguna DHCP yang lain.

File Konfigurasi
Nah sekarang saatnya membuat DHCP Server Untungnya di Slackware kita sudah tersedia DHCP server. Kita hanya perlu mengutak - atik sebuah file yaitu :
/etc/dhcpd.conf

Ya, hanya itu. Tapi tidak seperti file konfigurasi biasanya, kali ini (Slackware 12) file tersebut tidak ada isinya :

cat /etc/dhcpd.conf # dhcpd.conf # # Configuration file for ISC dhcpd (see 'man dhcpd.conf') #

Nah, lho. Begitu buka man dhcpd.conf malah tambah pusing. Tapi ternyata masih ada yang bisa kita gunakan untuk contoh (harapan muncul lagi). Syukurlah Linux punya dokumentasi yang sangat bagus (siapa bilang dokumentasi Linux kurang? kecuali malas baca dokumentasi yang berbahasa Inggris). Ada dokumentasi dari masing - masing software, dan juga ada Howto yang sudah ada waktu instalasi (kecuali tidak di install). Dari dokumentasi dhcpd terdapat sebuah file contoh. Tepatnya disini :
/usr/doc/dhcp-3.0.5/examples/dhcpd.conf

tinggal copykan saja file example tersebut ke /etc/, selanjutnya kita mendapat file konfigurasi yang tinggal diedit sedikit untuk membuat sebuah DHCP Server.
#cp /usr/doc/dhcp-3.0.5/examples/dhcpd.conf /etc/dhcpd.conf

Gateway & Nameserver


Nah dibagian - bagian awal ada ini :
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;

Dua baris pertama adalah setting gateway, baris atas adalah domain-search, sedangkan dibawahnya adalah namaservernya. Silahkan di edit sesuai dengan kebutuhan Untuk konfigurasi yang saya gunakan :
option domain-name "domainku.com"; option domain-name-servers 192.168.1.254;

Baris kedua harus diisikan dengan ip atau nameserver yang valid, atau Client DHCP kita tidak bisa mengakses public domain. Berhubung saya sudah membuat sebuah DNS Server pada ip 192.168.1.254 maka itu yang saya gunakan.

Kita juga diharuskan untuk menambahkan baris berikut sesuai aturan dari Internet Systems Consortium. Kalau tidak percaya beri tanda # untuk menjadikannya komentar dan dijamin dhcp servernya tidak mau start.
ddns-update-style ad-hoc;

Lease-Time

Selanjutnya bisa ditebak, opsi untuk menentukan waktu dari DHCP Server untuk melakukan pemberian IP dan pengecekan kembali dari Host apakah masih aktif atau tidak.
default-lease-time 600; max-lease-time 7200;

Biarkan saja seperti itu, better keep it default. :D Masih ada beberapa opsi lagi, seperti log dan autorisasi. Namun seperti opsi diatas better keep it default.

Range IP / Subnet
Berikutnya adalah penentuan range ip atau yang dikenal dengan subnet. Pada contoh dhcpd.conf kita terdapat beberapa subnet contoh, dan bisa digunakan sebagai acuan.
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; }

Pada konfigurasi subnet diatas, kita membuat DHCP Server pada network 192.168.1.0 dengan netmask 255.255.255.0 dengan range IP DHCP adalah 192.168.1.100 - sampai dengan 192.168.1.200.

Pada bagian ini juga ada option routers yang berarti ip gateway dari IP DHCP. Opsi routers juga bisa ditempatkan diluar (Global) sehingga secara default akan memasukkan option routers pada subnet kecuali disebutkan secara eksplisit. Kita juga bisa memberikan ip tertentu pada suatu host tertentu misalnya :
host pegasus { hardware ethernet 00:16:EC:4B:98:B6; fixed-address 192.168.10.99; }

Dengan konfig tersebut setiap kali komputer dengan mac-address 00:16:EC:4B:98:B6 terhubung dan meminta IP pada DHCP Server maka akan di berikan ip 192.168.10.99. Opsi - opsi yang lain juga masih banyak silahkan mempelajari file dhcpd.conf example tersebut, atau bisa baca manual / dokumentasi yang lebih lengkap mengenai DHCP Server. Namun dengan konfigurasi diatas kita sudah bisa mempunya sebuah DHPC Server. Konfigurasi Lengkap ;)
Berikut adalah config lengkap dari dhpcd.conf yang saya gunakan :

option domain-name "domainku.com"; option domain-name-servers 192.168.1.254; ddns-update-style ad-hoc; default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; } host pegasus { hardware ethernet 00:16:EC:4B:98:B6; fixed-address 192.168.10.99; }

Mengaktifkan DHCP Server


Selanjutnya tentu saja mengaktifkan dhpcd servernya :
/usr/sbin/dhpcd

Supaya aktif tiap kali boot, tinggal masukkan di rc.local.


echo "/usr/sbin/dhpcd" >> /etc/rc.d/rc.local

Untuk menggunakannya, pilih Obtain IP Address Automatically di windows atau ketikkan perintah dhcpcd -d eth0 sebagai root di konsole Linux
# dhcpcd -d eth0

Jika yang akan di berikan ip address adalah eth0. Jika sudah periksa dengan perintah ifconfig dilinux atau ipconfig command prompt windows.

DNS Server
Siapa yang butuh DNS? Setiap pengakses internet membutuhkan DNS kecuali sanggup menghapal sebanyak 256*256*256*256 ip address, Salah satu pengguna DNS adalah pengakses internet, tapi pengakses internet tidak perlu membuat DNS Server karena bisa menggunakan DNS server yang disediakan oleh ISP. Pengguna DNS selanjutnya tentu saja adalah ISP, dan mereka yang mengelola domain dan webserver. Pengguna DNS yang lainnya lagi adalah orang iseng yang pengen DNS Server sendiri, soalnya ndak ada kerjaan hehehe. Untuk yang perlu atau sekedar iseng ingin membuat DNS server, saya kopi paste tulisannya Arman dari http://makassar-slackers.org/Membuat+Dns+Server Saya Kopi paste Tulisannya Arman dari http://makassar-slackers.org/Membuat+Dns+Server ===================================== Yang biasa akses internet pasti sering berurusan dengan dns minimal menset dns yang sesuai yang biasanya diberitahukan oleh provider sehingga bisa mengakses internet. DNS adalah ... DNS merupakan singkatan dari Domain Name Service, fungsi utamanya adalah menerjemahkan alamat ip komputer dengan alamat yang lebih manusiawi atau bahasa daerahnya humanable. Seperti yang kita ketahui, setiap komputer yang terhubung ke internet harus punya ip address. Namun tidak semua orang bisa menghapalkan 66.94.234.13 (saya juga cuma copy paste itu hehehe), lebih mudah menghapalkan www.yahoo.com. Siapa yang butuh DNS? Seperti yang disinggung sebelumnya, setiap pengakses internet membutuhkan DNS kecuali sanggup menghapal sebanyak 256*256*256*256 ip address, Salah satu pengguna DNS adalah pengakses internet, tapi pengakses internet tidak perlu membuat DNS Server karena bisa menggunakan DNS server yang disediakan oleh ISP. Pengguna DNS selanjutnya tentu saja adalah ISP, dan mereka yang mengelola domain dan webserver. Pengguna DNS yang lainnya lagi adalah orang iseng yang pengen DNS Server sendiri, soalnya ndak ada kerjaan hehehe. BIND Ada banyak program untuk membuat DNS server, berhubung yang default terinstall di slackware adalah bind9 maka kita akan menggunakan itu saja. Jika bind9 terinstall maka akan terdapat beberapa file file instalasi default seperti :
var/named/caching-example/named.ca var/named/caching-example/named.local var/named/caching-example/localhost.zone

etc/rc.d/rc.bind etc/named.conf

Tiga file awal adalah contoh dari konfigurasi bind9, file selanjutnya adalah init script (rc.bind) dan konfigurasi dari bind (named.conf). Berikut adalah isi dari file named.conf yang masih perawan :
options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; };

// // a // zone type file };

caching only nameserver config "." IN { hint; "caching-example/named.ca";

zone "localhost" IN { type master; file "caching-example/localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "caching-example/named.local"; allow-update { none; }; };

Kita akan bahas per blok, dan apa saja modifikasi yang akan kita buat. Blok pertama
options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */

// query-source address * port 53; };

Blok ini merupakan global setting dari bind, directory /var/named adalah direktory kerja dari bind, di direktory tersebut di tempatkan file file konfgurasi domain yang biasa di sebut zone. Tidak disarankan untuk mengutak atik blok ini kecuali Anda tahu apa yang Anda kerjakan. Atau dengan kata lain, biarkan mi saja begitu. Blok Kedua
zone "." IN { type hint; file "caching-example/named.ca"; };

Blok ini merupakan blok root zone atau kasarnya alamat alamat dari domain domain internasional. Kita membutuhkan blok root zone ini. Biasanya saya melakukan perubahan dengan menghilangkan caching-example/ pada baris file sehingga hanya berbentuk seperti ini :
file "named.ca";

Ini soal kebiasaan saja, saya lebih senang melihat semua file file zone berada di bawah direktori /var/named, jadi tinggal ganti saja baris file tersebut dan pindahkan filenya :
# mv /var/named/caching-example/* /var/named

Blok Ketiga
zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; };

Blok ini adalah forward localhost, Dalam artian jika dns server mendapatkan perintah untuk mengetahui alamat ip dari localhost maka bagian blok ini yang mengurusnya. saya sarankan untuk tetap menyimpan blok ini tapi berhubung sudah memindahkan file /var/named/caching-example/ jadi bari filemenjadi :
file "localhost.zone";

Blok Keempat
zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; };

Blok ini merupakan kebalikan dari blok localhost atau biasa disebut reverse, karena kebalikan reverse kerjanya juga terbalik yaitu mencari nama dari ip yang diquerykan ke DNS server.

Semua konfigurasi diatas jika betul (termasuk nama filenya dan direktorinya) maka DNS server kita sudah bisa digunakan, kita tinggal mengaktifkannya mengeksekusi file rc.bind
# /etc/rc.d/rc.bind start

Jika tidak ada error maka kita bisa mengquery domain domain luar misalnya yahoo, google dll dengan syarat kita terhubung ke internet. Perintah untuk megquery domain bisa menggunakan dig atau nslookup :
arman@oridecon:~$ dig yahoo.com ; <<>> DiG 9.4.1 <<>> yahoo.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14210 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 7, ADDITIONAL: 2 ;; QUESTION SECTION: ;yahoo.com. IN A ;; ANSWER SECTION: yahoo.com. 300 IN A 66.94.234.13 yahoo.com. 300 IN A 216.109.112.135 ;; AUTHORITY SECTION: yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS yahoo.com. 162027 IN NS ns6.yahoo.com. ns8.yahoo.com. ns1.yahoo.com. ns2.yahoo.com. ns3.yahoo.com. ns4.yahoo.com. ns5.yahoo.com.

;; ADDITIONAL SECTION: ns6.yahoo.com. 162027 IN A 202.43.223.170 ns8.yahoo.com. 76086 IN A 202.165.104.22 ;; ;; ;; ;; Query time: 415 msec SERVER: 192.168.10.254#53(192.168.10.254) WHEN: Wed Aug 8 17:25:00 2007 MSG SIZE rcvd: 217

Jika keluar seperti diatas berarti dns kita sudah berfungsi, kita juga bisa menggunakan nslookup
arman@oridecon:~$ nslookup > server localhost

Ketikkan perintah server localhost untuk memastikan bahwa dns server yang digunakan oleh nslookup adalah dns server yang kita buat, karena secara default nslookup menggunakan dns server sesuai dengan entry pada file /etc/resolv.conf
Default server: localhost Address: 127.0.0.1#53

Dengan ini maka nslookup menggunakan server localhost. Selanjutnya tinggal masukkan saja domain yang akan kita query misalnya yahoo.com
> yahoo.com Server: localhost Address: 127.0.0.1#53 Non-authoritative answer: Name: yahoo.com Address: 216.109.112.135 Name: yahoo.com Address: 66.94.234.13

Jika keluarnya seperti ini maka dns kita sudah siap untuk di kaccaki (oprek) lagi. Untuk menambahkan domain lain (jika kita punya domain yang terdaftar atau sekedar iseng saja) kita bisa mengcopy konfigurasi dari localhost.zone. Misalnya kita ingin membuat domain gorilla.com dengan ip 192.168.1.1 maka kita buat entry dari gorilla.zone seperti ini :
zone "gorilla.com" IN { type master; file "gorilla.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; allow-update { none; }; };

Yang perlu diperhatikan adalah :


zone "gorilla.com" IN {

Ini kita sesuaikan dengan nama domain yang kita buat. Jika kita membuat domain kingkong.com maka baris zone itu juga berisi kingkong.com, selanjutnya adalah jenis dari domain tersebut apakah merupakan domain master atau slave, untuk lebih detil tentang master dan slave dari domain silahkan baca dokumentasi tentang dns. Baris berikut adalah file dari domain. File bisa kita namakan terserah kita namun yang pasti sama dengan yang ada pada blok zone, dalam hal ini kita menggunakan nama file gorilla.zone, saya sarankan nama file yang digunakan representatif sehingga untuk administrasi ataupun trouble shooting tidak lagi pusing soal nama file dan domain. Blok terakhir yang kita buat adalah reverse dari domain gorilla.com, berhubung karena kita dalam tahap belajar maka kita menggunakan ip address lokal saja, dalam hal ini kita defenisikan adalah 192.168.1.X, yang perlu diperhatikan pada pendefenisian reverse, penulisan alamat ip itu ditulis terbalik (namanya juga reverse) jadi jika kita menggunakan ip 192.168.1.X maka yang

dituliskan di zone reverse adalah 1.168.192.in-addr.arpa, demikian juga halnya jika menggunakan ip - ip yang lain atau ip publik. Baris selanjutnya sama dengan forward dari gorilla.com yaitu type domain dan file zone, dalam hal ini kita menset 192.168.1.zone untuk file dari reverse kita. File file zone Setelah file named.conf kita acak acak sekarang kita berurusan sama yang berwajib, eh file file zone. Seperti kita definisikan sebelumnya di file named conf bahwa direktory dari bind berada di /var/named/ :
directory "/var/named";

Karena kita juga sudah memindahkan file di /var/named/caching-example/, sekarang di direktori /var/named terdapat file file berikut :
arman@oridecon:~$ total 12 -rw-r--r-- 1 root -rw-r--r-- 1 root -rw-r--r-- 1 root ls /var/named/ -l root 195 2007-06-08 13:42 localhost.zone root 2517 2007-06-08 13:42 named.ca root 433 2007-06-08 13:42 named.local

Seperti yang kita sudah defenisikan sebelumnya pada file named.conf terdapat tiga file zone dari instalasi default. File named.ca adalah file dari root zone, kita bisa saja membuat file ini tapi sebaiknya gunakan saja file dari instalasi default. File localhost.zone adalah file dari domain localhost sedangkan named.local adalah reverse dari domain localhost. Untuk lebih jelasnya kita lihat saja langsung kedua file tersebut.
arman@oridecon:/var/named$ cat localhost.zone $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS @ 1D IN A 127.0.0.1

Yang perlu diperhatikan adalah dua baris terakhir. Baris kedua dari terakhir, entry tenang NS, ns inilah yang akan digunakan pada pencarian sebuah domain. Entry pada kolom terakhir yaitu @, yang menunjuk ke A record. Pada baris terakhir menentukan alamat ip yang digunakan pada domain dalam hal ini adalah localhost dengan ip 127.0.0.1. Selanjutnya adalah file reversed dari localhost yaitu named.local :
arman@oridecon:/var/named$ cat named.local $TTL 86400 @ IN SOA localhost. root.localhost. (

1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 1 IN PTR localhost.

Perhatikan pada baris terakhir yang entry pada kolom pertama adalah 1, berarti reverse mempunyai ip 127.0.0.1 karena telah disebutkan di file named.conf. Yang juga perlu diperhatikan adalah entry serial, jika mengunakan dns slave setiap kali mengganti entry dari file zone kita juga harus mengganti serial (formatnya biasanya sesuai dengan tanggal) sehingga server dns slave bisa menyesuaikan setiap perubahan seperti yang di dns master. Domain Kita Setelah file localhsot dan reversenya kita intip sekarang kita mo buat domain buat kita, seperti yang disinggung diatas kita bisa membuat domain untuk kita, seperti contoh kita diatas gorrilla.com dengan ip 192.168.1.1, tambahkan bari berikut di named.conf
zone "gorilla.com" IN { type master; file "gorilla.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; allow-update { none; }; };

Saya sarankan untuk mengcopy saja entry dari localhost dan reversenya, untuk menghindari kesalahan pengetikan kecuali anda termasuk orang yang teliti dan suka buang waktu :P. Setelah membuat perubahan pada file named.conf sekarang kita buat filenya, seperti yang telah di defenisikan bahwa file yang digunakan oleh domain gorilla.com adalah gorilla.zone dan reversenya adalah 192.168.1.zone. Saya juga menyarankan untuk mengcopy saja dari file zone localhost.
# cp localhost.zone gorilla.zone # cp named.local 192.168.1.zone

Selanjutnya adalah menyesuaikan dengan domain kita, ganti semua kata localhost dengan gorilla.com pada file tersebut seperti ini :
$TTL 86400 $ORIGIN gorilla.com. @ 1D IN SOA @ root ( 42 ; serial (d. adams) 3H ; refresh

15M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS dns.gorilla.com. 1D IN A 192.168.1.1 dns 1D IN CNAME @ www 1D IN CNAME @ arman 1D IN A 192.168.1.99

Pada konfigurasi ini kita juga menambahkan subdomain, yaitu dns.gorilla.com, www.gorilla.com dan arman.gorilla.com. Untuk dns.gorilla.com dan www.gorilla.com menunjuk pada ip yang sama yaitu 192.168.1.1 . Kita bahas baris yang menurut saya penting.
$ORIGIN gorilla.com.

Biasanya berisikan nama domain yang digunakan. Pada kasus kita gorilla.com.
1D IN NS dns.gorilla.com.

Bagian ini merupakan entry dari NS server dari domain kita. Jika kita menggunakan lebih dari satu NS untuk domain kita tinggal tambahkan saja NS entry berikutnya. Umumnya jika kita mendaftarkan domian di registrant domain dibutuhkan lebih dari satu NS.
1D IN A 192.168.1.1

Baris merupakan alamat ip dari domain yang digunakan, yaitu 192.168.1.1.


www 1D IN CNAME @ arman 1D IN A 192.168.1.99

Baris pertama merupakan subdomain www yang menunjuk pada A record, jadi jika mengakses www.gorilla.com maka yang ip address yang di tuju adalah 192.168.1.1. Untuk baris berikutnya adalah sebuah sub domain dengan nama arman yang menunjuk ke ip 192.168.1.99, baris ini tidak lagi menggunakan CNAME melainkan A karena ip yang digunakan adalah berbeda dengan ip dari default domain yaitu gorilla.com. Jika kita mengakses arman.gorilla.com sebetulnya mengakses ke 192.168.1.99. Hal yang sama juga kita buat untuk membuat domain dengan ip public. Silahkan menambahkan sub sub domain yang lain lagi jika memang dibutuhkan. Selanjutnya adalah reverse dari gorilla.com.
$TTL 86400 @ IN SOA gorilla.com. root.gorilla.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS gorilla.com. 1 IN PTR gorilla.com.

99 IN PTR arman.gorilla.com.

Seperti halnya reverse dari localhost kita juga hanya mengisikan ip dari daftar domain dan sub domain yang kita buat. Jika sudah selesai, silahkan merestart bind :
# /etc/rc.d/rc.bind restart

Jika tidak ada kesalahan (sebaiknya periksa /var/log/message) maka kita sudah bisa mengquery domain yang kita buat. Selanjutnya adalah menggunakan DNS Server kita, bagi pengguna linux silahkan edit file /etc/resolv.confuntuk memasukkan ip dari DNS yang digunakan contoh kasus kita yaitu 192.168.1.1
$ cat /etc/resolv.conf search gorilla.com nameserver 192.168.1.1

Dengan demikian setiap kali ada permintaan DNS dari linux box kita maka akan menggunkan DNS dari 192.168.1.1, Silahkan sesuaikan dengan sistem yang lainnya =======================================

MySQL Server
MySQL adalah salah satu produk atau aplikasi database yang bersifat Open Source yang disertakan dalam paket resmi Slackware. Mengapa dipilih MySQL? Salah satu faktornya adalah masalah kesederhanaannya, yang sesuai dengan salah satu prinsip utama dari distribusi Slackware. Selain sebagai aplikasi database yang sifatnya independen, MySQL juga sering digunakan oleh aplikasi lain untuk menyediakan fitur-fitur tambahan. Hal ini dimungkinkan, karena MySQL AB menyediakan API yang dapat digunakan oleh pihak eksternal. Pada versi Slackware 12.0, versi MySQL yang disertakan adalah versi 5.0.37, sedangkan pada versi -Current sampai dengan saat penulisan artikel ini, versi MySQL yang ada sudah sampai 5.0.45. Untuk melihat perubahan yang terjadi pada setiap versinya, Anda bisa melihat pada situs resmi MySQL. Pada kesempatan ini, kita akan mempelajari cara installasi MySQL serta konfigurasi dasarnya. Ikuti terus .... Paket MySQL yang terdapat dalam CD instalasi Slackware 12 adalah mysql-5.0.37-i486-1. Untuk menginstall paket MySQL, kita cukup menjalankan perintah
installpkg mysql-5.0.37-i486-1.tgz

Dengan catatan, aplikasi MySQL ini sudah disalin pada direktori yang sama atau Anda berada pada direktori tempat paket MySQL ini diletakkan. Pada CD/DVD, paket ini berada pada direktori ap/ Proses mengaktifkan database server ini kurang lebih sebagai berikut : 1. Pastikan MySQL telah terinstall di sistem kita.
root@ecsA530:~# ls /var/log/packages/ | grep mysql mysql-5.0.37-i486-1 root@ecsA530:~#

Jika ada output mysql-5.0.37-i486-1, maka MySQL telah terinstall dan langkah selanjutnya hanya mengkonfigurasi dan menjalankannya. 2. Buat direktori data dan table system dari MySQL. Pada langkah ini, terdapat 2 cara yang dapat ditempuh, yaitu dengan menggunakan root, atau menggunakan user mysql. Berikut caranya:
root@ecsA530:~# mysql_install_db

atau
root@ecsA530:~# su mysql root@ecsA530:~# mysql_install_db

3. Ubah owner dari direktori data MySQL ke user dan group "mysql". Untuk jaga-jaga, kita bisa ganti permissionnya juga
root@ecsA530:~# chown -R mysql.mysql /var/lib/mysql/ root@ecsA530:~# chmod -R 755 /var/lib/mysql/

4. Jalankan MySQL dengan mengeksekusi init script-nya. Sebelumnya pastikan bahwa permission dari init script tersebut sudah executable.
root@ecsA530:~# chmod +x /etc/rc.d/rc.mysqld root@ecsA530:~# /etc/rc.d/rc.mysqld start

5. Buat password MySQL untuk user root. untuk contoh password root MySQL = serverku.
root@ecsA530:~# mysqladmin -u root password 'serverku'

6. Silahkan akses MySQL server.


root@ecsA530:~# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.37 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> sampai pada tahap ini, MySQL server telah siap kita gunakan. ======================= Makassar, 06 November 2007 (00:31) Jogja, 11 November 2007 (08:45)

SSH Server
SSH Server SSH merupakan secure shell dimana data yang dikirim/diterima walaupun disadap akan sulit dibaca. Hal ini disebabkan data yang melewati SSH telah dienkripsi terlebih dahulu. Jika Anda ingin melakukan remote login, SSH merupakan pilihan terbaik saat ini. Administrasi Server jarak jauh akan efektif jika dilakukan via terminal (mode teks) karena sangat cepat,ringkas, dan aman.SSH adalah senjata utama Anda :) Jangan salah persepsi ! Anda tidak perlu mengaktifkan SSH server jika Anda ingin melakukan kontak via terminal dengan komputer lawan. Komputer lawanlah yang perlu mengaktifkan SSH servernya. Anda paham maksud saya ? Ada client dan server pada SSH:) 15 Menit SSH Server SSH Server di default aktif -chmod 755 pada /etc/rc.d/rc.sshd tanpa campur tangan lagi. Ketika melakukan reboot pertama kali setelah instalasi, maka SSH akan membangkitkan kode key Anda. Jika Anda (CLIENT) ingin mengontak atau melakukan remote login sebuah server di POSKO LAPINDO. Sedang Anda berada di KOST dengan laptop gress hadiah dari pacar :) Dengan terminal, lakukan instruksi dibawah :
ssh -l username address/domain

Username adalah user valid komputer yang Anda tuju.Address/domain adalah alamat jaringan (IP) atau domain target Anda.
$ ssh slackerbox.com

nama user yang dituju dianggap sama dengan user di terminal Anda.
$ ssh -l michael slackerbox.com

user tujuan Anda adalah michael. Sedang shell Anda paijo@box~$ misalnya.
$ ssh -l michael -p 6789 slackerbox.com

user tujuan Anda adalah michael dan menggunakan port 6789 pada SSH. Jika Anda (SERVER) ingin supaya bisa di remote dari lain tempat. Aktfikan SSH Server Anda. (Memang sudah aktif kok defaultnya :) Coba dari komputer lain untuk mengontak komputer Anda via SSH. Misal dari sebuah komputer dalam jaringan, atau mintalah tolong seorang rekan yang berada di puncak gunung semeru untuk melakukan remote login SSH ke Server Anda.

Kurang dari 10 menit ya ? Celaka-celaka, Anda tidak punya Koneksi Internet. Berada di KOST dengan Laptop butut sendirian. Pelit amat pacar Anda ? Mengamankan SSH Server Jika Anda maniak Linux/Unix, semestinya Anda tidak bisa lepas dari koneksi model SSH. Anda bisa mendapatkan remote terminal dari komputer yang jaraknya dari 10 meter sampai lintas benua ;) Ubah port default SSH : Ubah default Port 22 menjadi yang lain. Misal 6789 :) Hal ini akan menurunkan "brute force attack" hampir 95%
port 6789

Gunakan HANYA protocol 2


Protocol 2

Listen Address Batasi Listen Address sebisa mungkin. Misal Anda HANYA mengakses Server Anda melalui komputer rumah dengan IP:203.164.222.111
ListenAddress 203.164.222.111

Atau dari Akses speedy dinamik dari laboratorium komputer


ListenAddress 165.164.*.*

Kecilkan GraceTime
LoginGraceTime 30s

Root dilarang akses langsung !


PermitRootLogin no

Tiga kali gagal di sepak :)


MaxAuthTries 3

TCP & X11 forwarding? No !

AllowTcpForwarding no X11Forwarding no

Terakhir, jangan lupa restart sshd.


#/etc/rc.d/rc.sshd restart

Keterangan :

Ini penggalan asli isi /etc/ssh/sshd_config


#LoginGraceTime 2m #PermitRootLogin yes #StrictModes yes #MaxAuthTries 6

Jika Anda membiarkan tanda # Ada, berarti konfigurasi default yang digunakan. Jadi PermitRootLogin=yes, MaxAuthTries=6, dst. Jika ingin MaxAuthTries = 3, maka hilangkan tanda # dan ubah angka 6 menjadi 3.
MaxAuthTries 3

Jika Anda sedang melakukan remote login via ssh, maka saat restart sshd, koneksi Anda tidak akan diputus. Jadi restart sshd tidak akan memutus koneksi para user yang sedang akses via ssh saat itu. Jika Anda ingin tahu serangan terhadap port ssh, biarkan port ssh default 22 :). Anda akan menerima serangan sepanjang hari, sepanjang minggu ! Hehehe Jika terpaksa pakai port 22, dan terpaksa memberi ijin pakai ssh kepada semua user pada server Anda, paksa juga semua user Anda untuk menggunakan nama lengkap. Contoh : paijo_ganteng, michael_d, kris_sakti, dan seterusnya Dari pengamatan saya, bruteforce untuk user name biasanya hanya menggunakan nama tunggal : john,
smith, andrew,dst.

Jika Anda ingin privacy tiap user dan sistem Anda terjamin, gunakan chrootjail pada Openssh :) Baca tulisan di http://masrifqi.web.id/wp/?p=41 Wah...saya ditinggal pergi sama teman2 ke Yogya ikut ILC 2007 hik..hik..

Samba Server
Samba merupakan software untuk File dan printer service untuk SMB/CIFS Clients. Sulitkah menjalankannya di Slackware 12 ? Secara default, paket samba telah ikut dalam paket instalasi Slackware 12. Tapi sebelum terkonfigurasi, samba belum dapat jalan dengan sempurna. Untuk langkah awal, kita jalankan samba dalam konfigurasi paling sederhana. Tujuan kita di session ini supaya samba bisa melakukan sharing file. #Buat direktori yang akan di share dengan samba, misalnya
mkdir /data chmod 777 /data

# Copy konfigurasi sample samba menjadi smb.conf


cp /etc/samba/smb.conf-sample /etc/samba/smb.conf

#Edit file konfigurasi smb.conf contoh smb.conf dibawah ini adalah konfigurasi yang telah dirampingkan. ================================
[global]

workgroup = Linuxku server string = Slackware security = share log file = /var/log/samba.%m max log size = 50 socket options = TCP_NODELAY [Data] Path = /data browseable = yes guest ok = yes writeable = yes ================================ #Jalankan service samba. #Sebelumnya pastikan bahwa permission "rc.samba" pada direktori "/etc/rc.d" sudah executable.
/etc/rc.d/rc.samba start

Nah, sampai tahap ini mestinya samba telah aktif. untuk memastikannya cek pada komputer lain yang ada dalam satu network. Linux : pada form address konqueror ketik = smb:/ atau mount via terminal dengan format
mount -t smbfs //ip_komputer/nama_share /mount_point jika ditanyakan password cukup tekan enter.

Windows : cek di Network neighbourhood jika masih belum ada gunakan "search computer" dengan memasukkan IP komputer samba. Mac OS X : cek pada Finder --> network. atau Menu Go --> Connect to server --> masukkan IP komputer samba pada form 'server address'

NFS Server
Apa itu NFS ?
NFS = Network File System ! (Kalau singkatan ....semua tau bung :-)

NFS = Protokol yang mengijinkan komputer melakukan mount partisi hardisk pada remote komputer seolah2 seperti melakukan mount pada lokal disk.

NFS juga merupakan basis LTSP (Linux Terminal System ), dimana sebuah resource dapat di share lewat jaringan. Oh ya ! di NFS ada posisi Server dan Client. seperti Bos dan Karyawan :) Sudah siap ? Wah ! Kalau cuma punya 1 komputer cari pinjaman deh. Jangan Lupa Switch, kabel jaringan, konektor RJ45 (kalau tidak salah:), dan ethernet card. Biasanya komputer generasi baru punya ethernet Onboard Catatan :
Berbeda dengan SAMBA yang didesain agar dapat berkomunikasi dengan komputer/client Ms Windows, maka NFS hanya mengkhususkan diri dijaringan murni UNIX. Jika Komputer Anda juga terhubung dengan komputer /client Ms WIndows, maka SAMBA adalah pilihan yang lebih tepat dibanding NFS.

15Minutes
15 menit NFS Sebelumnya siapkan kacang goreng buat menemani .....:) Sebagai contoh, saya mempunyai 4 buah komputer dan ingin men-share sebuah folder (/usr/share) pada server agar dapat diakses (di mount di /tmp/share) oleh 3 komputer (client) lainnya. Komputer 1 : 192.168.1.1 (Server) Komputer 2 : 192.168.1.2 Komputer 3 : 192.168.1.3 Komputer 4 : 192.168.1.4 Aktifkan rc.nfsd pada server :
#chmod 755 /etc/rc.d/rc.nfsd

(Pada Slackware 12 sudah didefault aktif)

Edit file /etc/exports

Isi dengan baris di bawah :


/usr/share 192.168.1.2(rw) 192.168.1.3(rw) 192.168.1.4(rw)

Keterangan : Folder yang di share oleh server adalah /usr/share ke komputer client dengan address 192.168.1.2 sampai 192.168.1.4. Sedang ijin akses ke server adalah Read dan Write. Hati-hati untuk mengecek ijin folder di /usr/share juga. Meski /etc/exports sudah benar, sedang file permission /usr/share server adalah 640, ya tetap saja client tidak bisa mengakses. Client : Pada masing2 client (komputer 2-4) edit file /etc/fstab dan tambahkan baris di bawah :
192.168.1.1:/usr/share /tmp/share nfs rw 0 0

Aktifkan /etc/rc.d/rc.rpc :
#chmod 755 /etc/rc.d/rc.rpc

Oke, jangan lupa boot untuk memastikan :) Keterangan : Komputer client akan melakukan mounting /usr/share komputer server (192.168.1.1) ke /tmp/share. Nah ketika booting awal, maka server akan mengeksport folder /usr/share ke client. Dan client akan melakukan mounting folder server ke file systemnya. Server semestinya boot (On) lebih dulu dari pada client. Kalau tidak, maka client akan kehilangan arah Hehehe. Dimana nih server ? Kok folder /usr/share komputer server (192.168.1.1)tidak ada? Apa sedang tidur ? Begitu juga server mesti off belakangan. Kalau tidak, client tidak bisa melakukan umounting normal. catatan kecil :

Untuk NFS Server, file penting buat konfigurasi adalah /etc/rc.d/rc.nfsd serta
/etc/exports

Sedang untuk Client adalah /etc/rc.d/rc.rpc

Mudah bukan ?

Proxy Server
Squid Proxy Server Jika Anda sebagai administrator Lab. Komputer (dengan jumlah komputer 40), dan dilengkapi dengan modem ADSL kecepatan 384kbbs/64kbbs , maka tanpa web-cache,, jumlah bandwith yang diperlukan untuk berinternet ria adalah 40 x trafik data masing2 komputer. Jika masing2 browser tiap komputer membuka www.yahoo.com, maka trafik data adalah 40 x 31 KByte. Squid merupakan proxy server populer di dunia. Banyak fungsi yang diemban oleh proxy server. Salah satunya adalah sebagai web-cache. Meski squid tidak termasuk dalam paket resmi slackware 12. Squid server ikut dibahas berhubung peran pentingnya. Sebelum memulai, siapa yang akan menjalankan squid ? Tambahkan user dan group baru bernama squid.
#groupadd squid

Tambahkan user squid:


#adduser squid

Ada 2 model penggunaan paket squid. Kompile dan install dari source. Atau kompile lewat SlackBuild. Model ke-3 (hehehe), ambil langsung paket jadi dari linuxpackages.net (kalau ada). Pertama2 buat direktory cache : Buat direktory cache squid. (jika install dari paket SlackBUild)
#mkdir /var/log/squid/cache #chown -hR squid:squid /var/log/squid/cache

Buat direktory cache squid (Jika Instal dari source )


#mkdir /usr/local/squid/var/cache #chown -hR squid:squid /usr/local/squid/var/cache

From the Source : .... Ambil squid versi terbaru :

http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE14.tar.gz Kopikan file tersebut di /usr/share/squid dan unpack source code tersebut.
# tar -xvzf squid-2.6.STABLE14.tar.gz

masuk kedirektory squid dan lakukan konfigurasi


#./configure

Lakukan Make
# make

Install program hasil kompilasi.


# make install

Edit awal konfig squid di /usr/local/squid/etc/squid.conf


cache_mem 256 MB cache_dir ufs /usr/local/squid/var/cache 1000 16 256 acl our_networks src 192.168.1.0/24 192.168.2.0/24 http_access allow our_networks

Sebagai root lakukan instruksi :


#/usr/local/squid/sbin/squid -Z

Perintah diatas untuk membuat swap cache yang akan digunakan squid. Sekarang Saatnya mencoba :
# /usr/local/squid/sbin/squid -D

From SlackBuild : ....Jika Anda ingin mengkompile squid lewat script SlackBUild. Ambil script Slackbuild squid versi terbaru : http://slackbuilds.org/slackbuilds/12.0/network/squid.tar.gz Unpack file squid.tar.gz pada direktory tertentu. (misal /usr/src/squid) Ambil source squid http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE14.tar.gz

Kopikan file source squid kedalam direktory slackbuild squid (yang baru Anda unpack). Kemudian jalankan script squid.SlackBuild.
# ./squid.SlackBuild

Setelah proses kompilasi dan pembentukan paket squid selesai, install squid. (Hasil slacbuild diletakkan di /tmp) masuk kedirektory /tmp dan lakukan instruksi :
# installpkg squid-*.tgz

Oke ! Paket squid sudah terinstall Edit awal konfig squid di /etc/squid/squid.conf
cache_mem 256 MB cache_dir ufs /var/log/squid/cache 1000 16 256 acl our_networks src 192.168.1.0/24 192.168.2.0/24 http_access allow our_networks

Sebagai root lakukan instruksi :


# squid -z

Perintah diatas untuk membuat swap cache yang akan digunakan squid. Sekarang Saatnya mencoba :
# squid -D

Untuk selanjutnya untuk start squid, Anda dapat menggunakan rc.squid. Ubah ke 755 permission rc.squid
#chmod 755 /etc/rc.d/rc.squid

Pada waktu booting pertamakali, squid akan diaktifkan. Untuk membatasi akses terhadap suatu situs tertentu kadang diperlukan. Semisal di sekolah anda ingin mem-blok beberapa situs porno dan keyword pencarian. Pada tulisan ini dibahas mengenai blok terhadap beberapa alamat situs tertentu ataupun blok pencarian di google dengan menggunakan keyword tertentu. Disini akan dibahas blok suatu situs dengan menggunakan ACL dari squid. Berikut ini adalah beberapa langkah-nya : 1. Buat sebuah file daftar alamat situs.

Buat sebuah file yang berisi mengenai alamat dari situs - situs dan keyword yang mau anda blok. Perhatikan letak dari file tersebut ! (karena anda harus mendefinisikan path dari file tersebut di squid.conf) Contoh isi file :
http://xxx.com http://www.porno.com sex seks sek

2. Tambahkan rule ACL di squid.conf Misalkan nama file yang baru anda buat tadi "situsterlarang.txt". Edit squid.conf anda dan tambahkan beberapa rule di bawah ini :
acl NamaACL url_regex -i "path_dari_file_anda"

contoh : acl porno url_regex -i "/etc/squid/situsterlarang.txt" http_access deny NamaACL contoh : http_access deny porno Perhatikan untuk letak dari http_access deny porno. Letakkan baris ini sebelum
http_access deny all

3. Restart squid anda, lalu coba lakukan test dari client Mengapa Transparant Proxy ? Mengisikan setting proxy untuk jumlah client yang sedikit mungkin bukan masalah besar, tapi jika jumlah client yang banyak juga beragamnya browser ada baiknya membuat transparent proxy, yang memaksa setiap browser client untuk menggunakan proxy. Tanpa Transparant proxy, besar kemungkinan client dapat mem-bypas proxy (dengan segala aturannya)untuk melakukan koneksi langsung. Tambahkan configurasi berikut di squid.conf Squid versi 2.6
http_port 3128 transparent

Squid versi 2.5

httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Konfigurasi tersebut berfungsi jika pada proses kompilasi opsi untuk transparant proxy diaktifkan, silahkan melihat manual kompilasi squid untuk mengaktifkan fungsi tersebut. Selanjutnya adalah memaksa akses ke port 80 (http) melalui proxy. Di command line ketikkan :
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 0/0 -p tcp --dport 80 -j REDIRECT --to 3128

Dengan asumsi bahwa router (gateway) dan proxy server berapa pada mesin linux yang sama, silahkan menyesuaikan jika sekiranya mesin proxy berbeda dengan router/gateway. Dengan demikian setiap kali ada akses ke port 80 (http) akan di alihkan ke 3128 (proxy). Catatan tentang Squid. ...under development Di bawah ini catatan tentang squid. Saya tujukan pertama2 bagi 15 minutes user :) 1. Kompleksitas. Ini adalah 'musuh utama' . Berhadapan dengan ratusan baris squid.conf. Apa yang Anda inginkan dari squid ? Saya mencatat, cukup 4 baris modifikasi dari squid.conf sudah membuat squid Anda berjalan normal.
o

cache_mem 256 MB Ganti besar memory 1/3 dari kapasitas memory Anda. Memang tidak ada patokan pasti. Jika Anda punya memory 512MB, dan dikhususkan buat squid, berjalan di run level 3, mungkin Anda bisa mengganti dengan 400MB Hehehe

cache_dir ufs /var/log/squid/cache 1000 16 256 Berapa besar kapasitas Hardisk Anda ? Angka 1000 menandakan 1000MB untuk cache squid di hardisk. Ingin lebih ? Silahkan !

acl our_networks src 192.168.1.0/24 192.168.2.0/24 Baris di atas menunjukkan bahwa komputer dengan alamat 192.168.1.0 sampai 192.168.1.255 dan komputer dengan address 192.168.2.0 sampai 192.168.2.255 merupakan our_networks.

http_access allow our_networks Baris diatas memgatakan, squid hanya mengijinkan cache http pada alamat yang disebutkan our_networks

2. Identitas.

cache_mgr emailku@blablabla.com Mungkin Anda ingin mengganti Identitas cache_mgr dengan e-mail Anda ?

3. Jalankan squid !.

#squid -D Ini adalah cara 'kasar' untuk menjalankan squid. :) Ingat, setiap mengganti squid.conf restart squid Anda. #squid restart agar konfig baru di terima. Ini juga cara 'kasar' Hehehe

4. Set Browser client Anda !. Set browser client Anda untuk mengarah ke proxy server. Pada Firefox, Klik Edit->Preferences-->Advanced-->Networks-->Settings-->Manual proxy Configuration Isi dengan IP Proxy server Anda. Isikan juga port proxy (default 3128) Buat admin yang malas Mengisikan setting proxy untuk jumlah client yang sedikit mungkin bukan masalah besar, tapi jika jumlah client yang banyak juga beragamnya browser ada baiknya membuat transparent proxy, yang memaksa setiap browser client untuk menggunakan proxy. 5. Jika Ingin start saat boot ! Letakkan script ini di /etc/rc.d/rc.local
if [ -x /etc/rc.d/rc.squid ]; then /etc/rc.d/rc.squid start fi

Selanjutnya Adalah Tugas Anda sebagai Administrator (jika ingin) untuk mengetatkan squid.conf sesuai kebutuhan :P Memang begitulah seharusnya Hehehe