RSS
Taut

http://bit.ly/1h2yrgY

 
Tinggalkan komentar

Posted by pada Desember 12, 2013 in Blackberry

 

Firewall Konfigurasi dengan IPTables


IPTables adalah salah satu aplikasi linux, yang berfungsi untuk firewall. Kegunaanya untuk memfiltering semua data yang melewatinya. Dengan aplikasi ini, kita bisa memblokir data yang masuk, atau mengijinkan data yang keluar. Selain IPTables, juga bisa menggunakan shorewall.

Seperti namanya, firewall atau tembok api yang melindungi jaringan lokal dari jaringan luar atau Internet. Untuk mencegah ulah para cracker yang ingin meretas ke suatu sistem jaringan.

Firewall ada yang berbentuk piranti lunak (software). Dan ada juga yang berbentuk piranti keras, yang sudah di implementasikan kedalam sistemnya. Router juga termasuk dalam firewall.

 

Langsung saja kedalam konfigurasinya,

a. Block incomming Ip Address,

iptables -A INPUT -s 192.168.10.1 -j DROP

b. Block outgoing Ip Address,

iptables -A OUTPUT -p tcp -d 192.168.10.2 -j DROP

Dalam pembahasan selanjutnya, kita akan mengkonfigurasi pemblokiran port. Sebelumnya, anda harus mengetahui terlebih dahulu, nama-nama protokol besertar nomor portnya.

Komputer kita terdapat kurang-lebih 35.000 nomor port. Dan berikut beberap port yang sering dipakai.

  1. HTTP (80)
  2. HTTPS (443)
  3. SMTP (25)
  4. SSH (22)
  5. POP3 (110)
  6. IMAP (143)
  7. DNS (53)
  8. TELNET (23)
  9. FTP (21)
  10. TFTP(69)

c. Block incomming port, (misal kita blok ftp)

iptables -A INPUT -p tcp --destination-port 21 -j DROP
##dari interface tertentu saja
iptables -A INPUT -i eth1 -p tcp --destination-port 21 -j DROP
##dari subnet atau ip tertentu
iptables -A INPUT -i eth0 -p tcp --destination-port 21 -s 192.168.10.0/24 -j DROP
##pengecualian ip yang boleh akses
iptables -A INPUT -p tcp -i eth1 -s ! 192.168.10.2 --dport 21 -j DROP

d. Blok outgoing  port, misal (HTTP)

iptables -A OUTPUT -p tcp --dport 80 -j DROP

e. Membuat Dropped Log file.

iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7
iptables -A INPUT -p tcp --destination-port 80 -j DROP

Nah, sekarang bagaimana kita memblok ip hacker 119.2.47.20 yang mengakses port SSH (22)?

iptables -A INPUT -s 119.2.47.20 -i eth1 -p tcp -m state --state NEW -m tcp --dport 22 -j DROP

 
Tinggalkan komentar

Posted by pada Oktober 3, 2011 in Semua tentang LINUX, Webserver

 

Web Server Debian dengan OpenSSL (https)


OpenSSL adalah suatu protokol tambahan yang digunakan untuk Secure Socket Layer. Yang maksudnya adalah mengamankan jaringan kita antara client dan server. Dengan OpenSSL ini, maka jaringan akan sulit di sniffing. Jika dalam keadan HTTP biasa (Plain TEXT), kemungkinan besar bisa terkenad MITM Attack (Man In The Middle Attack).

Pada postingan sebelumnya saya telah menjelaskan, apa itu OpenSSL, dan bagaimana cara untuk mengHacknya. Jadi protokol SSL ini sudah tidaklah aman lagi. Karena hanya dengan menggunakan sedikit bantuan tool kecil, maka hilanglah sudah Kemanan yang anda percayai ini.

 

21.1. Installasi

Terlebih dahulu, pastikan bahwa aplikasi apache2 untuk web server sudah terinstall, jika belum ada, maka install dahulu.

debian-server:~# apt-get install apache2 openssl ssl-cert

21.2. Konfigurasi

Setelah server diinstall, kita akan melakukan tiga langkah konfigrasi SSL sbb;

  • Generate, or import, a certificate.
  • Enable Apaches SSL support.
  • Configure your SSL options.

21.2.1. Generating A Certificate

Pada bagian ini, kita akan membuat RSA key dan SSL Certificate yang berfungsi sebagai kartu identitas bagi server Debian tersebut.

debian-server:~# openssl req -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apahce2/apache.pem

Country Name (2 letter code) [GB]: ID

State or Province Name (full name) [Some-State]: East Java

Locality Name (eg, city) []: Mojokerto

Organization Name (eg, company; recommended) []: Al-Mansyurin Team

Organizational Unit Name (eg, section) []:

server name (eg. ssl.domain.tld; required!!!) []: debian.edu

Email Address []: admin@debian.edu

21.2.2. Enabling SSL Support

Aktifkan mod ssl pada aplikasi Apahce2, agar fitur ssl dapat kita gunakan.

debian-server:~# a2enmod ssl

Module ssl installed; run /etc/init.d/apache2 force-reload to enable.

Setelah langkah di atas selesai, server Debian sudah bisa menerima koneksi SSL.  Namun server masih listening pada protokol HTTP di port, dan bukan protokol HTTPS di port 443. Untuk dapat menggunakan SSL, pastikas bahwa terdapat script berikut, pada file ports.conf.

debian-server:~# vim /etc/apache2/ports.conf

NameVirtualHost *:80

Listen 80

<IfModule mod_ssl.c>

# SSL name based virtual hosts are not yet supported, therefore no

# NameVirtualHost statement here

Listen 443                                                         #Add this line for SSL Connection

</IfModule>

21.2.3 Configuring your SSL Hosts

Langkah terakhir adalah untuk memastikan bahwa Virtual Host, dapat menerima koneksi SSL. Kita bisa menggunakan protokol HTTP ataupun HTTPS secara terpisah, ataupun secara bersamaan.

Untuk referensi, berikut contoh konfigurasi VirtualHost milik saya.

debian-server:~# vim /etc/apache2/sites-available/debian

<VirtualHost *:80>

ServerName debian.edu

ServerAlias http://www.debian.edu

DocumentRoot /var/www/debian/

ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined

</VirtualHost>

<VirtualHost *:443>

ServerName debian.edu

ServerAlias http://www.debian.edu

DocumentRoot /var/www/debian/

ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined

SSLEngine on

SSLCertificateFile /etc/apache2/apache.pem

</VirtualHost>

Jangan lupa untuk mengaktifkan VirtualHost tersebut, agar di load ketika apache2 restart.

debian-server:~# a2ensite /etc/apache2/sites-available/debian

debian-server:~# /etc/init.d/apache2 restart

21.3. Pengujian

Lakukan pengujian koneksi SSL melalui sisi client, untuk menguji RSA key dan SSL Certificate dari server Debian. Melalui web browser, arahkan URL ke https://debian.edu seperti berikut.

Jika itu pertama kali Anda mengakeses server Debian melalui koneksi SSL, maka akan muncul pesan seperti gamba di atas. Pilih saja Add Exception kemudian pilih Get Certificate.

 
Tinggalkan komentar

Posted by pada Oktober 3, 2011 in Webserver

 

Script Untuk Mengirim Via Email Alert Ketika Server Reboot Atau Shutdown


Mungkin agak jengkel jika tiba2 server sering mengalami reboot dan shutdown secara otomatis. Hal ini bila kita tidak tahu maka akan mengakibatkan aplikasi-aplikasi yang ditanam di server tersebut tidak berjalan. Untuk  mengetahui kapan server itu reboot atau shutdown maka tugas seorang administrator untuk memantaunya. Ada cara lain dengan membuat skrip untuk mengirim email ketika server mengalami reboot atau shutdown. Buat file yang bernama email di /root/. Dan harus diperhatikan bahwa paket sendmail harus ada di server yang di tanam skrip ini. Kemudian isi file tersebt dengan skrip di bawah ini:

#!/bin/sh
# chkconfig: 2345 99 01
# Description: Sends an email at system start and shutdown
#############################################
# #
# Send an email on system start/stop to #
# a user. #
# #
#############################################
EMAIL=” example@example.com”
RESTARTSUBJECT=”["`hostname`"] – System Startup”
SHUTDOWNSUBJECT=”["`hostname`"] – System Shutdown”
RESTARTBODY=”This is an automated message to notify you that “`hostname`” started successfully.
Start up Date and Time: “`date`
SHUTDOWNBODY=”This is an automated message to notify you that “`hostname`” is shutting down.
Shutdown Date and Time: “`date`
LOCKFILE=/var/lock/subsys/SystemEmail
RETVAL=0

# Source function library.
. /etc/init.d/functions
stop()
{
echo -n $”Sending Shutdown Email: “
echo “${SHUTDOWNBODY}” | mail -s “${SHUTDOWNSUBJECT}” ${EMAIL}
RETVAL=$?
if [ ${RETVAL} -eq 0 ]; then
rm -f ${LOCKFILE}
success
else
failure
fi
echo
return ${RETVAL}
}

start()
{
echo -n $”Sending Startup Email: “
echo “${RESTARTBODY}” | mail -s “${RESTARTSUBJECT}” ${EMAIL}
RETVAL=$?
if [ ${RETVAL} -eq 0 ]; then
touch ${LOCKFILE}
success
else
failure
fi
echo
return ${RETVAL}
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
esac
exit ${RETVAL}

Ubahlah pada bagian EMAIL menjadi email yang akan dikirimkan email jika server tersebut mengalami reboot atau shutdown. Kemudian ikuti langkah-langkah berikut:
# chmod u+x /root/email
Kemudian cobalah menyalakan atau mematikan skrip itu dengan cara
# ./root/email start
# ./root/email stop

Dan seharusnya email terkirim dengan baik. Lalu kopi skrip tersebut ke /etc/init.d/:
# cp /root/email /etc/init.d/
# chkconfig –level 345 email on
Setelah itu cobalah reboot atau shutdown server dan seharusnya email dari skrip tersebut terkirim dengan baik.

 
Tinggalkan komentar

Posted by pada September 29, 2011 in Semua tentang LINUX, Webserver

 

Monitoring Server dan Network Menggunakan SMS Gateway


Kita mengetahui bahwa tugas utama dari para system administrator adalah menjaga agar seluruh server atau network dapat berfungsi dengan baik. Administrator harus sering-sering melakukan ping agar mengecek apakah sebuah server atau network bisa terkoneksi dengan baik atau tidak. Dan jika server atau network tidak dapat terkoneksi dengan baik apakah itu karena servernya mati atau ada gangguan network, maka administrator harus mengetahuinya dengan cepat. Maka dari itu diperlukan tool untuk memberitahukan kepada admin bahwa servernya ada gangguan karena tidak bisa di ping. Ada banyak tool yang berfungsi seperti itu. Namun disini penulis menggunakan SMS Gateway sebagai tool untuk memberitahukan kepada admin jika server atau networknya tidak bisa di ping. Penulis menggunakan SMS gateway dari tutorial. Jika salah satu dari server-server yang ada itu mati, maka akan dikirimkan notifikasi berupa sms alert yang akan dikirimkan ke nomor-nomor sms yang telah ditentukan.

Untuk melaksanakan hal tersebut, maka penulis membuat folder di folder html yang bernama sendsms:

# mkdir /var/www/html/sendsms
Kemudian di dalam folder tersebut, penulis membuat 2 file yaitu file sms_message dan sms. Kemudian rubah file-file tersebut:

# mv sms_message sms_message.php
# mv sms sms.pl

Di file sms, karena penulis menggunakan IP 192.168.0.2 untuk server SMS Gateway, maka di http ditulis IP 192.168.0.2. Sesuaikan dengan IP pembaca. Kemudian ubah file tersebut agar bisa dieksekusi:

# chmod +x sms.pl
Kemudian restart web server:
# service httpd restart
Cobalah di browser dan ketikkan seperti berikut:
http://192.168.0.2:13013/cgi-bin/sendsms?username=playsms&password=playsms&to=081234567890&text=Testing
Ceklah di nomor HP 081234567890 apakah sms tersebut diterima atau tidak. Jika diterima kita melangkah ke bagian selanjutnya. Jika tidak diterima lihat apa errornya dan di cek di log kannel. Kemudian buat file di folder apa saja, namun disini penulis membuat file tersebut di /root. File tersebut penulis beri nama ping. Kemudian ubah nama file tersebut (ping menjadi ping.pl). Penulis berencana akan memonitor File server yang ada di IP 202.129.190.xxx, Web Server yang ada di IP 202.129.190.xxx, dan Gateway Internet yang ada di IP 202.129.190.xxx. Jika terjadi sesuatu di salah satu server atau seluruhnya, maka akan mengirimkan pesan ke Bapuk dengan nomor HP 081234567890, Aki-Aki dengan nomor HP 081122334455, dan Pak de dengan nomor HP 02136789012 agar segera ditindaklanjuti.

Buat file tersebut agar bisa dieksekusi:

# chmod +x ping.pl
Setelah itu, buat folder dengan nama flag dan log di folder /root

# mkdir /root/flag
# mkdir /root/log

Kemudian buat crontab untuk file tersebut:

*/10 * * * * /root/ping.pl >> /root/log/ping-run.log 2>&1
Secara ringkas dapat digambarkan bahwa setiap 10 menit sekali skrip ping.pl akan dieksekusi. Kemudian skrip tersebut akan melakukan ping ke ip-ip server yang telah ditentukan. Jika skrip tersebut menemukan bahwa ip tersebut mati, maka akan mengirimkan pesan sms ke nomor-nomor hp yang telah ditentukan. Jika dalam 10 menit kedua masih mendapati bahwa ip tersebut masih tidak tersambung, maka skrip tersebut tidak mengirim sms lagi dan begitu seterusnya. Namun jika pada suatu saat ip-ip tersebut bisa di ping, maka skrip akan melakukan pengiriman sms ke nomor-nomor hp tersebut. Jika pada 10 menit kedua ip-ip tersebut hidup, maka skrip tidak akan mengirimkan sms dan begitu seterusnya. Skrip akan mengirimkan sms jika ip-ip tersebut tidak dapat di ping. Jika terjadi masalah tidak dapat mengirim sms, maka silahkan cek errornya di /var/log/httpd/error_log.
 
Tinggalkan komentar

Posted by pada September 29, 2011 in Semua tentang LINUX, Webserver

 

Script backup Database Mysql


Pada artikel sebelumnya sudah dijelaskan tentang bagaimana backup dan restore di mysql. Artikel kali ini akan diterangkan bagaimana caranya membackup database pada mysql menggunakan script. Tidak seperti pada backup-backup yang lain, script ini membackup seluruh database yang ada pada mysql dan disertakan juga apakah backup sebuah database berhasil atau tidak dan juga menampilkan ukuran file backup tersebut dan lama waktu proses backup sebuah database.Untuk membackup database mysql menggunakan script ikuti langkah-langkah berikut:

1. Buat file bernama backupmysql.sh

# vim backupmysql.sh

2. Masukkan script berikut ke file backupmysql.sh

#!/bin/bash
date=`date -d "-1 day" +%Y%m%d`
backupdir="/root/backup_mysql/backup-$date/"
echo "Start to backup => `date`"
if [ ! -d $backupdir ]; then
echo "$backupdir not existing, create it now automatically"
mkdir -p $backupdir
fi
cd $backupdir
index=1
nomor=1
dbase=`mysql -uroot -ppassword -e"show databases;"`
echo $dbase | awk '{for (i = NF; i > 1; i--) print $i}' | while read line;
do
echo -n "[$index]Backup Database : `date +%H:%M:%D` $line..."
mysqldump -uroot -ppassword $line > $line.sql
if [ $? -eq 0 ]; then
echo "OK[`du -h $backupdir/$line.sql | awk '{print $1}'`]"
else
echo "Fail"
fi
index=`expr $index + 1`
done
echo "Backup finish => `date`"
echo
ls -1 $backupdir | while read line;
do
echo -n "[$nomor]Compress Database : $line.."
tar cfz $line.tar.gz $line
if [ $? -eq 0 ]; then
echo "OK[`du -h $backupdir/$line.tar.gz | awk '{print $1}'`]"
else
echo "Fail"
fi
nomor=`expr $nomor + 1`
done
echo "Compress finish => `date`"
echo "==============================================================="
rm *.sql

Terlihat bahwa output dari backup ada di /home/weblog. Ubah bagian backupdir ke direktori yang anda inginkan.

3. Ubah file backupmysql.sh menjadi file eksekusi

# chmod +x backupmysql.sh
Kemudian cobalah eksekusi file backupmysql.sh dengan cara:
# ./backupmysql.sh
Di sistem penulis terlihat hasilnya seperti berikut:
Kemudian jika ada database yang tidak ingin kita backup, maka ubah perintah pada bagian:
echo $dbase | awk ‘{for (i = NF; i > 1; i–) print $i}’ | while read line;menjadiecho $dbase | awk ‘{for (i = NF; i > 1; i–) print $i}’ | sed ‘/nama1/d’ | sed ‘/nama2/d’ | sed ‘/nama…/d’| while read line;

Misalnya penulis bermaksud untuk tidak membackup database bawaan mysql yaitu information_schema, mysql, dan test, maka penulis merubahnya menjadi:

echo $dbase | awk ‘{for (i = NF; i > 1; i–) print $i}’ | sed ‘/mysql/d’ | sed ‘/test/d’ | sed ‘/information_schema/d’| while read line;

dan hasilnya terlihat pada gambar:

 
Tinggalkan komentar

Posted by pada September 29, 2011 in Semua tentang LINUX, Webserver

 

Pengertian DNS dan Membuat Server DNS dengan chroot di Centos 5


I. PENDAHULUAN

DNS (Domain Name System) adalah sebuah sistem yang menjaga informasi tentang nama host (hostname) dan juga nama domain (domain name) dalam bentuk database tersebar (distributed database) pada jaringan komputer. Dengan DNS, sebuah alamat IP dapat dipetakan ke dalam hostname dan domain name yang lebih mudah diingat oleh manusia. Adalah lebih mudah bagi kita untuk mengingat nama http://www.google.com dibandingkan dengan 66.249.89.99. DNS ditemukan oleh Paul Mockapertis pada tahun 1983.Ada beberapa metode untuk membuat server DNS, namun dalam tutorial ini akan dijelaskan cara membuat server DNS menggunakan BIND karena aplikasi BIND merupakan aplikasi terpopuler dalam membuat server pada saat ini dan dengan asumsi bahwa paket BIND sudah ada di dalam sistem.

 

II. Istilah-istilah Pada DNS

• RR atau Resource Records adalah kumpulan sumber informasi yang berhubungan dengan nama-nama domain.
• Namespace adalah struktur dari seluruh DNS yang berbentuk pohon terbalik
• Nameserver adalah program-program yang menyimpan informasi tentang namespace domain.
• TLD or Top-Level Domain adalah level domain paling atas dibawah root (“.”). Contoh dari TLD adalah .com, .net, .org, dan sebagainya.
• Delegation atau delegasi adalah memberikan sbuah tanggung jawab kepada sebuah subdomain untuk mengatur dirinya sendiri.
 Registry adalah sebuah organisasi yang bertanggung jawab untuk menjaga file-file data di TLD dan mendelegasikannya ke setiap subdomain dari TLD itu. Contoh Verisign untuk mengelola TLD .com dan .net.
• Registrar adalah sebuah organisasi yang bertindak sebagai antar muka (interface) antara pelanggan dan registry atau lebih dikenal dengan nama ISP. Contohnya idwebhost.
• Registration adalah proses dimana pelanggan memberitahukan ke sebuah registrar untuk mendelegasikan sebuah subdomain kepadanya.
• Zone atau zona adalah sebuah daerah yang mencakup sebuah domain utuh atau hanya sebagian saja.

III. BIND

BIND singkatan dari Berkeley Internet Name Domain yang ditulis oleh Kevin Dunlap untuk BSD UNIX 4.3 Berkeley. Pada umumnya, setiap distro linux mempunyai paket BIND, tetapi jika kita tidak menemukan paket BIND dalam distro linux, kita bisa mendapatkan BIND versi terakhir di sini. Di Centos 5, versi terakhir dari BIND adalah versi 9. Pada paket ini, BIND menyertakan paket chroot untuk meningkatkan keamanan server DNS. ada beberapa file penting di dalam BIND yang harus diperhatikan, yaitu:
a. named.conf –> File konfigurasi utama untuk membuat DNS dan digunakan sebagai referensi untuk menentukan prosedur server DNS
b. named.ca –> Digunakan untuk menangani informasi server DNS root yang diperlukan untuk menginisialisasi cache dari domain server DNS internet yang disediakan oleh layanan registrasi interNIC. Di centos 5, file ini tidak ada sehingga harus di download dari sini (hasil download akan bernama named.root, namun kita akan merubah menjadi named.ca).
c. resolv.conf –> Berisi alamat domain atau alamat IP dari nameserver (biasanya IP ISP)
d. Zona forward –> Memetakan domain name ke alamat IP
e. Zona Reverse –> Memetakan alalamt IP ke domain name

III. CARA KERJA DNS

Untuk memahami bagaimana DNS itu bekerja, lihat gambar berikut ini:

alt
• Misal kita mau mengecek email kita di warnet dan dibrowser kita ketikkan http://mail.yahoo.com.
• Setelah itu PC kita akan mengontak server DNS lokal (Jaringan ISP yang terhubung ke warnet itu) untuk menanyakan alamat IP dari http://mail.yahoo.com. (Panah 1)
• Server DNS lokal akan melihat ke dalam memori cachenya (Panah 2)
• Jika data itu ada di cachenya, server tersebut akan memberikan alamat IP ke browser PC kita (Panah 5). Jika tidak, maka server tersebut mengontak server DNS di atasnya untuk mengetahui alamat IP tersebut.
• Jika domain itu benar-benar ada, maka root DNS akan mendapatkan alamat IP tersebut, kemudian akan dikirimkan ke server DNS lokal kita (Panah 3).
• Server DNS lokal akan mengontak server DNS mail.yahoo.com untuk menanyakan alamat IP-nya, dan server mail.yahoo.com akan mengirimkannya ke server DNS lokal kita (Panah 4).
• Server DNS lokal kita akan memberitahukan alamat IP untuk mail.yahoo.com kepada browser PC kita.
• Kemudian PC kita akan menggunakan alamat IP tersebut untuk mengontak mail.yahoo.com

IV. Persiapan nama domain

Kita akan membuat domain baru untuk server DNS, mail server dan webserver.
Domain name: example.com
DNS server name: ns1.example.com
IP DNS server: 192.168.1.2
Mail server name:mail.example.com
HTTP serever: http://www.example.com

V. Konfigurasi BIND

1. CEK PAKET BIND

Cek paket BIND di sistem kita, apakah sudah ada atau belum dengan cara:
# rpm -qa | grep bind
alt

2. KONFIGURASI RNDC KEY

rndc key digunakan untuk mengendalikan operasi dari server DNS. Asalnya, rndc key sudah tersedia di dalam paket BIND. Kita bisa menggunakan apakah menggunakan yang sudah tersedia atau membuat yang baru. Jika kita ingin membuat RNDC key yang baru, maka berikan perintah:
# cd /var/named/chroot/etc/
# rndc-confgen > rndc.key
Setelah itu lihat file rndc.key dan akan berbentuk seperti ini:

alt
Hapuslah dari baris options sampai selesai dan salin bagian yang tidak dihapus untuk ditaruh di file named.conf.

3. KONFIGURASI NAMED.CONF

Sesudah mengkonfigurasi rndc.key, kita harus memasukkan file rndc.key dan menyalin

Key “rndc.key” {
………………… };

Maka sesudah itu kita harus membuat file named.conf di direktory yang sama dengan cara:

# vi named.conf
dan menambahkan seperti berikut:

// mulai named.conf
    //kita masukkan rndc.key (copy-paste dari rndc.key yang baru dibuat)

key "rndckey" {
…………………………………………
};

// kita asumsikan server kita mempunyai IP 192.168.1.2 yang melayani 192.168.1.0/24
controls {
inet 192.168.1.2 allow { 192.168.1.0/24; } keys { "rndckey"; };
};

options {
directory "/var/named";
pid-file "/var/run/named/named.pid";

/*
* 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;

// so people can't try to guess what version you're running
version "REFUSED";

allow-query {
any; };
};

server 192.168.1.2 {
keys { rndckey; };
};

zone "." IN {
type hint;
file "data/named.ca";
};

// Kita asumsikan dns server kita adalah example.com
zone "example.com" IN {
type master;
file "data/example.com.zone";
allow-update { none; };
};

// Kita asumsikan bahwa zona reverse kita adalah 1.168.192
zone "1.168.192.in-addr.arpa" IN {
type master;
file "data/1.168.192.zone";
};
// end of named.conf

4. KONFIGURASI ZONA FORWARD

Sesudah kita mengkonfigurasi named.conf kita harus membuat forward zone di dengan cara
# vi /var/named/chroot/var/named/data/example.com.zone
dan mengkonfigurasinya seperti ini:

$TTL 38400      ; 10 hours 40 minutes
@                          IN SOA  ns1.example.com. admin.example.com. (
                                                2007020400 ; serial
                                                180        ; refresh (3 minutes)
                                                360        ; retry (6 minutes)
                                                604800     ; expire (1 week)
                                                86400      ; minimum (1 day)
                                                                       )
                                NS     ns1.example.com.
                                A      192.168.1.2
                                MX     10 mail.example.com.
ftp                      IN   CNAME   ns1
mail                     IN   CNAME   ns1
ns1                     IN   A       192.168.1.2
www                   IN   CNAME   ns1
Penjelasan singkat:

TTL (Time to Live) –> Panjang waktu nameserver untuk menyimpan sebuah record. Jika TTL berakhir, nameserver harus membuang data yang tersimpan dan mendapatkan data baru dari nameserver otoritative

SOA (Start of Authority) –> Mengindikasikan otoritas untuk zona ini

IN (Internet Name) –> Digunakan jika menggunakan protokol TCP/IP

ns1.example.com –> Hostname yang bertanggungjawab untuk domain example.com

admin.example.com –> Alamat email administrator

serial –> Nomor serial yang akan bertambah jika data berubah, biasanya ditulis dengan format YYMMDDxx

refresh –> Panjang waktu untuk server secondary untuk mengecek perubahan di server primer

retry –> Panjang waktu untuk server secondary untuk menunggu verifikasi terhadap perubahan di server primer jika server primer tidak memberikan respon ketika refresh

expire –> Panjang waktu untuk secondary server untuk menahan zona file jika server secondary tidak melakukan keadaan refresh

@ –> Bagian ini identik dengan dengan zona yang didefinisikan di named.conf dan bisa digantikan dengan nama DNS (misal: example.com)

NS (Name Server) –> Digunakan untuk mendefinisikan sever hostname DNS dan harus diakhiri dengan tanda titik.

minimum ttl –> Menentukan nilai ttl untuk seluruh record di zona forward

IN NS ns1.example.com –> Mendefinisikan bahwa hostname ns.example.com yang memegang tanggung jawab terhadap domain example.com

IN MX 10 mail.example.com –> M
endefinisikan bahwa hostname mail.example.com yang memegang tanggung jawab sebagai mail server di domain example.com. nomor mewakili prioritas ketika pengiriman surat dan nomor kecil menjadi prioritas utama

ns IN A 192.168.1.2 –> Mengecek bahwa hostname ns.example.com mempunyai alamat IP di 192.168.1.2

mail IN CNAME NS –> Mengecek bahwa hostname ns.example.com mempunyai nama lain (name alias) mx.example.com

5. KONFIGURASI ZONA REVERSE

Sesudah mengkonfigurasi zona forward, kita harus membuat zona reverse di dalam direktori yang sama dan mengkonfigurasinya seperti ini:

 # vi /var/named/chroot/var/named/data/1.168.192.zone

dan mengkonfigurasinya seperti ini:

$TTL 38400      ; 10 hours 40 minutes
@                          IN SOA  ns1.example.com. admin.example.com. (
                                                2007020404 ; serial
                                                180        ; refresh (3 minutes)
                                                360        ; retry (6 minutes)
                                                604800     ; expire (1 week)
                                                86400      ; minimum (1 day)
                                                                       )
                                    NS     ns1.example.com.
2                              IN PTR    arfie.example.com

penjelasan singkat:

2 IN PTR arfie.example.com –> mengecek bahwa hostname arief.example.com mempunyai alamat IP di 192.168.1.2

sisanya sama dengan zona forward

6. KONFIGURASI RESOLVE.CONF

Kita harus mengkonfigurasi file resolve.conf di /etc/resolv.conf dan mengkonfigurasinya seperti ini:
nameserver 192.168.1.2

7. MENAMBAHKAN NAMED.CA

Setelah mendownload named.root, maka ubahlah namanya menjadi named.ca dengan cara
# mv named.root named.ca
lalu pindahkan file ini ke /var/named/chroot/var/named/data
# mv named.ca /var/named/chroot/var/named/data

8. MENYALAKAN SERVER DNS

Sesudah mengkonfigurasi server DNS, kita harus mengecek apakah server DNS kita sudah bekerja atau belum. Gunakan perintah ini:
# service named start

9. MENGECEK SERVER DNS

Gunakan nslookup atau dig untuk mengecek server DNS

# nslookup example.com
alt
# dig example.com
alt

VI. Troubleshooting

Mungkin apabila kita pertama kali membuat server DNS, akan banyak error yang terjadi. Biasanya, error akan langsung muncul setelah kita mencoba menyalakan DNS. Tapi, terkadang error itu tidak muncul dan DNS kita tidak bekerja. Untuk itu, lihatlah di file /var/log/messages sehingga kita bisa mengidentifikasi error apa dan bagaimana cara menghilangkan error itu. Di bawah ini ada beberapa solusi untuk menghilangkan error-error yang terjadi ketika membuat server DNS:

1. FILE TIDAK ADA

Error:
xxxxxxxxxx: file not found

Solusi:
Kita memasukkan zona forward atau reverse ke direktory yang salah yang tidak sama dengan parameter yang ada di file named.conf atau bisa juga kita salah dalam membuat nama zona forward atau reverse yang tidak sama dengan parameter yang ada di file named.conf. Maka dari itu, pastikan bahwa nama file baik itu zona forward maupun zona reverse sesuai dengan yang ada di file named.conf. Dan juga pastikan bahwa, file-file tersebut sesuai dengan apa yang ada di file named.conf.

2. NON EXISTENT DOMAIN

Error:
*** xxx can’t find xxx: Non-existent domain

Solusi:
Cek di zona reverse apakah kita sudah memberi pointer kepada file itu. Jika belum, buatlah pointer seperti pada bagian diatas (Konfigurasi Zona Reverse).

3. REFUSED

Error:
** server can’t find ****: REFUSED

Solusi:
Ganti IP DNS di /etc/resolv.conf

 
Tinggalkan komentar

Posted by pada September 29, 2011 in Semua tentang LINUX, Webserver

 
 
Ikuti

Get every new post delivered to your Inbox.