sumber : Masim "Vavai" Sugianto on May 29th, 2009
dns-server
Salah satu fungsi dan service penting dalam dunia server adalah DNS Server. DNS Server digunakan untuk melakukan resolve nama dan alamat komputer, dibutuhkan baik untuk mail server, file server, directory server maupun service lainnya yang terkait dengan DNS.
Meski openSUSE sudah menyediakan YAST yang sudah sangat memudahkan proses konfigurasi DNS, dalam prakteknya masih banyak teman-teman yang kesulitan membuat sebuah DNS Server berbasis openSUSE. Berdasarkan pengalaman saya, banyak juga proses instalasi Zimbra Mail Server yang terhambat gara-gara konfigurasi DNS tidak tepat.
Untuk mengatasi hal tersebut, saya membuat script kecil yang mudah-mudahan bermanfaat untuk membangun sebuah DNS Server berbasis openSUSE.
Script ini memiliki spesifikasi dan cakupan sebagai berikut :
1. Meminta masukan dalam bentuk nama domain, nama hostname (nama komputer), Alamat IP dan alamat Name Server (DNS Router & ISP)
2. Secara otomatis melakukan konfigurasi DNS Zone dan Reverse DNS Record untuk nama domain
3. Dapat memilih untuk menggunakan repo online (butuh akses internet) atau repo lokal
4. Otomatis melakukan update file /etc/hosts, /etc/named.conf, /etc/resolv/conf,/etc/sysconfig/network/config dan file konfigurasi yang ada pada /var/lib/named
5. Memasukkan 4 buah record standar, yaitu Name Server record (ns1.namadomain.tld), MX Records (namakomputer.namadomain.tld) dan Address Record (ns1 & namakomputer) sesuai dengan alamat IP yang dimasukkan
Silakan download script ini disini : Script Otomatis DNS Server-openSUSE
Berikut adalah cara penggunaannya :
1. Download script diatas ke salah satu folder (contoh : /home/vavai)
2. Buka konsole / terminal (ALT+F2, konsole atau ALT+F2, gnome-terminal)
3. Masuk sebagai root, pindah ke folder download, ekstrak dan jalankan script dengan perintah sebagai berikut (sesuaikan foldernya) :
view sourceprint?
1.su
2.cd /home/vavai
3.tar -zxvf dns-auto.tar.gz
4.cd dns-auto
5.chmod +x dns-auto.sh
6../dns-auto.sh
Berikut adalah script setting DNS Server secara otomatis seperti ada dalam link diatas (Untuk menjalankan tetap memerlukan 1 set file & folder didalam link, jangan gunakan script ini sendirian :-D ) :
view sourceprint?
001.#!/bin/sh
002.
003.#Hapus Layar
004.clear
005.
006.echo "########################################################################"
007.echo "# DNS-Auto ver 2009.05.001 untuk OpenSUSE 11.1 #"
008.echo "# Skrip untuk otomatisasi konfigurasi DNS Server pada OpenSUSE #"
009.echo "# Masim "Vavai" Sugianto - vavai@vavai.com - http://vavai.com/blog/v2 ; #"
010.echo "########################################################################"
011.
012.echo ""
013.
014.#Default Configuration
015.startdirectory="/tmp/dns-auto/"
016.searchterm="vavai.com"
017.nama_komputer="namahost"
018.ip_dns="192.168.0.5"
019.versi=$(grep "VERSION" /etc/SuSE-release | cut -f 2 -d =)
020.
021.#Tanya, punya akses internet tidak ? Jika ya, gunakan repo online
022.echo -n "Apakah anda ingin instalasi menggunakan repo online ? [Y/T] "
023.read jawab
024.flag_akses_internet="`echo $jawab|tr [a-z] [A-Z]`"
025.
026.#echo "Tanya nama domain"
027.echo ""
028.echo "Proses konfigurasi..."
029.echo -n "1. Masukkan nama domain (misal : vavai.com) : "
030.read nama_domain
031.echo -n "2. Masukkan nama komputer (hostname) : "
032.read nama_host
033.echo ""
034.echo -n "3. Masukkan alamat IP (misal : 192.168.0.1) : "
035.read alamat_ip
036.echo -n "4. Masukkan alamat IP Name Server (Biasanya IP Router/DNS ISP) : "
037.read ip_dns_new
038.
039.if [ "$flag_akses_internet" = "Y" ] ;
040.then
041.zypper mr -da
042.zypper ar "http://mirror1.opensuse.or.id/repo/$versi/oss/" oss-m1
043.zypper ar "http://mirror1.opensuse.or.id/repo/$versi/non-oss/" non-oss-m1
044.# zypper ar http://mirror1.opensuse.or.id/repo/packman/suse/11.1/ packman-m1
045.zypper ref
046.fi
047.
048.#echo "Install file yang dibutuhkan"
049.zypper in rsync
050.zypper in -t pattern dhcp_dns_server
051.
052.#Reverse IP
053.subip1=$(echo $alamat_ip | cut -f 1 -d .)
054.subip2=$(echo $alamat_ip | cut -f 2 -d .)
055.subip3=$(echo $alamat_ip | cut -f 3 -d .)
056.subip4=$(echo $alamat_ip | cut -f 4 -d .)
057.
058.reverse_ip="$subip3.$subip2.$subip1"
059.
060.echo "Salin file konfigurasi ke folder temporary"
061.mkdir -p $startdirectory
062.
063.rsync -av --delete . $startdirectory
064.
065.#echo "Ubah nama file"
066.
067.regexp1="s/$searchterm/$nama_domain/2"
068.find /tmp/dns-auto -name "*$searchterm*" | awk '{print("mv "$1" "$1)}' | sed "$regexp1" | /bin/sh
069.
070.#echo "Ganti nama reverse DNS"
071.regexp2="s/0.168.192/$reverse_ip/2"
072.find /tmp/dns-auto -name "*0.168.192*" | awk '{print("mv "$1" "$1)}' | sed "$regexp2" | /bin/sh
073.
074.#echo "Ubah konfigurasi $searchterm $startdirectory"
075.
076.for file in $(grep -l -R $searchterm $startdirectory)
077.do
078.sed -e "s/$searchterm/$nama_domain/g" -e "s/192.168.0.1/$alamat_ip/g" -e "s/0.168.192/$reverse_ip/g" -e "s/1.0.168.192/$subip4.$reverse_ip/g" -e "s/$nama_komputer/$nama_host/g" -e "s/$ip_dns/$ip_dns_new/g" $file > /tmp/tempfile.tmp
079.mv /tmp/tempfile.tmp $file
080.echo "Modified: " $file
081.done
082.echo "Done!"
083.#Ubah Netconfig
084.cp /etc/sysconfig/network/config /etc/sysconfig/network/config.bak
085.cp /etc/sysconfig/network/config /tmp/dns-auto/config.bak
086.sed -e "s/NETCONFIG_DNS_POLICY='auto'/NETCONFIG_DNS_POLICY=''/g" /tmp/dns-auto/config.bak /etc/sysconfig/network/config
087.
088.#find /tmp/dns-auto/
089.
090.#Update konfigurasi
091.mv /etc/named.conf /etc/named.bak
092.mv /etc/resolv.conf /etc/resolv.conf.bak
093.mv /etc/hosts /etc/hosts.bak
094.mv /etc/named.d/forwarders.conf /etc/named.d/forwarders.conf.bak
095.if [ -d /var/lib/named/master.bak ]; then
096.rm -rf /var/lib/named/master.bak
097.fi
098.mv /var/lib/named/master /var/lib/named/master.bak
099.
100.if [ -d /var/lib/named/master ]; then
101.rm -rf /var/lib/named/master
102.fi
103.mv /tmp/dns-auto/named/named.conf /etc/named.conf
104.mv /tmp/dns-auto/named/resolv.conf /etc/resolv.conf
105.mv /tmp/dns-auto/named/hosts /etc/hosts
106.mv /tmp/dns-auto/named/forwarders.conf /etc/named.d/forwarders.conf
107.rsync -av /tmp/dns-auto/named/ /var/lib/named/
108.
109.#Jalankan service
110.service named restart
111.
112.#Test
113.nslookup "$nama_host.$nama_domain"
114.
115.echo "Proses konfigurasi telah selesai"
My Profile
Minggu, 25 Oktober 2009
Diposting oleh
Dethaz Blogz
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar