DNS Server dan VirtualHost Di Centos7

DNS Server dan VirtualHost Di Centos7

DNS Server dan VirtualHost Di Centos7 - Jika pada tutorial sebelumnya kita sudah membahas tentang cara menginstall web server pada Tutorial Instal LAMP di Centos 7, maka pada tutorial kali ini kita akan membahas tentang DNS server dan cara membuat VirtualHost di Centos7.

Apa Itu DNS ?

Domain Name System (DNS) adalah sebuah sistem yang menyimpan informasi tentang nama host ataupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer. DNS menyediakan pelayanan yang cukup penting untuk Internet, ketika perangkat keras komputer dan jaringan bekerja dengan alamat IP untuk mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia pada umumnya lebih memilih untuk menggunakan nama host/nama domain, contohnya adalah penunjukan sumber universal (URL) dan alamat email. Analogi yang umum digunakan untuk menjelaskan fungsinya adalah DNS bisa dianggap seperti buku telepon internet di mana saat pengguna mengetikkan www.google.com di web browser maka pengguna akan diarahkan ke alamat IP 74.125.68.106 (IPv4). Manusia akan lebih mudah mengingat nama domain www.google.com dibanding harus menghafal deretan angka alamat IP 74.125.68.106. Jadi, fungsi DNS ini untuk menterjemahkan nama domain ke alamat IP. DNS Server sendiri berfungsi menyimpan dan mengelola zone atau record domain.

Apa Itu VirtualHost ?

Virtual Host adalah cara untuk mengatur banyak website atau domain di dalam satu mesin web server. Contoh kita mempunyai banyak domain tapi hanya mempunyai 1 IP public atau 1 server. Cara untuk mengatasi hal tersebut adalah dengan cara membuat virtualhost yang ada di web server, sehingga seakan-akan kita punya banyak web server namun di satu server fisik yang sama berbasis virtual.

Install dan Konfigurasi DNS Server

Untuk membuat suatu DNS server kita butuh paket yang namanya BIND yang berfunsi sebagai service DNS servernya. Berikut step install dan konfigurasinya.

Install paket yang dibutuhkan :

Untuk menginstall paket Bind, jalankan perintah berikut ini pada console linux anada.
[root@wcloud ~]# yum -y install bind bind-utils

Kemudian untuk tahap konfigurasi, silahkan edit edit file /etc/named.conf seperti berikut ini :
Untuk jaga-jaga, silahkan backup dulu file named.conf nya dengan cara sebagai berikut ini :
[root@wcloud ~]# mv /etc/named.conf /etc/named.conforig

Lalu buat file baru:
[root@wcloud ~]# nano /etc/named.conf
kemudian isi dengan seperti script berikut ini:
Note : Untuk nama domain dan IP sesuaikan dengan kondisi jaringan/kebutuhan anda.

======================================================
options {
listen-on port 53 { any; };
#listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {
category lame-servers
{
null;
};
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel default_syslog {
file "data/default.log";
severity dynamic;
};
category queries
{
default_syslog;
};
category default
{
default_debug;
};
};
zone "." IN {
type hint;
file "named.ca";
};

zone "contohdomainsaya.com" IN {
type master;
file "/var/named/contohdomainsaya.com.zone";
};

zone "2.168.192.in-addr.arpa" IN {
type master;
file "/var/named/2.168.192.rev";
allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Kemudian simpan dengan cara tekan tombol kombinasi ctrl+X, lalu tekan Y, kemudian tekan tombol enter

Selanjutnya kita membuat file untuk /var/named/contohdomainsaya.com.zone
[root@wcloud ~]# nano /var/named/contohdomainsaya.com.zone
Dan isi dengan seperti baris berikut ini :

; Zone file for contohdomainsaya.com
$TTL 3600
@         86400         IN         SOA         ns1.contohdomainsaya.com. webmaster.contohdomainsaya.com. (
1603120047          ; serial, todays date+todays
86400                    ; refresh, seconds
7200                      ; retry, seconds
1209600                ; expire, seconds
86400                    ; minimum, seconds
)
contohdomainsaya.com. 86400               IN         NS         ns1.contohdomainsaya.com.
contohdomainsaya.com. 86400               IN         NS         ns2.contohdomainsaya.com.
contohdomainsaya.com.                             IN         A           192.168.2.252
ns1.contohdomainsaya.com.                      IN         A           192.168.2.252
ns2.contohdomainsaya.com.                      IN         A           192.168.2.252
hostname.contohdomainsaya.com.          IN         A           192.168.2.252
mail.contohdomainsaya.com.                    IN         A           192.168.2.252
contohdomainsaya.com.                             IN         MX 0     mail.contohdomainsaya.com.
_domainkey.contohdomainsaya.com.     IN         TXT "t=y; o=-; r=admin@contohdomainsaya.com"
contohdomainsaya.com.                             IN         TXT "v=spf1 ip4:192.168.2.252 a mx ~all"
_dmarc.contohdomainsaya.com.              IN         TXT "v=DMARC1; p=none; pct=20; rua=mailto:admin@contohdomainsaya.com"
www                                                                 IN         CNAME contohdomainsaya.com.

Kemudian simpan dengan cara tekan tombol kombinasi ctrl+X, lalu tekan Y, kemudian tekan tombol enter

Setelah disave selanjutnya kita membuat file /var/named/2.168.192.rev
[root@wcloud ~]# nano /var/named/2.168.192.rev
Kemudian isi seperti berikut (note : mohon sesuaikan IP dan domainnya seperti yang real)

$TTL         3600
@                             IN SOA             contohdomainsaya.com. root.contohdomainsaya.com. (
100 ; serial
1H ; refresh
1M ; retry
1W ; expiry

1D) ; minimum
@                             IN         NS         ns1.contohdomainsaya.com.
@                             IN         NS         ns2.contohdomainsaya.com.
1                               IN         PTR       hostname.contohdomainsaya.com.

Kemudian simpan dengan cara tekan tombol kombinasi ctrl+X, lalu tekan Y, kemudian tekan tombol enter.

Setelah disave selanjutnya start service Bind nya agar servicenya berjalan:
[root@wcloud ~]# systemctl start named
Kemudian kita enabled agar auto start saat setelah mesin boot
[root@wcloud ~]# systemctl enable named
Untuk melihat status service Bindnya :
[root@wcloud ~]# systemctl status named
Jika tampilannya sebagai berikut, berarti service Bind atau DNS server kita berjalan dengan normal :

[root@wcloud ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2009-01-01 10:10:03 WIB; 1min 14s ago
Main PID: 6408 (named)
CGroup: /system.slice/named.service
└─6408 /usr/sbin/named -u named

Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: using default UDP/IPv6 port range: [1024, 65535]
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: listening on IPv4 interface enp6s0, 192.168.2.252#53
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: generating session key for dynamic DNS
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: sizing zone task pool based on 8 zones
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: using built-in DLV key for view _default
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: set up managed keys zone for view _default, file '/var/named/dynamic/managed-keys.bind'
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: command channel listening on 127.0.0.1#953
Jan 01 10:10:03 wcloud.domainsaya.net named[6408]: command channel listening on ::1#953
Jan 01 10:10:03 wcloud.domainsaya.net systemd[1]: Started Berkeley Internet Name Domain (DNS).
[root@wcloud ~]

Langkah selanjutnya kita coba dig domain yang barusan kita tambahkan tadi (contohdomainsaya.com) dengan perintah sebagai berikut ini :
[root@wcloud ~]# dig @192.168.2.252 contohdomainsaya.com
Dan jika memunculkan tampilan sebagai berikut itu artinya sudah berjalan dengan baik :
DNS Server dan VirtualHost Di Centos7

Kemudian kita izinkan port 53 (port service DNS server) dari sisi firewallnya dengan cara sebagai berikut ini:
[root@wcloud ~]# firewall-cmd --zone=public --add-port=53/tcp --permanent
success
[root@wcloud ~]# firewall-cmd --zone=public --add-port=53/udp --permanent
success
[root@wcloud ~]# firewall-cmd --reload
success
[root@wcloud ~]#

Untuk testing selanjutnya, silahkan ubah salah satu DNS pada settingan IP PC/Laptop yang anda gunakan dengan menggunakan IP server yang barusan kita konfigurasi (192.168.2.252), lalu coba buka cmd dan ketik : ping contohdomainsaya.com dan jika hasilnya reply seperti gambar di bawah berarti kita sudah berhasil :
DNS Server dan VirtualHost Di Centos7

Konfigurasi VirtualHost

Jika pada tutorial di atas kita sudah berhasil menginstall dan setting DNS server, maka pada tutorial ini kita mencoba untuk mengkonfigurasi VirtualHost pada web server kita. Untuk mengikuti tutorial ini maka diwajibkan terlebih dahulu kita sudah berhasil membuat web server seperti pada tutorial sebelumnya Tutorial Instal LAMP di Centos 7 dan juga DNS server seperti pada tutorial di atas karena untuk akses yang sudah berbasis VirtualHost harus menggunakan nama domain.

Selanjutnya kita membuat direktory/folder untuk kebutuhan tempat meletak data-data web kita nantinya atau sebagai root direktori Html dari website kita caranya yaitu sebagai berikut :
[root@wcloud ~]# mkdir -p /var/www/contohdomainsaya.com/public_html
Kemudian rubah permissionnya dengan user apache dan group apache dengan perintah sebagai berikut:
[root@wcloud ~]# chown -R apache:apache /var/www/contohdomainsaya.com/public_html
[root@wcloud ~]# chmod 755 /var/www
Untuk contoh awal kita buat file index.php di dalam direktori /var/www/contohdomainsaya.com/public_html untuk memastikan berhasil atau tidaknya ketika kita melakukan testing:
[root@wcloud ~]# nano /var/www/contohdomainsaya.com/public_html/index.php
Lalu isi dengan script sebagai berikut ini :

<html>
<head>
<title>This My First Page Learning Build Web and DNS Server</title>
</head>
<body>
<?php echo '<p>Hello World, who am i ?</p>'; ?>
</body>
</html>

Kemudian simpan dengan cara tekan tombol kombinasi ctrl+X, lalu tekan Y, kemudian tekan tombol enter.

Kemudian edit file /etc/httpd/conf/httpd.conf dan sesuaikan seperti baris berikut :
[root@wcloud ~]# nano /etc/httpd/conf/httpd.conf
Pastikan listen dan virtualhostnya ke port 80 (http)
Listen 80
NameVirtualHost *:80
Lalu tambahkan script berikut dan letak di atas baris ini : IncludeOptional conf.d/*.conf

<VirtualHost *:80>
ServerAdmin webmaster@contohdomainsaya.com
DocumentRoot /var/www/contohdomainsaya.com/public_html
ServerName www.contohdomainsaya.com
ServerAlias contohdomainsaya.com
</VirtualHost>

Kemudian simpan dengan cara tekan tombol kombinasi ctrl+X, lalu tekan Y, kemudian tekan tombol enter,

Kemudian restart service web servernya dengan perintah :
[root@wcloud ~]# systemctl restart httpd
Dan jika tidak ada error maka kita sudah berhasil membuat VirtualHost di web server kita dengan nama domain contohdomainsaya.com,
Untuk memastikan sudah berjalan normal, silahkan akses domain anda dari web browser dengan mengetik contohdomainsaya.com (untuk nama domainnya sesuaikan dengan yang anda buat) dan jika muncul tampilan sesuai yang telah kita tentukan pada script di atas tadi (seperti gambar di bawah) maka kita sudah berhasil :
DNS Server dan VirtualHost Di Centos7

Selamat, sampai di sini kita telah berhasil membangun sebuah web server dan DNS server di Linux Centos. Selanjutnya tinggal kita pergunakan dan kembangkan.

 

Selamat Mencoba dan Semoga Berhasil

 

[Heateor-SC style="background-color:#008B8B;"]