Membangun server DNS pada CentOS 7

DNS kepanjangan dari Domain Name System adalah sebuah sistem penamaan pada jaringan komputer, yang berfungsi memberikan nama pada setiap Host atau Komputer dan domain (daerah) yang ada di jaringan, dengan ini kita dengan mudah mengingat komputer menggunakan nama yang dikenali manusia, tidak seperti IP Address yang merupakan angka dan mungkin sulit diingat.

Sedangkan DNS Server adalah server yang menyediakan layanan DNS, server ini yang menyimpan database nama domain ataupun komputer, dan akan menerjemahkan dari nama domain menjadi IP Address jika ada yang meminta. Beberapa poin penting dari DNS Server :

  • DNS dapat memberi nama sebuah domain atau daerah (bisa disebut zone atau zona) yang terdiri dari banyak komputer didalamnya.
  • Dari satu nama domain dapat dibuat sub-domain yang bisa digunakan untuk menamai suatu komputer/server (seperti www,web,blog,dll).
  • Menggunakan protokol UDP#53 dalam pengiriman pesan DNS nya, jika ukuran pesannya besar bisa saja menggunakan TCP#53.
  • Dalam satu database zone/domain terdiri dari beberapa jenis record yang memiliki perannya masing-masing. Record DNS paling umum :
    • A atau AAAA berfungsi untuk menerjemahkan Domain/Sub-domain > IP Address.
    • PTR kebalikan dari A.
    • NS berisi informasi server dns yang memiliki zone tersebut.
    • MX untuk mengarahkan ke mail server yang ada didomain ini.
    • CNAME alias atau nama lain dari sebuah nama.
Pada Sistem Operasi Linux CentOS 7 aplikasi yang menjalankan service DNS adalah BIND, Berkeley Internet Name Domain, aplikasi yang dapat membangun sebuah DNS server pada hampir semua distro linux termasuk CentOS.
Sekarang kita akan mencoba mengkonfigurasi DNS Server berdasarkan topologi dibawah ini :

Server DLP1

  1. Pertama install terlebih dahulu paket aplikasi bind dari repositori default centos atau repositori pada DVD.
  2. [root@dlp1 ~]# yum -y install bind bind-utils
  3. Konfigurasi BIND, edit file /etc/named.conf menggunakan editor nano.
  4. [root@dlp1 ~]# nano /etc/named.conf
    • Atur listen, client yang boleh melakukan query ke server, dan server slave yang boleh mentransfer dari siapa saja. Atau bisa diatur sendiri siapa saja yang boleh dan tidak boleh berdasarkan IP Address.
    • options {
      listen-on port 53 { any; };
      listen-on-v6 port 53 { none; };
      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; };
      allow-transfer { any; };
    • Pindah pada baris paling bawah sebelum tulisan Include untuk menambahkan forward zone jaringan.org dan reverse zone untuk IP Network 172.18.0.0/25.
    • zone "." IN {
      type hint;
      file "named.ca";
      };

      zone "jaringan.org" IN { //Forward Zone
      type master; //Master atau server DNS utama
      file "/var/named/db.jaringan"; //File database zone
      };

      zone "0.18.172.in-addr.arpa" IN { //Reverse Zone
      type master;
      file "/var/named/db.18";
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
      //Penulisan IP Network pada reverse zone harus dibalik dan ditambahkan in-addr.arpa
      //Contoh jika IP Network menggunakan subnetting :
      //IP Network = 192.168.10.128
      //Netmask = 255.255.255.128
      //Range = 129 - 254
      //Maka cara penulisannya tinggal dibalik saja yaitu :
      //128.0.168.192.in-addr.arpa

    • Save file tersebut
  5. Membuat database untuk zone forward jaringan.org dan zone reverse 172.18.0.0/25, lokasi file database sesuai pada konfigurasi sebelumnya di /etc/named.conf
    • Salin saja contoh file database kosong yang telah ada.
    • [root@dlp1 ~]# cd /var/named/
      [root@dlp1 named]# cp named.empty db.jaringan
      [root@dlp1 named]# cp named.empty db.18
    • Edit file zone forward db.jaringan untuk mengisi database zone forward tersebut, ganti beberapa tulisan menjadi seperti dibawah ini.
    • [root@dlp1 named]# nano db.jaringan
      $TTL 3H
      @ IN SOA jaringan.org root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      @ IN A 172.18.0.10 #root domain
      #sub-domain server dan IP Address-nya
      dlp1    IN A 172.18.0.10 #sub-domain
      node01 IN A 172.18.0.11
      node02 IN A 172.18.0.12
      #cname untuk redirect dari satu domain/sub-dom ke domain/sub-dom lain.
      www IN CNAME dlp1.jaringan.org. #www alias server dlp1
      mail IN CNAME dlp1.jaringan.org.
      smb IN CNAME node01.jaringan.org.
      ftp IN CNAME node02.jaringan.org.
      #sebagai informasi lokasi mail server dari domain "jaringan.org"
      IN MX 0 node01.jaringan.org. #Lokasi mail server

    • Kemudian untuk reverse zone, edit file database reverse zone yang sudah di salin sebelumnya.
    • $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      #Memetakan IP Address ke domain/sub-dom
      #Oktet terakhir IP Address server
      10 IN PTR jaringan.org.
      10 IN PTR dlp1.jaringan.org.
      11 IN PTR node01.jaringan.org.
      12 IN PTR node02.jaringan.org.

  6. Atur permission pada file database yang telah dibuat agar dapat dibaca oleh bind.
  7. [root@dlp1 named]# chown named:named db.jaringan 
    [root@dlp1 named]# chown named:named db.18
  8. Cek sintaks konfigurasi file yang telah diedit tadi apakah ada kesalahan dengan menjalankan perintah dibawah ini.
  9. [root@dlp1 named]# named-checkconf -z
    zone jaringan.org/IN: loaded serial 0
    zone 0.18.172.in-addr.arpa/IN: loaded serial 0

    zone localhost.localdomain/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 0.in-addr.arpa/IN: loaded serial 0
  10. Restart proses named bind untuk memperbarui konfigurasi.
  11. [root@dlp1 ~]# systemctl restart named
    [root@dlp1 ~]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
  12. Buka akses firewall.
  13. [root@dlp1 ~]# firewall-cmd --add-service=dns --permanent
    success
    [root@dlp1 ~]# firewall-cmd --reload
    success

Setelah itu testing dns server apakah sudah dapat menerjemahkan Domain ke IP Address.

[root@dlp1 ~]# nslookup jaringan.org
Server: 172.18.0.10
Address: 172.18.0.10#53

Name: jaringan.org
Address: 172.18.0.10

[root@dlp1 ~]# nslookup www.jaringan.org
Server: 172.18.0.10
Address: 172.18.0.10#53

www.jaringan.org canonical name = dlp1.jaringan.org.
Name: dlp1.jaringan.org
Address: 172.18.0.10

[root@dlp1 ~]# nslookup 172.18.0.10
Server: 172.18.0.10
Address: 172.18.0.10#53

10.0.18.172.in-addr.arpa name = jaringan.org.
10.0.18.172.in-addr.arpa name = dlp1.jaringan.org.

Jika tidak ada error tandanya konfigurasi sudah berhasil.

Membangun server DNS pada CentOS 7

DNS kepanjangan dari Domain Name System adalah sebuah sistem penamaan pada jaringan komputer, yang berfungsi memberikan nama pada setiap Host atau Komputer dan domain (daerah) yang ada di jaringan, dengan ini kita dengan mudah mengingat komputer menggunakan nama yang dikenali manusia, tidak seperti IP Address yang merupakan angka dan mungkin sulit diingat.

Sedangkan DNS Server adalah server yang menyediakan layanan DNS, server ini yang menyimpan database nama domain ataupun komputer, dan akan menerjemahkan dari nama domain menjadi IP Address jika ada yang meminta. Beberapa poin penting dari DNS Server :

  • DNS dapat memberi nama sebuah domain atau daerah (bisa disebut zone atau zona) yang terdiri dari banyak komputer didalamnya.
  • Dari satu nama domain dapat dibuat sub-domain yang bisa digunakan untuk menamai suatu komputer/server (seperti www,web,blog,dll).
  • Menggunakan protokol UDP#53 dalam pengiriman pesan DNS nya, jika ukuran pesannya besar bisa saja menggunakan TCP#53.
  • Dalam satu database zone/domain terdiri dari beberapa jenis record yang memiliki perannya masing-masing. Record DNS paling umum :
    • A atau AAAA berfungsi untuk menerjemahkan Domain/Sub-domain > IP Address.
    • PTR kebalikan dari A.
    • NS berisi informasi server dns yang memiliki zone tersebut.
    • MX untuk mengarahkan ke mail server yang ada didomain ini.
    • CNAME alias atau nama lain dari sebuah nama.
Pada Sistem Operasi Linux CentOS 7 aplikasi yang menjalankan service DNS adalah BIND, Berkeley Internet Name Domain, aplikasi yang dapat membangun sebuah DNS server pada hampir semua distro linux termasuk CentOS.
Sekarang kita akan mencoba mengkonfigurasi DNS Server berdasarkan topologi dibawah ini :

Server DLP1

  1. Pertama install terlebih dahulu paket aplikasi bind dari repositori default centos atau repositori pada DVD.
  2. [root@dlp1 ~]# yum -y install bind bind-utils
  3. Konfigurasi BIND, edit file /etc/named.conf menggunakan editor nano.
  4. [root@dlp1 ~]# nano /etc/named.conf
    • Atur listen, client yang boleh melakukan query ke server, dan server slave yang boleh mentransfer dari siapa saja. Atau bisa diatur sendiri siapa saja yang boleh dan tidak boleh berdasarkan IP Address.
    • options {
      listen-on port 53 { any; };
      listen-on-v6 port 53 { none; };
      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; };
      allow-transfer { any; };
    • Pindah pada baris paling bawah sebelum tulisan Include untuk menambahkan forward zone jaringan.org dan reverse zone untuk IP Network 172.18.0.0/25.
    • zone "." IN {
      type hint;
      file "named.ca";
      };

      zone "jaringan.org" IN { //Forward Zone
      type master; //Master atau server DNS utama
      file "/var/named/db.jaringan"; //File database zone
      };

      zone "0.18.172.in-addr.arpa" IN { //Reverse Zone
      type master;
      file "/var/named/db.18";
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
      //Penulisan IP Network pada reverse zone harus dibalik dan ditambahkan in-addr.arpa
      //Contoh jika IP Network menggunakan subnetting :
      //IP Network = 192.168.10.128
      //Netmask = 255.255.255.128
      //Range = 129 - 254
      //Maka cara penulisannya tinggal dibalik saja yaitu :
      //128.0.168.192.in-addr.arpa

    • Save file tersebut
  5. Membuat database untuk zone forward jaringan.org dan zone reverse 172.18.0.0/25, lokasi file database sesuai pada konfigurasi sebelumnya di /etc/named.conf
    • Salin saja contoh file database kosong yang telah ada.
    • [root@dlp1 ~]# cd /var/named/
      [root@dlp1 named]# cp named.empty db.jaringan
      [root@dlp1 named]# cp named.empty db.18
    • Edit file zone forward db.jaringan untuk mengisi database zone forward tersebut, ganti beberapa tulisan menjadi seperti dibawah ini.
    • [root@dlp1 named]# nano db.jaringan
      $TTL 3H
      @ IN SOA jaringan.org root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      @ IN A 172.18.0.10 #root domain
      #sub-domain server dan IP Address-nya
      dlp1    IN A 172.18.0.10 #sub-domain
      node01 IN A 172.18.0.11
      node02 IN A 172.18.0.12
      #cname untuk redirect dari satu domain/sub-dom ke domain/sub-dom lain.
      www IN CNAME dlp1.jaringan.org. #www alias server dlp1
      mail IN CNAME dlp1.jaringan.org.
      smb IN CNAME node01.jaringan.org.
      ftp IN CNAME node02.jaringan.org.
      #sebagai informasi lokasi mail server dari domain "jaringan.org"
      IN MX 0 node01.jaringan.org. #Lokasi mail server

    • Kemudian untuk reverse zone, edit file database reverse zone yang sudah di salin sebelumnya.
    • $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      #Memetakan IP Address ke domain/sub-dom
      #Oktet terakhir IP Address server
      10 IN PTR jaringan.org.
      10 IN PTR dlp1.jaringan.org.
      11 IN PTR node01.jaringan.org.
      12 IN PTR node02.jaringan.org.

  6. Atur permission pada file database yang telah dibuat agar dapat dibaca oleh bind.
  7. [root@dlp1 named]# chown named:named db.jaringan 
    [root@dlp1 named]# chown named:named db.18
  8. Cek sintaks konfigurasi file yang telah diedit tadi apakah ada kesalahan dengan menjalankan perintah dibawah ini.
  9. [root@dlp1 named]# named-checkconf -z
    zone jaringan.org/IN: loaded serial 0
    zone 0.18.172.in-addr.arpa/IN: loaded serial 0

    zone localhost.localdomain/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 0.in-addr.arpa/IN: loaded serial 0
  10. Restart proses named bind untuk memperbarui konfigurasi.
  11. [root@dlp1 ~]# systemctl restart named
    [root@dlp1 ~]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
  12. Buka akses firewall.
  13. [root@dlp1 ~]# firewall-cmd --add-service=dns --permanent
    success
    [root@dlp1 ~]# firewall-cmd --reload
    success

Setelah itu testing dns server apakah sudah dapat menerjemahkan Domain ke IP Address.

[root@dlp1 ~]# nslookup jaringan.org
Server: 172.18.0.10
Address: 172.18.0.10#53

Name: jaringan.org
Address: 172.18.0.10

[root@dlp1 ~]# nslookup www.jaringan.org
Server: 172.18.0.10
Address: 172.18.0.10#53

www.jaringan.org canonical name = dlp1.jaringan.org.
Name: dlp1.jaringan.org
Address: 172.18.0.10

[root@dlp1 ~]# nslookup 172.18.0.10
Server: 172.18.0.10
Address: 172.18.0.10#53

10.0.18.172.in-addr.arpa name = jaringan.org.
10.0.18.172.in-addr.arpa name = dlp1.jaringan.org.

Jika tidak ada error tandanya konfigurasi sudah berhasil.

Cara Mengganti Nama Interface Network ke eth0 Pada Ubuntu 16.04 (Xenial Xerus)

Assalamualaikum gaes, udah lama nih ga update tulisan di web aku ini hehe. Nah kali ini saya akan memberikan informasi bagaimana cara melakukan penggantian nama interface network pada Ubuntu 16.04.

Seperti yang sudah kita ketahui bersama bahwa Ubuntu telah merilis Ubuntu 16.04 (Xenial Xerus) sebagai versi baru dari varian LTS (Long Term Support). Dan disini ada hal yang menarik jika kita pertama kali mencoba Ubuntu 16.04. Apabila kita mencoba melakukan instalasi pada VMware Workstation atau VirtualBox kita akan mendapati bahwa nama interface network kita adalah ens33. Kemudian kita pasti akan bertanya tanya, kok namanya berubah jadi ens33 yaa? Biasanya kan eth0 kek gitu ada apa nih? Trus gimana nih cara ngerubahnya?.

Oke, tenang-tenang. Sebenarnya itu adalah format default network interface yang baru dari Ubuntu. Tapi mungkin kita ini sudah terbiasa dengan format eth0. Nah, untuk mengubahnya berikut caranya :

  1. Silahkan login dan pakai akses root.
  2. Kemudian cek interface dengan perintah “ip a”.
    # ip a
    
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:1f:ee:72 brd ff:ff:ff:ff:ff:ff
        inet 100.100.100.10/24 brd 100.100.100.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe1f:ee72/64 scope link 
           valid_lft forever preferred_lft forever
    
  3. Kita juga bisa mengecek nama interface yang dibuat system pada saat reboot dengan perintah “dmesg | grep eth”.
    # dmesg | grep eth
    
    [    3.050064] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:1f:ee:72
    [    3.050074] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
    [    3.057410] e1000 0000:02:01.0 ens33: renamed from eth0
    
  4. Berikutnya silahkan edit grub file agar interface kita berubah ke eth0. Buka dulu grub file dengan perintah ini :
    # sudo nano /etc/default/grub

    Dan rubahlah pada bagian “GRUB_CMDLINE_LINUX” yang awalnya seperti ini :

    GRUB_CMDLINE_LINUX=""

    Menjadi seperti ini :

    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  5. Setelah itu generate baru grub file nya :
    # sudo grub-mkconfig -o /boot/grub/grub.cfg
    
    Generating grub configuration file ...
    Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
    Found linux image: /boot/vmlinuz-4.4.0-15-generic
    Found initrd image: /boot/initrd.img-4.4.0-15-generic
    Found memtest86+ image: /memtest86+.elf
    Found memtest86+ image: /memtest86+.bin
    done
    
  6. Ubahlah pada “/etc/network/interfaces” dan ganti nama interface menjadi eth0 :
    # nano /etc/network/interfaces
    
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
            address 100.100.100.10
            netmask 255.255.255.0
            gateway 100.100.100.2
            dns-nameserver 8.8.8.8
  7. Terakhir reboot, dan cek kembali dengan perintah “ip a” atau “ifconfig”. Maka hasilnya nama interface telah kembali menjadi eth0.
    # ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:1f:ee:72  
              inet addr:100.100.100.10  Bcast:100.100.100.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe1f:ee72/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:7 errors:0 dropped:0 overruns:0 frame:0
              TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:676 (676.0 B)  TX bytes:1184 (1.1 KB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:160 errors:0 dropped:0 overruns:0 frame:0
              TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:11840 (11.8 KB)  TX bytes:11840 (11.8 KB)
    # ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:1f:ee:72 brd ff:ff:ff:ff:ff:ff
        inet 100.100.100.10/24 brd 100.100.100.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe1f:ee72/64 scope link 
           valid_lft forever preferred_lft forever
    

    Nah, konfigurasi telah selesai. Dan kini kita telah mempunyai nama dengan style yang lama hehe. Emang terkadang beberapa hal itu Old but Gold haha.

    Okay mungkin itu dulu yang bisa saya sampaikan. Jumpa lagi di lain tulisan yaa.
    Wassalamualaikum gaes

[Lab 8.10] Reserve Proxy load balance pada CentOS 7

Sebelumnya saya sudah membahas konfigurasi reserve proxy, yaitu sebuah modules pada apache yang memungkinkan sebuah server menjadi proxy untuk meneruskan permintaan web dari client menuju web server yang ada di belakang server proxy tersebut, tapi pada konfigurasi sebelumnya hanya terdapat satu server saja, kita dapat melakukan load balance pada Web server yang lebih dari satu.

Server controller atau proxy akan mengirimkan secara merata pada setiap Web Server yang ada, misalnya permintaan pertama dialihkan ke node1 dan permintaan kedua akan dialihkan ke node2.

Controller

Kita konfigurasi server ini untuk mengaktifkan mod_proxy agar dapat meneruskan permintaan dari Client menuju Web Server.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd-controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Cek apakah modules sudah aktif, secara default sudah aktif.
  • [root@dz-httpd-controller ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf 
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_express_module modules/mod_proxy_express.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
  • Buat file konfigurasi untuk mod_proxy pada Server ini. dan juga isi daftar domain Web Server yang akan diload balance.
  • [root@dz-httpd-controller ~]# vi /etc/httpd/conf.d/r_proxy.conf 
    <IfModule mod_proxy.c>
    ProxyRequests Off
    <Proxy *>
    Require all granted
    </Proxy>
    # backend server and forwarded path
    ProxyPass / balancer://cluster lbmethod=byrequests
    <proxy balancer://cluster>
    BalancerMember http://node1.centos.dz/ loadfactor=1
    BalancerMember http://node2.centos.dz/ loadfactor=1

    </proxy>
    </IfModule>

  • Restart layanan httpd untuk memperbarui semua konfigurasi.
  • systemctl restart httpd

Node1

Server ini adalah web server sebenarnya, pastikan sudah memiliki domain untuk server ini.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.41
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita buat konten HTML pada server ini yang nantinya akan diakses.
  • [root@dz-httpd-node1 ~]# vi /var/www/html/index.html 
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h3>NODE1 WEB SERVER</h3>

Node2

Server ini adalah web server sebenarnya, pastikan sudah memiliki domain untuk server ini.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.42
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita buat konten HTML pada server ini yang nantinya akan diakses.
  • [root@dz-httpd-node1 ~]# vi /var/www/html/index.html 
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h3>NODE2 WEB SERVER</h3>

Kemudian testing pada client dengan mengakses server proxy lewat web browser.

Dan kemudian kita lakukan refresh dan yang muncul adalah tampilan pada web server yang satunya lagi.

[Lab 8.10] Reserve Proxy load balance pada CentOS 7

Sebelumnya saya sudah membahas konfigurasi reserve proxy, yaitu sebuah modules pada apache yang memungkinkan sebuah server menjadi proxy untuk meneruskan permintaan web dari client menuju web server yang ada di belakang server proxy tersebut, tapi pada konfigurasi sebelumnya hanya terdapat satu server saja, kita dapat melakukan load balance pada Web server yang lebih dari satu.

Server controller atau proxy akan mengirimkan secara merata pada setiap Web Server yang ada, misalnya permintaan pertama dialihkan ke node1 dan permintaan kedua akan dialihkan ke node2.

Controller

Kita konfigurasi server ini untuk mengaktifkan mod_proxy agar dapat meneruskan permintaan dari Client menuju Web Server.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd-controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Cek apakah modules sudah aktif, secara default sudah aktif.
  • [root@dz-httpd-controller ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf 
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_express_module modules/mod_proxy_express.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
  • Buat file konfigurasi untuk mod_proxy pada Server ini. dan juga isi daftar domain Web Server yang akan diload balance.
  • [root@dz-httpd-controller ~]# vi /etc/httpd/conf.d/r_proxy.conf 
    <IfModule mod_proxy.c>
    ProxyRequests Off
    <Proxy *>
    Require all granted
    </Proxy>
    # backend server and forwarded path
    ProxyPass / balancer://cluster lbmethod=byrequests
    <proxy balancer://cluster>
    BalancerMember http://node1.centos.dz/ loadfactor=1
    BalancerMember http://node2.centos.dz/ loadfactor=1

    </proxy>
    </IfModule>

  • Restart layanan httpd untuk memperbarui semua konfigurasi.
  • systemctl restart httpd

Node1

Server ini adalah web server sebenarnya, pastikan sudah memiliki domain untuk server ini.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.41
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita buat konten HTML pada server ini yang nantinya akan diakses.
  • [root@dz-httpd-node1 ~]# vi /var/www/html/index.html 
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h3>NODE1 WEB SERVER</h3>

Node2

Server ini adalah web server sebenarnya, pastikan sudah memiliki domain untuk server ini.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.42
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita buat konten HTML pada server ini yang nantinya akan diakses.
  • [root@dz-httpd-node1 ~]# vi /var/www/html/index.html 
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h3>NODE2 WEB SERVER</h3>

Kemudian testing pada client dengan mengakses server proxy lewat web browser.

Dan kemudian kita lakukan refresh dan yang muncul adalah tampilan pada web server yang satunya lagi.

[Lab 8.8] Melihat statistik Web Site dengan AWStats pada CentOS 7

Ketika kita membuat sebuah web server publik yang dapat diakses, pasti terdapat pengujung pengujung web server kita, jika kita ingin mengetahui statistik pengunjung web server kita maka harus menginstall aplikasi Analyzer pada Web Server tersebut.

Aplikasi statistik yang saya praktekan kali ini adalah AWStats yang ada di OS CentOS 7, aplikasi ini tidak ada di repo lokal tetapi harus menggunakan repo EPEL terlebih dahulu, berikut ini adalah sedikit informasi server yang akan saya konfigurasi :

    Sistem Operasi : Linux CentOS 7
    IP Address : 192.168.56.40 (enp0s3)
    Domain Name : centos.dz

Repo EPEL

Kita aktifkan repo EPEL terlebih dahulu agar dapat menginstall AWStats.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Install wget, aplikasi untuk mendownload sesuatu.
  • yum install wget
  • Kemudian jalankan perintah ini
  • wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
    rpm -ivh epel-release-7-9.noarch.rpm

Web Server

Kita buat sebuah Web Server dengan Apache.

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita lakukan testing pada Client apakah Server sudah dapat melayani permintaan Web.
  • Untuk menghilangkan konten default diatas kita harus melakukan beberapa hal, pertama hapus file konfigurasi welcome.conf
  • rm /etc/httpd/conf.d/welcome.conf
  • Lalu buat file HTML pada direktori /var/www/html dengan nama index.html
  • [root@dz-httpd ~]# vi /var/www/html/index.html
    <h1>WEBSITE HTTPD TESTING 123</h1>
  • Kemudian restart layanan httpd untuk memperbarui konfigurasi Web Server.
  • systemctl restart httpd
  • Kembali kita lihat hasilnya pada Client.

AWStats

Kemudian kita lanjut pada konfigurasi AWStats.

  • Install AWStats dari repository EPEL.
  • yum --enablerepo=epel -y install awstats
  • Kemudian rename konfigurasi yang telah otomatis terbuat dengan hostname menjadi alamat URL Web server.
  • mv /etc/awstats/awstats.dz-httpd.conf /etc/awstats/awstats.www.centos.dz.conf
  • Lalu edit file konfigurasi tersebut.
  • [root@dz-httpd ~]# vi /etc/awstats/awstats.www.centos.dz.conf 

    SiteDomain="www.centos.dz"
    HostAliases="localhost 127.0.0.1 REGEX[^.*centos\.dz$] REGEX[^192\.168\.56\.]"

  • Konfigurasi web AWStats, untuk mengizinkan IP Address client agar dapat mengakses AWStats.
  • [root@dz-httpd ~]# vi /etc/httpd/conf.d/awstats.conf

    # Apache 2.4
    Require ip 192.168.56.0/24

  • Restart layanan httpd untuk memperbarui semua konfigurasi.
  • systemctl restart httpd
  • Kemudian kita lakukan update konfigurasi pada AWStats.
  • [root@dz-httpd ~]# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.centos.dz -update
    Create/Update database for config "/etc/awstats/awstats.www.centos.dz.conf" by AWStats version 7.4 (build 20150714)
    From data in log file "/var/log/httpd/access_log"...
    Phase 1 : First bypass old records, searching new record...
    Searching new records from beginning of log file...
    Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
    Jumped lines in file: 0
    Parsed lines in file: 32
    Found 0 dropped records,
    Found 0 comments,
    Found 0 blank records,
    Found 0 corrupted records,
    Found 0 old records,
    Found 32 new qualified records.
  • Pada client kita buka http://[url]/awstats/awstats.pl untuk melihat statistik.

[Lab 8.8] Melihat statistik Web Site dengan AWStats pada CentOS 7

Ketika kita membuat sebuah web server publik yang dapat diakses, pasti terdapat pengujung pengujung web server kita, jika kita ingin mengetahui statistik pengunjung web server kita maka harus menginstall aplikasi Analyzer pada Web Server tersebut.

Aplikasi statistik yang saya praktekan kali ini adalah AWStats yang ada di OS CentOS 7, aplikasi ini tidak ada di repo lokal tetapi harus menggunakan repo EPEL terlebih dahulu, berikut ini adalah sedikit informasi server yang akan saya konfigurasi :

    Sistem Operasi : Linux CentOS 7
    IP Address : 192.168.56.40 (enp0s3)
    Domain Name : centos.dz

Repo EPEL

Kita aktifkan repo EPEL terlebih dahulu agar dapat menginstall AWStats.

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Install wget, aplikasi untuk mendownload sesuatu.
  • yum install wget
  • Kemudian jalankan perintah ini
  • wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
    rpm -ivh epel-release-7-9.noarch.rpm

Web Server

Kita buat sebuah Web Server dengan Apache.

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Kita lakukan testing pada Client apakah Server sudah dapat melayani permintaan Web.
  • Untuk menghilangkan konten default diatas kita harus melakukan beberapa hal, pertama hapus file konfigurasi welcome.conf
  • rm /etc/httpd/conf.d/welcome.conf
  • Lalu buat file HTML pada direktori /var/www/html dengan nama index.html
  • [root@dz-httpd ~]# vi /var/www/html/index.html
    <h1>WEBSITE HTTPD TESTING 123</h1>
  • Kemudian restart layanan httpd untuk memperbarui konfigurasi Web Server.
  • systemctl restart httpd
  • Kembali kita lihat hasilnya pada Client.

AWStats

Kemudian kita lanjut pada konfigurasi AWStats.

  • Install AWStats dari repository EPEL.
  • yum --enablerepo=epel -y install awstats
  • Kemudian rename konfigurasi yang telah otomatis terbuat dengan hostname menjadi alamat URL Web server.
  • mv /etc/awstats/awstats.dz-httpd.conf /etc/awstats/awstats.www.centos.dz.conf
  • Lalu edit file konfigurasi tersebut.
  • [root@dz-httpd ~]# vi /etc/awstats/awstats.www.centos.dz.conf 

    SiteDomain="www.centos.dz"
    HostAliases="localhost 127.0.0.1 REGEX[^.*centos\.dz$] REGEX[^192\.168\.56\.]"

  • Konfigurasi web AWStats, untuk mengizinkan IP Address client agar dapat mengakses AWStats.
  • [root@dz-httpd ~]# vi /etc/httpd/conf.d/awstats.conf

    # Apache 2.4
    Require ip 192.168.56.0/24

  • Restart layanan httpd untuk memperbarui semua konfigurasi.
  • systemctl restart httpd
  • Kemudian kita lakukan update konfigurasi pada AWStats.
  • [root@dz-httpd ~]# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.centos.dz -update
    Create/Update database for config "/etc/awstats/awstats.www.centos.dz.conf" by AWStats version 7.4 (build 20150714)
    From data in log file "/var/log/httpd/access_log"...
    Phase 1 : First bypass old records, searching new record...
    Searching new records from beginning of log file...
    Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
    Jumped lines in file: 0
    Parsed lines in file: 32
    Found 0 dropped records,
    Found 0 comments,
    Found 0 blank records,
    Found 0 corrupted records,
    Found 0 old records,
    Found 32 new qualified records.
  • Pada client kita buka http://[url]/awstats/awstats.pl untuk melihat statistik.

[lab 8.6] Membuat server HTTPS pada CentOS 7

Web Server adalah server yang menyediakan layanan konten website pada Jaringan Internet, saat Web Server menerima permintaan maka Web Server akan mengirimkannya pada yang meminta lewat Jaringan Publik atau Internet, konten yang dikirim lewat jaringan tentunya dapat terlihat oleh Orang lain atau mata-mata, karena melewati jaringan publik, untuk itu kita perlu mengamankan konten yang dikirim agar tidak dapat dilihat oleh orang.

Apache2 memiliki fitur HTTPS atau HTTP SSL/TLS, adalah protokol HTTP yang dilengkapi dengan Enkripsi menggunakan protocol SSL/TLS, dengan ini ketika Web Server dan Client bertukar informasi, maka Informasinya akan di enkripsi atau isinya dikunci dengan cara diubah menjadi tulisan aneh yang tidak dapat dibaca oleh manusia, sehingga ketika dikirim lewat Jaringan Internet tidak dapat dibaca oleh orang lain.

Dengan menggunakan HTTPS maka Server harus memiliki Sertifikat CA (Certificate Authority) yang isinya adalah informasi dari Server, fungsinya agar server dapat melakukan Enkripsi data, didalam CA terdapat Public Key atau kunci untuk mengenkripsi data, kemudian data yang dienkripsi tersebut hanya bisa dibaca oleh Client yang memiliki Private Key.

Berikut ini adalah sedikit informasi dari Server yang akan saya konfigurasi :

    Sistem Operasi : Linux CentOS 7
    IP Address : 192.168.56.40 (enp0s3)
    Domain Name : centos.dz

Dan sekarang kita akan mulai melakukannya pada langkah langkah dibawah ini :

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7, dan juga mod_ssl agar server dapat menjalankan fungsi ssl.
  • yum install httpd mod_ssl
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload

Membuat Certificate

Kita harus membuat sebuah sertifikat, public key, private key yang diperlukan SSL.

  • Kita pindah ke folder untuk membuat sertifikat, dan kita buat didalam folder ini.
  • [root@dz-httpd ~]# cd /etc/pki/tls/certs
    [root@dz-httpd certs]# make server.key
    umask 77 ; \
    /usr/bin/openssl genrsa -aes128 2048 > server.key
    Generating RSA private key, 2048 bit long modulus
    ..............................................................................................+++
    ..+++
    e is 65537 (0x10001)
    Enter pass phrase: #ketikan passphrase
    Verifying - Enter pass phrase: #konfirmasi
    [root@dz-httpd certs]# openssl rsa -in server.key -out server.key
    Enter pass phrase for server.key:
    writing RSA key
    [root@dz-httpd certs]# make server.csr
    umask 77 ; \
    /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:ID
    State or Province Name (full name) []:JABAR
    Locality Name (eg, city) [Default City]:JONGGOL
    Organization Name (eg, company) [Default Company Ltd]:TKJ
    Organizational Unit Name (eg, section) []:TKJ
    Common Name (eg, your name or your server's hostname) []:HTTPD-DZ
    Email Address []:dzikrafathin@gmail.com

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:password
    An optional company name []:
    [root@dz-httpd certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
    Signature ok
    subject=/C=ID/ST=JABAR/L=JONGGOL/O=TKJ/OU=TKJ/CN=HTTPD-DZ/emailAddress=dzikrafathin@gmail.com
    Getting Private key
  • Kemudian impor file server.crt di dalam browser.

Lalu kita lanjut pada konfigurasi SSL

  • Edit file konfigurasi /etc/httpd/conf.d/ssl.conf.
  • [root@dz-httpd certs]# vi /etc/httpd/conf.d/ssl.conf 
    DocumentRoot "/var/www/html"
    ServerName www.centos.dz:443
    SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/server.key
  • Kemudian restart layanan httpd untuk memperbarui konfigurasi.
  • systemctl restart httpd
  • Kita isi server dengan beberapa konten HTML.
  • [root@dz-httpd]# vi /var/www/html/index.html
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h2>secure https</h2>

  • Lalu kita testing via Web Browser hasilnya.

[lab 8.6] Membuat server HTTPS pada CentOS 7

Web Server adalah server yang menyediakan layanan konten website pada Jaringan Internet, saat Web Server menerima permintaan maka Web Server akan mengirimkannya pada yang meminta lewat Jaringan Publik atau Internet, konten yang dikirim lewat jaringan tentunya dapat terlihat oleh Orang lain atau mata-mata, karena melewati jaringan publik, untuk itu kita perlu mengamankan konten yang dikirim agar tidak dapat dilihat oleh orang.

Apache2 memiliki fitur HTTPS atau HTTP SSL/TLS, adalah protokol HTTP yang dilengkapi dengan Enkripsi menggunakan protocol SSL/TLS, dengan ini ketika Web Server dan Client bertukar informasi, maka Informasinya akan di enkripsi atau isinya dikunci dengan cara diubah menjadi tulisan aneh yang tidak dapat dibaca oleh manusia, sehingga ketika dikirim lewat Jaringan Internet tidak dapat dibaca oleh orang lain.

Dengan menggunakan HTTPS maka Server harus memiliki Sertifikat CA (Certificate Authority) yang isinya adalah informasi dari Server, fungsinya agar server dapat melakukan Enkripsi data, didalam CA terdapat Public Key atau kunci untuk mengenkripsi data, kemudian data yang dienkripsi tersebut hanya bisa dibaca oleh Client yang memiliki Private Key.

Berikut ini adalah sedikit informasi dari Server yang akan saya konfigurasi :

    Sistem Operasi : Linux CentOS 7
    IP Address : 192.168.56.40 (enp0s3)
    Domain Name : centos.dz

Dan sekarang kita akan mulai melakukannya pada langkah langkah dibawah ini :

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7, dan juga mod_ssl agar server dapat menjalankan fungsi ssl.
  • yum install httpd mod_ssl
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload

Membuat Certificate

Kita harus membuat sebuah sertifikat, public key, private key yang diperlukan SSL.

  • Kita pindah ke folder untuk membuat sertifikat, dan kita buat didalam folder ini.
  • [root@dz-httpd ~]# cd /etc/pki/tls/certs
    [root@dz-httpd certs]# make server.key
    umask 77 ; \
    /usr/bin/openssl genrsa -aes128 2048 > server.key
    Generating RSA private key, 2048 bit long modulus
    ..............................................................................................+++
    ..+++
    e is 65537 (0x10001)
    Enter pass phrase: #ketikan passphrase
    Verifying - Enter pass phrase: #konfirmasi
    [root@dz-httpd certs]# openssl rsa -in server.key -out server.key
    Enter pass phrase for server.key:
    writing RSA key
    [root@dz-httpd certs]# make server.csr
    umask 77 ; \
    /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:ID
    State or Province Name (full name) []:JABAR
    Locality Name (eg, city) [Default City]:JONGGOL
    Organization Name (eg, company) [Default Company Ltd]:TKJ
    Organizational Unit Name (eg, section) []:TKJ
    Common Name (eg, your name or your server's hostname) []:HTTPD-DZ
    Email Address []:dzikrafathin@gmail.com

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:password
    An optional company name []:
    [root@dz-httpd certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
    Signature ok
    subject=/C=ID/ST=JABAR/L=JONGGOL/O=TKJ/OU=TKJ/CN=HTTPD-DZ/emailAddress=dzikrafathin@gmail.com
    Getting Private key
  • Kemudian impor file server.crt di dalam browser.

Lalu kita lanjut pada konfigurasi SSL

  • Edit file konfigurasi /etc/httpd/conf.d/ssl.conf.
  • [root@dz-httpd certs]# vi /etc/httpd/conf.d/ssl.conf 
    DocumentRoot "/var/www/html"
    ServerName www.centos.dz:443
    SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/server.key
  • Kemudian restart layanan httpd untuk memperbarui konfigurasi.
  • systemctl restart httpd
  • Kita isi server dengan beberapa konten HTML.
  • [root@dz-httpd]# vi /var/www/html/index.html
    <H1>WEBSITE HTTPD TESTING 123</H1>
    <h2>secure https</h2>

  • Lalu kita testing via Web Browser hasilnya.

[Lab 8.5] Konfigurasi Virtual Host pada Apache CentOS 7

Virtual Host ini merupakan fitur yang terdapat pada Apache Web Server, dengan fitur ini kita dapat memiliki dua situs WebSite yang berbeda domain tetapi dalam satu Server yang sama, saat server menerima permintaan http dari Client server juga akan melihat URL yang diakses oleh Client tersebut.  Virtual Host ini sangat berguna ketika kita memiliki beberapa domain yang berbeda dan ingin diterapkan dalam satu Server yang sama.

Kali ini saya akan mencontohkan konfigurasi VirtualHost pada Web Server dengan Apache yang berjalan di sistem operasi CentOS, berikut ini adalah sedikit informasi server yang saya konfigurasi :

    Sistem Operasi : Linux CentOS 7
    IP Address : 192.168.56.40 (enp0s3)
    Domain Name : www.centos.dz, web.centos.dz

Dan sekarang kita akan mulai melakukannya pada langkah langkah dibawah ini :

  • Pertama konfigurasi IP Address pada Interface server menjadi static agar IP Address server permanen dan tidak berubah ubah.
  • [root@dz-httpd ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp0s3
    UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

  • Sekarang kita install paket HTTPD yang berisi apache untuk menjalankan layanan Web Server pada CentOS 7.
  • yum install httpd
  • Aktifkan layanan httpd dan jalankan lewat systemctl.
  • systemctl enable httpd
    systemctl start httpd
  • Kemudian buka firewall untuk layanan HTTP Port 80 dan juga HTTPS Port 443 dengan firewall-cmd.
  • firewall-cmd --perma --add-port=80/tcp
    firewall-cmd --perma --add-port=443/tcp
    firewall-cmd --reload
  • Buat file konfigurasi virtual host pada direktori /etc/httpd/conf.d .
  • [root@dz-httpd ~]# vi /etc/httpd/conf.d/vhost.conf

    <VirtualHost *:80>
    DocumentRoot /var/www/html/www_site
    ServerName www.centos.dz
    </VirtualHost>

    <VirtualHost *:80>
    DocumentRoot /var/www/html/web_site
    ServerName web.centos.dz
    </VirtualHost>

  • Buat folder untuk kedua situs tersebut, yang akan diisi dengan file HTML.
  • mkdir /var/www/html/www_site
    mkdir /var/www/html/web_site
  • Dan buat file HTML yang diletakan kedua folder tersebut.
  • [root@dz-httpd ~]# vi /var/www/html/www_site/index.html

    <html>
    <body>
    <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
    WWW SITE Test Page
    </div>
    </body>
    </html>

    [root@dz-httpd ~]# vi /var/www/html/web_site/index.html

    <html>
    <body>
    <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
    WEB SITE Test Page
    </div>
    </body>
    </html>

  • Kemudian restart layanan httpd untuk memperbarui konfigurasi.
  • systemctl restart httpd
  • Testing pada situs domain WWW.
  • Testing pada situs domain WEB.