Anda di halaman 1dari 321

KATA PENGANTAR

Segala puji bagi Allah yang telah memberikan kami kemudahan sehingga dapat menyelesaikan
eBook yang membahas mengenai CentOS 7 Linux Administration Pada Cloud Computing.

Tanpa pertolongan-Nya mungkin penulis tidak akan sanggup menyelesaikannya dengan baik.
Shalawat dan salam semoga terlimpah curah kan kepada baginda tercinta kita yakni Nabi
Muhamad SAW.

e-Book ini merupakan rangkuman dari apa yang telah penulis pelajari selama ini mengenai dasar
sistem operasi linux server menggunakan CentOS, eBook ini dirangkai dengan tata bahasa yang
mudah di pahami dan detail sesuai dengan tema pembahasan.

Pada e-Book ini penulis menggunakan sistem operasi Linux CentOS (Community ENTerprise
Operating System) merupakan Distro Linux Open Source (bebas/free) yang biasa digunakan
dalam skala Enterprise dan dibuat dari source code RedHat Enterprise (RHEL) yang
dikembangkan oleh sebuah komunitas yang disebut CentOS Project.

CentOS pada dasarnya dibuat dari source code RedHat Enterprise. Software ini dirilis di bawah
General Public License (GPL) yang selanjutnya dikembangkan oleh sebuah komunitas yang
disebut CentOS Project.

Akhir kata semoga eBook ini bisa dapat memberikan pengetahuan khususnya bagi pemula yang
sedang belajar mengenai linux server menggunakan VPS (Virtual Private Server).

Penulis mengharapkan kritik serta saran dari pembaca mengenai e-Book ini, supaya eBook ini
nantinya dapat menjadi lebih baik lagi. Kemudian apabila terdapat banyak kesalahan pada e-
Book ini penulis mohon maaf yang sebesar-besarnya.

Sampang, Madura 16 September 2019

Nur Hamim

i | CentOS 7 Linux Administrator Pada Cloud Computing


UCAPAN TERIMA KASIH

Menulis eBook bukan perkara yang mudah, menulis eBook membutuhkan niat yang lebih, eBook
ini dibuat kurang lebih 2 bulan dengan menyisihkan waktu apabila kegiatan utama bekerja telah
selesai.

Penulis sangat termotivasi untuk membuat sebuah rangkuman yang berbentuk eBook ini dari
kalimat yang pernah terlontar dari beliau Bapak M. Wildan Zubaidi yang saat ini menjabat
sebagai Manager Support PT. Biznet Gio Nusantara berikut kalimatnya “Tidak semua orang IT
bisa mendokumentasikan hasil belajar atau pekerjaannya di dunia IT” kalimat itulah yang menjadi
penggerak penulis untuk membuat sebuah eBook.

Tidak lupa pula penulis sangat berterima kasih kepada:

1. Mbah Suro Dhemit, yang mana beliaulah yang pertama kali memperkenalkan dan
meruqyah penulis tentang Linux.
2. Mas Aria Setia Alam, beliau salah satu pendiri Santren Koding Semarang dan beliaulah
yang mendidik penulis menjadi lebih baik dan mengerti akan indahnya hidup secara mandiri
di pondok IT (santrenkoding.org)
3. Bapak Ahmad Rifai (om ipe), beliau salah satu guru dan motivator penulis khususnya di
dunia IT berkat beliau penulis bisa dan Alhamdulillah bisa berkembang di dunia Industri IT
saat ini.
4. Bapak Samsul Maarif, beliau salah satu guru yang sangat penulis sukai karena beliau sering
sekali sharing mengenai IT.
5. Bapak Febri Nur Aswin, beliau merupakan supervisor penulis pada saat di CloudKilat dan
beliau salah satu orang luar biasa dalam perjalanan penulis sampai saat ini.
6. Mas Rifqi Muttaqien dan Mas Hendarin, beliau rekan dan sekaligus senior penulis, berkat
beliau penulis dapat mengetahui mengenai dasar, konsep, dan teknis mengenai Linux dan
sebagainya.
7. Keluarga besar Komunitas GNU/Linux Malang (KLiM).

ii | CentOS 7 Linux Administrator Pada Cloud Computing


DAFTAR ISI

KATA PENGANTAR ……………………………………………………………………………………………. i


UCAPAN TERIMA KASIH ……………………………………………………………………………………... ii
DAFTAR ISI ………………………………………………………………………………................................ iii

1. PENDAHULUAN
1.1 PENGENALAN CLOUD COMPUTING ………………………………………………………………….1
1.2 JENIS - JENIS CLOUD COMPUTING ……………………………………………………………........ 2
1.3 PENGENALAN VPS ……………………………………………………………………………………… 3
1.4 MANFAAT MENGGUNAKAN VPS ……………………………………………………………………... 3
1.5 PENGENALAN CENTOS ………………………………………………………………………………... 4

2. MEMULAI DENGAN CENTOS


2.1 PERINTAH DASAR LINUX ……………………………………………………………………...............6
2.2 EDITOR FILE DI CENTOS ………………………………………………………………………………. 9
2.3 MEMAHAMI FILE PERMISSION LINUX ……………………………………………………………….13
2.4 PENGGUNAAN YUM DI CENTOS ……………………………………………………………………..14

3. SSH SERVER
3.1 MENGENAL DAN FUNGSI SSH ………………………………………………………………………..16
3.2 CARA AKSES VPS MENGGUNAKAN SSH ……………………………………………………..........16
3.3 MENGUBAH PORT DEFAULT SSH ……………………………………………………………………19
3.4 SSH KEY ………………………………………………………………………………………………….. 21

4. DNS SERVER
4.1 MENGENAL APA ITU DNS ………………………………………………………………………………25
4.2 BAGAIMANA DNS BEKERJA ……………………………………………………………………………25
4.3 INSTALASI DNS ………………………………………………………………………………………...... 26
4.4 KONFIGURASI DNS ……………………………………………………………………………….......... 27
4.5 KONFIGURASI Glue Record/Private NAMESERVER (NS) …………………………………………. 31
4.6 MEMBUAT DNS MASTER - SLAVE ………………………………………………………………….... 35

5. FTP SERVER
5.1 MENGENAL APA ITU FTP BESERTA FUNGSINYA ………………………………………………….42
5.2 INSTALLASI VSFTPD ……………………………………………………………………………………. 42
5.3 KONFIGURASI VSFTPD ………………………………………………………………………………… 44

6. WEB SERVER
6.1 MENGENAL APA ITU WEB SERVER …………………………………………………………………. 53
6.2 JENIS - JENIS WEB SERVER ………………………………………………………………………….. 53
6.3 WEB SERVER APACHE ………………………………………………………………………………… 53
6.4 WEB SERVER NGINX …………………………………………………………………………….......... 54
6.5 WEB SERVER LiteSpeed ………………………………………………………………………………...54
6.6 INSTALASI WEB SERVER APACHE …………………………………………................................... 55
6.7 MANAJEMEN SERVICE WEB SERVER APACHE …………………………………………………... 58
6.8 STRUKTUR FILE KONFIGURASI APACHE ………………………………………………………….. 59
6.9 MEMBUAT VIRTUAL HOST (VHOST) APACHE ……………………………………………………... 60
6.10 INSTALASI WEB SERVER NGINX …………………………………………………………………... 61
6.11 MANAJEMEN SERVICE WEB SERVER NGINX ……………………………………………………. 64
6.12 STRUKTUR FILE KONFIGURASI NGINX …………………………………………………………….64
6.13 MEMBUAT VIRTUAL BLOCK NGINX …………………………………………………………………65

iii | CentOS 7 Linux Administrator Pada Cloud Computing


6.14 INSTALASI PHP 7.1/7.2/7.3 …………………………………………………………………………… 68

7. DATABASE SERVER
7.1 MENGENAL APA ITU DATABASE SERVER …………………………………………………………..73
7.2 JENIS - JENIS DATABASE ……………………………………………………………………………....73
7.3 INSTALASI DATABASE SERVER MARIADB ………………………………………………………….75
7.4 KONFIGURASI DATABASE MARIADB …………………………………………………………………77
7.5 DASAR PERINTAH UNTUK PENGGUNAAN DATABASE MARIADB ……………………………... 79
7.6 RESET PASSWORD ROOT DATABASE MARIADB ………………………………………………….85
7.7 BACKUP DAN RESTORE DATABASE MARIADB VIA COMMAND LINE ………………………….88
7.8 INSTALASI phpMyAdmin MENGGUNAKAN WEB SERVER APACHE ……………………………..89
7.9 REPLIKASI DATABASE MASTER-SLAVE MENGGUNAKAN MARIADB …………………………..93

8. MAIL SERVER
8.1 MENGENAL TENTANG APA ITU MAIL SERVER ……………………………………………………..111
8.2 JENIS DAN KOMPONEN MAIL SERVER ………………………………………………………………111
8.3 INSTALASI MAIL SERVER (POSTFIX, DOVECOT) …………………………………………………..113
8.4 KONFIGURASI MAIL SERVER (POSTFIX, DOVECOT) …………………………………………......114
8.5 KONFIGURASI MAIL CLIENT MENGGUNAKAN MOZILLA THUNDERBIRD …………………......121
8.6 INSTALASI DAN KONFIGURASI IREDMAIL …………………………………………………………..127
8.7 INSTALASI DAN KONFIGURASI ZIMBRA MAIL SERVER …………………………………………..143

9. CMS (CONTENT MANAGEMENT SISTEM)


9.1 INSTALASI DAN KONFIGURASI WORDPRESS ………………………………………………………177
9.2 INSTALASI DAN KONFIGURASI OPENCART …………………………………………………………189
9.3 INSTALASI DAN KONFIGURASI PRESTASHOP ……………………………………………………..197
9.4 INSTALASI DAN KONFIGURASI MAGENTO ………………………………………………………….214
9.5 INSTALASI DAN KONFIGURASI MOODLE ……………………………………………………………232
9.6 INSTALASI DAN KONFIGURASI NEXTCLOUD ……………………………………………………….247

10. FIREWALL
10.1 PENGERTIAN FIREWALL ………………………………………………………………………………258
10.2 FIREWALL MENGGUNAKAN IPTABLES ………………………………………………………….....258
10.3 FIREWALL MENGGUNAKAN FIREWALLD ……………………………………………………….....262
10.4 FIREWALL MENGGUNAKAN FAIL2BAN …………………………………………………………….266

11. MONITORING
11.1 PENGENALAN MONITORING SERVER ……………………………………………………………..276
11.2 MONITORING MENGGUNAKAN MONITORIX ………………………………………………………276
11.3 MONITORING MENGGUNAKAN ZABBIX ……………………………………………………………279
11.4 KONFIGURASI ZABBIX AGENT ………………………………………………………………………294

12. CONTROL PANEL


12.1 MENGENAL APA ITU CONTROL PANEL ……………………………………………………………303
12.2 INSTALASI WHM/CPANEL …………………………………………………………………………….303
12.3 INSTALASI PLESK PANEL …………………………………………………………………………….307
12.4 INSTALASI CWP (CENTOS WEB PANEL) …………………………………………………………..313

iv | CentOS 7 Linux Administrator Pada Cloud Computing


1. PENDAHULUAN

1.1 PENGENALAN CLOUD COMPUTING

Di era modern ini sangat banyak teknologi - teknologi dimana semakin hari semakin
berkembang pesat, salah satu contohnya yakni teknologi Cloud Computing. Tidak semua
dari kita mengerti tentang apa itu Cloud Computing bahkan masih banyak orang - orang
di luar sana yang masih belum mengetahui tentang teknologi yang satu ini.

Cloud Computing yang biasa dibilang dengan komputasi awan merupakan sebuah
layanan komputer yang bisa kita gunakan dan kita akses dengan memanfaatkan media
internet

Teknologi Cloud Computing salah satu teknologi yang memanfaatkan internet sebagai
pusat server, untuk mengelola data ataupun aplikasi dari pengguna/user.

Dengan teknologi Cloud Computing ini semua orang (pengguna/user) dapat


menggunakan layanan – layanan cloud computing tersebut secara instan. Tetapi
pengguna harus mempunyai koneksi internet untuk menggunakannya karena semua
layanan atau aplikasi yang ada di Cloud Computing ini bersifat online dan dapat diakses
dimanapun dan kapanpun.

Selain itu dengan menggunakan Cloud Computing kita akan mendapatkan manfaat
diantaranya :

- Tersimpannya Data Secara Terpusat

Salah satu keunggulan dari teknologi cloud ini yaitu pengguna dapat menyimpan data
- data yang dimilikinya secara terpusat ke dalam server yang telah disediakan oleh
penyedia jasa Cloud Computing. Dengan begitu pengguna tidak perlu lagi
menyediakan Infrastruktur kembali karena semua sudah disediakan oleh penyedia
Cloud Computing secara virtual

- Keamanan Data

Bagi Anda pengguna Cloud Computing janganlah khawatir data yang Anda simpan di
server tersebut hilang begitu saja, karena setiap penyedia cloud computing telah
memiliki keamanan nya masing - masing.

Namun perlu dicatat setiap penyedia Cloud Computing juga memiliki batasan
keamanan yang wajib dilindunginya, terkadang ada penyedia Cloud Computing yang
hanya melindungi keamanan dari sisi servernya saja tidak keseluruhan aplikasi yang
Anda gunakan. Jadi kesimpulannya untuk keamanan ini bergantung penyedia cloud
computing.

1 | CentOS 7 Linux Administrator Pada Cloud Computing


- Fleksibilitas Dan Skalabilitas Yang Tinggi

Seperti yang telah disampaikan di atas teknologi Cloud Computing menawarkan


fleksibilitas dengan kemudahan data akses, kapan dan dimana saja dengan syarat
Anda mempunyai koneksi internet.

- Investasi Jangka Panjang

Dengan menggunakan teknologi Cloud Computing ini Anda dapat menghemat


pembelian inventaris seperti halnya pembelian hardware komputer.
Karena dengan menggunakan Cloud Computing ini Anda tidak perlu lagi membeli
perangkat - perangkat komputer tersebut, semua perangkat akan disediakan oleh
penyedia Cloud Computing.

1.2 JENIS - JENIS CLOUD COMPUTING

Berikut ini merupakan jenis - jenis dari Cloud Computing:

- SaaS (software as a service)

Jenis ini merupakan sebuah layanan cloud yang disediakan dalam bentuk perangkat
lunak.

Keuntungan :

- Pengguna dapat memanfaatkan layanan ini dengan cara menyewa tanpa


harus menginvestasikan untuk membuat sendiri karena sudah ter-manage
service dari penyedia layanan.
- Semua ketersediaan dan reabilitas aplikasi terjamin oleh penyedia layanan,
pengguna hanya fokus pada data dan pemanfaatannya.

Kerugian :

- Pengguna tidak memiliki akses full atas aplikasi yang disewa, pengguna juga
tidak dapat mengubah fitur yang sudah disediakan, karena SaaS bersifat multi-
tenant sehingga semua fitur yang dibuat bersifat umum.

- PaaS (platform as a service)

PaaS sebuah layanan cloud dalam bentuk platform / aplikasi, jenis ini salah satu jenis
cloud yang banyak digunakan khususnya pada seorang programmer yang ingin
menguji dan development sebuah aplikasi yang dimiliki.

Keuntungan :

- Pengguna dapat memanage sendiri fitur – fitur yang sudah tersedia seperti
halnya keamanan platform meliputi sistem operasi, database, web server,
framework aplikasi, dsb.
- Pengguna dapat lebih fokus dalam pengembangan aplikasi.

2 | CentOS 7 Linux Administrator Pada Cloud Computing


Kerugian :

- Fitur keamanan yang digunakan PaaS adalah keamanan dari platform itu
sendiri, bukan dari sisi aplikasi kita. Jadi harus di pertimbangkan kembali resiko
keamanan dari aplikasi Anda.

- IaaS (Infrastruktur as a service)

IaaS yakni layanan yang mengarah ke infrastruktur/fisik server dan komputer virtual
(VPS). IaaS meliputi Server, Jaringan, Penyimpanan (Storage), dan Ruang Data
Center.

Keuntungan :

- Tidak perlu lagi membeli server real / server fisik. Melakukan pemeliharaan
rutin, dan melakukan konfigurasi perangkat. Ibaratkan kita kita sewa rumah jadi
kita tidak usah membagun rumah sendiri, kita tinggal membayar rumah itu
sesuai dengan perjanjian sebelumnya.

Kerugian :

- Kita sebagai pengguna harus terhubung atau terkoneksi ke internet terlebih


dahulu untuk menggunakannya, jika ingin menambahkan sumber daya harus
menghubungi pihak penyedia layanan.

1.3 PENGENALAN VPS

Apakah Anda pernah mendengar sebuah kalimat Dedicated Server?

Jika sebelumnya Anda telah mendengar mengenai Dedicated Server maka arti dari VPS
hampir sama dengan dedicated server. Namun perbedaannya yaitu bila Dedicated Server
merupakan server utuh dan hanya digunakan untuk 1 user saja tidak dapat digunakan
untuk berbagi dengan user yang lainnya.

Sedangkan VPS merupakan bagian dari Dedicated server yang telah mengadopsi
teknologi Virtualisasi untuk dapat dipecah atau dibagi menjadi beberapa server virtual
dengan pembagian recourse seperti halnya OS (sistem operasi), CPU, Memory, Storage
dan yang lainnya.

1.4 MANFAAT MENGGUNAKAN VPS

Dengan adanya VPS kita dapat melakukan eksperimen dan mencoba berbagai macam
teknologi khususnya didunia system admin. Setiap Provider dari pengamalan pribadi
setiap kita menyewa sebuah VPS maka kita akan diberikan akses full (root) untuk dapat
mengelola sebuah server. Dengan akses full tersebut kita dapat memanfaatkan VPS
sesuai dengan kebutuhan kita masing - masing seperti halnya:

- Membangun sebuah website


- Membangun Web Hosting Skala Kecil - Menengah
- File Hosting

3 | CentOS 7 Linux Administrator Pada Cloud Computing


- Penyimpanan Pribadi (Storage Cloud)
- Digunakan untuk kebutuhan Virtual Private Network (VPN)
- Rekomendasi pertama bila digunakan untuk website yang mempunyai traffic tinggi
- Dsb.

Perlu diketahui setiap penyedia VPS mempunyai aturan atau kebijakan masing - masing.
Terdapat penyedia VPS yang bersifat self-service yang artinya semua tanggung jawab
dari sisi aplikasi dan server seperti halnya konfigurasi server dan aplikasi, backup
diberikan sepenuhnya terhadap customer, ada juga penyedia yang bersifat managed-
service yang artinya semua pengelolaan VPS mulai dari konfigurasi aplikasi, server akan
dibantu oleh penyedia VPS.

1.5 PENGENALAN CENTOS

Menurut Wikipedia CentOS (Community ENTerprise Operating System) adalah sebuah


distribusi linux sebagai bentuk dari usaha untuk menyediakan platform komputasi
berkelas enterprise yang memiliki kompatibilitas kode biner sepenuhnya dengan kode
sumber yang menjadi induknya, Red Hat Enterprise Linux (RHEL)

CentOS (Community ENTerprise Operating) salah satu distro Linux yang populer dan
sangat cocok digunakan dalam skala Enterprise yang bisa didapatkan secara gratis.

CentOS sendiri dikembangkan oleh komunitas yang disebut CentOS Project dan dibuat
menggunakan source code dari Red Hat Enterprise (RHEL).

CentOS dirilis di bawah naungan General Public License (GPL) dan dikembangkan oleh
komunitas yang disebut CentOS Project. Detailnya dapat dilihat melalui laman resmi
CentOS berikut : https://www.centos.org/. Untuk mengunduh CentOS dapat melalui
tautan berikut : https://www.centos.org./download/

CentOS sudah banyak digunakan dikalangan dunia Industri, Instansi, Komunitas bahkan
CentOS telah digunakan di seluruh dunia. Khusus Indonesia sendiri komunitas CentOS
bertebaran di media sosial mulai dari Facebook Group, WhatsApp Group dan Telegram
Group.

Berikut ini Link dari Group CentOS Indonesia yang sangat Aktif untuk berdiskusi
mengenai CentOS :

Telegram : https://t.me/centosID
Facebook : https://www.facebook.com/groups/idcentos/

Selain itu terdapat alasan tersendiri menggunakan CentOS untuk kebutuhan server
diantaranya :

- Pertama, CentOS salah satu turunan dari RedHat kita semua sudah pada kenal
dengan RedHat salah satu OS (sistem operasi) yang sangat - sangat handal untuk
dijadikan sebuah server dan RedHat merupakan sistem operasi linux yang berbayar

4 | CentOS 7 Linux Administrator Pada Cloud Computing


sedangkan CentOS merupakan turunan yang Free untuk digunakan. Sangat banyak
Industri dan perusahaan besar menggunakan RedHat.

- Kedua, Upgrade Sistem , yaa disini mengenai persoalan upgrade CentOS tidak
seperti distro linux yang lainnya yang sering diminta untuk melakukan upgrade.

- Ketiga, Dalam melakukan upgrade sistem bukanlah hal yang mudah. Dengan
melakukan upgrade sistem maka nantinya yang akan terjadi yaitu perubahan atau
pergantian sebuah software yang lama dengan software yang baru sehingga sudah
dapat dipastikan akan ada beberapa aplikasi yang digunakan di software lama tidak
support di software yang baru. Setelah upgrade versi dilakukan kebanyakan sistem
akan melakukan perubahan, antara software lama ke yang baru. Apabila server Anda
harus online nonstop 24 jam dan Anda ingin server tersebut tetap aktif (berjalan)
dengan baik setelah proses upgrade selesai dan tidak ingin adanya downtime maka
sangat disarankan untuk menggunakan CentOS kenapa ?.

Karena CentOS memiliki waktu dukungan secara berkala dari 5 tahun sampai dengan
10 tahun. hal tersebut penting diperhatikan sebab bisa memberikan Anda banyak
kesempatan untuk upgrade dan melakukan testing pada versi yang terbaru. Beberapa
hal yang perlu diperhatikan bahwa Linux CentOS merupakan salah satu turunan dari
Distro RedHat yang saat ini masih menguasai pangsa pasar server seluruh dunia,
CentOS saat ini menjadi alternatif Open Source yang digunakan hampir sebagian
perusahaan hosting di dunia.

- Keempat, Khusus dunia Hosting siapa sih yang tidak menggunakan WHM/cPanel
untuk meng-hostingkan sebuah website ? Sangat banyak provider Hosting di
Indonesia maupun di luar yang menggunakan WHM/cPanel untuk meng-hostingkan
sebuah website. Jika Anda menggunakan distro lain selain CentOS maka Anda tidak
dapat menggunakan WHM/cPanel karena WHM/cPanel hanya dapat dipasang pada
CentOS dan Amazon Linux. Anda dapat mengetahui requirementnya melalui laman
ini.

5 | CentOS 7 Linux Administrator Pada Cloud Computing


2. MEMULAI DENGAN CENTOS

2.1 PERINTAH DASAR LINUX

Untuk mempermudah dalam penggunaan sistem operasi linux hal yang perlu kita pelajari
pertama kali yaitu sintak atau perintah - perintah dasar biasanya disebut dengan command
line di Linux.

Perintah atau command line dasar di Linux CentOS sendiri hampir sama dengan distro -
distro linux yang lainnya. Berikut ini beberapa perintah dasar yang sering digunakan:

whoami: Perintah ini digunakan untuk mengetahui siapa yang sedang login ke dalam
sistem operasi kita apakah kita sebagai root ataupun hanya user biasa dapat dilihat
melalui perintah ini.

[root@srv-sinau home]# whoami


root
[root@srv-sinau home]#

uname -a: Perintah ini digunakan untuk mengetahui versi sistem operasi Linux saat ini
yang kita gunakan.

[root@srv-sinau home]# uname -a


Linux srv-sinau.localhost 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18
15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@srv-sinau home]#

uname: Perintah ini digunakan mengetahui sistem operasi Linux yang kita gunakan

[root@srv-sinau home]# uname


Linux
[root@srv-sinau home]#

cd: Perintah ini digunakan untuk berpindah antar direktori, (cd) singkatan dari change
direktori.

[root@srv-sinau ~]# cd /home/


[root@srv-sinau home]#

Contoh diatas kita akan berpindah ke direktori /home

pwd: Perintah ini digunakan untuk mengetahui letak direktori dimana kita berada. Jika
Anda ingin mengubah atau mengedit sebuah file namun Anda kebingungan dengan posisi
dimana Anda berada maka perintah pwd sangat membantu Anda untuk mengetahui
berada di direktori mana Anda berada saat ini.

[root@srv-sinau home]# pwd


/home
[root@srv-sinau home]#

Contoh diatas telah menunjukkan bahwa Anda saat ini berada di direktori /home.

6 | CentOS 7 Linux Administrator Pada Cloud Computing


mkdir: Perintah ini digunakan untuk membuat sebuah direktori atau folder baru.

[root@srv-sinau home]# mkdir sinau


[root@srv-sinau home]#

Diatas merupakan contoh untuk membuat direktori atau folder dengan nama folder sinau
menggunakan perintah mkdir. Folder yang telah dibuat tidak dapat dibuat kembali, jika
Anda mengetikan perintah mkdir sinau kembali di direktori /home maka, akan muncul
peringatan seperti berikut :

[root@srv-sinau home]# mkdir sinau


mkdir: cannot create directory ‘sinau’: File exists
[root@srv-sinau home]#

Perintah di atas menandakan direktori sinau telah ada.

ls: Perintah ini digunakan untuk menampilkan daftar direktori dan file di dalam sebuah
direktori.

[root@srv-sinau home]# ls
sinau
[root@srv-sinau home]#

Contoh diatas kita berada di direktori /home, di dalam direktori /home telah ada direktori
dengan nama sinau. Biasanya yang sering digunakan yakni perintah ls dengan opsi -lah

[root@srv-sinau home]# ls -lah


total 0
drwxr-xr-x. 3 root root 19 Mar 19 23:41 .
dr-xr-xr-x. 17 root root 224 Jun 5 2018 ..
drwxr-xr-x 2 root root 6 Mar 19 23:41 sinau
[root@srv-sinau home]#

Keterangan :

- l: long format
- a: show hidden files
- h: human readable file size

Sedangkan untuk melihat daftar file yang berada di dalam direktori dapat dilakukan
dengan cara mengetikan perintah ls /letak-direktori contohnya:

[root@srv-sinau home]# ls /usr/share/nginx/html/


404.html 50x.html index.html nginx-logo.png poweredby.png
[root@srv-sinau home]#
[root@srv-sinau home]#

Contoh diatas menunjukan bahwa kita ingin melihat isi dari direktori
/usr/share/nginx/html. Silakan sesuaikan dengan letak direktori Anda masing - masing.

rmdir: Perintah ini digunakan untuk melakukan remove (hapus) direktori atau folder.

7 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@srv-sinau home]# ls
data sinau
[root@srv-sinau home]# rmdir sinau/
[root@srv-sinau home]# ls
data
[root@srv-sinau home]#

Contoh diatas terdapat direktori sinau untuk menghapus direktori sinau dapat dilakukan
dengan perintah ini.

touch: Perintah ini digunakan untuk membuat sebuah file, dengan perintah ini Anda tidak
perlu lagi berada di direktori dimana file tersebut berada.

[root@srv-sinau home]# pwd


/home
[root@srv-sinau home]# ls
data sinau
[root@srv-sinau home]# touch /home/sinau/index.html
[root@srv-sinau home]# ls /home/sinau/
index.html
[root@srv-sinau home]#

Contoh di atas menandakan kita berada di direktori /home namun kita ingin membuat file
di direktori /sinau yang berada di dalam direktori /home.

cp: Perintah ini digunakan untuk menyalin atau copy file di linux.

[root@srv-sinau home]# cd sinau/


[root@srv-sinau sinau]# ls
index.html info.php
[root@srv-sinau sinau]# cp index.html index.html.old
[root@srv-sinau sinau]# ls
index.html index.html.old
[root@srv-sinau sinau]#

Contoh diatas kita mencoba untuk menyalin atau copy file index.html menjadi
index.html.old

mv: Perintah ini digunakan untuk memindahkan (move) file atau direktori.

[root@srv-sinau sinau]# ls
index.html index.html.old
[root@srv-sinau sinau]# mv index.html /home/
[root@srv-sinau sinau]# ls /home/
data index.html sinau
[root@srv-sinau sinau]#

Contoh di atas menandakan bahwa file index.html yang berada di direktori /sinau
dipindahkan ke direktori /home.

8 | CentOS 7 Linux Administrator Pada Cloud Computing


rm: Perintah ini digunakan untuk menghapus file,

[root@srv-sinau sinau]# rm nama_file

Gunakan opsi -f (force) agar tidak perlu menjawab prompt saat ingin menghapus file

[root@srv-sinau sinau]# rm -f index.html.old


[root@srv-sinau sinau]#

menghapus banyak file sekaligus yang berekstensi tertentu, misal file image .jpg

[root@srv-sinau sinau]# rm -f *.jpg

menghapus banyak file sekaligus yang mempunyai awalan nama tertentu, misal foto
liburan

[root@srv-sinau sinau]# rm -f foto*

untuk menghapus folder beserta file didalamnya

[root@srv-sinau sinau]# rm -rf nama_folder/

cat : Perintah ini digunakan untuk melihat sebuah isi dari file, disini kami telah menyiapkan
file index.html yang berisi kalimat contohnya sebagai berikut :

[root@srv-sinau home]# ls
data index.html sinau
[root@srv-sinau home]# cat index.html
Belajar Linux Itu Seru Dan Keren Looh !!!
[root@srv-sinau home]#

Untuk lebih lengkap dan detail mengenai perintah - perintah linux Anda dapat
mengunduhnya melalui laman ini.

2.2 EDITOR FILE DI CENTOS

Secara default setiap sistem operasi sudah terdapat teks editor default (bawaan) dari
sistem operasi itu sendiri. Pada sistem operasi CentOS sendiri sudah terdapat teks editor
default yang diberi nama vi .

Teks editor ini salah satu aplikasi yang sangat penting dan biasanya sering digunakan.
Dengan teks editor ini Anda dapat membuat sebuah file sampai memodifikasi isi file itu
sendiri.

Di CentOS sangat banyak teks editor yang dapat Anda gunakan misalnya menggunakan
nano/pico, vi/vim atau mcedit, silakan menggunakan teks editor sesuai dengan selera dan
kenyamanan Anda masing - masing.

Pada kesempatan kali ini penulis akan menggunakan teks editor vim. Apa itu Vim ?

9 | CentOS 7 Linux Administrator Pada Cloud Computing


VIM adalah teks editor yang sangat powerfull dan mudah digunakan namun banyak yang
beranggapan bahwa vim itu susah, padahal vim sangatlah bagus untuk digunakan.
Dengan menggunakan editor vim kita dapat berselancar dengan mudah tanpa
ketergantungan dengan yang namanya tikus (mouse).

Teks editor vim sendiri memiliki berbagai macam pemilihan penggunaan mulai dari GUI
(Graphic User Interface) dan juga CLI (Command Line Interface), namun disini penulis
akan menggunakan yang CLI.

Untuk instalasi vim sangatlah mudah di CentOS secara default untuk vim belum terinstall
namun untuk vi telah tersedia, dengan begitu silahkan install vim di CentOS terlebih dahulu
dengan menjalankan perintah berikut :

[root@srv-sinau ~]# yum install vim -y

Untuk memeriksa versi vim telah terinstall dapat dilakukan dengan menggunakan perintah
berikut :

[root@srv-sinau ~]# vi --version


VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 30 2018 19:57:14)

Mari kita memulai mencoba menggunakan vim, silakan membuat file dengan perintah
touch seperti berikut

[root@srv-sinau ~]# touch sinau.txt


[root@srv-sinau ~]# vim sinau.txt

Contoh diatas penulis membuat file sinau.txt kemudian membuka file sinau.txt dengan
menggunakan vim berikut hasilnya :

Untuk memulai menulis file atau code di vim silakan menekan tombol [i] berikut ini

10 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas terlihat pada baris pertama "Ini Merupakan Contoh Untuk Menulis
di VIM" merupakan tulisan pertama setelah sebelumnya Anda menekan tombol [i],
petunjuk dibawah (--INSERT--) merupakan petunjuk jika Anda dapat melakukan opsi
untuk menulis. Sedangkan untuk menampilkan nomor di pinggir dapat dilakukan dengan
mengetikan perintah :set number seperti berikut

Untuk keluar dari editor vim, silakan menekan tombol (Esc) dan selanjutnya jika
keterangan (--INSERT--) yang terletak di bawah sebelah kiri sudah kosong ketikkan (:wq)
lanjutkan dengan (Enter)

Penjelasan perintah diatas untuk [:] digunakan untuk memulai memasukan perintah, [w]
untuk menyimpan tulisan yang sudah Anda ketik (write) sedangkan [q] untuk keluar dari

11 | CentOS 7 Linux Administrator Pada Cloud Computing


editor vim (quit), Anda juga bisa menggunakannya dalam bentuk terpisah seperti [:q]
digunakan untuk keluar editor atau [:q!] digunakan untuk keluar editor tanpa menyimpan,
atau sekedar menyimpan text [:w].

Editor vim ini salah satu editor yang sangat menarik untuk dipelajari lebih lanjut. Penulis
sangat merekomendasikan sekali untuk menggunakan teks editor vim ini, namun silahkan
disesuaikan dengan minat dan keinginan Anda masing - masing.

Berikut ini beberapa perintah dasar yang dapat dipelajari di vim :

Perintah untuk menulis di Vim:

[i] : Digunakan untuk memulai menulis, mode (INSERT)


[o] : Digunakan untuk menulis, mode (INSERT) dan menambahkan
baris kosong di bawah kursor.
[O] : Digunakan untuk menulis, modus (INSERT) dan menambahkan
baris kosong di atas kursor, mode ini kebalikan dari [o].

Perintah untuk menghapus di Vim :

[x] : Digunakan untuk menghapus karakter yang terdapat di kursor


[X] : Digunakan untuk menghapus karakter sebelum kursor
[dd]: Digunakan untuk menghapus satu baris
[D] : Digunakan untuk menghapus mulai dari awal kursor

Perintah untuk berpindah di Vim :

[h] : Digunakan untuk berpindah satu karakter ke kiri


[j] : Digunakan untuk berpindah satu karakter ke bawah
[k] : Digunakan untuk berpindah satu karakter ke atas
[l] : Digunakan untuk berpindah satu karakter ke kanan
[w] : Digunakan untuk maju satu kata (berikutnya)
[b] : Digunakan untuk mundur satu kata (sebelumnya)

Perintah untuk membatalkan perintah di Vim :

[u] : Digunakan untuk membatalkan penghapusan (undo)


[U] : Digunakan untuk membatalkan penghapusan semua dalam satu
line (undo)
[crt + r] : Digunakan untuk mengembalikan penghapusan (redo)

Perintah untuk penyimpanan di Vim :

[:wq] : Digunakan untuk menyimpan file dan keluar


[:q] : Digunakan untuk keluar dari editor vim
[:q!] : Digunakan untuk keluar dari aplikasi editor vim
tanpa menyimpang file
[:w] : Digunakan untuk menyimpan text yang sudah ditulis

Perintah untuk pencarian di Vim :

12 | CentOS 7 Linux Administrator Pada Cloud Computing


[/] : Perintah untuk pencarian menggunakan / contohnya
/diikuti_kata_pencarian. Untuk melanjutkan pencarian kata
bisa menekan tombol [n] atau kembali mencari (opposite)
dengan perintah [N].

Jika Anda membutuhkan cheat sheet untuk penggunaan vim silakan unduh cheat sheet
tersebut dengan cara klik disini : cheat sheet vim

2.3 MEMAHAMI FILE PERMISSION LINUX

Permission merupakan sebuah metode untuk mengamankan sebuah file, dengan


permission setiap file bisa diberikan sebuah hak akses, sehingga administrator bisa
mengatur file tersebut sesuai dengan kebijakan yang ditetapkan administrator.

File dan direktori (folder) bisa diatur sedemikian rupa sehingga mempermudahkan
seorang Administrator dalam mengelola file / direktori.

Dalam sebuah permission file dalam bilangan bit sendiri memiliki 3 kelompok yaitu User,
Group dan Other setiap kelompok tersebut memiliki 3 digit binary yaitu Read, Write dan
Execute atau di kelompokkan dengan (rwx).

Contoh studi kasusnya sebagai berikut:

Sebuah file dengan nama CentOS.txt memiliki permission User (membaca, menulis dan
eksekusi), Group (membaca dan menulis) dan Other (membaca).

Tentukan nilai permission pada file tersebut.

Sebuah File/direktori pada hakikatnya memiliki sebuah permission, sehingga keamanan


file lebih terjamin sebab siapa saja yang berhak mengakses dan merubah bisa diatur.

Keterangan:
- r: Read
- w: write
- x: execute

Dari studi kasus tersebut didapatkan perhitungan seperti berikut ini :

13 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika yang diinginkan adalah User (membaca, menulis dan eksekusi), Group (membaca
dan menulis) dan Other (membaca) maka :

User = r + w + x = 2² + 2^1 + 2^0 = 4 + 2 + 1 = 7


Group = r + w = 2² + 2^1 + - = 4 + 2 = 6
Other = r = 2² + - + - = 4 = 4

Sehingga angka yang didapatkan untuk menentukan permission dalam studi kasus
tersebut adalah 764, untuk membuat permission silakan mengikuti perintah dibawah ini :

[root@srv-sinau ~]# touch CentOS.txt

Set angka permission yang ditetapkan

[root@srv-sinau ~]# chmod 0764 CentOS.txt

Menggunakan simbol:

Metode permission menggunakan simbol lebih mudah dari pada menggunakan binary,
pada metode ini hanya menerapkan 2 konsep yaitu:

+ : Digunakan untuk memberikan permission


- : Digunakan untuk menghapus permission

[root@srv-sinau ~]# chmod u+rwx CentOS.txt


[root@srv-sinau ~]# chmod g+rw CentOS.txt
[root@srv-sinau ~]# chmod o+r CentOS.txt

Keterangan : r: read, w: write, x: execute.

2.4 PENGGUNAAN YUM DI CENTOS

Setiap distro linux memiliki command line atau perintahnya masing - masing dalam
melakukan sebuah proses update, install dan mencari sebuah paket yang dibutuhkan.

Melakukan sebuah update sistem operasi merupakan hal yang wajib dilakukan oleh
seorang Administrator untuk memberikan performa dan kinerja yang baik tentunya.

Di CentOS untuk melakukan update, install dan mencari paket yang dibutuhkan dapat
dilakukan dengan menggunakan perintah yum. Lalu apa itu yum ?

Yum (Yellowdog Updater Modified) merupakan perintah yang digunakan untuk mencari
paket, install dan update sistem dengan mudah serta memiliki hasil yang maksimal.

Yum sangat powerful digunakan untuk mencari beberapa paket yang terdapat di
repository dan mampu mencari sendiri beberapa paket dependency yang dibutuhkan
ketika instalasi berlangsung.

Yum adalah manajemen paket yang ditujukan untuk distro linux berbasis RPM. Lalu apa
itu RPM ?

14 | CentOS 7 Linux Administrator Pada Cloud Computing


RPM merupakan sebuah jenis software paket di dalam sistem operasi, selain itu RPM
juga sebagai semua dasar paket software yang digunakan di sistem operasi CentOS.

15 | CentOS 7 Linux Administrator Pada Cloud Computing


3. SSH SERVER

3.1 MENGENAL DAN FUNGSI SSH

Menurut wikipedia ssh adalah sebuah protokol jaringan yang aman serta berjalan di atas
TCP/IP layer yang menggunakan port 22.

Menurut penulis SSH merupakan sebuah protokol yang melakukan proses pertukaran
data antara dua perangkat jaringan yang aman. SSH umumnya digunakan di sistem
operasi linux atau unix lainnya.

Namun saat ini SSH juga dapat dilakukan sistem operasi seperti Windows atau Mac OS.

SSH dapat kita gunakan untuk melakukan akses ke sebuah server atau VPS (Virtual
Private Server) baik melalui terminal linux kita ataupun dari aplikasi seperti halnya putty,
Mputty, dan masih banyak lainnya.

3.2 CARA AKSES VPS MENGGUNAKAN SSH

Melakukan sebuah akses ke server (VPS) menggunakan SSH sangat banyak metodenya
bisa menggunakan terminal linux apabila Anda menggunakan Linux, bisa juga
menggunakan aplikasi seperti halnya PuTTY, MPuTTY dan masih banyak lainnya.

Pada kesempatan kali ini penulis akan memberikan contoh bagaimana cara mengakses
VPS menggunakan ssh di terminal linux dan menggunakan aplikasi PuTTY.

Menggunakan Terminal Linux :

Silakan buka terminal linux Anda masing - masing, disini penulis menggunakan
Desktop sistem operasi Ubuntu 18.04 LTS.

Silakan ketikkan perintah ssh root@Isikan_Ip_Vps.

16 | CentOS 7 Linux Administrator Pada Cloud Computing


Keterangan:

ssh: Merupakan perintah untuk remote akses ke VPS


root: Merupakan user dari VPS
117.53.46.228: Merupakan IP dari VPS

Menggunakan Aplikasi PuTTy:

Silakan buka terlebih dahulu aplikasi PuTTY Anda masing - masing seperti berikut :

Pada menu HostName (or IP address) silahkan isikan hostname dari VPS atau IP dari
VPS Anda masing - masing lalu klik menu open, berikut contohnya :

17 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika terdapat pemberitahuan seperti gambar berikut, klik menu Accept

Silakan isikan username root (bila usernamenya root) sesuaikan dengan username login
VPS Anda masing - masing dan silahkan isikan password VPS Anda dengan benar.
Berikut contoh dan hasil login ssh ke VPS menggunakan aplikasi PuTTY.

18 | CentOS 7 Linux Administrator Pada Cloud Computing


3.3 MENGUBAH PORT DEFAULT SSH

SSH secara default menggunakan service port 22. Pada kesempatan kali ini penulis akan
mengubah atau memodifikasi port default ssh tersebut.

Sangat banyak manfaat yang didapatkan apabila kita mengubah port default ssh salah
satunya adalah untuk melindungi service ssh dari serangan brute force yang sangat dan
sering kali terjadi.

Namun kekurangannya yaitu jika Anda lupa port ssh yang telah Anda ubah atau
modifikasi sebelumnya maka Anda tidak akan dapat login atau akses ke VPS.

Untuk mengubah port ssh tersebut silahkan login ke masing - masing VPS Anda. Jika
sudah silahkan edit file ssh yang berada di direktori /etc/ssh/sshd_config untuk edit filenya
bisa menggunakan teks editor nano, vi, atau vim sesuai dengan keinginan Anda.

[root@srv-sinau ~]# vim /etc/ssh/sshd_config

Cari port default ssh yakni 22 seperti pada gambar dibawah ini

Silahkan ubah port 22 di atas sesuai dengan keinginan Anda, misalnya disini penulis akan
mengubah port 22 menjadi port 22222.

19 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silahkan simpan restart service ssh Anda dengan menggunakan perintah
systemctl restart sshd.service, seperti pada gambar dibawah ini:

Berikutnya, silahkan akses VPS Anda menggunakan port 22222 yang telah diubah baru
saja dan berikut hasilnya

Jika kita akses VPS tanpa port atau menggunakan port default ssh (22) maka tidak dapat
dilakukan, berikut hasilnya:

Jika Anda menggunakan aplikasi PuTTY Anda hanya perlu mengubah portnya saja
seperti berikut contohnya:

20 | CentOS 7 Linux Administrator Pada Cloud Computing


3.4 SSH KEY

Jika sebelumnya kita telah mencoba akses menggunakan SSH dan harus memasukan
sebuah password pada saat mengakses SSH, dengan menggunakan SSH key ini Anda
tidak perlu lagi menginputkan sebuah password pada saat melakukan akses ssh ke VPS
Anda.

SSH Key Authentication, yang biasanya sering disebut dengan ssh-copy-id, bila Anda
menggunakan ssh key ini Anda akan mendapatkan sebuah kenyamanan dan keamanan
tentunya untuk akses ke VPS melalui SSH karena Anda tidak perlu lagi memasukan
password manual seperti ssh biasa yang rawan akan serangan bruteforce ssh.

Pada ssh key terdapat 2 file yang perlu diketahui yaitu private key dan public key.

Public key nantinya yang akan diunggah atau yang akan dipasangkan di sisi server
(VPS), sedangkan Private key berada di sisi host (komputer atau laptop lokal Anda).

Hal yang harus diperhatikan yaitu jangan sampai Anda memberikan private key Anda
kepada orang lain. Sedangkan ssh key sendiri bisa dibilang sebagai gembok atau kunci.

Public Key bisa dibilang sebagai gemboknya yang dapat Anda sebar atau pasang di
banyak lokasi (VPS), sedangkan Private key bisa dibilang sebagai kuncinya, yang
namanya kunci harap disimpan sebaik mungkin jangan sampai hilang atau di sebar
luaskan.

Untuk membuat SSH key, Anda perlu generate terlebih dahulu key dengan perintah
berikut :

# ssh-keygen -t rsa -b 4096 -C “info@nurhamim.net”

21 | CentOS 7 Linux Administrator Pada Cloud Computing


Terdapat 2 file key yang Anda generate diatas, diantaranya Public Key (.pub) dan Private
Key.

Untuk memasang atau menyimpan Public Key yang telah di generate ke server (VPS)
dengan menggunakan perintah berikut:

Jika port service ssh Anda diubah dapat menggunakan perintah

# ssh-copy-id root@117.53.46.228 -p 22222

Jika port service ssh Anda masih default dapat menggunakan perintah

# ssh-copy-id root@117.53.46.228

Pada langkah ini ssh key telah terunggah atau terpasang di server (VPS) Anda. Untuk
login menggunakan ssh key dapat dilakukan dengan cara seperti Anda login ssh seperti
sebelumnya namun dengan ssh key Anda tidak perlu lagi menginputkan password untuk
login seperti berikut hasilnya.

Gambar diatas dapat dipastikan bahwa Anda tidak perlu lagi menginputkan password.

Saat ini kita telah mempunyai Public Key bagaimana cara login SSH key dengan public
key yang ada menggunakan PuTTY?

22 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan buka aplikasi PuTTY Anda masing - masing, jika sudah silahkan menuju ke menu
Connection » SSH » Auth, lalu klik pada menu Browser silahkan cari direktori dimana
file ssh public key Anda simpan. Seperti pada gambar dibawah ini :

Jika sudah, silahkan login kembali ke server (VPS) Anda seperti berikut:

Jika terdapat pemberitahuan seperti pada gambar dibawah silakan klik Accept.

23 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan isikan username sebagai root, jika sudah Enter secara otomatis Anda akan dapat
langsung login ke server tanpa menggunakan password, berikut hasilnya:

24 | CentOS 7 Linux Administrator Pada Cloud Computing


4. DNS SERVER

4.1 MENGENAL APA ITU DNS

DNS (Domain Name System) adalah sebuah sistem yang berfungsi sebagai layanan
direktori untuk semua sistem, dengan menspesifikannya sebagai nama host atau domain.

Dengan kata lain, DNS menjadi satu fasilitas dimana sebuah server yang memiliki nama
host dan alamat IP sebagai identitas yang unik di dalam jaringan.

Sebagai layanan, DNS menjadi salah satu bagian terpenting di dalam jaringan internet.
Misalnya terdapat seseorang yang mengunjungi sebuah situs dengan mengetikan
sebuah alamat situs contohnya nurhamim.net pada aplikasi browser (Firefox, Chrome,
dsb).

Tanpa adanya DNS, seseorang atau pengunjung situs tersebut masih tetap akan dapat
mengakses alamat nurhamim.net tersebut dengan menggunakan IP, namun disinilah
yang menjadi persoalan penting, apakah kita sanggup menghafal berbagai alamat IP
sebuah server?

Secara pribadi penulis sangat kesulitan sekali untuk untuk menghafal sebuah alamat IP
pada sebuah server jika dibandingkan dengan nama host atau domain.

Dengan demikian untuk melakukan pemetaan atau pengalamatan sebuah host atau
domain menjadi sebuah IP Address maupun sebaliknya maka dibutuhkan sebuah server
yang berfungsi sebagai penanggung jawab yang disebut dengan DNS Server.

4.2 BAGAIMANA DNS BEKERJA

Berikut ini tahapan - tahapan cara kerja dari DNS server mengacu pada skema atau
gambar diatas:

1. Jika seseorang (user) ingin mengakses domain hamim.id, maka user harus
mengetahui alamat IP Server dari domain hamim.id. Pertama kali user mengakses
DNS Recursive untuk mencari record dari domain hamim.id

25 | CentOS 7 Linux Administrator Pada Cloud Computing


2. DNS Recursive akan menerjemahkan domain ke alamat IP jika DNS Recursive
memiliki record dari domain hamim.id. Jika DNS Recursive tidak menyimpan record
domain hamim.id maka permintaan akan diteruskan ke “Root Server”

3. Root Server akan memberikan jawaban delegasi, Contohnya “Saya tidak tahu alamat
IP dari hamim.id, tapi saya “tahu” bahwa server DNS di 103.19.178.178 memiliki
informasi tentang domain .id”

4. Recursor DNS lokal kemudian bertanya kepada server DNS (Contohnya:


203.119.112.47) pertanyaan pun sama seperti yang diberikan kepada root server tadi.
"apakah alamat IP dari www.hamim.id?". (secara umum) akan mendapatkan jawaban
yang serupa, "saya tidak tahu alamat dari www.hamim.id, tapi saya "tahu" bahwa
server 103.19.178.178 memiliki informasi dari domain hamim.id"

5. Akhirnya, pertanyaan beralih kepada server DNS ketiga (207.142.131.234), yang


menjawab dengan alamat IP yang dibutuhkan.

6. Barulah DNS Recursive memberi jawaban bahwa IP 117.53.45.53 digunkan oleh


domain hamim.id.

4.3 INSTALASI DNS

Pada instalasi DNS kali ini penulis akan menggunakan service Bind. Lalu apa itu Bind ?

BIND (Berkeley Internet Name Domain) merupakan aplikasi service dan salah satu
implementasi DNS yang paling banyak digunakan pada server. BIND dibuat untuk sistem
operasi BSD UNIX 4.3 oleh Kevin Dunlap, lalu banyak di pointing ke turunan – turunan
UNIX termasuk LINUX. Sebelum melanjutkan proses instalasi silahkan melakukan
update terlebih dahulu terhadap sistem operasi CentOS 7 Anda dengan menjalankan
perintah :

[root@sinau ~]# yum update -y

Untuk instalasi service bind dan utilitas yang dibutuhkan silakan menggunakan perintah
berikut:

[root@sinau ~]# yum install bind bind-utils -y

Tunggu proses instalasi sampai selesai. Pastikan DNS Server telah running, dan agar
service DNS Server dapat otomatis running bila server (VPS) dilakukan restart atau
reboot, silakan enable service named dengan menggunakan perintah sebagai berikut:

[root@sinau ~]# systemctl enable named


Created symlink from /etc/systemd/system/multi-
user.target.wants/named.service to
/usr/lib/systemd/system/named.service.
[root@sinau ~]#
[root@sinau ~]# systemctl start named
[root@sinau ~]# systemctl status named

26 | CentOS 7 Linux Administrator Pada Cloud Computing


● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled;
vendor preset: disabled)
Active: active (running) since Sen 2019-04-01 20:00:53 WIB; 4s ago
Process: 28479 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF}
$OPTIONS (code=exited, status=0/SUCCESS)
Process: 28477 ExecStartPre=/bin/bash -c if [ !
"$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z
"$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi
(code=exited, status=0/SUCCESS)
Main PID: 28481 (named)
CGroup: /system.slice/named.service
└─28481 /usr/sbin/named -u named -c /etc/named.conf

4.4 KONFIGURASI DNS

Baru saja penulis telah menginstall DNS Server menggunakan service bind, kali ini
penulis akan melakukan konfigurasi DNS.

Secara default direktori bind berada di /var/named. Namun untuk konfigurasi bind sendiri
berada di /etc/named.conf.

Untuk membuka file named.conf dapat melalui teks editor seperti halnya nano, vim, dll.

Di CentOS 7 secara default editor vi telah terinstall. Penulis kali ini akan menggunakan
teks editor vim untuk melakukan konfigurasi DNS Server.

Silakan buka file named.conf dengan menggunakan perintah sebagai berikut:

[root@sinau ~]# vim /etc/named.conf

Pada gambar diatas silahkan isikan alamat IP VPS Anda.

Listen-on port 53 > Menerangkan bahwa IP VPS akan listen ke IPv4 saja.

Listen-on-v6 port 53 { ::1; }; > Menerangkan bahwa IP VPS akan listen ke IPv6.

27 | CentOS 7 Linux Administrator Pada Cloud Computing


Bila VPS Anda belum support dengan IPv6 silahkan di disable atau dinonaktifkan saja
dengan menggunakan perintah // atau # seperti pada gambar diatas.

Jika Anda ingin menambahkan caching-nameserver silahkan tambahkan konfigurasi


seperti berikut :

Karena alasan keamanan agar terhindar dari indikasi abuse Flood DNS seperti yang telah
dialami oleh penulis maka, akan melakukan disable atau menonaktifkan recursion dns,
karena dns server kali ini tidak diperuntukkan sebagai DNS resolver sepertihalnya DNS
google (8.8.8.8 , 8.8.4.4)

Apabila recursion diatas kita yes (aktif), maka DNS kita akan menjadi DNS resolver
layaknya DNS Google (8.8.8.8 , 8.8.4.4) apabila DNS kita menjadi DNS resolver akan
sangat banyak permintaan akses ke DNS kita dan banyaknya akses tersebut yang akan
menimbulkan Abuse Flooding DNS.

Berikutnya, membuat zone untuk DNS, disini penulis akan membuat zone forward saja,
dimana zone forward inilah yang nantinya akan digunakan untuk melakukan pemetaan
atau mengarahkan atau pointing domain (hamim.web.id) ke alamat IP (117.53.46.228).

Kenapa tidak membuat zone reverse?

Zone reverse ini kebalikannya zone forward dimana fungsi dari zone reverse yaitu untuk
memetakan IP ke domain.

Biasanya dibilang dengan rDNS (DNS Reverse) atau PTR Record, jika Anda pengguna
VPS dan Anda ingin membangun DNS Mandiri di VPS, Anda tidak perlu membuat zone
reverse ini karena yang mempunyai sebuah wewenang untuk mengelola sebuah zone
reverse hanyalah pengelola IP.

Dan apabila penyedia VPS Anda mempunyai block IP sendiri maka Anda nantinya
apabila membutuhkan rDNS atau PTR silahkan melakukan request untuk penambahan
rDNS ke penyedia Hosting atau VPS Anda masing – masing. rDNS atau PTR Record ini
digunakan untuk kebutuhan mail server.

28 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar diatas merupakan contoh dari zone forward. Berikut keterangannya:

zone: Silahkan isikan nama domain yang ingin digunakan


type: Master
File: Tempat direktori atau folder untuk menyimpan database
record dari zone forward

Berikutnya, silahkan membuat file di direktori yang telah ditentukan pada gambar diatas
yaitu di direktori /etc/named/filedns-forward.zone, dengan menggunakan perintah sebagai
berikut :

[root@sinau ~]# vim /etc/named/filedns-forward.zone

Berikut ini merupakan keterangan dari record - record DNS diatas :

– SOA (Start Of Authority) untuk mengidentifikasikan otoritas name-server pada zone


data atau informasi nama host domain.

– TTL (Time To Live) merupakan waktu yang diperlukan server DNS untuk menyimpan
hasil resolving ke cache-nya.

– Serial merupakan nomor seri database-cache domain (updateartikel.net). Jika ada


perubahan data pada berkas zone pada domain (updateartikel.net), misalnya
menambahkan subdomain, (test.updateartikel.net) maka, Anda harus

29 | CentOS 7 Linux Administrator Pada Cloud Computing


merubah/menambah nomor serinya. Sebaiknya digunakan format dalam bentuk tahun-
bulan-tanggal-jam untuk nomor serialnya. Pada berkas database untuk zone domain
(updateartikel.net) tersebut terakhir di-update tanggal 01 April 2019 jam 20
(2019040120). Fungsi dari serial ini adalah untuk memberitahukan kepada secondary-
master name-server untuk meng-update database-cache-nya jika ada perubahan pada
primary-master name-server yaitu dengan melakukan pengecekan nomor serial.

Jika nomor serial berubah/bertambah maka secondary-master name-server akan segera


melakukan zone-transfer dari primary-master name-server.

– Refresh adalah selang waktu yang diperlukan (dalam detik) secondary-master name-
server untuk melakukan pengecekan perubahan database-cache pada primary-master
name-server.

– Retry adalah waktu (dalam detik) yang digunakan secondary-master name-server


untuk menunggu pengulangan cek berkas zone jika pada saat proses refresh primary-
master name-server tidak memberikan respon

– Expire adalah waktu (dalam detik) yang digunakan secondary-master name-server


untuk mempertahankan berkas zone jika tidak dapat melakukan zone-refresh. Jika
setelah waktu expire telah habis tapi secondary-master name-server tidak dapat
melakukan zone-refresh maka berkas zone pada secondary-master name-server akan
dihapus.

– Minimum adalah nilai waktu (TTL) default untuk semua resource-record yang ada
dalam berkas zone.

– @ menunjukkan bahwa zone yang bersangkutan adalah zone domain yang ditunjukkan
berkas named.conf ke berkas database-cache tersebut atau origin zone

– IN adalah singkatan dari Internet. Semua informasi Internet digunakan IN dan untuk
informasi non-Internet digunakan kode lain.

– A menyatakan Address Internet atau alamat IP dari mesin yang ditangani oleh DNS ini
proses penerjemahan namanya.

– NS Record merupakan daftar name-server yang otoritatif untuk zone bersangkutan.


Pada database domain (updateartikel.net) name-servernya adalah ns1.updateartikel.net
dan ns2.updateartikel.net. NS Record ini yang nantinya akan diserahkan kepada
pengelola domain TLD (Top Level Domain) agar terdaftar dalam registrar domain.

– MX (Mail Exchanger) merupakan record routing email, untuk domain updateartikel.net


dalam hal ini akan diarahkan ke mail.updateartikel.net, sebagai host yang ditunjuk
sebagai mail exchanger akan memproses atau meneruskan mail untuk domain
updateartikel.net.

30 | CentOS 7 Linux Administrator Pada Cloud Computing


– Angka 10 pada MX 10 mail.updateartikel.net. merupakan nilai preferensi (preference
value) untuk menunjukkan tingkat prioritas mail exchanger yang digunakan untuk
memproses atau meneruskan mail yang menuju domain updateartikel.net.

– CNAME (Canonical Name) fungsinya untuk alias, jadi suatu host dapat mempunyai
nama lebih dari satu.

Berikutnya, silahkan restart kembali service named dan pastikan service bind (named)
berjalan dengan normal.

[root@sinau ~]# systemctl restart named


[root@sinau ~]# systemctl status named

Jika semua telah berhasil dikonfigurasi maka, DNS Server siap digunakan.

4.5 KONFIGURASI Glue Record/Private NAME SERVER (NS)

Baru saja kita telah melakukan konfigurasi DNS, langkah terakhir yaitu melakukan
konfigurasi Glue record atau private NS (name server) pada domain updateartikel.net.

Untuk membuat Private NS ini silakan login ke Management DNS Domain Anda masing
- masing. Disini penulis menggunakan domain updateartikel.net yang berlangganan di
CloudKilat.

Jika Anda kebingungan dengan cara membuat Private NS ini silakan menghubungi pihak
Registrar atau penyedia domain Anda masing - masing untuk menanyakan tahapan -
tahapan untuk membuat private NS pada domain.

Berikut langkah - langkah untuk membuat private NS pada domain updateartikel.net :

1. Login portal area CloudKilat URL : https://portal.cloudkilat.com/

31 | CentOS 7 Linux Administrator Pada Cloud Computing


2. Masuk ke menu service » Domain » updateartikel.net » Manage
3. Pilih menu Private Name server, silahkan isikan sebagai berikut

Nameserver: ns1
IP Address: IP VPS (117.53.46.228)
Save changes

Nameserver: ns2
IP Address: IP VPS (117.53.46.228)
Save changes

32 | CentOS 7 Linux Administrator Pada Cloud Computing


4. Ubah nameserver menjadi ns1.updateartikel.net dan ns2.updateartikel.net pada menu
Name server sebagai berikut:

Untuk perubahan name server pada domain akan membuat domain mengalami proses
propagasi dan proses propagasi (delegasi record) pada domain memerlukan waktu
maksimal 48 jam. Cepat atau lambat proses propagasi pada domain bergantung dengan
resolver ISP yang Anda gunakan saat ini.

Apabila Anda telah mengubah name server pada domain silahkan melakukan restart pada
service bind dengan menggunakan perintah berikut:

[root@sinau ~]# systemctl restart named


[root@sinau ~]# systemctl status named

Silakan tunggu masa propagasi sampai selesai, jika masa propagasi sudah selesai Anda
dapat melihat hasil Glue Record dan Private Name Server menggunakan tools Online
dan berikut hasilnya: DNS Glue Record Checker

33 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk memastikan apakah A record telah mengarah ke IP VPS kita dapa melakukan
pengecekan melalui tools online dan berikut hasilnya : DNS Checker

Jika Anda pengguna Linux, Anda dapat melakukan pengecekan menggunakan perintah
dig melalui terminal Linux Anda masing - masing seperti berikut perintahnya :

hamimaja@hamimaja:~$
hamimaja@hamimaja:~$ dig ns1.updateartikel.net +short
117.53.46.228
hamimaja@hamimaja:~$ dig ns2.updateartikel.net +short
117.53.46.228
hamimaja@hamimaja:~$ dig @ns1.updateartikel.net updateartikel.net +short
117.53.46.228
hamimaja@hamimaja:~$ dig @ns2.updateartikel.net updateartikel.net +short
117.53.46.228
hamimaja@hamimaja:~$ dig updateartikel.net +short
117.53.46.228
hamimaja@hamimaja:~$

34 | CentOS 7 Linux Administrator Pada Cloud Computing


Atau Anda juga dapat menggunakan perintah nslookup seperti berikut

hamimaja@hamimaja:~$
hamimaja@hamimaja:~$ nslookup
> updateartikel.net
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: updateartikel.net
Address: 117.53.46.228
> www.updateartikel.net
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
www.updateartikel.net canonical name = updateartikel.net.
Name: updateartikel.net
Address: 117.53.46.228
> exit
hamimaja@hamimaja:~$

4.6 MEMBUAT DNS MASTER - SLAVE

DNS Master – Slave, kata Master (primary) artinya utama, sedangkan Slave (secondary)
yang artinya yang kedua yang biasanya digunakan sebagai cadangan atau backup.

DNS Master – Slave juga bisa dibilang pembagian node Name server pada DNS, dengan
pembagian ini maka kita akan mempunyai sebuah backup atau cadangan sebuah record
Nameserver.

Terdapat keuntungan yang didapatkan dari DNS Master - Slave ini yakni jika sewaktu –
waktu server DNS Master mengalami kendala misalnya (Down) maka domain yang
menggunakan Name server dari DNS Master – Slave tersebut tidak akan mengalami yang

35 | CentOS 7 Linux Administrator Pada Cloud Computing


namanya down (tidak bisa akses domainnya) karena apabila server Master down domain
Anda akan langsung di handle oleh server Slave yang berfungsi sebagai backup si Master
dengan begitu domain Anda masih bisa diakses dengan normal.

Kebutuhan yang diperlukan untuk LAB DNS Master - Slave kali ini yaitu sebagai berikut

- 2 VPS
- Sistem operasi CentOS 7

Berikut skema dari kebutuhan diatas:

1. DNS Master
- IP VPS (117.53.46.228)
- Nameserver (ns1.updateartikel.net)

2. DNS Slave
- IP VPS (103.23.20.126)
- Nameserver (ns2.updateartikel.net)

Catatan:

Anda dapat menggunakan sistem operasi yang berbeda misalnya Master menggunakan
CentOS dan Slave Menggunakan Ubuntu. Selain itu Anda juga dapat memodifikasi sesuai
dengan keinginan untuk penamaan nameserver misalnya ns001.updateartikel.net
ns002.updateartikel.net.

# Instalasi DNS Master

Untuk instalasi DNS Master hampir sama dengan cara bagaimana instalasi DNS seperti
pada poin 4.3 - 4.5 yang membedakan hanyalah disisi konfigurasi named.conf saja.

Silahkan install service bind dengan menggunakan perintah

[root@sinau ~]# yum install bind bind-utils -y

Jika sudah, silahkan melakukan konfigurasi di file direktori /etc/named.conf, seperti berikut

[root@sinau ~]# vim /etc/named.conf

Silahkan melakukan konfigurasi seperti berikut ini

36 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan scroll kebawah, lalu membuat zone Master untuk domain
updateartikel.net seperti berikut

Berikut ini beberapa keterangan dari zone Master diatas :

zone: Digunakan untuk penamaan zone dari domainAnda


IN: Internet
Type: Sesuaikan dengan skema DNS Server Yang ingin Anda gunakan,
jika DNS Servernya diperuntukkan untuk Master silakan isikan master
jika slave silakan sisikan slave
File: Letak dimana database record dari domain hamim.web.id berada
allow-update: Digunakan untuk recursive, jika tidak diaktifkan
silakan berikan keterangan none;
allow-transfer: Digunakan untuk melakukan transfer database record
master (primary) ke server Slave. Silakan isikan IP dari Server
Slave
notify yes: Digunakan untuk notifikasi setiap perubahan di sisi
zone master dan akan diinformasikan ke Slave. Namun apabila tidak
menggunakannya hal tersebut tidak apa – apa dikarenakan secara
default bind sudah melakukan notifikasi perubahan ke host slave.

Berikutnya, membuat database zone master untuk domain


(updateartikel.net) seperti berikut

[root@sinau ~]# vim /etc/named/filedns-forward.zone

Berikut merupakan contoh konfigurasi record - record DNS dari sisi Master

37 | CentOS 7 Linux Administrator Pada Cloud Computing


Pastikan ns2.updateartikel.net mengarah ke IP VPS (Slave) seperti pada gambar diatas.

Jika sudah silakan simpan dan melakukan restart service bind (named) dengan
menggunakan perintah berikut

[root@sinau ~]# systemctl restart named

# Instalasi DNS Slave

Sebelumnya, kita telah melakukan instalasi dan konfigurasi DNS Master, sekarang kita
akan melakukan instalasi dan konfigurasi DNS dari sisi Slave.

Instalasi dan konfigurasi slave tidaklah rumit dan hampir sama dengan sisi Master.
Perbedaannya ada disisi konfigurasi zone-nya saja.

Silakan install DNS Slave dengan menggunakan perintah berikut

[root@srv-slave ~]# yum install bind bind-utils -y

Silakan tunggu sampai proses instalasi selesai, jika sudah silakan melakukan konfigurasi
di file direktori /etc/named.conf.

Pada menu listen-on port 53 silakan isikan IP VPS DNS Slave (103.23.20.126) seperti
pada gambar dibawah ini

Silakan disable DNS recursive seperti berikut

38 | CentOS 7 Linux Administrator Pada Cloud Computing


Membuat zone untuk domain updateartikel.net disisi DNS Slave, pastikan juga type zone-
nya menggunakan slave seperti berikut

Keterangan:

zone: Silakan sesuaikan dengan nama domain si Master


Type: Menggunakan slave
File: Tempat penyimpanan hasil backup record - record si Master
Masters: Isika IP VPS (Master)
Masterfile-format text: Digunakan untuk menampilkan hasil backup
dalam bentuk text. Secara default hasil backup dalam bentuk binary.

Berikutnya, silakan mendaftarkan Glue Record atau private nameserver seperti halnya
instalasi DNS sebelumnya.

Pastikan ns1.updateartikel.net diarahkan ke IP VPS Master (117.53.46.228) dan


ns2.updateartikel.net diarahkan ke IP VPS Slave (103.23.20.126).

Jika sudah silakan melakukan restart service bind (named) dari sisi Master dan Slave
seperti berikut

#Restart Bind Dari Sisi Master


[root@sinau ~]# systemctl restart named
[root@sinau ~]#

#Restart Bind Dari Sisi Slave


[root@srv-slave ~]# systemctl restart named
[root@srv-slave ~]#

Jika sudah silakan menunggu masa propagasi yang membutuhkan waktu 48 jam.

Untuk memastikan apakah Glue record atau private nameserver di setiap name server
(ns1.updateartikel.net, ns2.updateartikel.net) telah mengarah ke IP VPS masing - masing
dapat dilakukan dengan menggunakan tools online dan berikut hasilnya :

39 | CentOS 7 Linux Administrator Pada Cloud Computing


DNS Glue Record Checker

Jika Anda pengguna Linux, Anda dapat memastikan perubahan diatas dengan
menggunakan perintah dig seperti berikut

hamimaja@hamimaja:~$ dig ns1.updateartikel.net +short


117.53.46.228
hamimaja@hamimaja:~$ dig ns2.updateartikel.net +short
103.23.20.126
hamimaja@hamimaja:~$

Gambar diatas secara jelas dan detail bahwa ns1 telah mengarah ke IP Master dan ns2
telah mengarah ke IP Slave.

Untuk memastikan apakah si slave akan melakukan backup record - record master,
marilah kita coba untuk membuat record baru di sisi Master.

Disini penulis akan membuat subdomain baru di sisi Master dengan nama subdomain
(percobaan-yaa)

40 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan simpan dan pastikan Anda telah mengubah nilai dari serial, jika Anda tidak
melakukan perubahan dari nilai serial maka tidak akan ada update perubahan record dari
si Slave. Silakan restart service bind (named) disisi Master

[root@sinau ~]# systemctl restart named


[root@sinau ~]#

Sekarang kita coba melihat hasilnya di sisi DNS Slave. Untuk melihat hasilnya dapat
menggunakan perintah cat default direktorinya berada di /var/named/slave/[Nama File
Record Master], seperti berikut

Berikut hasil log pengiriman record (Master)

Dan berikut contoh log penerimaan record (Slave)

41 | CentOS 7 Linux Administrator Pada Cloud Computing


5. FTP SERVER

5.1 MENGENAL APA ITU FTP BESERTA FUNGSINYA

FTP (File Transfer Protocol) merupakan sebuah protokol internet yang berjalan
menggunakan port 21 (default) dapat digunakan untuk melakukan transfer atau
pengiriman file atau direktori antar perangkat dalam suatu jaringan yang menggunakan
koneksi TCP.

FTP mempunyai 2 komponen yakni FTP Server dan FTP Client, berikut perbedaannya:

FTP Server yang berfungsi untuk memberikan akses file, download dan menambah suatu
file atau direktori di dalamnya sedangkan

FTP Client yang berfungsi untuk mengakses FTP Server dengan menggunakan
credential atau akun yang telah dibuat atau diberikan akses oleh FTP Server.
Sangat banyak fungsi dari FTP Server diantaranya

1. Dapat digunakan untuk sharing data.


2. Untuk menyediakan indirect atau implicit remote computer.
3. Untuk menyediakan tempat penyimpanan bagi user.
4. Untuk menyediakan transfer data yang reliable dan efisien.

Biasanya aplikasi atau service yang digunakan untuk FTP Server di Linux yakni
PureFTPd, ProFTPD, and vsftpd.

Penulis disini akan menggunakan vsftpd . Alasan penulis memilih vsftpd dikarenakan
alasan kinerja yang sangat baik. Contohnya saja http://ftp.redhat.com/ ini menggunakan
vsftpd . Anda dapat mengetahui keterangannya pada tautan resmi vsftpd.

5.2 INSTALASI VSFTPD

Sebelum kita melakukan instalasi vsftpd silakan update atau melakukan pembaharuan
sistem operasi CentOS 7 Anda dengan cara menjalankan perintah berikut

[root@sinau ~]# yum update -y

Jika sudah, silakan jalankan perintah berikut untuk instalasi vsftpd :

[root@sinau ~]# yum install vsftpd -y

42 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah, silakan start vsftpd agar service vsftpd jalan secara otomatis pada saat VPS
di reboot atau restart silakan enable vsftpd dan pastikan status vsftpd running dengan
menggunakan perintah berikut

[root@sinau ~]# systemctl start vsftpd


[root@sinau ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/vsftpd.service to
/usr/lib/systemd/system/vsftpd.service.
[root@sinau ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled;
vendor preset: disabled)
Active: active (running) since Kam 2019-04-04 02:00:25 WIB; 28s ago
Main PID: 28646 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─28646 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Apr 04 02:00:25 sinau.localhost systemd[1]: Starting Vsftpd ftp


daemon...
Apr 04 02:00:25 sinau.localhost systemd[1]: Started Vsftpd ftp daemon.

43 | CentOS 7 Linux Administrator Pada Cloud Computing


5.3 KONFIGURASI VSFTPD

Secara default direktori vsftpd yang akan kita konfigurasi yakni berada di
/etc/vsftpd/vsftpd.conf.

Untuk membuka file vsftpd.conf diatas dapat menggunakan teks editor, nano, vi atau vim
sesuai dengan keinginan dan kenyamanan Anda masing - masing. Disini penulis
menggunakan vim.

[root@sinau ~]# vim /etc/vsftpd/vsftpd.conf

Disini penulis akan memberikan cara bagaimana memberikan izin akses ke server FTP
hanya untuk pengguna lokal, dengan cara mengubah parameter berikut

#
# Allow anonymous FTP? (Beware - allowed by default if you comment this
out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#

Silakan uncomment parameter write_enable untuk memungkinkan kita melakukan


sebuah perubahan sistem file seperti halnya mengunggah dan menghapus file.

# Uncomment this to enable any form of FTP write command.


write_enable=YES
#

Untuk mencegah pengguna FTP mengakses file apapun di luar direktori yang telah
ditentukan (home) dengan cara un-comment "chroot_local_user=YES" .

# the user does not have write access to the top level directory within
# chroot)

44 | CentOS 7 Linux Administrator Pada Cloud Computing


chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)

Membuat direktori FTP di dalam home user yang mana berfungsi sebagai chroot dan
direktori upload yang dapat melakukan eksekusi (menulis, mengunggah) sebuah file atau
direktori. Berikut contoh perintah yang perlu ditambahkan

#chroot_list_file=/etc/vsftpd/chroot_list
#
#
user_sub_token=$USER
local_root=/home/$USER/ftp
# You may activate the "-R" option to the builtin ls. This is disabled
by

Guna sebagai keamanan FTP maka penulis akan memberikan batasan siapa saja user -
user yang berhak untuk melakukan akses terhadap server FTP dengan cara
menambahkan perintah berikut setelah parameter “userlist_enable=YES” .

# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES

45 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan simpan konfigurasi FTP dan silakan restart service FTP dengan menggunakan
perintah berikut

[root@sinau ~]# systemctl restart vsftpd

Silakan membuat user dan password FTP dengan menggunakan perintah berikut

[root@sinau ~]#
[root@sinau ~]# adduser hamimaja
[root@sinau ~]# passwd hamimaja
Changing password for user hamimaja.
New password: Isikan_Password_User_hamimaja
Retype new password: Konfirmasi_Password_User_hamimaja
passwd: all authentication tokens updated successfully.
[root@sinau ~]#

Menambahkan user user hamimaja ke daftar user penggunaan FTP yang diizinkan
dengan menggunakan perintah

[root@sinau ~]#
[root@sinau ~]# echo "hamimaja" |sudo tee -a /etc/vsftpd/user_list
hamimaja
[root@sinau ~]#

Untuk melihat hasil user hamimaja yang telah ditambahkan ke user list FTP dapat
dilakukan dengan menggunakan perintah cat /letak_direktori_user seperti berikut

[root@sinau ~]#
[root@sinau ~]# cat /etc/vsftpd/user_list

46 | CentOS 7 Linux Administrator Pada Cloud Computing


Membuat direktori FTP dan memberikan permission direktori tersebut, berikut contohnya

[root@sinau ~]#
[root@sinau ~]# mkdir -p /home/hamimuserftp/ftp/upload
[root@sinau ~]# chmod 550 /home/hamimuserftp/ftp
[root@sinau ~]# chmod 750 /home/hamimuserftp/ftp/upload/
[root@sinau ~]# chown -R hamimuserftp: /home/hamimuserftp/ftp/
[root@sinau ~]#

Di atas kita telah membuat direktori upload yang mana nantinya Anda dapat mengunggah
file Anda ke direktori upload tersebut.

Untuk mencobanya silakan mencoba akses FTP Server (vsftpd) menggunakan aplikasi
FTP Client seperti halnya FireFTP, WinSCP, FileZilla, dan yang lainnya.

Penulis disini menggunakan FileZilla, berikut tahapannya.

Silakan buka aplikasi FileZilla Anda masing - masing

47 | CentOS 7 Linux Administrator Pada Cloud Computing


Isikan Host dengan IP Server, Username dengan user FTP yang telah dibuat (hamimaja),
dan Password user FTP Anda, seperti pada gambar dibawah ini

Anda juga dapat mengakses FTP dengan menggunakan browser internet Anda dengan
cara mengetikan perintah ftp://IP_VPS lalu mengisikan username dan password FTP
yang telah dibuat sebelumnya seperti pada gambar dibawah ini.

48 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila berhasil maka, hasilnya akan seperti pada gambar dibawah ini

Jika Anda menggunakan browser firefox tampilan FTP Server bisa dibilang bagus, hasil
akan seperti gambar dibawah ini

49 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya penulis akan menambahkan file atau direktori baru di dalam direktori upload.
Untuk membuat file baru di CentOS dapat dilakukan dengan menggunakan perintah
touch seperti berikut

[root@sinau ~]#
[root@sinau ~]# cd /home/hamimaja/ftp/upload/
[root@sinau upload]# touch index.txt
[root@sinau upload]# ls
index.txt
[root@sinau upload]# touch inicontohfile.txt
[root@sinau upload]#

Dan berikut hasilnya

Jika dilihat menggunakan aplikasi FileZilla hasilnya akan seperti berikut

50 | CentOS 7 Linux Administrator Pada Cloud Computing


Anda juga dapat mengunggah file atau direktori ke VPS dengan cara drag and drop file
di komputer lokal ke direktori yang diinginkan, berikut penulis memberikan contoh hasil
unggah file yang berada di lokal komputer ke VPS menggunakan FileZilla.

Berikut hasil unggahan file tadi jika dilihat melalui browser

51 | CentOS 7 Linux Administrator Pada Cloud Computing


52 | CentOS 7 Linux Administrator Pada Cloud Computing
6. WEB SERVER

6.1 MENGENAL APA ITU WEB SERVER

Web server adalah perangkat lunak yang memberikan layanan atau service kepada client
untuk menerima request HTTP maupun HTTPS dari client yang dikenali.

Setelah itu, web server akan mengirimkan request yang diminta oleh klien dalam bentuk
halaman web, yang secara umum berbentuk dokumen HTML.

Fungsi utama dari sebuah web server adalah memproses berkas-berkas yang diminta
oleh klien dan kemudian memberikan respon berupa halaman website yang terdiri dari
teks, gambar, video, dokumen, dan sebagainya.

Gambaran umumnya seperti berikut:

6.2 JENIS - JENIS WEB SERVER

Terdapat berbagai macam jenis - jenis web server diantaranya yang sering sekali
digunakan yakni

- Apache Web Server


- Nginx Web Server
- LiteSpeed Web Server

Untuk lebih detailnya mengenai jenis - jenis web server dapat merujuk pada tautan berikut
oleh Codepolitan : Mengenal 10 Web Server Untuk Infrastruktur Web

Namun disini penulis akan mengupas sedikit mengenai web server Apache, Nginx dan
LiteSpeed.

6.3 WEB SERVER APACHE

Web Server Apache merupakan web server yang dapat dijalankan di berbagai macam
sistem operasi yang berbeda seperti Unix, BSD, Linux, Windows dan Novell Netware
yang bertugas untuk melayani fasilitas web dengan menggunakan protokol http.

53 | CentOS 7 Linux Administrator Pada Cloud Computing


Apache bersifat open source, yang artinya dapat digunakan secara bebas oleh semua
pengguna atau kalangan.

Web server Apache akan bekerja jika pengguna atau user meminta atau request melalui
protokol http atau https untuk membuka suatu halaman. Apache akan menjawab request
yang diminta oleh pengguna kemudian akan diproses oleh Apache sampai menampilkan
sebuah halaman yang diminta atau yang diminta.

Kelebihan Web Server Apache :

- Open Source (bebas dan Free)


- Mudah dalam instalasi
- Mampu beroperasi pada berbagai platform sistem operasi
- Bisa dibilang mudah dalam konfigurasi
- Tersedia fitur untuk multi home dan virtual server (VHOST)
- Secure
- Mempunyai dukungan teknis melalui web, community.

6.4 WEB SERVER NGINX

Web Server Nginx adalah salah satu web server yang powerfull dan bersifat open source
(bebas dan Free). Dapat digunakan untuk reverse proxy untuk mendukung web server
apache serta dapat digunakan sebagai server proxy IMAP/POP3.

Web server Nginx terkenal karena performanya yang tinggi, stabil, memiliki banyak fitur,
mudah dikonfigurasi, dan menggunakan hanya sedikit sumberdaya pada server.

Nginx adalah salah satu dari sebagian kecil perangkat lunak


untuk server yang diciptakan untuk mengatasi Problem C10K.

Nginx juga salah satu web server yang dapat digunakan untuk website yang
membutuhkan trafik dan beban yang tinggi.

Kelebihan Web Server Nginx :

- Open Source (bebas dan Free)


- Mudah dalam instalasi dan konfigurasi
- Performa yang diberikan sangat amat baik, high performance, stabil serta memiliki
banyak fitur.
- Menggunakan sedikit sumber daya
- Secure
- Mempunyai dukungan teknis melalui web, community.

6.5 WEB SERVER LiteSpeed

Web Server LiteSpeed merupakan salah satu web server yang mempunyai kinerja tinggi
dan sangat baik yang dikembangkan oleh LiteSpeed Technologies.

54 | CentOS 7 Linux Administrator Pada Cloud Computing


Web server LiteSpeed saat ini menjadi salah satu web server yang populer dan banyak
digunakan karena performance yang dibilang oleh pihak Litespeed 50x lebih cepat
dibandingkan dengan teknologi apache web server biasanya digunakan, dengan
menawarkan performa yang tinggi, cepat, ringan, stabil, dan handal teknologi ini banyak
dimanfaatkan oleh dunia per hostingan untuk memenuhi kebutuhan dengan skala besar.

Dan bila dilihat hasil benchmark dari pihak LiteSpeed hasil benchmark nya sangat -
sangat bagus dan cocok digunakan untuk CMS seperti halnya WordPress. Untuk
benchmark selengkapnya dapat dilihat melalui tautan berikut : LiteSpeed Benchmark

Kelebihan Web Server LiteSpeed :

- Mempunyai akses loading time lebih cepat 6x dibandingkan dengan Apache web
server
- Support .htaccess layaknya web server Apache
- Compatible dengan mod_security dan mod_rewrite yang memungkinkan kita untuk
memanfaatkan keamanan dari segi aplikasi layer.
- Pemrosesan PHP 50% lebih cepat dibandingkan dengan web server lainnya.
- Litespeed Web Server mampu menahan Serangan DDOS attack, karena telah
tersedia fitur DDOS Attack.

6.6 INSTALASI WEB SERVER APACHE

Untuk melakukan instalasi web server apache di CentOS sangatlah mudah dikarenakan
secara default repository apache telah tersedia di CentOS.

Berikut perintah yang digunakan untuk instalasi apache di CentOS 7 :

[root@sinau ~]# yum install httpd -y

55 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika instalasi apache telah selesai, silakan start service apache untuk mengaktifkannya,
kemudian jalankan perintah enable agar service apache dapat running (berjalan)
otomatis di saat server melakukan reboot atau restart, berikut perintahnya :

[root@sinau ~]#
[root@sinau ~]# systemctl start httpd
[root@sinau ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@sinau ~]#

Untuk dapat memastikan status service apache telah running (berjalan) atau tidak dapat
menggunakan perintah berikut

[root@sinau ~]# systemctl status httpd

56 | CentOS 7 Linux Administrator Pada Cloud Computing


Sedangkan untuk mengetahui versi apache yang kita gunakan dapat menggunakan
perintah berikut

[root@sinau ~]#
[root@sinau ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 5 2018 01:47:09
[root@sinau ~]#

Saat ini Anda telah berhasil melakukan instalasi webserver apache di CentOS dan bila
Anda ingin mengetahui tampilan default page dari web server apache di CentOS silakan
akses alamat IP VPS Anda di browser Anda masing - masing seperti berikut

57 | CentOS 7 Linux Administrator Pada Cloud Computing


6.7 MANAJEMEN SERVICE WEB SERVER APACHE

Jika Anda sebelumnya telah berhasil melakukan instalasi maka penulis akan memberikan
beberapa perintah - perintah mengenai management service yang sering digunakan dan
dapat Anda gunakan untuk pengelolaan service apache, sebagai berikut:

Untuk menghentikan service Apache, jalankan perintah:

[root@sinau ~]# systemctl stop httpd

Untuk memulai atau start service Apache, jalankan perintah:

[root@sinau ~]# systemctl start httpd

Untuk melakukan restart service Apache, jalankan perintah:

[root@sinau ~]# systemctl restart httpd

Jika Anda sebelumnya telah melakukan perubahan konfigurasi Apache dapat melakukan
reload service apache dengan menjalankan perintah:

[root@sinau ~]# systemctl reload httpd

58 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika Anda ingin menon-aktifkan service apache pada saat memulai proses boot jalankan
perintah berikut:

[root@sinau ~]# systemctl disable httpd

Dan untuk mengaktifkannya kembali jalankan perintah:

[root@sinau ~]# systemctl enable httpd

6.8 STRUKTUR FILE KONFIGURASI APACHE

Berikut merupakan best praktis dari struktur file konfigurasi Apache di CentOS 7:

- Semua file konfigurasi Apache berada di direktori /etc/httpd

- Untuk default konfigurasi utama Apache berada di direktori /etc/httpd/conf/httpd.conf

- Semua file konfigurasi Apache diakhiri dengan .conf yang berada di direktori
/etc/httpd/conf.d termasuk dalam file konfigurasi default atau utama Apache

- Untuk file konfigurasi yang bertanggung jawab untuk memuat berbagai modul
Apache berada di direktori /etc/httpd/conf.modules.d

- Untuk mempermudah kita dalam sebuah konfigurasi serta troubleshoot maka sangat
disarankan untuk membuat konfigurasi sendiri (terpisah) dengan menggunakan
Virtual Host (vhost) untuk setiap domain

- File Virtual Host (vhost) sendiri diakhiri dengan .conf dan defaultnya disimpan di
direktori /etc/httpd/conf.d/ Anda dapat membuat Virtual Host sebanyak yang Anda
butuhkan (tak terbatas)

- Dalam membuat Virtual Host disarankan untuk memberikan penamaan Virtual Host
sesuai dengan nama domain. Misalnya nama domain hamim.web.id maka
pembuatan file konfigurasi Virtual Host (vhost) yakni hamim.web.id.conf untuk
mempermudah Anda dalam pengelolaan konfigurasi Virtual Host (vshost). Secara
default untuk letak direktorinya berada di /etc/httpd/conf.d/hamim.web.id.conf

- File log Apache (access_log dan error_log) berada di direktori /var/log/httpd/.


Disarankan setiap Virtual Host domain memiliki file log masing - masing untuk
mempermudah dalam pengelolaan dan troubleshoot.

- Anda dapat mengatur direktori root direktori domain Anda ke lokasi yang Anda
inginkan. Lokasi yang paling umum digunakan untuk webroot yaitu :

# /home/<user_name>/<site_name>
# /var/www/<site_name>
# /var/www/html/<site_name>
# /opt/<site_name>

59 | CentOS 7 Linux Administrator Pada Cloud Computing


6.9 MEMBUAT VIRTUAL HOST (VHOST) APACHE

Jika Anda pengguna VPS dan Anda menggunakan web server Apache dan kemudian
Anda mempunyai lebih dari 1 domain lalu Anda ingin menambahkan semua domain
tersebut ke dalam VPS Anda di dalam 1 web server Apache apakah dapat dilakukan ?

Hal tersebut dapat dilakukan dengan menggunakan Virtual Host (vhost).

Dengan menggunakan Virtual Host ini Anda dapat membuat multi domain di web server
Apache. Secara default letak file direktori Virtual Host berada di /etc/httpd/httpd.conf.d.

Berikut contoh secara umum dari konfigurasi Virtual Host tersebut :

<VirtualHost *:80>
ServerName domainanda.id » Isikan nama domain Anda.
ServerAlias www.domainanda.id » Alias dari domain Anda.
ServerAdmin email@domainanda.id » Informasi email domain Anda.
DocumentRoot /var/www/domainanda.id » Letak website Anda berada
ErrorLog logs/domainanda.id-error_log » path error_log
CustomLog logs/domainanda.id-access_log combined» path
access_log
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
</VirtualHost>

Jika sudah silakan simpan konfigurasi di atas dan silakan melakukan restart pada service
Apache dengan menggunakan perintah berikut

Selanjutnya pastikan kembali tidak ada konfigurasi yang tidak sesuai dan menyebabkan
error, dan pastikan juga service apache telah berjalan (running) seperti berikut

60 | CentOS 7 Linux Administrator Pada Cloud Computing


6.10 INSTALASI WEB SERVER NGINX

Untuk instalasi web server Nginx kita membutuhkan repositori tambahan di CentOS
karena web server Nginx tidak seperti web server Apache yang secara default sudah
ada di di repository CentOS. Repository yang digunakan untuk instalasi web server nginx
yaitu repository epel , berikut cara menambahkan repository epel di CentOS 7

[root@sinau ~]# yum install epel-release -y

Silakan tunggu penambahan repository epel sampai selesai, jika sudah Anda dapat
langsung menginstall web server nginx dengan cara menjalankan perintah berikut

[root@sinau ~]# yum install nginx -y

61 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila instalasi web server nginx telah selesai, silakan jalankan service nginx agar
dapat segera aktif, kemudian jalankan perintah enable nginx yang mana berfungsi untuk
otomatis runnin (berjalan) jika server mengalami reboot atau restart, berikut perintahnya
:

[root@sinau ~]#
[root@sinau ~]# systemctl start nginx
[root@sinau ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-
user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
[root@sinau ~]#

Selanjutnya memastikan service nginx telah running (berjalan) dengan menggunakan


perintah berikut

62 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@sinau ~]# systemctl status nginx

Untuk mengetahui versi nginx yang baru saja kita install silakan menjalankan perintah
berikut

[root@sinau ~]# nginx -v

Anda dapat memastikan bahwa nginx telah berhasil dengan cara mengakses IP_VPS
atau domain yang telah mengarah ke IP_VPS di web browser Anda masing - masing, jika
tampilannya seperti gambar dibawah ini, berarti web server nginx Anda telah running dan
siap untuk digunakan.

63 | CentOS 7 Linux Administrator Pada Cloud Computing


6.11 MANAJEMEN SERVICE WEB SERVER NGINX

Pada kesempatan kali ini penulis akan memberikan beberapa perintah mengenai
management service yang sering digunakan di web server nginx.

Untuk menghentikan (stop) service web server nginx dapat menjalankan perintah

[root@sinau ~]# systemctl stop nginx

Untuk menjalankan kembali service nginx silakan menggunakan perintah

[root@sinau ~]# systemctl start nginx

Sedangkan untuk melakukan restart service nginx silakan menggunakan perintah

[root@sinau ~]# systemctl restart nginx

Jika Anda telah melakukan sebuah perubahan konfigurasi terhadap service nginx dan
Anda perlu melakukan opsi reload silakan jalankan perintah berikut

[root@sinau ~]# systemctl reload nginx

Untuk menonaktifkan service otomatis running di kala server VPS melakukan reboot
atau restart jalankan perintah berikut

[root@sinau ~]# systemctl disable nginx

Sebaliknya jika Anda ingin set service nginx otomatis running dikala server melakukan
reboot atau restart silakan jalankan perintah berikut

[root@sinau ~]# systemctl enable nginx

6.12 STRUKTUR FILE KONFIGURASI NGINX

Berikut ini merupakan best praktis mengenai struktur file konfigurasi web server Nginx
di CentOS 7:

- Semua file konfigurasi Nginx berada di direktori /etc/nginx

- File konfigurasi utama Nginx adalah /etc/nginx/nginx.conf

- Semua file konfigurasi Nginx diakhiri dengan .conf yang berada di direktori
/etc/nginx/conf.d termasuk dalam file konfigurasi default atau utama nginx

- Untuk mempermudah dalam pengelolaan domain di web server nginx, nginx sangat
menyarankan untuk membuat virtual block domain sendiri - sendiri (sesuaikan
dengan domain Anda masing - masing)

- Untuk konfigurasi Virtual block domain dapat dilakukan di direktori


/etc/nginx/conf.d/namadomainanda.conf .

64 | CentOS 7 Linux Administrator Pada Cloud Computing


- File log Nginx (access_log dan error_log) berada di direktori /var/log/nginx/.
Disarankan setiap Virtual Block domain memiliki file log masing - masing untuk
mempermudah dalam pengelolaan dan troubleshooting.

- Anda dapat mengatur direktori root direktori domain Anda ke lokasi yang Anda
inginkan. Lokasi yang paling umum digunakan untuk webroot yaitu :

# /home/<user_name>/<site_name>
# /usr/share/nginx/html
# /var/www/html/<site_name>
# /opt/<site_name>

6.13 MEMBUAT VIRTUAL BLOCK NGINX

Apabila Anda saat ini menggunakan VPS dan Anda menggunakan web server nginx dan
kemudian Anda mempunyai lebih dari 1 domain lalu Anda ingin menambahkan semua
domain yang Anda miliki tersebut ke dalam VPS Anda di dalam 1 web server Nginx
apakah dapat dilakukan ?

Hal tersebut dapat dilakukan dengan cara membuat virtual block yang biasanya sering
disebut dengan server block nginx.

Dengan virtual block nginx ini Anda dapat meng hosting banyak domain atau bisa
dibilang multi domain dalam 1 web server.

Disini penulis akan memberikan contoh misalnya terdapat project website di direktori
/var/www/html dengan nama webroot website updateartikel.com, isi dari website
hanyalah file index.html seperti berikut

Membuat file index.html di dalam direktori updatartikel.net seperti berikut

Berikut contoh isi dari file index.html:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Selamat Datang di Updateartikel.net</title>
</head>

65 | CentOS 7 Linux Administrator Pada Cloud Computing


<body>
<h1>Hai Saya Nur Hami, Selamat Belajar Yaa :) </h1>
</body>
</html>

Jika sudah silakan simpan file index.html tersebut.

Selanjutnya, barulah Anda dapat membuat konfigurasi virtual block nginx untuk domain
updateartikel.net di direktori /etc/nginx/conf.d .

Untuk penamaan file virtual block nya bersifat (optional) bebas sesuai dengan keinginan
Anda masing - masing.

Namun disini penulis akan memberikan nama virtual block sesuai dengan nama domain
yaitu updateartikel.net.conf seperti berikut contohnya

[root@sinau html]#
[root@sinau html]# cd /etc/nginx/conf.d/
[root@sinau conf.d]# vim updateartikel.net.conf

Berikut isi dari file virtual block nginx untuk domain updateartikel.net

server {
listen 80;
listen [::]:80;

root /var/www/html/updateartikel.net/;
server_name updateartikel.net www.updateartikel.net;

index index.html;

access_log /var/log/nginx/updateartikel.net-access.log;
error_log /var/log/nginx/updateartikel.net-error.log;

location / {
try_files $uri $uri/ =404;
}

66 | CentOS 7 Linux Administrator Pada Cloud Computing


}

Memberikan hak akses dan owner untuk domain updateartikel.net berikut perintahnya

[root@sinau conf.d]#
[root@sinau conf.d]# chown -R nginx:nginx
/var/www/html/updateartikel.net/
[root@sinau conf.d]# chmod -R 755 /var/www/html/updateartikel.net/
[root@sinau conf.d]#

Jika sudah silakan cek konfigurasi nginx untuk mengetahui apakah terdapat kesalahan
konfigurasi nginx dengan menggunakan perintah nginx -t lalu melakukan restart service
nginx seperti berikut

[root@sinau conf.d]#
[root@sinau conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@sinau conf.d]# systemctl restart nginx
[root@sinau conf.d]#

Berikutnya silakan akses domain updateartikel.net di browser Anda masing - masing,


hasilnya seperti berikut ini

67 | CentOS 7 Linux Administrator Pada Cloud Computing


Harap diketahui domain updateartikel.net diatas sebelumnya telah penulis arahkan ke
IP VPS dengan cara menambahkan A record pada domain updateartikel.net

6.14 INSTALASI PHP 7.1/7.2/7.3

Jika sebelumnya kita telah menginstall webserver apache atau nginx sekarang penulis
akan memberikan cara bagaimana menginstall php di CentOS 7.

Instalasi php kali berlaku untuk web server nginx ataupun apache, dan secara default
versi php 5.4 telah ada di repository default CentOS 7.

Dengan demikian apabila Anda membutuhkan php versi 7.0, 7.1, 7.2 dan 7.3 dapat
dilakukan dengan cara menambahkan repository tambahan yaitu repository remi .

Silakan menambahkan repository remi terlebih dahulu dengan cara menjalankan


perintah berikut

[root@sinau ~]# yum install http://rpms.remirepo.net/enterprise/remi-


release-7.rpm

68 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya, silakan menginstall yum-utils, yang mana nantinya digunakan untuk
management paket mulai dari pengelolaan repository CentOS dan paket yum.

Dan salah satu fitur yang ada di yum-utils yaitu yum-config-manager, yang dapat Anda
gunakan untuk mengaktifkan repository remi sebagai repository default untuk
menginstall berbagai versi php (7.0, 7.1, 7.2 dan 7.3)

Silakan jalankan perintah berikut

[root@sinau ~]# yum install yum-utils -y

Jika Anda ingin menggunakan php versi 7.0 Anda hanya perlu mengaktifkan paket
manager untuk php 7.0 dengan cara menjalankan perintah berikut

[root@sinau ~]# yum-config-manager --enable remi-php70

Jika Anda ingin menggunakan php versi 7.1 silakan aktifkan terlebih dahulu paket
manager untuk php 7.1 berikut perintahnya

[root@sinau ~]# yum-config-manager --enable remi-php71

Jika Anda ingin menggunakan php versi 7.2 silakan aktifkan terlebih dahulu paket
manager untuk php 7.2 berikut perintahnya

[root@sinau ~]# yum-config-manager --enable remi-php72

Jika Anda ingin menggunakan php versi 7.3 silakan aktifkan terlebih dahulu paket
manager untuk php 7.3 berikut perintahnya

[root@sinau ~]# yum-config-manager --enable remi-php73

Penulis disini akan menginstall php versi 7.0 berikut hasil aktivasi paket manager untuk
php 7.0

69 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah, selanjutnya silakan install modul - modul php yang diinginkan, berikut ini
beberapa modul php yang sering digunakan

[root@sinau ~]# yum install php php-fpm php-common php-mcrypt php-cli


php-gd php-curl php-mysql php-ldap php-zip php-fileinfo -y

70 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah pastikan versi php yang telah diinstall diatas menggunakan php versi 7.0
dengan cara menjalankan perintah berikut

[root@sinau ~]#
[root@sinau ~]# php -v
PHP 7.0.33 (cli) (built: Apr 2 2019 15:58:54) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
[root@sinau ~]#

Untuk mengetahui modul - modul php apa saja yang telah Anda install dapat dilakukan
dengan cara membuat file info.php di web server Anda masing - masing, jika Anda
menggunakan web server nginx Anda dapat membuat file info.php tersebut di direktori
default nginx yakni di /usr/share/nginx/html namun apabila Anda menggunakan
webserver Apache Anda dapat membuat file info.php tersebut di direktori default apache
yakni di /var/www/html .

Penulis disini menggunakan web server apache, seperti berikut contohnya

[root@sinau html]#
[root@sinau html]# cd /var/www/html/
[root@sinau html]# vim info.php

71 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikut isi dari file info.php tersebut

<?php
phpinfo();
?>

Jika sudah silakan simpan dan restart service nginx

[root@sinau html]# systemctl restart httpd

Jika sudah silakan akses IP Server atau nama domain Anda di web browser contohnya
IP_VPS/info.php atau domain Anda updateartikel.net/info.php

72 | CentOS 7 Linux Administrator Pada Cloud Computing


7. DATABASE SERVER

7.1 MENGENAL APA ITU DATABASE SERVER

Database Server merupakan sebuah program komputer yang menyediakan layanan


pengolahan berbasis data dan melayani komputer atau program aplikasi basis data yang
menggunakan model client – server.

Detailnya dapat dilihat melalui tautan berikut : Database Server Wikipedia

Database juga bisa diartikan sebagai sekumpulan data yang disimpan secara sistematis
di dalam komputer atau server dan dapat diolah dan dimanipulasi dengan aplikasi
tertentu sehingga bisa mendapatkan informasi yang diinginkan.

7.2 JENIS - JENIS DATABASE

Berikut ini merupakan jenis-jenis database yang sering digunakan, yang sebagian besar
merupakan Relational Database Management System (RDBMS):

- MariadDB

MySQL merupakan salah satu sistem manajemen basis data relasional. MariaDB
sendiri dikembangkan oleh komunitas, dan didukung secara komersial dari sistem
manajemen database relasional MySQL, dimaksudkan untuk tetap perangkat lunak
bebas dan open-source di bawah GNU GPL. Pengembangan dipimpin oleh beberapa
pengembang asli MySQL.

Selengkapnya : https://mariadb.org/

- MySQL

MySQL, merupakan aplikasi pengolah database yang bersifat open source,


dikembangkan oleh Oracle (sebelumnya Sun dan MySQL AB). Merupakan pengolah
database yang paling banyak digunakan di dunia dan lazim diterapkan untuk aplikasi
web

Selengkapnya : https://www.mysql.com/

- Oracle Database

Oracle Database, merupakan aplikasi pengolah database yang bersifat close


source/berbayar (komersial), dikembangkan oleh Oracle Corporation. Pengolah
database ini terbagi dalam beberapa varian dengan segmen dan tujuan penggunaan
yang berbeda-beda. Database jenis ini biasanya digunakan oleh perusahaan yang
besar karena database ini sangat mahal.

Selengkapnya : https://www.oracle.com/database/

- PostgreSQL atau Postgres

73 | CentOS 7 Linux Administrator Pada Cloud Computing


PostgresSQL atau sering disebut dengan Postgres merupakan aplikasi pengolah
database yang bersifat open source, dikembangkan oleh PosgreSQL Global
Development Group. Dapat digunakan untuk menyimpan data dengan aman dan
mengembalikan data tersebut sebagai respon atas permintaan dari aplikasi perangkat
lunak lainnya. Hal tersebut dapat menangani beban kerja mulai dari aplikasi mesin
tunggal kecil sampai aplikasi Internet yang besar dengan banyak pengguna
bersamaan.

Selengkapnya : https://www.postgresql.org/

- MongoDB

MongoDB adalah program basis data berorientasi dokumen lintas platform.


Diklasifikasikan sebagai program basis data NoSQL, MongoDB menggunakan
dokumen mirip JSON dengan schemata. MongoDB dikembangkan oleh MongoDB Inc.
dan dilisensikan di bawah Lisensi Publik Sisi Server

Selengkapnya : https://www.mongodb.com/

- CouchDB

CounchDB merupakan aplikasi pengolah database yang bersifat open source,


dikembangkan oleh Apache Software Foundation. Difokuskan untuk digunakan di
server web.

Selengkapnya : http://couchdb.apache.org/

- Redis

Redis merupakan aplikasi pengolah database yang bersifat open source,


dikembangkan oleh Salvatore Sanfilippo (disponsori oleh VMware. Difungsikan untuk
jaringan komputer.

Selengkapnya : https://redis.io/

- Microsoft SQL Server

Microsoft SQL Server adalah sistem manajemen basis data relasional yang
dikembangkan oleh Microsoft. Sebagai server basis data, ini adalah produk perangkat
lunak dengan fungsi utama menyimpan dan mengambil data seperti yang diminta oleh
aplikasi perangkat lunak lain — yang dapat berjalan di komputer yang sama atau di
komputer lain di jaringan.

Selengkapnya : https://www.microsoft.com/en-us/sql-server

Di atas merupakan beberapa database yang sering digunakan versi penulis, sebenarnya
masih sangat banyak lagi jenis - jenis dari database server tersebut.

74 | CentOS 7 Linux Administrator Pada Cloud Computing


7.3 INSTALASI DATABASE SERVER MARIADB

Jika sebelumnya kita telah mempelajari mengenai apa itu database server dan jenis -
jenis dari database server, kali ini penulis akan mencoba salah satu database yang sering
sekali digunakan dan bersifat open source (bebas dan free) yakni MariaDB.

Database MariaDB versi 5.5 secara default telah tersedia di repository CentOS.

Namun bila Anda ingin menginstall database Mariadb versi 10.3 Anda perlu
menambahkan repository database Mariadb secara mandiri, untuk repositorynya dapat
dilihat melalui tautan berikut MariaDB repositories page, dan berikut tahapan - tahapan
install database MariaDB versi 10.3

Menambahkan repository database di direktori /etc/yum.repos.d/ seperti berikut

[root@sinau ~]#
[root@sinau ~]# vim /etc/yum.repos.d/MariaDB.repo

Lalu isikan repo mariadb seperti berikut

# MariaDB 10.3 CentOS repository list - created 2018-05-25 19:02 UTC


# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Jika sudah silakan simpan file repo mariadb diatas. Berikutnya, menginstall database
MariaDB dengan cara menjalankan perintah

[root@sinau ~]# yum install MariaDB-server MariaDB-client -y

75 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan tunggu proses instalasi mariadb sampai selesai, jika sudah silakan mengaktifkan
(start) database mariadb lalu enable database mariadb agar dapat otomatis running
(berjalan) apabila server melakukan restart atau reboot, berikut perintahnya

[root@sinau ~]# systemctl start mariadb


[root@sinau ~]# systemctl enable mariadb
[root@sinau ~]#

Pastikan service mariadb telah berjalan (running) dengan sempurna

[root@sinau ~]# systemctl status mariadb

76 | CentOS 7 Linux Administrator Pada Cloud Computing


7.4 KONFIGURASI DATABASE MARIADB

Jika sebelumnya kita telah berhasil menginstall database mariadb selanjutnya marilah
kita konfigurasi database dengan cara menjalankan perintah berikut

[root@sinau ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):


OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] » Enter Saja


New password: Isikan Password Database Mariadb Anda
Re-enter new password: Konfirmasi Password Database Mariadb Anda
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing


anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] » Enter Saja


... Success!

77 | CentOS 7 Linux Administrator Pada Cloud Computing


Normally, root should only be allowed to connect from 'localhost'.
This
ensures that someone cannot guess at the root password from the
network.

Disallow root login remotely? [Y/n] » Enter Saja


... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] » Enter Saja


- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] » Enter Saja


... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!


[root@sinau ~]#

78 | CentOS 7 Linux Administrator Pada Cloud Computing


7.5 DASAR PERINTAH UNTUK PENGGUNAAN DATABASE MARIADB

Berikut beberapa perintah dasar database mariadb yang sering digunakan. Untuk login
ke root database Mariadb silakan jalankan perintah berikut

[root@sinau ~]#
[root@sinau ~]# mysql -u root -p
Enter password: Isikan Password Database Mariadb Anda
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 16

79 | CentOS 7 Linux Administrator Pada Cloud Computing


Server version: 10.3.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]>

Untuk membuat database MariaDB baru, jalankan perintah berikut, silakan ganti
inidatabaseku; dengan nama database yang ingin Anda buat:

MariaDB [(none)]> create database inidatabaseku;

Untuk melihat list database yang udah kita buat dapat menggunakan perintah

MariaDB [(none)]> show databases;

Untuk menghapus database yang telah dibuat sebelumnya silakan menggunakan


perintah berikut

MariaDB [(none)]> drop database inidatabaseku;

80 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk masuk ke database yang telah dibuat di atas gunakan perintah

MariaDB [(none)]> use namadatabaseku;

Untuk membuat tabel gunakan perintah

MariaDB [namadatabaseku]> create table ini_tabelku (id int, nama


varchar(22));

Untuk melihat list tabel gunakan perintah

MariaDB [namadatabaseku]> show tables;

81 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk mengisikan tabel yang sudah dibuat misal isinya hanya nomor dan nama gunakan
perintah

MariaDB [namadatabaseku]> insert into ini_tabelku (id,nama) values


('1','hamim_aja');

Untuk melihat isi dari table yang sudah dibuat gunakan perintah

MariaDB [namadatabaseku]> select * from ini_tabelku;

Untuk membuat user database baru dapat dilakukan, berikut perintahnya

MariaDB [(none)]> create user 'isikan-user-database-anda'@'localhost'


identified by 'isikan-password-database-user-anda';

Pada perintah di atas telah ditetapkan bagian nama host ke localhost yang berarti
pengguna ini akan dapat terhubung ke server MySQL hanya dari localhost (yaitu dari
sistem tempat MySQL Server berjalan).

Jika Anda ingin memberikan akses dari host lain, cukup ganti localhost dengan IP server
(VPS) atau gunakan wildcard '%' untuk bagian host, yang berarti bahwa akun pengguna
akan dapat terhubung dari host mana pun.

Untuk melihat list user database yang baru saja kita buat dapat dilakukan dengan cara
menjalankan perintah

MariaDB [(none)]> select user, host from mysql.user;

82 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk menghapus user database diatas dapat dilakukan dengan menggunakan perintah

MariaDB [(none)]> DROP USER 'isikan-user-database-anda'@'localhost';

Untuk menambahkan permission ke semua akun pengguna melalui database tertentu,


gunakan perintah berikut:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON namadatabaseku.* TO


'database_user'@'localhost';

Untuk menambahkan permission ke semua akun pengguna di semua database, gunakan


perintah berikut:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO


'database_user'@'localhost';

83 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk menambahkan permission ke semua akun pengguna melalui tabel tertentu dari
database, gunakan perintah berikut:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON namadatabaseku.ini_tabelku TO


'database_user'@'localhost';

Jika Anda ingin memberikan permission khusus ke akun pengguna melalui jenis
database tertentu gunakan perintah

MariaDB [(none)]> GRANT SELECT, INSERT, DELETE ON database_name.* TO


database_user@'localhost';

Untuk menampilkan permission dari user/pengguna Mariadb gunakan perintah berikut

MariaDB [(none)]> SHOW GRANTS FOR 'database_user'@'localhost';

Untuk keluar dari database Mariadb tekan tombol ctrl + shift + d atau ketikan perintah exit
seperti berikut

MariaDB [(none)]> exit


Bye
[root@sinau ~]#

84 | CentOS 7 Linux Administrator Pada Cloud Computing


7.6 RESET PASSWORD ROOT DATABASE MARIADB

Melakukan reset password terhadap database Mariadb merupakan hal yang wajib kita
ketahui, jika Anda lupa akan password root database mariadb bagaimana Anda untuk
dapat login ke root database?

Cara yang dapat dilakukan yaitu dengan melakukan reset password database. Silakan
stop terlebih dahulu service mariadb Anda dengan menggunakan perintah

[root@sinau ~]# systemctl stop mariadb

Berikutnya, aktifkan opsi --skip-grant-tables untuk dapat login ke mariadb tanpa


menggunakan password dengan menggunakan perintah berikut

[root@sinau ~]#
[root@sinau ~]# systemctl set-environment MYSQLD_OPTS="--skip-grant-
tables"
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]# systemctl status mariadb

Silakan login root ke database MariaDB Anda menggunakan perintah

85 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@sinau ~]# mysql -u root

Hasilnya Anda tidak akan diminta password root seperti berikut


ini

Silakan masuk ke mysql dengan menggunakan perintah use dan silakan memperbaharui
password root Anda seperti berikut ini

MariaDB [(none)]> use mysql;


Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> UPDATE user SET
password=PASSWORD('IsikanPasswordBaru') WHERE User='root' AND Host =
'localhost';
Query OK, 1 row affected (0.002 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> exit


Bye
[root@sinau ~]#

Selanjutnya silakan stop dan kembalikan ke pengaturan semula dan start kembali
mariadb seperti berikut

[root@sinau ~]# systemctl stop mariadb


[root@sinau ~]# systemctl unset-environment MYSQLD_OPTS
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]#

86 | CentOS 7 Linux Administrator Pada Cloud Computing


Pastikan opsi --skip-grant-tables sudah tidak aktif kembali

[root@sinau ~]# systemctl status mariadb

Silakan akses kembali database Mariadb menggunakan password baru Anda

[root@sinau ~]# mysql -u root -p


Enter password: Isikan Password Baru Database Mariadb Anda
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]>
MariaDB [(none)]> exit
Bye
[root@sinau ~]#

87 | CentOS 7 Linux Administrator Pada Cloud Computing


7.7 BACKUP DAN RESTORE DATABASE MARIADB VIA COMMAND LINE

Melakukan backup sebuah database merupakan hal yang perlu dan penting kita ketahui,
pasal nya jika kita tidak mengerti bagaimana cara melakukan backup maka kita tidak
akan bisa mempunyai cadangan atau backup data pada database server.

Sebenarnya melakukan backup dan restore database dapat dengan mudah dilakukan
jika kita menggunakan phpMyadmin, namun pada kali ini penulis akan memberikan cara
bagaimana cara melakukan backup atau restore database mariadb via command line
(CLI).

Untuk melakukan backup database dapat menggunakan mysqldump, mysqldump sendiri


merupakan utilitas yang dapat digunakan untuk melakukan backup (pencadangan) ,
berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# mysqldump -u root -p namadatabaseku > backup-database-
mariadb.sql
Enter password: Isikan Password root database Anda
[root@sinau ~]# ls
backup-database-mariadb.sql
[root@sinau ~]#
[root@sinau ~]#

Keterangan:

- u: Isikan dengan nama user database


- p: Isikan namadatabase Anda
- > backup-database-mariadb.sql: Merupakan nama file backup dari database
Anda. Jika Anda ingin menyimapan file database tersebut ke salah satu direktori
spesifik untuk menyimpan file backup dapat dilakukan dengan mendeklarasikan
direktorinya misalnya /mnt/backup/backup-database-mariadb.sql

88 | CentOS 7 Linux Administrator Pada Cloud Computing


Sedangkan untuk melakukan restore database dapat dilakukan dengan menggunakan
perintah mysql seperti berikut ini

[root@sinau ~]#
[root@sinau ~]# mysql -u root -p namadatabaseku < backup-database-
mariadb.sql
Enter password: Isikan Password root database Anda
[root@sinau ~]#

7.8 INSTALASI phpMyAdmin MENGGUNAKAN WEB SERVER APACHE

phpMyAdmin adalah perangkat lunak bebas (open source) yang ditulis dalam bahasa
pemrograman PHP yang digunakan untuk menangani administrasi MySQL melalui web
browser.

phpMyAdmin mendukung berbagai operasi MySQL, diantaranya (mengelola basis data,


tabel-tabel, bidang (fields), relasi (relations), indeks, pengguna (users), perizinan
(permissions), dan lain-lain).

Kali ini penulis akan menginstall phpMyAdmin menggunakan web server apache.

Sebelum itu pastikan Anda telah menambahkan repository epel jika belum silakan
tambahkan perintah berikut

[root@sinau ~]# yum install epel-release -y

Berikutnya, silakan install phpMyAdmin dengan cara menjalankan perintah berikut

[root@sinau ~]# yum install phpmyadmin -y

89 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila instalasi telah selesai, silakan melakukan konfigurasi phpmyadmin di web server
apache, untuk direktori nya sendiri berada di /etc/httpd/conf.d/ seperti berikut ini

[root@sinau ~]# vim /etc/httpd/conf.d/phpMyAdmin.conf

Berikut isi dari file default dari phpMyAdmin

90 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan menambahkan perintah Require all granted dan disabled ip localhost seperti
pada gambar dibawah ini

Jika sudah, silakan simpan file phpMyAdmin lalu melakukan reload atau restart terhadap
web server apache dengan cara menjalankan perintah berikut

[root@sinau ~]# systemctl restart httpd

Jika sudah, silakan akses IP VPS atau domain Anda dengan /phpmyadmin seperti pada
gambar dibawah ini

91 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan isikan username root dan password database Anda, jika berhasil maka akan
seperti pada gambar dibawah ini

92 | CentOS 7 Linux Administrator Pada Cloud Computing


7.9 REPLIKASI DATABASE MASTER - SLAVE MENGGUNAKAN MARIADB

Membuat sebuah cadangan atau backup itu merupakan hal yang sangat penting, terlebih
itu sebuah penyimpanan basis data (database) maka sangat penting bagi kita untuk
membuat sebuah salinan/cadangan/backup sebuah database kita.

Lalu bagaimana cara yang tepat untuk membuat sebuah cadangan/backup sebuah
database server menggunakan mariadb secara realtime?

Penulis kali ini akan memberikan cara bagaimana membuat sebuah


salinan/cadangan/backup untuk penyimpanan basis data (database) secara realtime
menggunakan metode Master - Slave.

Dimana nantinya terdapat 2 VPS dengan bagian sebagai berikut :

- 1 VPS : Digunakan untuk Master


- 1 VPS : Digunakan untuk Slave

Metode master - slave ini salah satu metode replikasi yang hanya terjadi satu arah/hanya
ada satu master database dan server yang lain melakukan replikasi pada server master
tersebut.

Contohnya seperti pada gambar dibawah ini:

Apabila VPS 1 database master melakukan replikasi master slave dengan VPS 2
database slave, maka setiap aktifitas database pada VPS 1 Database Master mulai dari
(insert, update, drop) dan yang lainnya, secara otomatis aktifitas database tersebut juga
berjalan di VPS 2 Database slave. Namun sebaliknya apabila VPS 2 Database slave
yang melakukan aktifitas database maka, tidak akan tereksekusi di sisi VPS 1 Database
master dengan begitu VPS 2 Database slave hanya digunakan untuk cadangan si VPS
1 Database master.

93 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk letak lokasi data center yang digunakan di setiap VPS untuk install dan konfigurasi
database master slave kali ini yaitu VPS 1 Database Master berada di Cyber 2 Jakarta
Selatan sedangkan untuk VPS 2 Database Slave berada di Duren 3 Jakarta Selatan.

Berikut detail dari ke 2 VPS Master dan Slave sebagai berikut:

❏ VPS 1 Database Master:


- Hostnam : srv-master
- server-id :1
- ip address : 117.53.46.228
- DBMS : MariaDB
- Data Center : Cyber 2 Jakarta Selatan

❏ VPS 2 Database Slave:


- Hostname : srv-slave
- server-id :2
- ip address : 103.23.20.126
- DBMS : MariaDB
- Data Center : Duren 3 Jakarta Selatan

Berikut ini langkah - langkah instalasi dan konfigurasi database Master Slave
menggunakan MariaDB:

# Instalasi Dan Konfigurasi MariaDB VPS 1 Sebagai Master

Untuk instalasi database master mariadb sendiri sama dengan cara instalasi mariadb
sebelumnya. Disini penulis menggunakan mariadb versi 10.3.

Silakan remote VPS 1 untuk Master Anda masing - masing jika sudah silakan update
sistem operasi CentOS Anda dengan cara menjalankan perintah

[root@srv-master ~]# yum update -y

Menambahkan repository untuk mariadb versi 10.3 sebagai berikut

[root@srv-master ~]# vim /etc/yum.repos.d/MariaDB.repo

Isikan repository Mariadb 10.3 berikut

# MariaDB 10.3 CentOS repository list - created 2019-04-14 19:44 UTC


# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

94 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan simpan repository mariadb diatas, selanjutnya, silakan install mariadb
server dan client (optional) dengan cara menjalankan perintah

[root@srv-master ~]# yum install MariaDB-server MariaDB-client -y

Silakan tunggu proses instalasi sampai selesai, jika sudah selesai proses instalasi silakan
start mariadb, agar service database mariadb dapat otomatis running silakan enable
mariadb dengan cara menjalankan perintah

[root@srv-master ~]# systemctl start mariadb


[root@srv-master ~]# systemctl enable mariadb
[root@srv-master ~]# systemctl status mariadb

95 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila database mariadb telah running, berikutnya melakukan konfigurasi password
root database mariadb Anda dengan cara menjalankan perintah berikut

[root@srv-master ~]# mysql_secure_installation

Pada baris berikut, silakan isikan password root database mariadb yang ingin Anda
gunakan

Enter current password for root (enter for none):


OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]


New password: Isikan password root mariadb Anda
Re-enter new password: Konfirmasi password root mariadb Anda
Password updated successfully!
Reloading privilege tables..
... Success!

Detailnya Anda dapat melihat pada gambar dibawah ini

96 | CentOS 7 Linux Administrator Pada Cloud Computing


97 | CentOS 7 Linux Administrator Pada Cloud Computing
Berikutnya, silakan menambahkan beberapa baris perintah berikut untuk konfigurasi
database master. Untuk letak konfigurasinya berada di direktori /etc/my.cnf.d/server.cnf,
seperti berikut ini:

# this is only for the mysqld standalone daemon


[mysqld]
server_id=1
log-basename=master
log-bin
binlog-format=row
innodb_buffer_pool_size=10M

Jika sudah silakan simpan konfigurasi di atas dan melakukan restart terhadap service
mariadb Anda dengan menjalankan perintah

[root@srv-master ~]# systemctl restart mariadb

Berikutnya, silakan login ke root database mariadb Anda

[root@srv-master ~]# mysql -u root -p


Enter password:Isikan password root database Anda
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.14-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]>

98 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya, membuat user dan password untuk database slave Anda seperti berikut

MariaDB [(none)]>
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected, 1 warning (0.000 sec)

MariaDB [(none)]> grant replication slave on *.* to 'root'@'%' identified


by 'IsikanPassword';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;


Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> flush tables with read lock;


Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> show master status;


+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 646 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> exit


Bye
[root@srv-master ~]#

99 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas harap untuk dicatat dengan benar nama file ( master-bin.000001) dan
nomor posisi (645) database master Anda. file dan nomor posisi tersebut nantinya
digunakan untuk konfigurasi database di sisi slave.

Berikutnya, silakan membuat cadangan/backup database master dengan menggunakan


mysqldump seperti berikut ini

[root@srv-master ~]# mysqldump --all-database --user=root --password --


master-data > backupdatabasemaster.sql
Info: Using unique option prefix 'all-database' is error-prone and can
break in the future. Please use the full name 'all-databases' instead.
Enter password: Isikan password database Anda
[root@srv-master ~]#

Keterangan:

- mysqldump : Perintah yang digunakan untuk backup database


- --all-database: Menandakan semua database akan di backup
- --user=root : Menggunakan user root
- --password : Nantinya Anda diminta untuk mengisikan password root database
- backupdatabasemaster.sql : Hasil backup database Anda

Untuk melihat hasil backup tersebut silakan ketikkan perintah ls seperti berikut

[root@srv-master ~]# ls
anaconda-ks.cfg backupdatabasemaster.sql original-ks.cfg
[root@srv-master ~]#

Selanjutnya, silakan login ke root database Anda kembali dan melakukan unlock pada
tabel database master yang ingin di replikasi tersebut dengan menggunakan perintah
berikut

[root@srv-master ~]#
[root@srv-master ~]# mysql -u root -p
Enter password: Isikan Password root database Anda
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.14-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

100 | CentOS 7 Linux Administrator Pada Cloud Computing


Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> unlock tables;


Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit


Bye
[root@srv-master ~]#
[root@srv-master ~]#

Mengirimkan file cadangan/backup hasil dump database master yang telah dilakukan
sebelumnya ke VPS 2 database Slave dengan menggunakan perintah scp seperti berikut

[root@srv-master ~]# scp backupdatabasemaster.sql


root@103.23.20.126:/root/
The authenticity of host '103.23.20.126 (103.23.20.126)' can't be
established.
ECDSA key fingerprint is
SHA256:dsQM8EdNCFZEBCadb1YMjaT/Mf8tEWr4X/EEuWK41uE.
ECDSA key fingerprint is
MD5:ee:86:2b:d0:c7:7f:38:41:c5:a2:a1:ec:99:17:ce:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '103.23.20.126' (ECDSA) to the list of known
hosts.
root@103.23.20.126's password: Isikan Password VPS Slave
backupdatabasemaster.sql
100% 468KB 59.8MB/s 00:00
[root@srv-master ~]#

Sampai disini instalasi dan konfigurasi database untuk master telah selesai.

101 | CentOS 7 Linux Administrator Pada Cloud Computing


# Instalasi Dan Konfigurasi MariaDB Slave VPS 2

Untuk instalasi database slave disini sama dengan instalasi database master, untuk
database mariadb-nya menggunakan versi 10.3.

Berikut tahapan - tahapan instalasi database mariadb 10.3 disisi slave.

Menambahkan repository mariadb versi 10.3 di menu direktori


/etc/yum.repos.d/MariaDB.repo seperti berikut

[root@srv-slave ~]# vim /etc/yum.repos.d/MariaDB.repo

Isikan repository sebagai berikut:

# MariaDB 10.3 CentOS repository list - created 2019-04-14 19:44 UTC


# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Jika sudah selanjutnya silakan install mariadb server dengan cara menjalankan perintah
berikut:

[root@srv-slave ~]# yum install MariaDB-server MariaDB-client -y

Silakan tunggu proses instalasi sampai selesai, jika sudah silakan start mariadb dan
pastikan mariadb Anda telah running dengan cara menggunakan perintah

[root@srv-slave ~]# systemctl start mariadb


[root@srv-slave ~]# systemctl enable mariadb
[root@srv-slave ~]# systemctl status mariadb

102 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, silakan konfigurasi password root database mariadb dengan cara
menjalankan perintah

[root@srv-slave ~]# mysql_secure_installation

Apabila sudah selesai waktunya sekarang melakukan konfigurasi dari sisi database
slave, silakan memberikan id untuk database slave di direktori /etc/my.cnf.d/server.cnf
pada menu [mysqld] tambahkan konfigurasi seperti berikut

[root@srv-slave ~]# vim /etc/my.cnf.d/server.cnf

Isikan server_id=2 seperti berikut ini

# this is only for the mysqld standalone daemon


[mysqld]
server_id=2

Jika sudah silakan simpan konfigurasi diatas dan silakan melakukan restart terhadap
service database slave Anda dengan cara menjalankan perintah

[root@srv-slave ~]# systemctl restart mariadb

103 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah saat ini kita melakukan replikasi untuk database master, silakan import file
dump yang telah dikirimkan sebelumnya dari vps master dengan menggunakan perintah
mysql seperti berikut

[root@srv-slave ~]#
[root@srv-slave ~]# mysql -u root -p < backupdatabasemaster.sql
Enter password: Isikan password database Anda
[root@srv-slave ~]#

Berikutnya, silakan login ke root database slave Anda

[root@srv-slave ~]# mysql -u root -p


Enter password: Isikan Password Database Anda
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]>

Jika sudah berikutnya mengkoneksikan VPS Slave dengan VPS Master berikut
perintahnya

MariaDB [(none)]>
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected, 1 warning (0.000 sec)

MariaDB [(none)]> change master to


master_host='117.53.46.228',master_user='root',master_password='IsikanP
assword',master_log_file='master-bin.000001',master_log_pos=646;
Query OK, 0 rows affected (0.020 sec)

104 | CentOS 7 Linux Administrator Pada Cloud Computing


MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]>

Jika sudah, silakan lihat status slave, pastikan telah terhubung/sinkron antara VPS
Master dengan VPS Slave seperti berikut untuk hasilnya

MariaDB [(none)]> show slave status\G;


*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 117.53.46.228
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000001
Read_Master_Log_Pos: 646
Relay_Log_File: srv-slave-relay-bin.000002
Relay_Log_Pos: 556
Relay_Master_Log_File: master-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 646
Relay_Log_Space: 869
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:

105 | CentOS 7 Linux Administrator Pada Cloud Computing


Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: No
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for
the slave I/O thread to update it
Slave_DDL_Groups: 0
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 0
1 row in set (0.000 sec)

ERROR: No query specified

MariaDB [(none)]> show databases;

106 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada langkah ini instalasi dan konfigurasi database slave telah selesai.

Berikutnya, marilah kita coba melakukan percobaan dengan cara membuat database di
sisi master apabila di sisi slave terbackup atau ter-replikasi atau terdapat duplikasi dari
database master yang telah dibuat maka replikasi master-slave telah berjalan dengan
normal.

Silakan login ke database master dan membuat database baru, seperti pada gambar
dibawah ini kami akan membuat 3 database dengan nama database percobaan 1 - 3
seperti berikut

[root@srv-master ~]# mysql -u root -p


Enter password:

107 | CentOS 7 Linux Administrator Pada Cloud Computing


Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.3.14-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> create database percobaan1;


Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> create database percobaan2;


Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> create database percobaan3;


Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| percobaan1 |
| percobaan2 |
| percobaan3 |
| performance_schema |
+--------------------+
6 rows in set (0.000 sec)

MariaDB [(none)]> exit


Bye
[root@srv-master ~]#

108 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan pastikan disisi database slave apabila sudah terdapat 3 database dengan nama
database percobaan 1 - 3 maka database replikasi master - slave menggunakan mariadb
versi 10.3 telah berhasil, seperti berikut:

[root@srv-slave ~]# mysql -u root -p


Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.3.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> show databases;


+--------------------+
| Database |
+--------------------+

109 | CentOS 7 Linux Administrator Pada Cloud Computing


| information_schema |
| mysql |
| percobaan1 |
| percobaan2 |
| percobaan3 |
| performance_schema |
+--------------------+
6 rows in set (0.000 sec)

MariaDB [(none)]> exit


Bye
[root@srv-slave ~]#

110 | CentOS 7 Linux Administrator Pada Cloud Computing


8. MAIL SERVER

8.1 MENGENAL TENTANG APA ITU MAIL SERVER

Di dunia maju seperti saat ini kita sangat membutuhkan yang namanya komunikasi atau
interaktif bersama seseorang atau rekan kerja baik di kantor maupun secara personal.

Untuk melakukan komunikasi tersebut dapat dilakukan dengan berbagai macam cara
contohnya dengan menggunakan pesan elektronik atau email.

Pada kesempatan kali ini penulis akan memberikan cara bagaimana membangun sebuah
mail server. Namun sebelum itu ada baiknya kita mengetahui terlebih dahulu pengertian
dari mail server tersebut.

Mail Server sebuah server yang memungkinkan user/pengguna untuk dapat mengirim
dan menerima sebuah surat elektronik atau sering dibilang dengan e-mail antara satu
dengan yang lain menggunakan media jaringan lokal maupun internet.

Mail server sendiri berfungsi sebagai pengatur atau penerima dan penyalur respon atas
email yang masuk. Tak hanya itu fungsi utama dari mail server sendiri yakni sebagai
aplikasi yang digunakan untuk menginstal email. Oleh karena itu aplikasi ini sangat
penting karena akan mengatur jalannya email dan merespon setiap email yang masuk.

8.2 JENIS DAN KOMPONEN MAIL SERVER

Berikut jenis - jenis pada mail server:

- MTA (Mail Transfer Agent)

MTA adalah sebuah program atau aplikasi server yang tugasnya untuk mengirim
sebuah email antar server.

Contoh aplikasi MTA yaitu: Sendmail, Postfix, Exim, qmail, dan yang lainnya.

- MDA (Mail Delivery Agent)

MDA merupakan sebuah program atau aplikasi mail server yang tugasnya
menyimpan email yang diterima oleh MTA ke mailbox masing - masing pengguna
(user) mail.
Pengguna (user) dapat mengakses mailbox dan membaca email dari MDA dengan
MUA. MDA bekerja dengan protokol POP3/POP3S atau IMAP/IMAPS. Incoming mail
server adalah sebutan lain MDA.

- MUA (Mail User Agent)

MUA merupakan program atau aplikasi di sisi mail client yang dapat digunakan
pengguna untuk membaca, mengedit, menulis dan mengirim email.

111 | CentOS 7 Linux Administrator Pada Cloud Computing


MUA membaca email dari MDA. MUA mengirim email melalui MTA. Bentuk dari MUA
sendiri bermacam mulai dari web base sepertinya Gmail.com, Roundcube,
SquirrelMail ada juga yang dalam bentuk aplikasi desktop seperti halnya Mozilla
Thunderbird, Microsoft Outlook, Mailspring dan yang lainnya.

Sedangkan komponen yang dibutuhkan diantaranya DNS Record yang meliputi:

- Record MX + Mail Priority

MX (Mail Exchanger) merupakan record routing email, untuk domain. Dalam hal ini
akan diarahkan ke mail.domainanda.com. sebagai host yang ditunjuk sebagai mail
exchanger akan memproses atau meneruskan mail untuk domain (domainanda.com).

Pada MX tersebut terdapat priority atau nilai preferensi (preference value) untuk
menunjukkan tingkat prioritas mail exchanger yang digunakan untuk memproses atau
meneruskan mail yang menuju domain (domainanda.com).

Standard priority atau nilai preferensi MX yang sering digunakan yakni 10

- Record SPF (Sender Policy Framework)

Merupakan sebuah record mail yang digunakan untuk memvalidasi email yg didesain
untuk mencegah spam dengan cara mendeteksi spoofing, dengan memverifikasi
alamat IP pengirim.

- Record DKIM (DomainKeys Identified Mail)

Merupakan sebuah record mail yang bertujuan untuk dapat memverifikasi apakah ini
email yang valid yang berasal dari nama domain tertentu. Fungsi utamanya yaitu
untuk mencegah spoofing dan phising pada email.

- Record PTR/rDNS

PTR/rDNS merupakan record mail yang digunakan untuk menyatakan pemetaan


sebuah alamat IP ke domain (domainanda.com) yang merupakan reversed-address.
Reverse Address ini sangat diperlukan jika kita membuat mail server karena dengan
adanya reverse IP Address ke alamat domain And maka, proses send/receive
protocol SMTP pada mesin/server mail server Anda dapat berjalan normal.
Tanpa adanya reverse Address, IP kita dianggap sebagai spam oleh mesin/server
smtp mail server lain karena tidak dikenal.

Hal pertama yang sangat dibutuhkan untuk membagun mail server yaitu record MX dan
A record untuk mail.domainanda.com tersebut. Untuk record SPF, DKIM, dapat kita atur
apabila mail server telah berhasil diinstal dan dikonfigurasi.

Selain itu apabila Anda menggunakan VPS untuk penambahan record PTR/rDNS
tersebut biasanya dapat langsung ditambahkan dari sisi penyedia VPS Anda.

112 | CentOS 7 Linux Administrator Pada Cloud Computing


Contohnya penulis disini membangun mail server menggunakan VPS dari CLOUDKILAT
dengan begitu apabila penulis membutuhkan record PTR/rDNS maka penulis tinggal
merequest melalui ticketing atau mengirimkan surel ke info@cloudkilat.com.

8.3 INSTALASI MAIL SERVER (POSTFIX, DOVECOT)

Kali ini penulis akan membangun mail server menggunakan postfix untuk MTA dan
dovecot untuk MDA. Sebelum kita ke tahapan instalasi ada baiknya kita mengetahui
terlebih dahulu pengertian dari postfix dan dovecot tersebut:

- Postfix

Merupakan aplikasi mail yang bersifat open source (free/bebas) yang digunakan untuk
mail transfer agent (MTA) untuk mengarahkan dan mengirimkan Email dengan cepat,
aman & mudah dikelola dan merupakan alternatif yang bagus untuk SendMail MTA.

- Dovecot

Adalah server email IMAP dan POP3 yang berada di Linux dan menyediakan cara
untuk Mail User Agent (MUA) agar dapat mengakses sebuah email. Dengan adanya
dovecot penerimaan email dapat lebih cepat, aman, dan penggunaan memori yang
ringan.

Berikutnya, silakan remote VPS Anda masing - masing, jika sudah melakukan
pembaruan atau update sistem operasi CentOS 7 Anda dengan menjalankan perintah

[root@sinau ~]# yum update -y

Silakan tunggu proses update sampai selesai. Jika sudah instalasi postfix di CentOS
dengan cara menjalankan perintah

[root@sinau ~]# yum install postfix -y

Silakan tunggu proses instalasi sampai selesai, jika sudah silakan start dan enable
service postfix supaya service tetap berjalan (running) apabila VPS dilakukan
reboot/restart.

[root@sinau ~]# systemctl start postfix


[root@sinau ~]# systemctl enable postfix

Pastikan service postfix telah running dengan cara menjalankan perintah

[root@sinau ~]# systemctl status postfix

113 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, melakukan instalasi dovecot di CentOS dengan cara menjalankan perintah

[root@sinau ~]# yum install dovecot -y

Silakan tunggu sampai proses instalasi selesai jika sudah, silakan start dan enable
service dovecot, serta pastikan juga service dovecot telah running dengan cara
menjalankan perintah berikut

[root@sinau ~]# systemctl start dovecot


[root@sinau ~]# systemctl enable dovecot
[root@sinau ~]# systemctl status dovecot

8.4 KONFIGURASI MAIL SERVER (POSTFIX, DOVECOT)

Jika sebelumnya kita telah berhasil instalasi postfix dan dovecot selanjutnya, kita akan
melakukan konfigurasi mail server postfix dan dovecot.

Pertama kita konfigurasi postfix terlebih dahulu. Letak directory konfigurasi postfix berada
di /etc/postfix/main.cf silakan buka file main.cf menggunakan teks editor yang Anda
gunakan, penulis disini menggunakan vim seperti berikut

[root@sinau ~]# vim /etc/postfix/main.cf

Silakan hapus tanda (#) pada line 75 dan ubah menjadi mail dari domain Anda
(mail.hamim.web.id).

114 | CentOS 7 Linux Administrator Pada Cloud Computing


Hapus tanda (#) pada line 83 dan ubah menjadi nama domain Anda (hamim.web.id)
mail.domainanda.com

Hapus tanda (#) pada line 113 dan berikan tanda pada line 116

Hapus tanda (#) pada line 165 dan berikan tanda pada line 164

Hapus tanda (#) pada line 264 dan isikan IP Public VPS Anda

Hapus tanda (#) pada line 420

115 | CentOS 7 Linux Administrator Pada Cloud Computing


Tambahkan konfigurasi seperti berikut pada line 575 - 593

#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)


smtpd_banner = $myhostname ESMTP

# add follows to the end

# limit an email size for 10M

message_size_limit = 10485760

# limit a mailbox for 1G

mailbox_size_limit = 1073741824
# for SMTP-Auth

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,
permit_auth_destination, permit_sasl_authenticated, reject

Jika sudah silakan simpan konfigurasi postfix dan silakan restart service postfix Anda
dengan menggunakan perintah

[root@sinau ~]# systemctl restart postfix

116 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, melakukan konfigurasi dovecot pertama silakan buka direktori
/etc/dovecot/dovecot.conf menggunakan teks editor Anda masing - masing disini penulis
menggunakan vim

[root@sinau ~]# vim /etc/dovecot/dovecot.conf

Hapus tanda (#) pada line 24

Jika sudah silakan simpan konfigurasi dovecot.conf tersebut. Selanjutnya, silakan buka
file 10-auth.conf yang berada di /etc/dovecot/conf.d/

[root@sinau ~]# vim /etc/dovecot/conf.d/10-auth.conf

Hapus tanda (#) pada line 10 dan ubah value menjadi no

Tambahkan login pada line 100

Jika sudah silakan simpan konfigurasi 10-auth.conf tersebut

Selanjutnya, silakan buka file 10-mail.conf yang berada di /etc/dovecot/conf.d/

[root@sinau ~]# vim /etc/dovecot/conf.d/10-mail.conf

Hapus tanda (#) pada line 30 dan tambahkan maildir:~/Maildir

117 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan simpan konfigurasi 10-mail.conf tersebut

Selanjutnya, silakan buka file 10-master.conf yang berada di /etc/dovecot/conf.d/

[root@sinau ~]# vim /etc/dovecot/conf.d/10-master.conf

Hapus tanda (#) pada line 96 -98 dan menambahkan user serta group untuk postfix
seperti berikut

Jika sudah silakan simpan konfigurasi 10-master.conf tersebut

Selanjutnya, silakan buka file 10-ssl.conf yang berada di /etc/dovecot/conf.d/

[root@sinau ~]# vim /etc/dovecot/conf.d/10-ssl.conf

Hapus tanda (#) pada line 8 dan ubah value menjadi no

Jika sudah silakan simpan konfigurasi 10-ssl.conf tersebut dan silakan restart service
dovecot dengan menggunakan perintah

[root@sinau ~]# systemctl restart dovecot

Jika sudah langkah selanjutnya membuat user untuk email Anda dengan cara add user
seperti berikut

[root@sinau ~]#
[root@sinau ~]# adduser user1
[root@sinau ~]# passwd user1
Changing password for user user1.

118 | CentOS 7 Linux Administrator Pada Cloud Computing


New password: Isikan Password user email Anda
Retype new password: Konfirmasi password diatas
passwd: all authentication tokens updated successfully.
[root@sinau ~]#
[root@sinau ~]# adduser user2
[root@sinau ~]# passwd user2
Changing password for user user2.
New password: Isikan Password user email Anda
Retype new password: Konfirmasi password diatas
passwd: all authentication tokens updated successfully.
[root@sinau ~]#

Berikutnya, kita akan mencoba untuk mengirimkan email dari user1 ke user2
menggunakan telnet ke mail.hamim.web.id dengan port smtp (25) seperti berikut ini

[root@sinau ~]#
[root@sinau ~]# telnet mail.hamim.web.id smtp
Trying 117.53.46.228...
Connected to mail.hamim.web.id.
Escape character is '^]'.
220 mail.hamim.web.id ESMTP
ehlo mail.hamim.web.id
250-mail.hamim.web.id
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:user1@hamim.web.id
250 2.1.0 Ok
rcpt to:user2@hamim.web.id
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Ini merupakan percobaan pengiriman email dari user1 ke user2.

119 | CentOS 7 Linux Administrator Pada Cloud Computing


Semoga berhasil yaa!

Regards,
Nur Hamim
.
250 2.0.0 Ok: queued as B408E240D8DE
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@sinau ~]#

Untuk melihat hasil pengiriman email tersebut dapat dilakukan dengan cara login ke
dovecot Anda menggunakan telnet seperti berikut

[root@sinau ~]#
[root@sinau ~]# telnet mail.hamim.web.id pop3
Trying 117.53.46.228...
Connected to mail.hamim.web.id.
Escape character is '^]'.
+OK Dovecot ready.
user user2
+OK
pass Isikan_password_dari_user2
+OK Logged in.
retr 1
+OK 534 octets
Return-Path: <user1@hamim.web.id>
X-Original-To: user2@hamim.web.id
Delivered-To: user2@hamim.web.id
Received: from mail.hamim.web.id (unknown [117.53.46.228])
by mail.hamim.web.id (Postfix) with ESMTP id B408E240D8DE
for <user2@hamim.web.id>; Mon, 22 Apr 2019 06:26:49 +0700 (WIB)
Message-Id: <20190421232658.B408E240D8DE@mail.hamim.web.id>
Date: Mon, 22 Apr 2019 06:26:49 +0700 (WIB)
From: user1@hamim.web.id

Ini merupakan percobaan pengiriman email dari user1 ke user2.

Semoga berhasil yaa!

Regards,
Nur Hamim
.
quit
+OK Logging out.
Connection closed by foreign host.
[root@sinau ~]#

120 | CentOS 7 Linux Administrator Pada Cloud Computing


8.5 KONFIGURASI MAIL CLIENT MENGGUNAKAN MOZILLA THUNDERBIRD

Apabila mail server Anda telah berjalan dengan baik, untuk menggunakan mail server
tersebut dapat menggunakan aplikasi mail client (MUA).

Sangat banyak mail client yang dapat Anda gunakan mulai dari yang open source
(free/bebas) sampai ke yang close source (berbayar).

Penulis disini akan memberikan contoh bagaimana cara setup mail di aplikasi mail client
menggunakan mozilla thunderbird .

Mozilla Thunderbird sendiri merupakan salah satu aplikasi mail client yang bersifat open
source yang dapat berjalan di berbagai macam sistem operasi mulai dari linux, windows,
mac os.

Penulis disini akan melakukan konfigurasi mail client menggunakan mozilla thunderbird
di sistem operasi Ubuntu 18.04.

Pada Ubuntu 18.04 Desktop secara default mozilla thunderbird telah terinstal dan siap
digunakan.

Silakan buka aplikasi mozilla thunderbird Anda masing - masing.

Klik pada menu Local Folders » Email » Isikan Detail Informasi dari email Anda »
Continue, seperti berikut, harap pengisian alamat email dan password Anda telah benar:

Your name: Isikan nama dari alamat/akun email Anda


Email Address: Isikan alamat/akun email Anda
Password: Isikan password dari alamat/akun email Anda

121 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan pilih protokol yang digunakan oleh mail server Anda. Disini penulis
menggunakan protokol POP3 » Done seperti pada gambar dibawah ini

Selanjutnya akan muncul peringatan, silakan centang dan Klik pada menu Done seperti
pada gambar dibawah ini:

122 | CentOS 7 Linux Administrator Pada Cloud Computing


Saat ini akun email user1@hamim.web.id telah berhasil di setup di mail server client
menggunakan mozilla thunderbird berikut hasilnya

Berikutnya, penulis akan mencoba untuk mengirimkan email dari akun


user1@hamim.web.id ke info@nurhamim.net sebagai berikut:

Klik pada mail user1@hamim.web.id » write a new message

123 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan masukan email tujuan ke bagian To dan isikan subjek sesuai dengan
keinginan beserta pesan email yang diinginkan, seperti berikut ini

Untuk melihat hasil pengiriman silakan masuk ke menu Sent pada akun email
user1@hamim.web.id seperti berikut

124 | CentOS 7 Linux Administrator Pada Cloud Computing


Bila kami lihat saat ini pengiriman email dari akun email user1@hamim.web.id ke
info@nurhamim.net telah masuk sebagai berikut:

125 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya penulis akan mencoba mengirim email dari Gmail dengan akun email
hamimistimewa@gmail.com ke user1@hamim.web.id sebagai berikut

Silakan buka kembali mozilla thunderbird Anda hasilnya akan ada email masuk dari gmail
seperti berikut

126 | CentOS 7 Linux Administrator Pada Cloud Computing


8.6 INSTALASI DAN KONFIGURASI IREDMAIL

iRedMail salah satu solusi yang tepat bagi Anda yang ingin membangun sebuah mail
server dengan instan, mudah, dan powerfull tentunya.

iRedmail merupakan aplikasi mail server (Collaboration Suite) yang bersifat open source
(free/bebas) namun ada juga yang versi berbayar.

iRedmail dapat diinstall di berbagai macam distro Linux diantaranya: Debian, Ubuntu,
CentOS, selain itu iRedmail juga dapat diinstall di distro Unix contohnya FreeBSD dan
OpenBSD.

Selengkapnya mengenai keterangan lebih lanjut mengenai iRedmail dapat dilihat melalui
tautan berikut: https://iredmail.org/

Berikut System Requirements yang dibutuhkan:

- Sistem operasi Linux CentOS/Ubuntu/Debian/FreeBSD/OpenBSD. Disini penulis


menggunakan sistem operasi CentOS 7
- Memory/RAM 2 GB rekomendasi untuk low traffic.
- Pastikan VPS Anda dalam keadaan Fresh Install atau belum terdapat aplikasi
apapun.
- Pastikan hostname VPS telah FQDN (fully qualified domain name)

Berikutnya, silakan login ke VPS Anda masing - masing dan silakan melakukan
pembaruan atau update sistem operasi CentOS 7 Anda dengan cara menjalankan
perintah berikut:

[root@srv-iRedmail ~]# yum update -y

127 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan tunggu proses update sampai selesai, jika sudah silakan mengubah hostname
VPS Anda menjadi FQDN (Full qualified domain name). Untuk mengubah hostname
silakan menjalankan perintah berikut:

[root@srv-iRedmail ~]# hostnamectl set-hostname mail.updateartikel.net


[root@srv-iRedmail ~]# hostname -f
mail.updateartikel.net
[root@srv-iRedmail ~]#

Jika sudah, berikutnya unduh iRedmail klik disini, dan jalankan perintah wget seperti
berikut

[root@srv-iRedmail ~]# wget


https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Jika sudah silakan ekstrak file iRedmail tersebut menggunakan perintah tar xjf seperti
berikut ini

[root@srv-iRedmail ~]# ls
iRedMail-0.9.9.tar.bz2

128 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@srv-iRedmail ~]# tar xjf iRedMail-0.9.9.tar.bz2
[root@srv-iRedmail ~]#

Jika sudah berikutnya silakan pindah direktori ke direktori iRedmail yang baru saja kita
ekstrak dan melakukan instalasi iRedmail dengan menjalankan perintah bash berikut

[root@srv-iRedmail ~]#
[root@srv-iRedmail ~]# cd iRedMail-0.9.9
[root@srv-iRedmail iRedMail-0.9.9]# bash iRedMail.sh

Pilih Yes untuk melanjutkan proses instalasi iRedmail

Menentukan lokasi untuk menyimpan semua mailbox. Secara default berada di


/var/vmail/, untuk melanjutkannya silakan next seperti berikut

129 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk webserver disini penulis akan menggunakan nginx silakan pilih nginx, jika Anda
tidak ingin menggunakan web server silakan pilih no web server

Berikutnya, Anda diminta untuk memilih database yang ingin Anda gunakan terdapat
banyak pemilihan mulai dari MariaDB, PostgreSQL dan OpenLDAP

130 | CentOS 7 Linux Administrator Pada Cloud Computing


Disini penulis akan menggunakan MariaDB silakan pilih Mariadb lalu Next

Selanjutnya memberikan password untuk database MariaDB Anda seperti berikut

Berikutnya, Anda diminta untuk mengisikan nama domain yang ingin Anda gunakan

131 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya memberi password untuk akun postmaster@updateartikel.net seperti berikut

Silakan memilih komponen yang ingin Anda gunakan, disini penulis memilih semuanya

132 | CentOS 7 Linux Administrator Pada Cloud Computing


Tekan "y" untuk melanjutkan instalasi, info mengenai username dan password server
berada di "/root/iRedMail-0.9.9/config". Mohon untuk dapat disimpan file tersebut
sebaik mungkin.

Silakan tunggu proses instalasi sampai selesai. Jika sudah Anda akan mendapatkan
credential untuk login ke panel admin iRedmail, webmail, monitoring seperti berikut:

********************************************************************
* URLs of installed web applications:
*
* - Roundcube webmail: https://mail.updateartikel.net/mail/
* - SOGo groupware: https://mail.updateartikel.net/SOGo/
* - netdata (monitor): https://mail.updateartikel.net/netdata/
*

133 | CentOS 7 Linux Administrator Pada Cloud Computing


* - Web admin panel (iRedAdmin):
https://mail.updateartikel.net/iredadmin/
*
* You can login to above links with below credential:
*
* - Username: postmaster@updateartikel.net
* - Password: IniPassword_login_admin_Panel
*
*
********************************************************************
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
*
* - /root/iRedMail-0.9.9/iRedMail.tips
*
* And it's sent to your mail account postmaster@updateartikel.net.
*
********************* WARNING **************************************
*
* Please reboot your system to enable all mail services.
*
********************************************************************

Untuk login ke panel Anda secara default menggunakan alamat email


postmaster@updateartikel.net untuk password silakan isikan password pada saat
melakukan konfigurasi sebelumnya.

Berikutnya silakan reboot/restart VPS Anda dengan cara mengetikan perintah

[root@srv-iRedmail iRedMail-0.9.9]# reboot

134 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan akses panel admin dari iRedmail melalui web browser dan login
menggunakan username postmaster@updateartikel.net seperti berikut:

Dan berikut default Dashboard iRedmail

Untuk membuat user baru silakan klik pada menu Add » User

135 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan isikan alamat email dan password serta kuota mailbox yang ingin digunakan
sesuai dengan kebutuhan Anda masing - masing

Apabila user telah berhasil dibuat maka Anda akan diminta untuk memilih privileges,
bahasa, ID (optional) yang ingin digunakan oleh user hamim@updateartikel.net seperti
pada gambar berikut, jika sudah silakan save changes

136 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk melihat user yang telah dibuat silakan klik pada menu Domains and Accounts klik
pada menu users seperti berikut

Jika dikemudian hari Anda ingin menambahkan domain baru dapat dilakukan dengan
cara pindah ke menu Domains and Accounts lalu klik menu + Add domain

137 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan isikan nama domain dan nama perusahaan/company Anda (optional) seperti
berikut

Silakan klik Add dan berikut hasilnya:

Bila dilihat di menu Domains and Account saat ini sudah terdapat 2 domain 1 yang baru
saja kita tambahkan seperti berikut:

138 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk membuka webmail dari akun email diatas dapat dilakukan silakan login ke webmail
Anda masing - masing berikut linknya: https://mail.updateartikel.net/mail/ silakan login
dengan alamat email yang telah Anda buat seperti pada gambar dibawah ini:

Selain itu pada mail server iRedmail ini sudah tersedia mail SOGO berikut link untuk login
ke SOGO:

139 | CentOS 7 Linux Administrator Pada Cloud Computing


https://mail.updateartikel.net/SOGo/ silakan login dengan alamat email yang telah Anda
buat sebelumnya

Jika sudah langkah selanjut Anda dapat menambahkan record - record mail server mulai
dari SPF, DKIM, PTR/rDN dan yang lainnya. Khusus untuk PTR/rDNS apabila Anda tidak
membangun DNS Server mandiri dan Anda menyewa sebuah VPS Anda dapat
melakukan request untuk penambahan PTR/rDNS pada IP VPS Anda.

Selengkapnya mengenai record - record mail server di iRedmail dapat Anda lihat melalui
tautan berikut: Setup DNS records for your iRedMail server (A, PTR, MX, SPF, DKIM)

Berikutnya, penulis akan mencoba untuk mengirimkan alamat email dari akun email
hamim@updateartikel.net (berada di mail server iRedmail) ke info@nurhamim.net seperti
berikut hasilnya

140 | CentOS 7 Linux Administrator Pada Cloud Computing


Sekarang penulis akan memeriksa email info@nurhamim.net apabila sudah terdapat
pesan masuk yang dikirim oleh email hamim@updateartikel.net berarti mail server sudah
berhasil dan dapat digunakan, seperti berikut hasilnya.

141 | CentOS 7 Linux Administrator Pada Cloud Computing


Selain itu apabila mail server iRedmail Anda ingin secure Anda dapat memasang protokol
https bisa menggunakan free SSL menggunakan Let's Encrypt atau membeli SSL sendiri.

Bila Anda ingin menggunakan Let's Encrypt Anda dapat mengikuti tautan berikut:
Request a free cert from Let's Encrypt

142 | CentOS 7 Linux Administrator Pada Cloud Computing


8.7 INSTALASI DAN KONFIGURASI ZIMBRA MAIL SERVER

Zimbra Collaboration Suite (ZCS) merupakan sebuah platform kolaborasi bebas dan
Open Source namun juga terdapat versi enterprise atau berbayar dalam menggunakan
mail server.

Zimbra mail server sendiri menawarkan layanan mail yang powerfull seperti LDAP,
SMTP, POP dan IMAP, webmail client, kalender, tasks, antivirus dan antispam.

Zimbra mail server juga dapat diimplementasikan dalam multi server maupun single
server.

Penulis disini akan memberikan tahapan - tahapan bagaimana cara instal server mail
Zimbra / Collaboration Suite Open Source Edition single server.

KEBUTUHAN INSTALASI ZIMBRA MAIL SERVER (ZCS) DI CentOS 7:

- Sistem operasi minimal CentOS 7


- RAM 4 GB rekomendasi 8 GB
- Setidaknya terdapat 5 GB free space/ruang kosong di /opt
- Nama hostname harus menggunakan FQDN (Fully Qualified Domain Name), dalam
hal ini penulis memberikan contoh penulisan hostname fqdn (mail.hamim.web.id)
- Catatan atau record A & MX untuk mail server Anda

TAHAPAN INSTALASI DAN KONFIGURASI ZIMBRA MAIL SERVER

Pertama silakan remote akses server VPS Anda masing - masing menggunakan terminal
bagi Anda pengguna linux atau menggunakan aplikasi remote server seperti halnya putty,
mputty dan yang lainnya.

Jika sudah silakan update sistem operasi CentOS 7 Anda dengan cara menjalankan
perintah

[root@mail-zimbra ~]# yum update -y

Selanjutnya mengubah hostname dengan cara menjalankan perintah berikut

[root@mail-zimbra ~]# hostnamectl set-hostname mail.hamim.web.id


[root@mail-zimbra ~]# exec bash
mail.hamim.web.id
[root@mail ~]# vim /etc/hosts

Menambahkan IP VPS Anda beserta hostname Anda tersebut ke hosts seperti berikut

143 | CentOS 7 Linux Administrator Pada Cloud Computing


# Auto-generated hostname. Please do not remove this comment.
#127.0.0.1 mail-zimbra
103.23.20.126 mail.hamim.web.id

Jika sudah silakan simpan konfigurasi hosts dan untuk melihat detail informasi hostname
dapat dilakukan dengan cara mengetikan perintah hostnamectl seperti berikut ini

[root@mail ~]#
[root@mail ~]# hostnamectl
Static hostname: mail.hamim.web.id
Icon name: computer-container
Chassis: container
Machine ID: 77589b7965f64452a32a22df33f7ba32
Boot ID: c7ba847c965a4fb8984060934dc8c8f3
Virtualization: openvz
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0
Architecture: x86-64
[root@mail ~]#

Selanjutnya memastikan kembali tidak adanya service mail seperti halnya postfix,
sendmail yang biasanya sebagian penyedia VPS telah memasang service2 tersebut
secara default, berikut perintahnya

[root@mail ~]# yum remove sendmail postfix dovecot

144 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah selanjutnya menginstall service dan paket2 dependensi yang dibutuhkan oleh
zimbra sebagai berikut

[root@mail ~]# yum install unzip net-tools sysstat openssh-clients perl-


core libaio nmap-ncat libstdc++.so.6 wget -y

145 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan menunggu sampai proses instalasi selesai, apabila telah selesai berikutnya Anda
dapat mengunduh file zimbra yang ingin Anda gunakan. Penulis akan menggunakan
zimbra versi 8.8.12 untuk mengunduh file tersebut dapat melalui tautan berikut:
https://zimbra.org/download/zimbra-collaboration

Anda juga dapat langsung mengunduh file zimbra tersebut menggunakan perintah wget
melalui VPS Anda dengan cara sebagai berikut:

[root@mail ~]#
[root@mail ~]# wget https://files.zimbra.com/downloads/8.8.12_GA/zcs-
8.8.12_GA_3794.RHEL7_64.20190329045002.tgz

146 | CentOS 7 Linux Administrator Pada Cloud Computing


File yang telah berhasil diunduh tersebut menggunakan ekstensi .tgz dengan begitu untuk
ekstrak file tersebut dapat menggunakan perintah tar xzf , seperti berikut ini:

[root@mail ~]# tar xzf zcs-8.8.12_GA_3794.RHEL7_64.20190329045002.tgz


[root@mail ~]# cd zcs-8.8.12_GA_3794.RHEL7_64.20190329045002
[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]#

Untuk melakukan instalasi dan konfigurasi mail server zimbra silakan jalankan perintah
.sh seperti berikut ini

[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]#
[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]# ./install.sh --
platform-override

147 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas silakan tekan y untuk melanjutkan proses instalasi, dan berikutnya
Anda diminta konfirmasi apakah Anda ingin menginstall package atau service zimbra
melalui repository zimbra yang mana hal ini menyesuaikan kebutuhan Anda masing -
masing seperti berikut ini

148 | CentOS 7 Linux Administrator Pada Cloud Computing


149 | CentOS 7 Linux Administrator Pada Cloud Computing
150 | CentOS 7 Linux Administrator Pada Cloud Computing
Pada gambar diatas silakan ketikkan perintah Yes dan mengisikan nama domain Anda
dan berikutnya kita akan melakukan konfigurasi diantaranya melakukan konfigurasi
password root login zimbra administrator dengan cara pilih nomor 6 (zimbra-store) lalu
pilih nomor 4 set password admin seperti pada gambar dibawah ini.

151 | CentOS 7 Linux Administrator Pada Cloud Computing


152 | CentOS 7 Linux Administrator Pada Cloud Computing
Selanjutnya ketik huruf r untuk kembali ke menu dan ketik huruf a untuk menyelesaikan
konfigurasi seperti pada gambar dibawah ini

153 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada tahap ini instalasi zimbra telah selesai, berikutnya silakan login ke dalam zimbra
dengan cara mengetikan perintah su - zimbra dan start zimbra dengan cara menjalankan
perintah berikut

[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]#
[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]# su - zimbra
Last login: Sel Apr 30 07:00:21 WIB 2019 on pts/0
[zimbra@mail ~]$ zmcontrol start #PERINTAH UNTUK START ZIMBRA
Host mail.hamim.web.id
Starting zmconfigd...Done.
Starting logger...Done.
Starting mailbox...Done.
Starting memcached...Done.
Starting proxy...Done.
Starting amavis...Done.
Starting antispam...Done.
Starting antivirus...Done.
Starting opendkim...Done.
Starting snmp...Done.

154 | CentOS 7 Linux Administrator Pada Cloud Computing


Starting spell...Done.
Starting mta...Done.
Starting stats...Done.
Starting service webapp...Done.
Starting zimbra webapp...Done.
Starting zimbraAdmin webapp...Done.
Starting zimlet webapp...Done.
Starting imapd...Done.
[zimbra@mail ~]$

Selanjutnya untuk mengamankan zimbra dari indikasi atau isu flooding network dengan
begitu kita harus meng-allow port memcache ke localhost untuk menghindari adanya
serangan Memcached Exploit/attack pada zimbra mail server dengan cara menjalankan
perintah sebagai berikut:

[zimbra@mail ~]$ /opt/zimbra/bin/zmprov ms `zmhostname`


zimbraMemcachedBindAddress 127.0.0.1
[zimbra@mail ~]$ /opt/zimbra/bin/zmprov ms `zmhostname`
zimbraMemcachedClientServerList 127.0.0.1
[zimbra@mail ~]$ zmmemcachedctl restart
Stopping memcached...done.
Starting memcached...done.
[zimbra@mail ~]$
[zimbra@mail ~]$ zmmemcachedctl status
memcached is running.
[zimbra@mail ~]$

Memastikan kembali service zimbra running dengan cara menjalan perintah

155 | CentOS 7 Linux Administrator Pada Cloud Computing


[zimbra@mail ~]$ zmcontrol status
Host mail.hamim.web.id
amavis Running
antispam Running
antivirus Running
imapd Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
[zimbra@mail ~]$

Detail atau rangkuman mengenai instalasi mail server zimbra diatas dapat Anda lihat
melalui wiki Github penulis pada tautan berikut ini: Instalasi Konfigurasi zimbra 8.8.12
single server CentOS 7.

Untuk mengakses Administrator Zimbra silakan akses hostname (mail.hamim.web.id)


atau IP VPS Anda diikuti port 7071 default zimbra seperti berikut

https://mail.hamim.web.id:7071 (Adnistrator Zimbra)


atau
https://103.23.20.126:7071 (Adnistrator Zimbra)
atau

156 | CentOS 7 Linux Administrator Pada Cloud Computing


https://mail.hamim.web.id (Zimbra Mail Client)

Untuk credential login Administrator zimbra yaitu menggunakan username


admin@domainanda.com untuk password isikan password root yang telah dibuat
sebelumnya pada saat instalasi.

Untuk login ke zimbra mail client Anda dapat dilakukan dengan cara mengakses
https://mail.hamim.web.id tanpa menggunakan port seperti berikut

157 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk username Anda dapat menggunakan username login administrator atau Anda
dapat menambahkan user baru di Administrator Zimbra seperti berikut hasilnya

INSTALASI DAN KONFIGURASI LET’S ENCRYPT SSL CERTIFICATE ZIMBRA

Menggunakan email dengan protokol https (secure) salah rekomendasi untuk


penggunaan email mulai dari sisi keamanan mail server sampai ke reputasi pengiriman
email bila menggunakan protokol https akan lebih baik. Jika Anda ingin menggunakan
protokol https terhadap mail server, Anda perlu mempunyai SSL.

SSL sendiri terdapat banyak pilihan mulai dari yang open source (free) dan yang
berbayar.

158 | CentOS 7 Linux Administrator Pada Cloud Computing


Contoh yang berbayar seperti halnya SSL Globalsign, Comodo, Digicert, dan masih
banyak yang lainnya.

Sedangkan yang free sendiri juga sangat banyak diantaranya yang paling populer dan
sering sekali digunakan oleh banyak kalangan yaitu lets encrypt.

Penulis sendiri disini akan memberikan tahapan - tahapan untuk pemasangan ssl lets
encrypt di zimbra mail server.

Langkah pertama yang harus dilakukan yaitu login sebagai user zimbra dan menon-
aktifkan service proxy dan mailbox zimbra (user zimbra) dengan cara sebagai berikut

[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]#
[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]# su - zimbra
Last login: Rab Mei 1 03:01:48 WIB 2019 on pts/0
[zimbra@mail ~]$ zmproxyctl stop
Stopping proxy...done.
[zimbra@mail ~]$
[zimbra@mail ~]$ zmmailboxdctl stop
Stopping mailboxd...done.
[zimbra@mail ~]$
[zimbra@mail ~]$ exit
logout
[root@mail zcs-8.8.12_GA_3794.RHEL7_64.20190329045002]#

Memasang service git yang akan digunakan untuk clone file lets encrypt, untuk install git
di CentOS Anda hanya perlu menjalankan perintah

[root@mail ~]# yum install git -y

159 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah berikutnya clone lets encrypt seperti berikut ini

[root@mail ~]# git clone https://github.com/letsencrypt/letsencrypt


Cloning into 'letsencrypt'...
remote: Enumerating objects: 64595, done.
remote: Total 64595 (delta 0), reused 0 (delta 0), pack-reused 64595
Receiving objects: 100% (64595/64595), 21.35 MiB | 4.61 MiB/s, done.
Resolving deltas: 100% (47214/47214), done.
[root@mail ~]#

160 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, pindah ke direktori lets encrypt dan melakukan request SSL untuk
mail.hamim.web.id dengan cara menjalankan perintah berikut

[root@mail letsencrypt]# ./letsencrypt-auto certonly --standalone -d


mail.hamim.web.id

Pada menu berikut, silakan mengisikan alamat email Anda, biasanya alamat email ini
digunakan untuk notifikasi renew SSL Anda seperti berikut

Creating virtual environment...


Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log

161 | CentOS 7 Linux Administrator Pada Cloud Computing


Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter
'c' to
cancel): info@nurhamim.net

Selain itu Anda diminta untuk membaca ketentuan dari lets encrypt, jika Anda
menyetujuinya silakan ketikan huruf A

(A)gree/(C)ancel: A

Untuk melanjutkan proses request SSL silakan ketikan huruf Y

(Y)es/(N)o: Y

Obtaining a new certificate


Performing the following challenges:
http-01 challenge for mail.hamim.web.id
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.hamim.web.id/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mail.hamim.web.id/privkey.pem
Your cert will expire on 2019-07-29. To obtain a new or tweaked
version of this certificate in the future, simply run
letsencrypt-auto again. To non-interactively renew *all* of your
certificates, run "letsencrypt-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate


Donating to EFF: https://eff.org/donate-le

[root@mail letsencrypt]#

162 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk melihat komponen - komponen SSL yang baru saja di request dapat dilakukan,
silakan pindah direktori default lets encrypt seperti berikut ini

[root@mail letsencrypt]#
[root@mail letsencrypt]# cd /etc/letsencrypt/live/mail.hamim.web.id/
[root@mail mail.hamim.web.id]# ls -lah
total 12K
drwxr-xr-x 2 root root 4,0K Mei 1 05:39 .
drwx------ 3 root root 4,0K Mei 1 05:39 ..
lrwxrwxrwx 1 root root 41 Mei 1 05:39 cert.pem ->
../../archive/mail.hamim.web.id/cert1.pem
lrwxrwxrwx 1 root root 42 Mei 1 05:39 chain.pem ->
../../archive/mail.hamim.web.id/chain1.pem
lrwxrwxrwx 1 root root 46 Mei 1 05:39 fullchain.pem ->
../../archive/mail.hamim.web.id/fullchain1.pem
lrwxrwxrwx 1 root root 44 Mei 1 05:39 privkey.pem ->
../../archive/mail.hamim.web.id/privkey1.pem
-rw-r--r-- 1 root root 692 Mei 1 05:39 README
[root@mail mail.hamim.web.id]#

163 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya, menambahkan Intermediate CA ke dalam chain.pem , file Intermediate CA
dan chain.pem dapat Anda unduh melalui tautan berikut: CA Intermediate .

Dan membuat direktori lets encrypt di dalam user zimbra serta memberikan hak owner
terhadap direktori lets encrypt tersebut.

[root@mail mail.hamim.web.id]#
[root@mail mail.hamim.web.id]# mkdir /opt/zimbra/ssl/letsencrypt
[root@mail mail.hamim.web.id]# cp
/etc/letsencrypt/live/mail.hamim.web.id/* /opt/zimbra/ssl/letsencrypt/
[root@mail mail.hamim.web.id]# chown zimbra:zimbra
/opt/zimbra/ssl/letsencrypt/*
[root@mail mail.hamim.web.id]# ls -la /opt/zimbra/ssl/letsencrypt/
total 28
drwxr-xr-x 2 root root 4096 Mei 1 05:46 .
drwxr-xr-x 9 zimbra zimbra 4096 Mei 1 05:46 ..
-rw-r--r-- 1 zimbra zimbra 1915 Mei 1 05:46 cert.pem
-rw-r--r-- 1 zimbra zimbra 2847 Mei 1 05:46 chain.pem
-rw-r--r-- 1 zimbra zimbra 3562 Mei 1 05:46 fullchain.pem
-rw------- 1 zimbra zimbra 1704 Mei 1 05:46 privkey.pem
-rw-r--r-- 1 zimbra zimbra 692 Mei 1 05:46 README
[root@mail mail.hamim.web.id]#

Silakan masuk ke user zimbra dan pindah ke direktori letsencrypt yang baru saja dibuat,
seperti berikut

[root@mail mail.hamim.web.id]# su - zimbra


Last login: Rab Mei 1 05:47:44 WIB 2019 on pts/0
Last failed login: Rab Mei 1 08:51:47 WIB 2019 from 183.99.134.39 on
ssh:notty
There were 2 failed login attempts since the last successful login.
[zimbra@mail ~]$
[zimbra@mail ~]$ cd /opt/zimbra/ssl/letsencrypt/

164 | CentOS 7 Linux Administrator Pada Cloud Computing


[zimbra@mail letsencrypt]$
[zimbra@mail letsencrypt]$

Melakukan verifikasi terhadap semua komponen - kompenen SSL, pastikan tidak ada
yang error atau tidak match, contohnya sebagai berikut

[zimbra@mail letsencrypt]$
[zimbra@mail letsencrypt]$ /opt/zimbra/bin/zmcertmgr verifycrt comm
privkey.pem cert.pem chain.pem
** Verifying 'cert.pem' against 'privkey.pem'
Certificate 'cert.pem' and private key 'privkey.pem' match.
** Verifying 'cert.pem' against 'chain.pem'
Valid certificate chain: cert.pem: OK
[zimbra@mail letsencrypt]$

Membuat file backup SSL zimbra dan copy private key ke commercial key

[zimbra@mail letsencrypt]$
[zimbra@mail letsencrypt]$ cp -a /opt/zimbra/ssl/zimbra
/opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")
[zimbra@mail letsencrypt]$ cp /opt/zimbra/ssl/letsencrypt/privkey.pem
/opt/zimbra/ssl/zimbra/commercial/commercial.key
[zimbra@mail letsencrypt]$

Jika sudah silakan install SSL dengan cara menjalankan baris perintah berikut

[zimbra@mail letsencrypt]$ /opt/zimbra/bin/zmcertmgr deploycrt comm


cert.pem chain.pem

165 | CentOS 7 Linux Administrator Pada Cloud Computing


Langkah yang terakhir restart service zimbra

[zimbra@mail letsencrypt]$ zmcontrol restart

166 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk memastikan SSL lets encrypt telah terinstall di mail server Anda silakan
mengakses mengakses administrator zimbra Anda seperti berikut ini

167 | CentOS 7 Linux Administrator Pada Cloud Computing


MENAMBAHKAN RECORD SPF, DKIM, DMARC DI ZIMBRA MAIL SERVER

Mengenai mail server sangat banyak orang - orang yang mengeluh jika mail servernya
masuk dalam kategori junk/spam apabila membuat mail server pribadi.

Membahas masalah kenapa pada saat kita mengirimkan sebuah email dan email yang
telah Anda kirimkan masuk dalam kategori junk/spam oleh mail server penerima itu
sangat banyak faktor diantaranya sebagai berikut:

- Tidak adanya record - record mail server yang telah direkomendasikan seperti
halnya record spf, dkim, ptr/rdns
- Pengiriman dengan subjek yang singkat
- IP Mail Server Pengirim ter-blacklist oleh provider spam

3 faktor diatas berlaku untuk seluruh mail server penerima dan biasanya pengiriman ke
mail server google (gmail) yang sangat - sangat rentan terhadap email junk/spam
tersebut.

Dengan begitu penulis menyarankan Anda untuk membangun reputasi pengirim dengan
cara mengirimkan email berdasarkan kriteria sebagai berikut selama beberapa waktu
kedepan :

● Isi subject email dengan kosakata yang cukup panjang, jangan hanya test atau
random teks saja.
● Isi body email dengan keterangan teks yang cukup panjang (beberapa baris dengan
belasan kalimat).
● Gunakan kosakata yang baik dan tidak ilegal (hindari penggunaan kata test, sex,
drugs, dan lainnya).

Disini penulis akan memberikan contoh record dns mail server (spf, dkim) di DNS
Management domain penulis, silakan disesuaikan dengan DNS Management domain

168 | CentOS 7 Linux Administrator Pada Cloud Computing


Anda masing - masing, untuk PTR/rDNS Anda dapat menghubungi pihak penyedia VPS
Anda masing - masing, berikut contohnya

Berikut hasil dari penambahan PTR/rDNS record untuk kebutuhan mail server.

MENAMBAHKAN USER BARU DI ZIMBRA MAIL SERVER

Untuk menambahkah user baru di zimbra tidaklah rumit, berikut penulis akan
memberikan contoh bagaimana cara menambahkan user baru di zimbra 8.8.12, sebagai
berikut:

Pertama silakan masuk ke administrator zimbra, jika sudah silakan pilih dan klik menu
manage

169 | CentOS 7 Linux Administrator Pada Cloud Computing


Setelah itu klik pada menu pengaturan dan New

Selanjutnya Anda dapat menambahkan user baru sesuai dengan keinginan Anda.

Pada menu Account Name silakan isikan nama email yang ingin Anda buat contoh
pada gambar dibawah ini

170 | CentOS 7 Linux Administrator Pada Cloud Computing


Lanjut geser ke bawah Anda diminta untuk mengisikan password, selain itu terdapat
pemilihan apakah user tersebut ingin di jadikan user administrator atau tidak, jika Anda
ingin menjadikannya sebagai user administrator silakan centang pada menu Global
Administrator

Selanjutnya pada menu Time Zone Setup Anda dapat memilih zona waktu yang ingin
Anda gunakan, disini penulis berada di Indonesia dengan begitu zona waktu yang
digunakan Bangkok, Hanoi, Jakarta. Selain itu Anda juga dapat memberikan deskripsi
atau notes terhadap user baru Anda. Klik Finish untuk menyelesaikannya.

171 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikut hasil user yang telah Anda buat

Selanjutnya, silakan akses zimbra mail client Anda dan mencoba login menggunakan
user baru yang telah dibuat, dan pastikan username dan password user telah benar
sebagai berikut

Jika username dan password Anda valid/benar maka Anda akan diarahkan ke zimbra
mail client seperti pada gambar dibawah ini

172 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, penulis akan mencoba untuk mengirimkan email dari user baru yang telah
dibuat ke mail server yang lain dengan detail mengirimkan email dari zimbra
(info@hamim.web.id) ke mail server lain (info@nurhamim.net), silakan klik pada menu
News Messages dan isikan to/cc beserta subjek seperti berikut

Silakan masuk ke menu Sent untuk melihat hasil pengiriman email

173 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya, untuk memastikan apakah email sudah terkirim silakann buka webmail dari
akun email penerima (info@nurhamim.net) seperti berikut hasilnya

Sebaliknya sekarang penulis akan mencoba untuk menerima email dari mail server lain
(info@nurhamim.net) ke (info@hamim.web.id). Silakan buka webmail dan mengirimkan
email ke info@hamim.web.id seperti berikut ini

174 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya silakan buka zimbra mail client Anda, jika berhasil menerima maka akan
terdapat notifikasi penerimaan email seperti pada gambar dibawah

175 | CentOS 7 Linux Administrator Pada Cloud Computing


176 | CentOS 7 Linux Administrator Pada Cloud Computing
9. CMS (CONTENT MANAGEMENT SISTEM)

9.1 INSTALASI DAN KONFIGURASI WORDPRESS

WordPress adalah salah satu platform CMS (Content Management Sistem) yang paling
populer dan paling banyak digunakan di seluruh dunia.

WordPress sendiri bersifat open source (free/bebas), WordPress salah satu CMS yang
sangat cocok bagi Anda yang ingin membuat sebuah website dinamis maupun statik baik
itu untuk keperluan bloging, landing page, dan company perusahaan, detailnya dapat
Anda lihat melalui tautan berikut: WordPress

Terdapat banyak bahkan sampai jutaan themes, plugin baik itu free dan berbayar yang
dapat Anda gunakan untuk keperluan Anda masing - masing, Anda dapat mengetahui
themes tersebut melalui tautan berikut: WordPress Themes. Untuk plugin dapat dilihat
melalui tautan berikut: WordPress Plugin.

Untuk requirement instalasi WordPress dapat merujuk pada tautan berikut: Server
requirements.

Berikut ini langkah - langkah instalasi CMS WordPress di CentOS 7.

Silakan akses VPS Anda masing - masing, jika sudah selanjutnya melakukan
pembaharuan sistem operasi CentOS 7 Anda dengan cara menjalankan perintah

[root@sinau ~]# yum update -y

Silakan tunggu proses update sampai selesai, berikutnya memasang repository epel
dengan cara menjalankan perintah berikut

[root@hamim-sinau ~]# yum install epel-release -y

177 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikutnya menambahkan repository remi untuk kebutuhan installasi php versi 7, berikut
perintahnya

[root@sinau ~]# yum install http://rpms.remirepo.net/enterprise/remi-


release-7.rpm

Langkah selanjutnya Anda dapat memilih versi php sesuai kebutuhan, namun CMS
WordPress telah merekomendasikan bahwa php yang dapat digunakan yaitu php versi
7.x . Jika Anda ingin menggunakan php versi 7.0 silakan jalankan perintah berikut

[root@sinau ~]# yum-config-manager --enable remi-php70

Namun jika Anda ingin menggunakan php versi 7.1 Anda dapat menggunakan perintah
berikut

178 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@sinau ~]# yum-config-manager --enable remi-php71

Jika Anda ingin menggunakan php versi 7.2 silakan menggunakan perintah berikut

[root@sinau ~]# yum-config-manager --enable remi-php72

Disini penulis akan menggunakan php versi 7.2

Jika repo remi dan package manager untuk php versi 7.2 sudah berhasil di install dan di
aktifkan, selanjutnya Anda dapat memasang module - module php 7.2 yang Anda
inginkan, berikut beberapa modul yang php yang digunakan oleh WordPress.

[root@hamim-sinau ~]# yum install php php-common php-opcache php-mcrypt


php-cli php-gd php-curl php-mysql -y

Untuk mengetahui versi php Anda dapat menjalankan perintah php -v seperti pada
gambar dibawah ini

Selanjutnya, Anda dapat memilih web server yang ingin Anda gunakan disini penulis akan
menggunakan web server apache (httpd). Silakan jalankan perintah berikut untuk
instalasi web server apache

[root@hamim-sinau ~]# yum install httpd -y

179 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan start dan enable service httpd agar pada saat VPS mengalami
reboot/restart service httpd akan otomatis running, berikut perintahnya

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# systemctl start httpd
[root@hamim-sinau ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@hamim-sinau ~]# systemctl status httpd

CMS WordPress membutuhkan media penyimpanan (database) disini penulis akan


menggunakan database mariadb, untuk instalasinya silakan jalankan perintah berikut

[root@hamim-sinau ~]# yum install mariadb mariadb-server -y

180 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan start dan enable service mariadb agar pada saat VPS Anda
mengalami reboot/restart service mariadb tetap running

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# systemctl start mariadb
[root@hamim-sinau ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-
user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@hamim-sinau ~]# systemctl status mariadb

Langkah selanjutnya melakukan konfigurasi password root database mariadb dengan


cara menjalankan perintah berikut

[root@hamim-sinau ~]# mysql_secure_installation

181 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila sudah selanjutnya login ke database mariadb dan membuat database
WordPress seperti berikut ini

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.

182 | CentOS 7 Linux Administrator Pada Cloud Computing


Your MariaDB connection id is 11
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> CREATE DATABASE wordpress;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE USER 'isikan-user-wp'@'localhost' IDENTIFIED BY


'isikan-password-wp';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'isikan-user-


wp'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit


Bye
[root@hamim-sinau ~]#
[root@hamim-sinau ~]#

Apabila database dan webserver telah berhasil diinstall dengan benar berikutnya silakan
pindah ke direktori default apache di /var/www/html/ dan mengunduh CMS WordPress
menggunakan service wget seperti berikut ini

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# cd /var/www/html/
[root@hamim-sinau html]# wget https://wordpress.org/latest.tar.gz

183 | CentOS 7 Linux Administrator Pada Cloud Computing


Secara default hasil unduhan CMS WordPress berekstensi .tar.gz dengan begitu silakan
ekstrak file dengan menggunakan perintah tar -xzvf seperti berikut ini

[root@hamim-sinau html]#
[root@hamim-sinau html]# tar -xzvf latest.tar.gz

Langkah selanjutnya melakukan konfigurasi pada CMS WordPress dengan cara meng-
copy wp-config-sample.php menjadi wp-config.php dan silakan buka konfigurasi wp-
config.php lalu sesuaikan nama, username, password database wordpress yang telah
kita buat sebelumnya.

[root@hamim-sinau html]#
[root@hamim-sinau html]# cd wordpress/
[root@hamim-sinau wordpress]# cp wp-config-sample.php wp-config.php
[root@hamim-sinau wordpress]# vi wp-config.php

Seperti berikut konfigurasinya

184 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan simpan dan berikutnya, membuat virtual host untuk wordpress Anda
di direktori /etc/httpd/conf.d dan membuat nama virtualhost (bebas) sesuai dengan
keinginan Anda seperti berikut contohnya.

[root@hamim-sinau wordpress]#
[root@hamim-sinau wordpress]# cd /etc/httpd/conf.d/
[root@hamim-sinau conf.d]# vim wordpress.hamim.web.id.conf

Berikut contoh virtual host untuk CMS WordPress

<VirtualHost *:80>
ServerName domainanda.id » Isikan nama domain/subdomain Anda.
ServerAdmin email@domainanda.id » Informasi email domain Anda.
DocumentRoot /var/www/domainanda.id » Letak website Anda berada
ErrorLog logs/domainanda.id-error_log » path error_log
CustomLog logs/domainanda.id-access_log combined» path
access_log
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
</VirtualHost>

Silakan simpan dan silakan restart service apache, mariadb Anda dengan cara
menjalankan perintah berikut

185 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamim-sinau conf.d]#
[root@hamim-sinau conf.d]# vim wordpress.hamim.web.id.conf
[root@hamim-sinau conf.d]# systemctl restart httpd
[root@hamim-sinau conf.d]# systemctl restart mariadb
[root@hamim-sinau conf.d]#

Pada konfigurasi Virtualhost diatas penulis menggunakan subdomain


(wordpress.hamim.web.id) silakan akses subdomain (wordpress.hamim.web.id) namun
jika Anda tidak mempunyai domain Anda dapat mengisikan IP VPS Anda pada
ServerName.

Silakan akses (wordpress.hamim.web.id) atau IP VPS Anda yang telah Anda isikan
melalui ServerName pada Virtual Host melalui web browser Anda masing - masing,
seperti berikut

Gambar diatas merupakan proses instalasi wordpress silakan sesuaikan dengan


kebutuhan Anda masing - masing dan klik Install WordPress untuk melanjutkan proses
instalasi WordPress.

186 | CentOS 7 Linux Administrator Pada Cloud Computing


Klik menu Login untuk dapat masuk ke Administrator WordPress seperti berikut hasilnya

Jika Anda ingin menggunakan fasilitas SSL Free pada WordPress Anda dapat dilakukan
dengan cara memasang SSL Free Let's Encrypt dari certbort, berikut langkah -
langkahnya

Langkah pertama silakan jalankan perintah berikut

[root@hamim-sinau ~]# yum -y install yum-utils


[root@hamim-sinau ~]# yum-config-manager --enable rhui-REGION-rhel-
server-extras rhui-REGION-rhel-server-optional
Loaded plugins: fastestmirror
[root@hamim-sinau ~]#

Jika sudah langkah berikutnya yaitu menginstall beberapa module python2 yang
dibutuhkan oleh cerbort, berikut perintahnya

187 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamim-sinau ~]# sudo yum install certbot python2-certbot-apache -
y

Apabila proses instalasi sudah selesai, berikutnya Anda dapat memasang ssl terhadap
domain atau subdomain Anda dengan cara menjalankan perintah berikut

[root@hamim-sinau ~]# cd /var/www/html/wordpress/


[root@hamim-sinau wordpress]# sudo certbot --apache

Pada pemilihan apakah Anda ingin melakukan redirect dari http ke https silakan pilih
nomor 2 , detailnya seperti pada gambar dibawah ini.

188 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya silakan akses wordpress.hamim.web.id menggunakan protokol https,
hasilnya akan seperti pada gambar dibawah ini.

Pada tahap ini instalasi WordPress telah berhasil dilakukan.

9.2 INSTALASI DAN KONFIGURASI OPENCART

OpenCart merupakan sebuah platform e-commerce yang open source gratis/bebas serta
powerfull yang dapat digunakan oleh Anda yang ingin membangun sebuah situs/website
jual beli online.

OpenCart memiliki banyak fitur yang memberikan banyak fitur yang dapat Anda gunakan
untuk pengelolaan sebuah website e-commerce mulai dari Administrasi, management
user dan yang lainnya.

Untuk instalasi OpenCart sendiri penulis akan menggunakan webserver Apache dengan
php versi 7.2 dan database menggunakan mariadb.

Untuk instalasi webserver apache beserta php serta database mariadb sama halnya
dengan bagaimana cara install CMS WordPress diatas namun pada OpenCart terdapat
beberapa module php yang wajib terinstall diantaranya PHP Curl - Zip - Zlib - GD Library
- Mcrypt - Mbstrings - Xml .

Silakan install terlebih dahulu dengan cara menjalankan perintah sebagai berikut

[root@hamim-sinau ~]# yum install php php-mcrypt curl zlib php-gd php-
mbstring php-xml php-mysql php-pecl-zip -y

Apabila proses instalasi module php sudah selesai berikutnya database OpenCart
dengan cara sebagai berikut

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mysql -u root -p
Enter password:

189 | CentOS 7 Linux Administrator Pada Cloud Computing


Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> create database opencart;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on opencart.* to 'user-opencart' identified


by 'password-opencart';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit


Bye
[root@hamim-sinau ~]#
[root@hamim-sinau ~]#

Langkah selanjutnya, silakan membuat direktori baru sesuai keinginan di /var/www/html


serta mengunduh file opencart seperti berikut ini

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mkdir /var/www/html/opencart
[root@hamim-sinau ~]# cd /var/www/html/opencart/
[root@hamim-sinau opencart]#
[root@hamim-sinau opencart]# wget
https://github.com/opencart/opencart/releases/download/3.0.3.2/opencart
-3.0.3.2.zip

190 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan unzip file opencart dengan cara menjalankan perintah

[root@hamim-sinau opencart]# unzip opencart-3.0.3.2.zip

Selanjutnya copy default file cofig-dist.php menjadi config.php di dalam direktori /upload
dan /admin dan memberikan hak owner untuk direktori /upload seperti berikut ini

[root@hamim-sinau opencart]#
[root@hamim-sinau opencart]# cp upload/config-dist.php
upload/config.php
[root@hamim-sinau opencart]# cp upload/admin/config-dist.php
upload/admin/config.php
[root@hamim-sinau opencart]# chown -R apache:apache upload/
[root@hamim-sinau opencart]#

Jika sudah selanjutnya membuat virtual host untuk untuk opencart, untuk membuat
virtualhost silakan pindah ke direktori /etc/httpd/conf.d/ seperti berikut

[root@hamim-sinau opencart]# cd /etc/httpd/conf.d/


[root@hamim-sinau conf.d]#
[root@hamim-sinau conf.d]# vim opencart.hamim.web.id.conf

Isikan konfigurasi opencart.hamim.web.id.conf seperti berikut ini

<VirtualHost *:80>
ServerName opencart.hamim.web.id

191 | CentOS 7 Linux Administrator Pada Cloud Computing


ServerAdmin info@hamim.web.id
DocumentRoot /var/www/html/opencart/upload
ErrorLog logs/opencart-hamim.web.id-error_log
CustomLog logs/opencart-hamim.web.id-access_log combined
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
</VirtualHost>

Simpan konfigurasi di atas dan silakan restart service apache beserta mariadb dengan
cara menjalankan perintah

[root@hamim-sinau conf.d]# systemctl restart httpd


[root@hamim-sinau conf.d]# systemctl restart mariadb

Apabila semua sudah di konfigurasi selanjutnya silakan akses subdomain yang telah
ditambahkan di virtualhost (opencart.hamim.web.id) melalui browser Anda seperti
berikut: http://opencart.hamim.web.id/install , maka akan tampil gambar seperti berikut ini

192 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas untuk melanjutkan proses instalasi silakan pilih Continue

Pada gambar diatas Anda dapat mengetahui php serta extension php saja yang kurang
atau belum terinstall, silakan scroll ke bawah klik Continue untuk melanjutkan ke tahapan
berikutnya

193 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada tahapan ini yaitu pada poin 1 Anda diminta untuk mengisikan username, password
dan nama database yang telah dibuat sebelumnya sedangkan pada poin 2 Anda diminta
untuk mengisikan username dan password login Administrator Opencart, untuk
melanjutkan ke proses berikutnya silakan klik pada menu Continue seperti pada gambar
dibawah ini

Pada tahap terakhir Anda diminta untuk menghapus file install.txt yang berada di direktori
/var/www/html/opencart keterangan tersebut didapatkan sesuai pada tahapan terakhir
konfigurasi opencart pada gambar dibawah ini

194 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan hapus terlebih dahulu file install.txt tersebut seperti berikut ini

[root@hamim-sinau opencart]# ls
build.xml CHANGELOG.md composer.lock license.txt
README.md upload
CHANGELOG_AUTO.md composer.json install.txt opencart-3.0.3.2.zip
upgrade.txt
[root@hamim-sinau opencart]#
[root@hamim-sinau opencart]# rm -rf install.txt

Untuk login ke Administrator Opencart silakan ketikan /admin di akhir subdomain Anda
contohnya:

http://opencart.hamim.web.id/admin

Untuk login ke Administrator silakan isikan username dan password yang telah Anda
isikan pada konfigurasi diatas.

195 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika berhasil berikut tampilan dari Administrator opencart versi latest 3.0.3.2

Anda dapat mengeksplorasi lebih dalam mengenai opencart secara mandiri jika Anda
ingin menekuni opencart untuk kebutuhan website e-commerce Anda.

196 | CentOS 7 Linux Administrator Pada Cloud Computing


9.3 INSTALASI DAN KONFIGURASI PRESTASHOP

Jika Anda mempunyai sebuah produk pastinya Anda akan membutuhkan sebuah toko
atau lapak untuk dapat menjual produk tersebut, di jaman modern kali ini Anda dapat
memanfaatkan internet untuk berjualan dengan salah satu cara membangun sebuah toko
online yang dapat digunakan untuk memasarkan produk - produk Anda tentunya dengan
harapan meningkatkan penjualan Anda secara mudah dan cepat dalam berkembang
serta dikenali oleh banyak orang.

Untuk membuat sebuah toko online berbasis web Anda dapat menggunakan aplikasi web
yakni Prestashop .

PrestaShop merupakan sebuah perangkat lunak web yang dikhususkan untuk para e-
commerce yang bersifat open source bebas/free yang diterbitkan dibawah naungan
Lisensi Perangkat Lunak Terbuka (OSL). Prestashop juga termasuk salah satu website
yang paling powerfull, dinamis, dan sangat banyak fitur yang didapatkan dan menurut
wikipedia saat ini prestashop sudah digunakan sekitar 2.50.000 orang di seluruh dunia
untuk membuat sebuah toko online.

Berikut ini merupakan langkah - langkah untuk dapat membuat toko online menggunakan
prestashop:

Langkah yang pertama silahkan akses VPS Anda masing - masing, jika sudah melakukan
pembaharuan sistem dengan cara menjalankan perintah

[root@hamim-sinau ~]# yum update -y

Silakan tunggu sampai proses update selesai, jika sudah berikutnya memasang service
wget beserta unzip untuk kebutuhan instalasi prestashop dengan cara menjalankan
perintah berikut

[root@hamim-sinau ~]# yum install wget unzip -y

Apabila sudah, berikutnya memasang repository epel, berikut perintahnya

[root@hamim-sinau ~]# yum install epel-release -y

Selanjutnya menambahkan repository remi untuk kebutuhan instalasi php versi 7, berikut
perintahnya

[root@sinau ~]# yum install http://rpms.remirepo.net/enterprise/remi-


release-7.rpm

197 | CentOS 7 Linux Administrator Pada Cloud Computing


Disini penulis akan menggunakan php versi 7.2, silakan jalankan perintah

[root@hamim-sinau ~]# yum-config-manager --enable remi-php72

Apabila sudah, selanjutnya Anda dapat menginstall module - module php yang
dibutuhkan oleh prestashop diantaranya sebagai berikut

[root@hamim-sinau ~]# yum install php-mysql php-gd php-ldap php-odbc php-


pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-mcrypt curl
zlib -y

Berikutnya Anda dapat menginstall web server. Disini penulis menggunakan web server
apache, silakan jalankan perintah berikut untuk menginstall web server apache

[root@hamim-sinau ~]# yum install httpd -y

Jika sudah silakan start dan enable service apache agar pada saat VPS mengalami
reboot/restart service httpd akan otomatis running, berikut perintahnya

198 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamim-sinau ~]#
[root@hamim-sinau ~]# systemctl start httpd
[root@hamim-sinau ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@hamim-sinau ~]# systemctl status httpd

Apabila web server telah berjalan dengan normal, selanjutnya menginstall database,
disini penulis akan menggunakan database mariadb. Untuk instalasi database mariadb
silakan jalankan perintah berikut

[root@hamim-sinau ~]# yum install mariadb mariadb-server -y

199 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan start dan enable service mariadb agar pada saat VPS Anda
mengalami reboot/restart service mariadb tetap running

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# systemctl start mariadb
[root@hamim-sinau ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-
user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@hamim-sinau ~]# systemctl status mariadb

Langkah selanjutnya melakukan konfigurasi password root database


mariadb dengan cara menjalankan perintah berikut

[root@hamim-sinau ~]# mysql_secure_installation

200 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila sudah selanjutnya login ke database mariadb dan membuat database
prestashop seperti berikut ini

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.

201 | CentOS 7 Linux Administrator Pada Cloud Computing


Your MariaDB connection id is 242
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> create database prestashop;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on prestashop.* to 'user-


prestashop'@'localhost' identified by 'pasword-prestashop';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit


Bye
[root@hamim-sinau ~]#

Apabila sudah, selanjutnya membuat direktori prestashop di


direktori default apache di /var/www/html/ dengan menggunakan
perintah mkdir .

Setelah itu Anda pindah ke direktori prestashop dan mengunduh file


prestashop pada tautan berikut: KLIK DISINI. Atau Anda dapat
mengunduh menggunakan perintah wget seperti berikut ini

[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mkdir /var/www/html/prestashop
[root@hamim-sinau ~]# cd /var/www/html/prestashop/
[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# wget
https://assets.prestashop2.com/en/system/files/ps_releases/prestashop_1
.7.5.2.zip
--2019-05-05 00:25:14--
https://assets.prestashop2.com/en/system/files/ps_releases/prestashop_1
.7.5.2.zip
Resolving assets.prestashop2.com (assets.prestashop2.com)...
23.15.18.156
Connecting to assets.prestashop2.com
(assets.prestashop2.com)|23.15.18.156|:443... connected.
HTTP request sent, awaiting response... 200 OK
Cookie coming from assets.prestashop2.com attempted to set domain to
assets.prestashop2.com
Cookie coming from assets.prestashop2.com attempted to set domain to
assets.prestashop2.com
Cookie coming from assets.prestashop2.com attempted to set domain to
assets.prestashop2.com
Cookie coming from assets.prestashop2.com attempted to set domain to
assets.prestashop2.com
Length: 71376003 (68M) [application/zip]
Saving to: ‘prestashop_1.7.5.2.zip’

202 | CentOS 7 Linux Administrator Pada Cloud Computing


100%[==================================================================
=============================================>] 71.376.003 158KB/s
in 8m 49s

2019-05-05 00:34:10 (132 KB/s) - ‘prestashop_1.7.5.2.zip’ saved


[71376003/71376003]

[root@hamim-sinau prestashop]#

Jika Anda telah selesai mengunduh file prestashop, langkah selanjutnya silakan ekstrak
file dengan menggunakan perintah unzip seperti berikut

[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# unzip prestashop_1.7.5.2.zip
Archive: prestashop_1.7.5.2.zip
inflating: prestashop.zip
inflating: index.php
inflating: Install_PrestaShop.html
[root@hamim-sinau prestashop]#

Dan memberikan hak owner menjadi apache serta hak akses 755 terhadap file
prestashop dengan cara menjalankan perintah berikut

[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# chmod 755 -R /var/www/html/prestashop/
[root@hamim-sinau prestashop]# chown -R apache:apache
/var/www/html/prestashop/
[root@hamim-sinau prestashop]#

Selanjutnya membuat file virtualhost apache untuk prestashop Anda. Untuk membuatnya
dapat dilakukan di direktori /etc/httpd/conf.d/ seperti berikut ini

203 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# cd /etc/httpd/conf.d/
[root@hamim-sinau conf.d]# vim prestashop.hamim.web.id.conf

Berikut file contoh file virtual host prestashop

<VirtualHost *:80>
ServerName prestashop.hamim.web.id
ServerAdmin info@hamim.web.id
DocumentRoot /var/www/html/prestashop
ErrorLog logs/prestashop-hamim.web.id-error_log
CustomLog logs/prestashop-hamim.web.id-access_log combined

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

</VirtualHost>

Silakan simpan dan silakan restart webserver apache dan database mariadb Anda
dengan menjalankan perintah berikut

[root@hamim-sinau conf.d]#
[root@hamim-sinau conf.d]# systemctl restart httpd
[root@hamim-sinau conf.d]# systemctl restart mariadb
[root@hamim-sinau conf.d]#

Jika sudah selanjutnya silakan akses subdomain prestashop.hamim.web.id di web


browser Anda masing - masing hasilnya akan seperti pada gambar dibawah ini

204 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan memilih bahasa lalu Next untuk melanjutkannya

Pada gambar dibawah ini merupakan keterangan mengenai lisensi yang digunakan oleh
prestashop, silakan Next untuk melanjutkannya

205 | CentOS 7 Linux Administrator Pada Cloud Computing


Bila terdapat pesan error seperti pada gambar dibawah ini menandakan terdapat ekstensi
yang belum terinstall, dibawah ini terdapat ekstensi php intl yang belum terinstall.

Silakan install terlebih dahulu dengan cara menjalankan perintah berikut

[root@hamim-sinau conf.d]# yum install php php-intl -y


[root@hamim-sinau conf.d]#

206 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan restart web server Anda dengan cara menjalankan perintah berikut

[root@hamim-sinau conf.d]# systemctl restart httpd


[root@hamim-sinau conf.d]#

Apabila sudah silakan refresh dan Next untuk melanjutkannya ke tahapan selanjutnya

207 | CentOS 7 Linux Administrator Pada Cloud Computing


Langkah selanjutnya Anda diminta untuk mengisikan detail informasi dari nama toko,
negara dan waktu yang Anda gunakan, beserta mengisikan akun credential (nama, email,
password) untuk login ke administrator prestashop. Klik Next untuk melanjutkannya.

208 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada tahap ini Anda diminta untuk mengisikan credential (nama, user, password
database) prestashop yang telah Anda buat sebelumnya.

Klik pada menu Test your database connection untuk mengetahui database telah
terkoneksi atau tidak dengan prestashop. Klik Next untuk melanjutkannya.

Pada gambar dibawah merupakan proses instalasi prestashop, silakan tunggu sampai
selesai

209 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar dibawah proses instalasi telah selesai dan Anda diminta untuk menghapus
direktori install demi keamanan dan harap dicatat email beserta password dibawah untuk
login ke Administrator prestashop.

210 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan pindah ke direktori prestashop dan menghapus direktori install seperti berikut

[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# rm -rf install/
[root@hamim-sinau prestashop]#

Jika sudah silakan akses kembali subdomain Anda (prestahshop.hamim.web.id) dan


berikut hasilnya

211 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk URL login ke Administrator Anda dapat melihatnya melalui direktori prestashop
seperti yang telah kami tanda merah pada gambar dibawah ini

Silakan akses prestashop.hamim.web.id/admin021uSyrru/ dan silakan isikan email


beserta password yang Anda telah Anda isikan sebelumnya pada saat konfigurasi.

212 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan klik menu START untuk melanjutkannya

Dan berikut contoh Dashboard dari Administrator Prestashop

213 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk demo vidio Anda dapat melihatnya melalui tautan berikut: DEMO VIDIO E-
COMMERCE MENGGUNAKAN PRESTASHOP

9.4 INSTALASI DAN KONFIGURASI MAGENTO

Jika Anda mempunyai sebuah produk dan produk Anda ingin dipasarkan secara online
maka Anda akan membutuhkan sebuah toko.

Di era digital ini Anda dapat memanfaatkan sebuah platform e-commerce yang bebas
atau open source untuk menunjang kebutuhan toko online Anda tersebut.

Magento salah satu platform e-commerce yang open source yang dapat Anda gunakan
untuk membangun sebuah toko online.

Magento CMS e-commerce yang bisa dibilang paling populer dan terpercaya.

Magento menggunakan bahasa pemrograman PHP, magento pertama kali


dikembangkan oleh perusahaan dengan nama Varien di California. Varien
merelease pertama kali Magento pada 31 Maret 2008.

Selengkapnya mengenai magento silakan merujuk pada tautan berikut: Wikipedia


Magento

214 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikut ini merupakan requirement yang dibutuhkan magento:

- Sistem operasi Linux x86-64


- Web server Apache 2.x atau Nginx 1.7.x
- Database Mariadb/Mysql
- PHP 5.x 7.x

Selengkapnya mengenai requirement magento dapat dilihat melalui tautan berikut:


Requirement Magento

Berikut ini merupakan tahapan untuk menginstall magento di CentOS 7

Langkah pertama yang harus dilakukan yaitu melakukan pembaharuan sistem CentOS
7 dengan cara menjalankan perintah

[root@magento ~]# yum update -y

Silakan tunggu proses update sampai selesai, jika sudah silakan memasang repository
epel dengan cara menjalankan perintah berikut

[root@magento ~]# yum -y install epel-release -y

Apabila repository epel telah terinstall, langkah selanjutnya menginstall web server nginx
dengan cara menjalankan perintah

[root@magento ~]# yum install nginx -y

Tunggu proses install sampai selesai, jika sudah silakan start dan enable service nginx
agar dapat otomatis berjalan (running) pada saat VPS di restart atau reboot, berikut
perintahnya

[root@magento ~]#
[root@magento ~]# systemctl start nginx
[root@magento ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-
user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
[root@magento ~]# systemctl status nginx

215 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk mengetahui bahwa nginx telah listen ke public dapat dilakukan dengan
menggunakan perintah netstat namun sebelum itu silakan menginstall service net-tools
dengan cara menjalankan perintah

[root@magento ~]# yum -y install net-tools

Untuk melihatnya silakan jalankan perintah berikut

[root@magento ~]# netstat -plntu

Langkah selanjutnya yaitu memasang repository webtatic yang mana digunakan untuk
menginstall php versi 7.0 di CentOS. Silakan jalankan perintah berikut

[root@magento ~]#
[root@magento ~]# rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
warning: /var/tmp/rpm-tmp.vRguf6: Header V4 RSA/SHA1 Signature, key ID
62e74ca5: NOKEY
Preparing... #################################
[100%]
Updating / installing...
1:webtatic-release-7-3 #################################
[100%]
[root@magento ~]#

216 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan install module - module php yang dibutuhkan oleh magento
diantaranya sebagai berikut

[root@magento ~]#
[root@magento ~]# yum -y install php70w-fpm php70w-mcrypt php70w-curl
php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl
php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap -y

Jika sudah silakan melakukan konfigurasi php.ini

[root@magento ~]# vim /etc/php.ini

Konfigurasi memory limit, max execution time dan enable zlib compression, menjadi
sebagai berikut

memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On
session.save_path = "/var/lib/php/session"

Jika sudah silakan simpan konfigurasi php.ini tersebut.

Langkah berikutnya membuat direktori session untuk php serta membuat direktori socket
untuk php-fpm dan pastikan ownernya menggunakan nginx seperti berikut

[root@magento ~]# mkdir -p /var/lib/php/session/


[root@magento ~]# chown -R nginx:nginx /var/lib/php/session/
[root@magento ~]# mkdir -p /run/php/
[root@magento ~]# chown -R nginx:nginx /run/php/

Apabila sudah selanjutnya melakukan konfigurasi php-fpm pada direktori berikut

217 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@magento ~]# vim /etc/php-fpm.d/www.conf

Silakan ubah user dan group menjadi nginx

user = nginx
group = nginx

Disini penulis menjalankan php-fpm dibawah socket dan tidak menggunakan port.
Silakan ubah listennya menjadi seperti berikut

listen = /var/run/php/php-fpm.sock

File socket disini harus dimiliki oleh group nginx silakan enable menjadi sebagai berikut

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Langkah terakhir silakan uncomment pada baris perintah berikut

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Silakan simpan konfigurasi php-fpm dan silakan start dan enable service php-fpm dengan
cara menjalankan perintah berikut

[root@magento ~]# systemctl start php-fpm


[root@magento ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-
fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@magento ~]#

Untuk dapat mengetahui service php-fpm telah listen publik silakan jalankan perintah
berikut

[root@magento ~]#
[root@magento ~]# netstat -pl | grep php-fpm.sock
unix 2 [ ACC ] STREAM LISTENING 676929153 25630/php-
fpm: mast /var/run/php/php-fpm.sock
[root@magento ~]#

Langkah berikutnya yaitu menginstall database.

218 | CentOS 7 Linux Administrator Pada Cloud Computing


Disini penulis menggunakan database MySQL Community. Untuk instalasinya silakan
menambahkan repository MySQL terlebih dahulu dengan cara menjalankan perintah
berikut

[root@magento ~]# yum localinstall https://dev.mysql.com/get/mysql57-


community-release-el7-9.noarch.rpm

Jika sudah silakan install Mysql dengan cara menjalankan perintah

[root@magento ~]# yum install mysql-community-server -y

Silakan tunggu proses instalasi sampai selesai, jika sudah silakan start dan enable
service mysql, sedangkan untuk mengetahui password sementara (temporary) dapat
dilakukan dengan cara menjalankan perintah berikut

[root@magento ~]#
[root@magento ~]# systemctl start mysqld
[root@magento ~]# systemctl enable mysqld
[root@magento ~]# grep 'temporary' /var/log/mysqld.log
2019-05-12T18:59:07.701102Z 1 [Note] A temporary password is generated
for root@localhost: Zg%_Xk#g24kk
2019-05-12T18:59:35.894818Z 0 [Note] InnoDB: Creating shared tablespace
for temporary tables
[root@magento ~]#

Selanjutnya melakukan konfigurasi password root mysql dengan cara menjalankan


perintah berikut

[root@magento ~]# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

The existing password for the user account root has expired. Please set
a new password.

New password:
Re-enter new password:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.

Estimated strength of the password: 100


Change the password for root ? ((Press y|Y for Yes, any other key for
No) : Y

219 | CentOS 7 Linux Administrator Pada Cloud Computing


New password:

Re-enter new password:

Estimated strength of the password: 100


Do you wish to continue with the password provided?(Press y|Y for Yes,
any other key for No) : Y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.

Normally, root should only be allowed to connect from


'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No)
: y
Success.

By default, MySQL comes with a database named 'test' that


anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key
for No) : Y
- Dropping test database...
Success.

- Removing privileges on test database...


Success.

Reloading the privilege tables will ensure that all changes


made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
Y
Success.

All done!
[root@magento ~]#

Jika sudah silakan akses root database dan membuat database magento seperti berikut

[root@magento ~]#
[root@magento ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.

220 | CentOS 7 Linux Administrator Pada Cloud Computing


Your MySQL connection id is 5
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights
reserved.

Oracle is a registered trademark of Oracle Corporation and/or its


affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

mysql> create database magentodb;


Query OK, 1 row affected (0,00 sec)

mysql> create user magentouser@localhost identified by 'Magento123@';


Query OK, 0 rows affected (0,00 sec)

mysql> grant all privileges on magentodb.* to magentouser@localhost


identified by 'Magento123@';
Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql> flush privileges;


Query OK, 0 rows affected (0,07 sec)

mysql> exit
Bye
[root@magento ~]#

Langkah selanjutnya yaitu menginstall composer dengan cara menjalankan perintah

221 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@magento ~]# curl -sS https://getcomposer.org/installer | sudo php
-- --install-dir=/usr/bin --filename=composer

Untuk melihat versi composer dapat dilihat dengan menggunakan perintah

[root@magento ~]# composer -v

Selanjutnya berpindah ke direktori /var/www/ dan mengunduh magento 2.1 dengan


menggunakan service wget seperti berikut

[root@magento ~]#
[root@magento ~]# cd /var/www/
[root@magento www]#
[root@magento www]# wget
https://github.com/magento/magento2/archive/2.1.zip
--2019-05-13 02:04:41--
https://github.com/magento/magento2/archive/2.1.zip
Resolving github.com (github.com)... 52.74.223.119
Connecting to github.com (github.com)|52.74.223.119|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/magento/magento2/zip/2.1
[following]
--2019-05-13 02:04:41--
https://codeload.github.com/magento/magento2/zip/2.1
Resolving codeload.github.com (codeload.github.com)... 54.251.140.56
Connecting to codeload.github.com
(codeload.github.com)|54.251.140.56|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘2.1.zip’

[ <=>
] 43.066.199 1,06MB/s in 37s

2019-05-13 02:05:18 (1,12 MB/s) - ‘2.1.zip’ saved [43066199]

[root@magento www]#

222 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan unzip file magento dengan

[root@magento www]# ls
2.1.zip html
[root@magento www]#
[root@magento www]# unzip 2.1.zip

Jika sudah silakan ubah direktori magento sesuai dengan keinginan Anda menggunakan
perintah mv dan menginstall dependensi magento menggunakan composer di dalam
direktori magento seperti berikut

[root@magento www]# mv magento2-2.1/ magento2


[root@magento www]#
[root@magento www]# cd magento2/
[root@magento magento2]# composer install -v

223 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan tunggu proses sampai selesai. Jika sudah langkah berikutnya membuat virtual
block magento dengan cara sebagai berikut

[root@magento magento2]#
[root@magento magento2]# cd /etc/nginx/conf.d/
[root@magento conf.d]# vim magento.conf

Isikan file konfigurasi virtual block magento seperti berikut

upstream fastcgi_backend {
server unix:/run/php/php-fpm.sock;
}

server {

listen 80;

224 | CentOS 7 Linux Administrator Pada Cloud Computing


server_name magento.hamim.web.id;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}

Jika sudah pastikan tidak tidak ada konfigurasi nginx yang tidak sesuai/salah dengan
cara menjalankan perintah nginx -t dan silakan restart nginx seperti berikut

[root@magento conf.d]# nginx -t


nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@magento conf.d]# systemctl restart nginx
[root@magento conf.d]#

Langkah terakhir barulah menginstall magento dengan cara menjalankan script berikut

[root@magento conf.d]#
[root@magento conf.d]# cd /var/www/magento2/
[root@magento magento2]# bin/magento setup:install --backend-
frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="Magento123@" \
--language="en_US" \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hamim.web.id" \
--base-url-secure="https://magento.hamim.web.id" \
--admin-user=adminmagento \
--admin-password=Magento123@ \

225 | CentOS 7 Linux Administrator Pada Cloud Computing


--admin-email=info@hamim.web.id \
--admin-firstname=Nur \
--admin-lastname=Hamim \
--cleanup-database

Silakan sesuaikan baris berikut:

--backend-frontname: Halaman login admin Magento "adminlogin"


--key: key market magento
--db-host: Host database localhost
--db-name: nama database 'magentodb'
--db-user: user database 'magentouser'
--db-password: kata sandi basis data 'Magento123 @'
--base-url: URL Magento
--admin-user: User admin Magento
--admin-password: Password admin Magento
--admin-email: alamat email Anda

226 | CentOS 7 Linux Administrator Pada Cloud Computing


227 | CentOS 7 Linux Administrator Pada Cloud Computing
Jika sudah silakan memberikan hak akses 700 terhadap direktori /magento2/app/etc/ dan
memberikan hak owner nginx seperti berikut perintahnya

[root@magento magento2]#
[root@magento magento2]# chmod 700 /var/www/magento2/app/etc/
[root@magento magento2]# chown -R nginx:nginx /var/www/magento2/
[root@magento magento2]#

Langkah selanjutnya memberikan cronjob untuk magento dengan cara sebagai berikut

[root@magento magento2]# crontab -u nginx -e

20 * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -


v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
20 * * * * /usr/bin/php /var/www/magento2/update/cron.php >>
/var/www/magento2/var/log/update.cron.log
20 * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >>
/var/www/magento2/var/log/setup.cron.log

20 * * * * Merupakan jalannya cron per 20 menit. Silakan sesuaikan dengan keinginan


Anda.

Silakan akses URL yang telah Anda input pada script diatas URL yang digunakan oleh
penulis yaitu http://magento.hamim.web.id hasilnya akan seperti berikut ini

228 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk login ke administrator magento silakan menambahkan /adminlogin seperti berikut

Silakan login dengan credential yang telah dibuat sebelumnya jika berhasil maka akan
seperti berikut ini

229 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar di atas merupakan dashboard administrator magento.

Pada gambar dia atas terdapat warning yaitu indexer are invalid yang berarti terdapat
beberapa catalog, product magento yang tidak terindex. Untuk mengatasinya silakan
jalankan perintah berikut

[root@magento magento2]#
[root@magento magento2]# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:01
Customer Grid index has been rebuilt successfully in 00:00:01
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00
[root@magento magento2]#
[root@magento magento2]#

Setelah melakukan reindex ternyata terdapat kendala mengenai cache management


terhadap magento seperti pada gambar berikut

230 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk mengatasinya silakan klik pada Cache Management lalu centang pada Page
Cache dan Flush Magento Cache seperti pada gambar dibawah ini

Dan hasilnya sekarang sudah tidak terdapat warning kembali terhadap magento 2.1

231 | CentOS 7 Linux Administrator Pada Cloud Computing


9.5 INSTALASI DAN KONFIGURASI MOODLE

Moodle merupakan sebuah paket software yang digunakan untuk kegiatan (E-learning)
belajar berbasis internet dan website.

Moodle terus mengembangkan rancangan sistem dan desain user interface setiap
minggunya (up to date).

Moodle tersedia dan dapat digunakan secara free/bebas sebagai produk open source
dibawah lisensi GNU. Moodle merupakan singkatan dari Modular Object-Oriented
Dynamic Learning Environment yang berarti tempat belajar dinamis dengan
menggunakan model berorientasi objek.

Untuk sejarah dan fitur apa saja yang tersedia oleh Moodle dapat Anda ketahui melalui
tautan berikut: Wiki Moodle

Sedangkan untuk requirements yang dibutuhkan Anda dapat merujuk pada tautan berikut
: Moolde Requirements

Langkah pertama yang harus dilakukan untuk instalasi moodle pada yaitu melakukan
remote/akses VPS Anda masing - masing serta melakukan pembaruan atau update
sistem operasi CentOS dengan menggunakan perintah berikut

[root@hamimaja ~]# yum update -y

Silakan tunggu proses update sampai selesai, jika sudah silakan menambahkan repo
epel dengan cara menjalankan perintah berikut

232 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamimaja ~]# yum install epel-release -y

Disini penulis menggunakan repository webtatic untuk kebutuhan php versi 7.2, berikut
perintah untuk menambahkan repo webtatic tersebut

[root@hamimaja ~]#
[root@hamimaja ~]#
[root@hamimaja ~]# rpm -Uvh
https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
warning: /var/tmp/rpm-tmp.eVT9AQ: Header V4 RSA/SHA1 Signature, key ID
62e74ca5: NOKEY
Preparing... #################################
[100%]
Updating / installing...
1:webtatic-release-7-3 #################################
[100%]
[root@hamimaja ~]#

Jika sudah silakan memasang modul php yang dibutuhkan oleh moodle berikut
beberapa module php yang dibutuhkan

[root@hamimaja ~]#
[root@hamimaja ~]# yum install php70w php70w-curl php70w-gd php70w-intl
php70w-ldap php70w-mysql php70w-pspell php70w-xml php70w-xmlrpc php70w-
zip php70w-common php70w-opcache php70w-mbstring php70w-soap -y

Jika sudah silakan install webserver apache di CentOS dengan cara menjalankan
perintah berikut

[root@hamimaja ~]# yum install httpd -y

233 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila sudah selanjutnya start webserver apache dan enable service apache agar
dapat otomatis running jika VPS dilakukan restart atau reboot, berikut perintahnya

[root@hamimaja ~]#
[root@hamimaja ~]# systemctl start httpd
[root@hamimaja ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@hamimaja ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled;
vendor preset: disabled)
Active: active (running) since Kam 2019-05-09 04:22:22 WIB; 13s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1590 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current
traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─1590 /usr/sbin/httpd -DFOREGROUND
├─1592 /usr/sbin/httpd -DFOREGROUND
├─1593 /usr/sbin/httpd -DFOREGROUND
├─1594 /usr/sbin/httpd -DFOREGROUND
├─1595 /usr/sbin/httpd -DFOREGROUND
└─1596 /usr/sbin/httpd -DFOREGROUND

Berikutnya, membuat virtualhost untuk moodle di direktori /etc/httpd/conf.d seperti


berikut ini

[root@hamimaja ~]# vim /etc/httpd/conf.d/moodle.conf

Berikut contoh konfigurasi virtual host moodle

<VirtualHost *:80>
ServerName moodle.hamim.web.id
ServerAdmin info@hamim.web.id
DocumentRoot /var/www/html/moodle
ErrorLog logs/moodle-hamim.web.id-error_log
CustomLog logs/moodle-hamim.web.id-access_log combined

234 | CentOS 7 Linux Administrator Pada Cloud Computing


<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

</VirtualHost>

Silakan simpan konfigurasi virtualhost diatas dan langkah berikutnya yaitu menginstall
database, disini penulis menggunakan database mariadb , silakan jalankan perintah
berikut untuk instalasi database mariadb

[root@hamimaja ~]# yum install mariadb mariadb-server -y

Apabila sudah selanjutnya start database mariadb dan enable service mariadb agar
dapat otomatis running jika VPS dilakukan restart atau reboot, berikut perintahnya

[root@hamimaja ~]#
[root@hamimaja ~]#
[root@hamimaja ~]# systemctl start mariadb
[root@hamimaja ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-
user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@hamimaja ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled;
vendor preset: disabled)
Active: active (running) since Kam 2019-05-09 04:24:56 WIB; 13s ago
Main PID: 1762 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─1762 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─1923 /usr/libexec/mysqld --basedir=/usr --
datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-err…

235 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya melakukan konfigurasi password root database dengan cara menjalankan
perintah berikut

[root@hamimaja ~]# mysql_secure_installation

Jika sudah silakan akses database Anda dan membuat database untuk moodle Anda,
seperti berikut ini

[root@hamimaja ~]#

236 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamimaja ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> create database moodle;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on moodle.* to


'usermoodle'@'localhost' identified by 'Passwordmoodle';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>

Selanjutnya melakukan konfigurasi innodb database mariadb Anda


dengan cara sebagai berikut

MariaDB [(none)]>
MariaDB [(none)]> SHOW variables LIKE "%innodb_file%";
+--------------------------+----------+
| Variable_name | Value |
+--------------------------+----------+
| innodb_file_format | Antelope |
| innodb_file_format_check | ON |
| innodb_file_format_max | Antelope |
| innodb_file_per_table | OFF |
+--------------------------+----------+
4 rows in set (0.00 sec)

MariaDB [(none)]> SET global innodb_file_format = barracuda;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW variables LIKE "%innodb_file%";


+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Antelope |
| innodb_file_per_table | OFF |
+--------------------------+-----------+
4 rows in set (0.01 sec)

MariaDB [(none)]> SET global innodb_file_format_max = barracuda;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW variables LIKE "%innodb_file%";


+--------------------------+-----------+
| Variable_name | Value |

237 | CentOS 7 Linux Administrator Pada Cloud Computing


+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | OFF |
+--------------------------+-----------+
4 rows in set (0.00 sec)

MariaDB [(none)]> SET global innodb_file_per_table = on;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW variables LIKE "%innodb_file%";


+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
4 rows in set (0.00 sec)

MariaDB [(none)]> SHOW variables LIKE "%innodb_large%";


+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | OFF |
+---------------------+-------+
1 row in set (0.01 sec)

MariaDB [(none)]> SET global innodb_large_prefix = on;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW variables LIKE "%innodb_large%";


+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]>
MariaDB [(none)]> exit
Bye
[root@hamimaja ~]#

Langkah berikutnya mengunduh file moodle, disini penulis menggunakan moodle versi
3.4. Untuk unduh file moodle dapat menggunakan perintah wget seperti berikut

[root@hamimaja ~]#
[root@hamimaja ~]# wget https://download.moodle.org/stable34/moodle-
latest-34.tgz
--2019-05-09 04:28:20-- https://download.moodle.org/stable34/moodle-
latest-34.tgz

238 | CentOS 7 Linux Administrator Pada Cloud Computing


Resolving download.moodle.org (download.moodle.org)... 104.20.218.25,
104.20.219.25, 2606:4700:10::6814:db19, ...
Connecting to download.moodle.org
(download.moodle.org)|104.20.218.25|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 46044918 (44M) [application/x-gzip]
Saving to: ‘moodle-latest-34.tgz’

100%[==================================================================
===================>] 46.044.918 1,16MB/s in 39s

2019-05-09 04:29:00 (1,12 MB/s) - ‘moodle-latest-34.tgz’ saved


[46044918/46044918]

[root@hamimaja ~]#

Jika sudah silakan ekstrak file moodle, seperti berikut

[root@hamimaja ~]# tar xvzf moodle-latest-34.tgz -C /var/www/html/

Berikutnya, membuat folder untuk penyimpanan moodle di direktori /var/www/ untuk


direktorinya optional sesuai dengan keinginan Anda dan memberikan hak owner apache
terhadap direktori moodle seperti berikut

[root@hamimaja ~]#
[root@hamimaja ~]# mkdir /var/www/moodledata
[root@hamimaja ~]# chown -R apache:apache /var/www/moodledata/
[root@hamimaja ~]# chown -R apache:apache /var/www/html/moodle/
[root@hamimaja ~]#

Silakan akses subdomain/domain/ip VPS Anda yang telah Anda daftarkan pada Server
Name VirtualHost Anda, hasilnya akan seperti berikut

239 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas silakan pilih bahasa yang ingin Anda gunakan, disini penulis
menggunakan English silakan klik Next untuk lanjut ke langkah berikutnya

240 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas Anda diminta untuk menentukan data direktori moodle untuk
penyimpanan moodle Anda. Klik Next untuk lanjut ke langkah selanjutnya

Pada gambar diatas silakan memilih database yang ingin Anda gunakan disini penulis
menggunakan database Mariadb, silakan klik Next untuk melanjutkannya

241 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas silakan isi credential dari database moodle yang sebelumnya telah
Anda buat, klik Next untuk melanjutkannya

242 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar diatas merupakan konfirmasi/persetujuan untuk instalasi moodle, silakan klik
continue untuk melanjutkannya

Gambar diatas merupakan informasi mengenai beberapa module - module php yang
dibutuhkan oleh moodle, pastikan statusnya ok semua, silakan klik continue untuk
melanjutkan proses instalasi moodle

243 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar diatas merupakan log dari proses instalasi moodle, klik continue untuk
melanjutkan ke langkah berikutnya

244 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar diatas silakan isikan detail informasi mengenai moodle serta mengisikan
username dan password untuk login ke Administrator moodle

245 | CentOS 7 Linux Administrator Pada Cloud Computing


Gambar diatas merupakan detail informasi yang telah dikonfigurasi sebelumnya, silakan
klik skip untuk menyelesaikan proses instalasi dan konfigurasi moodle, apabila sudah
maka berikut contoh Administrator Moodle

246 | CentOS 7 Linux Administrator Pada Cloud Computing


Dan berikut halaman login untuk user dan administrator moodle

9.6 INSTALASI DAN KONFIGURASI NEXTCLOUD

NextCloud adalah aplikasi open source (bebas) yang dapat digunakan untuk membuat
Cloud Storage atau penyimpanan basis data dimana Anda dapat menyimpan berbagai
macam ekstensi data ataupun file statik seperti halnya file music, video, dan sebagainya.

247 | CentOS 7 Linux Administrator Pada Cloud Computing


Secara fungsi Nextcloud hampir sama seperti Google Drive atau Dropbox, bahkan
Nextcloud juga dapat dimanfaatkan untuk berbagai macam kepentingan dan kebutuhan
misalnya Video Conference (Vicon) antar pengguna Nextcloud dan masih banyak
lainnya. Untuk system requirements dapat Anda lihat melalui tautan berikut:
Requirements NextCloud. Disini penulis akan menggunakan sistem operasi CentOS 7,
database Mariadb, dan webserver Apache serta php 7.2.

Langkah pertama yang harus dilakukan yaitu melakukan update pada sistem operasi
CentOS Anda dengan cara menjalankan berikut:

[root@sinau ~]# yum update -y

Silakan tunggu proses update sampai selesai, jika sudah berikutnya memasang
repository epel serta memasang service - service atau utiltias yang dibutuhkan oleh
nextcloud sebagai berikut:

[root@sinau ~]# yum install -y epel-release yum-utils unzip curl wget


bash-completion policycoreutils-python mlocate bzip2

Langkah selanjutnya memasang webserver, disini penulis menggunakan webserver


apache, untuk instalasi webserver apache silakan jalankan perintah berikut

[root@sinau ~]# yum install httpd -y

Jika sudah silakan start dan enable service apache agar dapat otomatis running pada
saat VPS Anda dilakukan restart atau reboot, berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# systemctl start httpd
[root@sinau ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.

248 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@sinau ~]# systemctl status httpd

Berikutnya, menambahkan repository webtatic, berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-
release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
warning: /var/tmp/rpm-tmp.Ez1vsk: Header V4 RSA/SHA1 Signature, key ID
62e74ca5: NOKEY
Preparing... #################################
[100%]
Updating / installing...
1:webtatic-release-7-3 #################################
[100%]
[root@sinau ~]#

Jika sudah selanjutnya memasang php, disini penulis menggunakan php versi 7.2,
berikut beberapa module php yang dibutuhkan oleh nextcloud

[root@sinau ~]#
[root@sinau ~]# yum install -y php72w php72w-cli php72w-common php72w-
curl php72w-gd \
> php72w-mbstring php72w-mysqlnd php72w-process php72w-xml php72w-zip \
> php72w-opcache php72w-pecl-apcu php72w-intl php72w-pecl-redis

249 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila sudah selanjutnya memasang database, disini penulis akan menggunakan
database mariadb. Untuk memasang database mariadb dapat dilakukan dengan cara
menjalankan perintah

[root@sinau ~]# yum install mariadb-server -y

Jika sudah silakan start service mariadb dan enable service agar dapat running otomatis
apabila VPS dilakukan restart atau reboot, berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-
user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@sinau ~]# systemctl status mariadb

Selanjutnya, melakukan konfigurasi untuk root database mariadb dengan cara


menjalankan perintah berikut

[root@sinau ~]# mysql_secure_installation

Apabila sudah, langkah selanjutnya membuat database untuk nextcloud seperti berikut
ini

[root@sinau ~]#
[root@sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11

250 | CentOS 7 Linux Administrator Pada Cloud Computing


Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> create database nextcloud;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user 'usernextcloud'@'localhost' identified by


'passworduser-nextcloud';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nextcloud.* to 'usernextcloud';


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;


Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit


Bye
[root@sinau ~]#
[root@sinau ~]#

Apabila sudah silakan mengunduh nextcloud, untuk unduh nextcloud dapat dilakukan
dengan menggunakan perintah wget seperti berikut ini

[root@sinau ~]# wget


https://download.nextcloud.com/server/releases/nextcloud-16.0.0.zip
--2019-05-07 04:11:52--
https://download.nextcloud.com/server/releases/nextcloud-16.0.0.zip
Resolving download.nextcloud.com (download.nextcloud.com)...
176.9.217.52, 2a01:4f8:130:32f1::52
Connecting to download.nextcloud.com
(download.nextcloud.com)|176.9.217.52|:443... connected.
HTTP request sent, awaiting response... 200 OK

251 | CentOS 7 Linux Administrator Pada Cloud Computing


Length: 79477367 (76M) [application/zip]
Saving to: ‘nextcloud-16.0.0.zip’

100%[==================================================================
==============================>] 79.477.367 3,86MB/s in 20s

2019-05-07 04:12:15 (3,80 MB/s) - ‘nextcloud-16.0.0.zip’ saved


[79477367/79477367]

[root@sinau ~]#

Secara default hasil file nextcloud yang baru saja diunduh yaitu berekstensi .zip dengan
begitu silakan ekstrak file .zip dengan menggunakan perintah unzip, seperti berikut ini

[root@sinau ~]# unzip nextcloud-16.0.0.zip


[root@sinau ~]#

Jika sudah silakan copy file nextcloud ke root direktori apache di /var/www/html dengan
menggunakan perintah cp, serta memberi hak owner serta hak akses untuk direktori
nextcloud seperti berikut ini

[root@sinau ~]# cp -R nextcloud /var/www/html/


[root@sinau ~]# mkdir /var/www/html/nextcloud/data
[root@sinau ~]# chown -R apache:apache /var/www/html/nextcloud/
[root@sinau ~]# chmod -R 755 /var/www/html/nextcloud/
[root@sinau ~]#

Jika sudah langkah selanjutnya yaitu membuat virtual host untuk nextcloud, untuk
membuat file virtualhost dapat dilakukan letak direktorinya di /etc/httpd/conf.d/ diikuti
dengan nama file virtualhost yang diakhiri dengan .conf seperti berikut ini

[root@sinau ~]# vim /etc/httpd/conf.d/nextcloud.conf

Berikut contoh file virtualhost apache nextcloud

<VirtualHost *:80>

252 | CentOS 7 Linux Administrator Pada Cloud Computing


ServerName nextcloud.hamim.web.id
ServerAdmin info@hamim.web.id
DocumentRoot /var/www/html/nextcloud
ErrorLog logs/nextcloud-hamim.web.id-error_log
CustomLog logs/nextcloud-hamim.web.id-access_log combined

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

</VirtualHost>

Jika sudah silakan restart service web server dan database Anda pastikan tidak terdapat
error, berikut perintahnya

[root@sinau ~]# systemctl restart httpd


[root@sinau ~]# systemctl restart mariadb
[root@sinau ~]#

Jika sudah silakan akses subdomain atau IP VPS yang telah Anda daftarkan pada Virtual
Host sebelumnya, berikut hasilnya.

253 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas silakan isikan username dan password untuk login administrator
nextcloud serta pada konfigurasi database silakan pilih mariadb/mysql sesuai dengan
database yang Anda gunakan dan silakan isikan credential untuk koneksi database
(username, password, nama database). Klik Finish Setup untuk menyelesaikan instalasi
dan konfigurasi nextcloud seperti pada gambar dibawah ini

Pada tahap ini nextcloud telah berhasil di install

Agar nextcloud Anda secure dapat dilakukan dengan cara memasang sertifikat SSL,
Anda dapat memasang SSL free menggunakan let's encrypt atau SSL yang berbayar
seperti halnya SSL dari COMODO, Globalsign, Digicert dan yang lainnya.

Disini penulis akan menggunakan SSL free let's encrypt, langkah pertama silakan
memasang paket manager CentOS dengan cara menjalankan perintah

[root@sinau ~]# yum -y install yum-utils

254 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah, silakan melakukan enable packet manager yang dibutuhkan oleh service SSL
let's encrypt dengan cara menjalankan perintah

[root@sinau ~]#
[root@sinau ~]# yum-config-manager --enable rhui-REGION-rhel-server-
extras rhui-REGION-rhel-server-optional
Loaded plugins: fastestmirror
[root@sinau ~]#

Apabila sudah silakan memasang service python-certbot untuk webserver apache


dengan cara menjalankan perintah berikut

[root@sinau ~]# yum -y install python2-certbot-apache

Jika sudah silakan menginstall SSL let's encrypt dengan cara menjalankan perintah
berikut:

[root@sinau ~]# certbot --apache

255 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan akses kembali nextcloud Anda, seharusnya apabila langkah diatas
berjalan dengan normal maka SSL let's encrypt akan terpasang dengan benar seperti
pada gambar dibawah ini

256 | CentOS 7 Linux Administrator Pada Cloud Computing


257 | CentOS 7 Linux Administrator Pada Cloud Computing
10. FIREWALL

10.1 PENGERTIAN FIREWALL

Penulis kali ini akan memberikan dasar pengetahun tentang firewall.

Apa itu Firewall ?

Firewall merupakan sebuah sistem yang didesain untuk menangkal atau mencegah
sebuah akses yang tidak diinginkan (ilegal) ke dalam suatu jaringan internet serta
digunakan untuk mengatasi serangan - serangan yang tidak diinginkan.

Cara kerja firewall yaitu melakukan kontrol baik itu melacak, mengendalikan dan
memutuskan suatu perintah bahwa jaringan ini boleh lewat (pass), perlu dijatuhkan
(drop), perlu ditolak (reject), melakukan enkripsi serta mencatat history atau aktivitas
data.

Sedangkan menurut Wikipedia dapat Anda lihat melalui tautan berikut: Wikipedia
Firewall

Bila Anda mempunyai sebuah VPS firewall salah satu keamanan yang sangat amat
penting dan cocok untuk diimplementasikan.

Dalam melakukan konfigurasi Firewall terdapat 2 pendekatan yang perlu diketahui


diantaranya:

1. Negative List: Port apa saja yang harus ditutup.

- Relatif lebih mudah dalam konfigurasinya


- Namun terdapat kekhawatiran (lupa) dalam menutup

2. Positive List: Menutup semua port dan buka port tertentu yang ingin digunakan:

- Relatif sulit dalam konfigurasinya


- Sangat secure dikarenakan semua port ditutup

Selanjutnya kita akan membahas beberapa jenis firewall yang sering digunakan.

10.2 FIREWALL MENGGUNAKAN IPTABLES

Iptables salah satu jenis firewall yang powerfull dan sangat sering digunakanan. Iptables
dapat berjalan di berbagai macam distro linux dan unix.

Iptables sendiri merupakan aplikasi yang dibuat oleh proyek the netfilter.org.

Terdapat 3 tabel di iptables yang harus diketahui diantaranya:

258 | CentOS 7 Linux Administrator Pada Cloud Computing


1. Tabel FILTER

Menentukan paket yang akan di DROP, LOG, ACCEPT, atau REJECT.

2. Tabel NAT

Mentranslasikan (mengubah) alamat asal atau tujuan dari sebuah paket.

3. Tabel MANGLE

Melakukan penghalusan (mangle) pada paket data seperti TTL, TOS, dan MARK.

Setiap tabel diatas memiliki rule atau aturannya masing - masing yang biasanya disebut
dengan chain, berikut penjelasannya:

1. Tabel FILTER memiliki 3 chain:

- INPUT: Chain ini yang bertugas untuk melakukan filter paket yang akan masuk
ditujukan oleh firewall.

- OUTPUT: Chain ini yang bertugas untuk melakukan filter paket yang akan
keluar dari firewall.

- FORWARD: Chain ini yang digunakan untuk melakukan filter paket yang akan
di forward.

2. Tabel NAT memiliki 3 chain:

- PRE-ROUTING: Chain digunakan untuk mengubah paket-paket NAT dimana


alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal
dengan destination NAT atau DNAT

- POST-ROUTING: Chain ini digunakan untuk mengubah paket-paket NAT


dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya
dikenal dengan source NAT atau SNAT

- OUTPUT: Chain ini digunakan untuk mengubah address paket data yang
berasal dari firewall itu sendiri.

3. Tabel MANGEL

Chain yang akan bertanggung jawab untuk melakukan penghalusan (mangle) paket
seperti merubah quality of service (QOS), TTL, dan MARK di header TCP.

Berikut merupakan command dasar dalam penggunaan rule di iptables:

- A, (-append): Digunakan untuk menambah aturan di akhir chain.

- D, (-delete): Digunakan untuk menghapus satu aturan chain.

259 | CentOS 7 Linux Administrator Pada Cloud Computing


- R, (-replace): Digunakan untuk mengganti aturan chain dengan aturan baru.
- I, (-insert): Digunakan untuk memasukan aturan pada suatu chain.
- L, (-list): Digunakan untuk melihat semua aturan pada tabel.
- F, (-flush): Digunakan untuk mengosongkan aturan pada chain
- N, (-new-chain): Digunakan untuk membuat chain baru
- X, (-delete-chain): Digunakan untuk menghapus chain yang dituliskan
dengan syarat tidak adanya aturan lain yang bersangkutan dengan chain tersebut.
- P, (-policy): Digunakan untuk membuat kebijakan default pada chain.
- E, (-rename-chain):Digunakan untuk mengubah nama chain.

Berikut ini beberapa parameter dasar yang digunakan untuk membuat sebuah
aturan/rule pada iptables

- p, (-protokol): Digunakan untuk mengidentifikasikan protokol dalam rule


seperti protokol tcp, udp, icmp.
- s, (-match-option): Merupakan alamat hostname/ip
- d, (-destination): Merupakan tujuan dari alamat ip.
- j, (-jump): Digunakan untuk memberikan keputusan apabila aturan sudah
cocok terhadap paket data.
- i, (-i, –in-interface): Merupakan alias nama iterface yang menerima
kiriman paket (terbatas pada chai INPUT, FORWARD dan PREROUTING).
- o, (–out-interface): Merupakan alias nama interface yang akan mengirim
paket keluar (pada chain FORWARD, OUTPUT dan POSTROUTING).
- c, (–counter): Digunakan untuk menghitung paket-paket yang lewat dari
sebuah aturan.
- n, (–numeric): Digunakan untuk menampilkan output numeric seperti
hostname, ip, port, nama network.
- v, (–verbose): Digunakan untuk menampilkan informasi secara keseluruhan
alias dalam bahasa indonesia terjemahan.

Untuk instalasi iptables di CentOS jalankan perintah berikut

[root@hamimaja ~]# yum install iptables-services -y

Jika sudah start dan enable iptables dengan menggunakan perintah


berikut

[root@hamimaja ~]# systemctl enable iptables


Created symlink from
/etc/systemd/system/basic.target.wants/iptables.service to
/usr/lib/systemd/system/iptables.service.
[root@hamimaja ~]# systemctl start iptables
[root@hamimaja ~]# systemctl status iptables

260 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikut merupakan contoh penambahan rule di iptables misalnya disini penulis akan
mengijinkan service atau paket - paket tertentu yang akan di allow seperti halnya ssh,
web server, ftp sebagai berikut

- Allow service webserver protokol http port default 80

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

- Allow service web server protokol https port default 443

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

- Allow service ftp default port 21

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

- Drop service web server protokol http dan https

iptables -D INPUT -p tcp --dport 80 -j ACCEPT


iptables -D INPUT -p tcp --dport 443 -j ACCEPT

- Drop service ftp

iptables -D INPUT -p tcp --dport 21 -j ACCEPT

- Menghapus keseluruhan rules iptables

iptables -F

- Melihat keseluruhan rules iptables

# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp
dpt:ssh

Chain FORWARD (policy ACCEPT)


target prot opt source destination

261 | CentOS 7 Linux Administrator Pada Cloud Computing


10.3 FIREWALL MENGGUNAKAN FIREWALLD

FirewallD merupakan solusi yang tepat dalam penggunaan firewall di Linux. Di CentOS
7 Firewalld menggantikan iptables sebagai service manajemen firewall secara default.

Firewalld menggunakan konsep zones dan services, berbeda dengan iptables yang
menggunakan chain dan rules. Zone serta service di firewalld dapat kita management
untuk service yang diizinkan dan tidak diizinkan masuk atau keluar sistem. Seperti yang
telah disebutkan sebelumnya di Firewalld kita akan menemukan yang namanya zone.
Zone disini merupakan kumpulan aturan yang telah ditetapkan oleh firewalld, detailnya
mengenai zone yang berada di firewalld dapat dilihat melalui tautan berikut: Firewalld
Zones.

Berikut ini contoh penggunaan dasar dan lanjutan firewalld di CentOS:

Untuk instalasi firewalld di CentOS jalankan perintah berikut

[root@hamimaja ~]# yum install firewalld -y

Enable dan restart firewalld dengan cara menjalankan perintah

[root@hamimaja ~]# systemctl enable firewalld


[root@hamimaja ~]# systemctl restart firewalld

Untuk melihat status firewalld jalankan perintah berikut

[root@hamimaja ~]# systemctl status firewalld

262 | CentOS 7 Linux Administrator Pada Cloud Computing


Dalam melakukan sebuah perubahan baik itu konfigurasi ataupun yang lainnya Anda
perlu melakukan reload terhadap firewalld, supaya perubahan tersebut berjalan, berikut
perintahnya

[root@hamimaja ~]# firewall-cmd --reload


success
[root@hamimaja ~]#

Bila output yang dihasilkan yaitu success menandakan reload firewalld telah berhasil.
Di firewalld terdapat zone, untuk melihat zone silakan jalankan perintah berikut

[root@hamimaja ~]# firewall-cmd --get-zones


block dmz drop external home internal public trusted work
[root@hamimaja ~]#

Secara default zone telah ditentukan oleh firewalld, namun Anda bisa menambah,
custome zone sesuai dengan yang diinginkan untuk detailnya dapat menjalankan
perintah

[root@hamimaja ~]#
[root@hamimaja ~]# firewall-cmd --list-all-zone

Jika kita ingin mengecek zone secara spesifik misalnya zone dmz silakan jalankan
perintah berikut

263 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@hamimaja ~]# firewall-cmd --zone=dmz --list-all

Bila Anda ingin melihat detail info dari zone secara spesifik, misalnya ingin melihat
interface dari VPS Anda silakan jalankan perintah

[root@hamimaja ~]# firewall-cmd --zone=public --list-interface

Jika Anda ingin melihat service apa saja yang listen secara spesifik silakan jalankan
perintah

[root@hamimaja ~]# firewall-cmd --zone=public --list-services


ssh dhcpv6-client
[root@hamimaja ~]#

Di firewalld Anda dapat membuat zone sendiri sesuai dengan keinginan, untuk membuat
zone baru di firewalld berikut perintahnya

[root@hamimaja ~]#
[root@hamimaja ~]# firewall-cmd --permanent --new-zone=zonebaruku
success
[root@hamimaja ~]# firewall-cmd --reload
success
[root@hamimaja ~]#

Untuk melihat zone baru yang sudah dibuat silakan jalankan perintah berikut

[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --list-all

264 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk menghapus zone baru tersebut jalankan perintah

[root@hamimaja ~]# firewall-cmd --permanent --delete-zone=zonebaruku

Berikutnya, untuk menambahkan service misalnya service http silakan jalankan perintah

[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --permanent --add-


service=http
success
[root@hamimaja ~]#

Untuk menambahkan port misalnya ingin menambahkan port khusus contoh port 2019
silakan jalankan perintah berikut

[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --permanent --add-


port=2019/tcp
success
[root@hamimaja ~]#

Jika sudah silakan reload firewalld supaya perubahan yang kita lakukan berhasil

[root@hamimaja ~]#
[root@hamimaja ~]# firewall-cmd --reload
success
[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --list-all

265 | CentOS 7 Linux Administrator Pada Cloud Computing


Sedangkan untuk menghapus service yang sudah ditambahkan misal disini ingin
menghapus service http silakan jalankan perintah

[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --remove-


service=http

Jika sudah silakan reload dan lihat hasilnya service http sudah tidak berada di list zone
firewalld, seperti berikut

[root@hamimaja ~]# firewall-cmd --reload


success
[root@hamimaja ~]# firewall-cmd --zone=zonebaruku --list-all

10.4 FIREWALL MENGGUNAKAN FAIL2BAN

Fail2ban merupakan aplikasi Open Source (bebas) yang ditulis menggunakan bahasa
python. Fail2ban dapat digunakan untuk mengamankan service yang berada di Server
VPS dari serangan brute force atau DDoS attack di Linux.

266 | CentOS 7 Linux Administrator Pada Cloud Computing


Apa yang diamankan?

Sangat banyak service yang dapat kita amankan diantaranya ada ssh, otentikasi
apache, lebih mudahnya dapat mengamankan atau menangkal fail kegagalan -
kegagalan akses seperti halnya akses ssh, akses page admin phpmyadmin, wp-admin
(WordPress) di apache atau nginx dan masih banyak lainnya.

Dengan menggunakan Fail2ban seorang administrator server dapat dengan mudah


untuk implementasi keamanan server tentunya karena konfigurasi fai2ban sendiri tidak
terlalu rumit dan mudah dimengerti.

Berikut merupakan gambaran bagaimana cara kerja dari fail2ban:

Pada gambar diatas terdapat seorang attacker, ibaratkan saja si attacker ingin
melakukan brute force password ssh VPS.

Sebelum attacker melakukan serangan ke VPS maka ada di fail2ban di tengah -


tengahnya.

Dengan rule yang ditetapkan oleh fail2ban maka, serangan tersebut di filter terlebih
dahulu, jika memang serangan tersebut milik pribadi (pemilik VPS) maka proses akses
ssh akan di teruskan

Sebaliknya, jika ada proses yang kurang wajar dan melanggar rule fail2ban maka proses
akses ke VPS akan di blokir (banned)

Untuk instalasi fail2ban di CentOS 7 silakan memasang repository epel terlebih dahulu

[root@srv-hamim ~]# yum install epel-release -y

Jika sudah selanjutnya Anda dapat menginstall fail2ban, berikut perintahnya

267 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@srv-hamim ~]# yum install fail2ban -y

Silakan enable service dan start fail2ban, serta pastikan service fail2ban running,berikut
perintahnya

[root@srv-hamim ~]# systemctl enable fail2ban


Created symlink from /etc/systemd/system/multi-
user.target.wants/fail2ban.service to
/usr/lib/systemd/system/fail2ban.service.
[root@srv-hamim ~]# systemctl start fail2ban
[root@srv-hamim ~]# systemctl status fail2ban

Secara default direktori fail2ban berada di /etc/fail2ban/ dan konfigurasi default yang
sudah disediakan fail2ban bernama jail.conf.

Silakan copy file jail.conf tersebut menjadi jail.local seperti berikut.

[root@srv-hamim ~]# cd /etc/fail2ban/


[root@srv-hamim fail2ban]# ls
[root@srv-hamim fail2ban]# cp jail.conf jail.local

Sebelum melanjutkan ke tahapan bagaimana cara implementasi fail2ban kita perlu


memahami terlebih dahulu komponen - komponen yang sering digunakan serta apa saja
yang harus di ketahui di fail2ban itu sendiri, diantaranya sebagai berikut:

1. Ignore IP

Ignore IP digunakan untuk me-whitelist IP tertentu, dengan begitu Anda dapat


menentukan IP mana saja yang tidak akan dan bakal di blokir (banned) oleh
fail2ban, setiap penambahan IP dipisahkan dengan spasi.

268 | CentOS 7 Linux Administrator Pada Cloud Computing


2. Bantime

Bantime digunakan untuk menentukan lama IP attacker (penyerang) yang telah


terblokir (banned), dari server apabila melanggar rule yang telah ditentukan
sebelumnya, waktu yang digunakan bantime yaitu second (detik), secara default
bantime yang ditentukan yaitu 600 detik (10 menit)

3. Maxretry

Digunakan untuk mengatur jumlah percobaan yang dapat dilakukan oleh seorang
attacker untuk melakukan brute force, sebelum IP tersebut di blokir (banned) oleh
fail2ban. Secara default di CentOS 7 fail2ban akan memblokir 5 kali percobaan
(fail).

4. Findtime

Yaitu waktu yang ditentukan oleh Fail2ban apakah IP tersebut masuk dalam
kategori blokir (banned) atau tidak. Hitungan yang digunakan sama dengan
bantime yaitu second (detik) defaultnya 600 (10 menit) .

Disini penulis akan mengimplementasikan fail2ban untuk mengamankan service ssh,


berikut skema komponen yang akan digunakan oleh penulis

Bantime: -1
Findtime: 200
maxretry: 3

Keterangan dari -1 di atas digunakan untuk melakukan banned ip secara permanen.

Silakan buka file jail.local Anda dan silakan sesuaikan konfigurasinya seperti pada
gambar berikut

269 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya silakan cari konfigurasi atau jail untuk mengamankan ssh dengan cara
scroll ke bawah temukan konfigurasi untuk ssh dan tambahkan enabled = true seperti
pada gambar berikut ini

Berikut perbedaan dari value dari enabled true or false

270 | CentOS 7 Linux Administrator Pada Cloud Computing


enabled = true: Jail akan diaktifkan
enabled = false: Jail di nonaktifkan

Jika sudah silakan simpan konfigurasi jail.local dan silakan restart fail2ban dengan cara
menggunakan perintah

[root@srv-hamim fail2ban]# systemctl restart fail2ban

Untuk melihat jail yang sudah aktif silakan jalankan perintah

[root@srv-hamim fail2ban]# fail2ban-client status

Pada gambar diatas kita sudah melihat jail ssh yang sebelumnya dikonfigurasi sudah
aktif, untuk memastikan fail2ban berjalan tidaknya Anda dapat mengakses ssh dengan
kegagalan akses ssh ke server sebanyak 3 kali, sesuai dengan maxretry yang sudah
ditentukan sebelumnya.

Untuk melihat list ip yang sudah terbanned oleh fail2ban silakan jalankan perintah berikut

[root@srv-hamim fail2ban]# fail2ban-client status sshd

Sedangkan untuk melakukan unbanned ip silakan jalankan perintah berikut

[root@srv-hamim fail2ban]# fail2ban-client set sshd unbanip


117.53.46.27
117.53.46.27
[root@srv-hamim fail2ban]#

Berikutnya, penulis akan mengimplementasikan fail2ban untuk mengamankan web


server nginx dan CMS WordPress di CentOS 7, berikut tahapannya.

Pertama harus kita ketahui terlebih dahulu, apa saja yang perlu dan harus kita lindungi
dari sisi CMS WordPress, biasanya serangan brute force misalnya wp-admin atau wp-
login dan yang paling sering yaitu abuse mengenai brute force xmlrpc di WordPres.

271 | CentOS 7 Linux Administrator Pada Cloud Computing


Dengan begitu cara mengatasinya silakan membuat jail baru untuk mengamankan nginx
dan CMS WordPress di sisi nginx sebagai berikut:

Buka file jail.local secara default fail2ban di CentOS untuk jail nginx sudah ada Anda
dapat enabled = true semua service nginx seperti berikut

Berikutnya, untuk mengamankan CMS WordPress di Nginx menggunakan failban


silakan membuat jail khusus, disini nama jail yang digunakan penulis yaitu [nginx-
blocked] seperti berikut contohnya

Jika sudah silakan simpan semua konfigurasi di atas, dan selanjutnya menambahkan
filter baru untuk jail [nginx-blocked] di menu filter.d seperti berikut

[root@srv-hamim fail2ban]#
[root@srv-hamim fail2ban]# cd filter.d/
[root@srv-hamim filter.d]# vim nginx-blocked.conf

Isikan script regex seperti berikut

272 | CentOS 7 Linux Administrator Pada Cloud Computing


[Definition]
failregex = ^.* Blocked request from <HOST>.*$
ignoreregex =

Silakan simpan konfigurasinya.

Berikutnya, menambahkan log format baru di nginx.conf untuk log dari [nginx-blocked]
yang sudah dibuat seperti berikut

[root@srv-hamim filter.d]#
[root@srv-hamim filter.d]# cd /etc/nginx/
[root@srv-hamim nginx]# vim nginx.conf

Silakan tambahkan satu baris perintah berikut

log_format blocked '$time_local: Blocked request from $remote_addr


$request';

Jika sudah silakan simpan dan berikutnya Anda dapat menambahkan konfigurasi nginx
untuk mengamankan serta melakukan optimasi dari sisi CMS WordPress Anda.

Anda dapat mengundug atau melihat konfigurasi detailnya melalui tautan berikut: Klik
Disini

Pada konfigurasi tersebut terdapat konfigurasi nginx untuk Block SQL injections,
Block common exploits, Block file injections, dari sisi Nginx, sedangkan untuk CMS
WordPressnya mulai dari deny akses wp-config.php, wp-admin, dan melakukan return
404 untuk wp-includes, wp-content, /xmlrpc.php, wp-json.

273 | CentOS 7 Linux Administrator Pada Cloud Computing


Return 404 tersebut menandakan file tersebut tidak ada, untuk memastikannya silakan
akses website Anda seperti pada gambar dibawah ini

Untuk yang di deny bila diakses akan menampilkan pesan error 403 Forbidden yang
mana file tersebut tidak dapat diakses atau akses ditolak, contohnya seperti pada
gambar dibawah ini

Untuk membuktikan bahwa fail2ban benar - benar jalan dan dapat melindungi nginx
maka kita perlu melakukan benchmark terhadap web server nginx Anda.

Untuk melakukan benchmark dapat menggunakan tools seperti apache benc, atau wrk
selengkapnya dapat Anda ketahui melalui tautan berikut: Web Server Performance
Benchmark

Disini penulis menggunakan tools wrk. Anda dapat menginstall wrk terlebih dahulu di
laptop atau server yang lainnya.

Selengkapnya untuk instalasinya dapat merujuk pada tautan berikut: Installing wrk on
Linux/Windows/MacOS

Berikut ini merupakan informasi dan hasil benchmark yang telah dilakukan.

- VPS Tester:
- IP: 117.53.46.27
- Sistem Operasi: CentOS 7
- Tools Benchmark: WRK

Percobaan yang akan dilakukan yaitu mengirimkan ribuan paket http ke website CMS
WordPress yang menggunakan webserver Nginx.

Bila Anda menggunakan wrk berikut perintah yang dapat Anda gunakan untuk
melakukan benchmark

wrk -t12 -c400 -d30s http://ip_atau_domain.com

Dan berikut ini adalah hasil benchmark dan pada gambar dibawah terlihat ip
117.53.46.27 melakukan serangan dengan mengirimkan ribuan paket terhadap VPS
yang telah dilindungi oleh fail2ban, bila sudah melebihi batas percobaan (maxretry) yang
telah ditentukan maka, ip 117.53.46.27 akan dibanned, seperti berikut hasilnya

274 | CentOS 7 Linux Administrator Pada Cloud Computing


Anda juga dapat melihat ip mana saja yang telah di banned dengan cara melihat status
dari jail [nginx-blocked], dengan menggunakan perintah

[root@srv-hamim ~]# fail2ban-client status nginx-blocked

275 | CentOS 7 Linux Administrator Pada Cloud Computing


11. MONITORING

11.1 PENGENALAN MONITORING SERVER

Monitoring salah satu hal yang sangat amat penting bagi Anda seorang administrator
server.

Dengan monitoring Anda dapat mengetahui situasi atau kondisi server Anda baik dikala
server mengalami kendala seperti halnya down atau yang sebagainya.

Media monitoring sendiri sangat banyak yang dapat Anda gunakan mulai dari yang
berbasis web base sampai mobile application.

Dengan monitoring ini akan mempermudah pekerjaan seorang system administrator.

11.2 MONITORING MENGGUNAKAN MONITORIX

Pada kesempatan kali ini penulis akan membuat sebuah server monitoring dengan
software open source yaitu monitorix .

Monitorix salah satu tools atau software yang dapat digunakan untuk melakukan
monitoring terhadap server, selain monitorix yang bersifat open source (bebas/free)
monitorix juga memiliki banyak fitur - fitur yang dapat kita gunakan diantaranya:

- System load average and usage.


- Global kernel/Per-processor kernel usage.
- Filesystem usage and I/O activity.
- Network traffic and usage.
- Netstat statistics.
- Process statistics.
- Network port traffic.
- Services statistics (NFS, SAMBA, Squid, MySQL, NTP and BIND)
- Web server statistics (Apache, Nginx, and Lighttpd)
- Hardware devices check.

Selengkapnya mengenai fitur yang berada di monitorix dapat dilihat melalui tautan
berikut: Features Monitorix .

Berikut ini langkah - langkah untuk menginstall monitorix di CentOS

Pertama silakan akses server dan melakukan pembaharuan sistem operasi CentOS 7
Anda dengan cara menjalankan perintah

[root@srv-hamim ~]# yum update -y

Silakan tunggu sampai proses update selesai, jika sudah selanjutnya memasang
repository epel, dengan cara menjalankan perintah

[root@srv-hamim ~]# yum install epel-release -y

276 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya memasang paket - paket service yang dibutuhkan oleh monitorix diantaranya
sebagai berikut

[root@srv-hamim ~]# yum install rrdtool rrdtool-perl perl-libwww-perl


perl-MailTools perl-MIME-Lite perl-CGI perl-DBI -y

Silakan tunggu prosesnya sampai selesai, jika sudah selanjutnya Anda dapat menginstall
monitorix dengan cara menjalankan satu baris perintah berikut

[root@srv-hamim ~]# yum install monitorix -y

Proses instalasi monitorix membutuhkan waktu silakan tunggu sampai selesai apabila
monitorix telah berhasil terinstall Anda dapat melihat versi monitorix dengan cara
menjalankan perintah

[root@srv-hamim ~]# monitorix -v

Langkah selanjutnya yaitu enable serta start service monitorix dengan cara menjalankan
perintah sebagai berikut

[root@srv-hamim ~]#
[root@srv-hamim ~]# systemctl enable monitorix
Created symlink from /etc/systemd/system/multi-
user.target.wants/monitorix.service to
/usr/lib/systemd/system/monitorix.service.
[root@srv-hamim ~]# systemctl start monitorix
[root@srv-hamim ~]# systemctl status monitorix

277 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila monitorix sudah running, maka Anda dapat mengakses monitoring melalui web
browser dengan cara akses ip server Anda atau nama domain yang telah terpointing ke
ip server Anda. Untuk mengaksesnya sendiri monitorix menggunakan port 8080 seperti
berikut contoh URL monitorix: http://hamim.web.id:8080/monitorix

Berikut contoh dashboard monitoring menggunakan monitorix

278 | CentOS 7 Linux Administrator Pada Cloud Computing


11.3 MONITORING MENGGUNAKAN ZABBIX

Bicara mengenai monitoring terdapat tools atau software monitoring yang sangat
powerfull dan sangat bagus bila digunakan untuk memonitoring server Anda secara real
time dan multi fungsi tentunya.

Zabbix merupakan software open source (bebas/free) yang dapat digunakan untuk
server monitoring, zabbix sendiri mempunyai penampilan GUI berupa map dan grafik
yang memudahkan kita para administrator server maupun system untuk memantau
server.

Selain itu zabbix sudah support dengan berbagai macam jenis alert atau laporan
bilamana terdapat server mengalami kendala misalnya down, alert yang ada di zabbix
mulai dari e-mail, sms, jabber, dan Ez texting selain itu Anda dapat menggunakan
telegram untuk alert monitoring menggunakan zabbix.

Adapun fitur - fitur pada zabbix diantaranya:

1. Zabbix user friendly, dengan zabbix user dapat dengan mudah mengontrol server
dan network
2. Real time Monitoring
3. Memberikan informasi masalah melalui E-mail dan SMS (Short Message Service),
Telegram etc. Administrator zabbix dapat mengatur notifikasi atau alert jika terjadi
masalah terhadap server.
4. Filter untuk laporan traffic, Administrator zabbix dapat membuat laporan dengan
template yang berbeda-beda sesuai dengan keinginan dan apa saja service yang
ingin dibuatkan report.
5. Multi Operating System
6. Dari sisi keamanan cukup unggul karena adanya autentifikasi dengan IP address

Zabbix salah satu server monitoring yang dapat berjalan diberbagai macam operating
system mulai dari Linux sampai Windows server.

Bila Anda mempunyai banyak server sekaligus maka Anda dapat menggunakan zabbix
untuk membangun server monitoring untuk dapat memonitoring server yang lain atau
biasa disebut dengan zabbix agent.

Sebelum Anda melakukan instalasi server monitoring menggunakan zabbix silakan


menginstall LAMP stack (Linux, Apache, MariaDB/MySQL dan PHP) terlebih dahulu.

Berikut tahapan - tahapan untuk instalasinya

Pertama silakan akses server dan melakukan update terhadap sistem operasi CentOS 7
Anda dengan cara menjalankan perintah

[root@sinau ~]# yum update -y

Silakan tunggu proses update sampai selesai, jika sudah selanjutnya menambahkan
repository epel dengan cara menjalankan perintah

279 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@sinau ~]# yum install epel-release -y

Tunggu proses instalasi epel sampai selesai, berikutnya memasang atau install
webserver disini webserver yang digunakan yaitu Apache, silakan jalankan perintah
berikut

[root@sinau ~]# yum install httpd -y

Jika sudah selanjutnya enable service apache agar service apache dapat otomatis
running bila server dilakukan restart serta start dan lihat status webserver dengan cara
menjalakan beberapa perintah berikut

[root@sinau ~]#
[root@sinau ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-
user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@sinau ~]# systemctl start httpd
[root@sinau ~]# systemctl status httpd

Bila webserver apache telah running, langkah selanjutnya menginstall module - module
serta extension php yang dibutuhkan oleh zabbix sebagai berikut

[root@sinau ~]# yum -y install php php-pear php-cgi php-common php-


mbstring php-snmp php-gd php-xml php-mysql php-gettext php-bcmath

280 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya melakukan kofigurasi date.time di php.ini menjadi Asia/Jakarta lalu restart
webserver apache dengan cara menjalankan baris perintah berikut

[root@sinau ~]# sed -i "s/^;date.timezone =$/date.timezone =


\"Asia\/Jakarta\"/" /etc/php.ini
[root@sinau ~]# systemctl restart httpd

Berikutnya yaitu menginstall database untuk penyimpanan zabbix, disini penulis akan
menggunakan mariadb versi 10.3 dengan begitu Anda perlu menambahkan repository
mariadb versi 10.3 dengan cara menjalankan perintah berikut

[root@sinau ~]#
[root@sinau ~]# cat <<EOF | sudo tee /etc/yum.repos.d/MariaDB.repo
> [mariadb]
> name = MariaDB
> baseurl = http://yum.mariadb.org/10.3/centos7-amd64
> gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
> gpgcheck=1
> EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@sinau ~]#

Jika sudah Anda dapat menginstall database dengan cara menjalankan perintah

[root@sinau ~]#
[root@sinau ~]# yum -y install MariaDB-server MariaDB-client

281 | CentOS 7 Linux Administrator Pada Cloud Computing


Apabila proses instalasi telah selesai, berikutnya silakan start dan enable mariadb dan
pastikan juga service mariadb telah running dengan cara sebagai berikut

[root@sinau ~]#
[root@sinau ~]# systemctl enable mariadb
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]# systemctl status mariadb

Selanjutnya konfigurasi password root database mariadb

[root@sinau ~]# mysql_secure_installation

Jika sudah berikutnya yaitu membuat database untuk zabbix seperti berikut

[root@sinau ~]#
[root@sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 10.3.15-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

282 | CentOS 7 Linux Administrator Pada Cloud Computing


MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to


hamimaja@'localhost' identified by 'Isikan_Password';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;


Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit


Bye
[root@sinau ~]#

Langkah selanjutnya yaitu menambahkan repository zabbix, disini penulis akan


menggunakan zabbix versi terbaru yaitu 4.0 seperti berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# yum install -y
https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-
1.el7.noarch.rpm

283 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah silakan jalankan perintah berikut untuk menginstall zabbix 4.0 serta frontend
dengan dukungan mysql support

[root@sinau ~]# yum install -y zabbix-server-mysql zabbix-web-mysql


zabbix-agent zabbix-get

Untuk server Zabbix dan daemon proxy Zabbix, diperlukan database. Tidak perlu
menjalankan agent Zabbix. Jika server dan proxy Zabbix diinstal pada host yang sama,
database mereka harus dibuat dengan nama yang berbeda.

Silakan import database default zabbix ke database yang telah dibuat sebelumnya
dengan cara menjalankan perintah

[root@sinau ~]#
[root@sinau ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz
| mysql -u hamimaja -p zabbix
Enter password: Isikan_password_user_database_hamimaja
[root@sinau ~]#

284 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika sudah langkah selanjutnya yaitu melakukan konfigurasi koneksi database zabbix
seperti berikut

[root@sinau ~]# vim /etc/zabbix/zabbix_server.conf

Cari dan sesuaikan nama database, username dan password database sebagai berikut

Keterangan:

DBName : Merupakan nama database zabbix


DBUser : Merupakan username database zabbix
DBPassword : Merupakan password dari user database zabbix

Jika sudah silakan restart service web server dan server zabbix serta enable server
zabbix agar dapat otomatis running bila server melakukan restart, berikut perintahnya

[root@sinau ~]#
[root@sinau ~]# vim /etc/zabbix/zabbix_server.conf
[root@sinau ~]#
[root@sinau ~]# systemctl restart httpd zabbix-server
[root@sinau ~]# systemctl enable zabbix-server

285 | CentOS 7 Linux Administrator Pada Cloud Computing


Created symlink from /etc/systemd/system/multi-
user.target.wants/zabbix-server.service to
/usr/lib/systemd/system/zabbix-server.service.
[root@sinau ~]#

Berikutnya melakukan konfigurasi frontend zabbix, secara default sudah terdapat


konfigurasi, Anda hanya tinggal uncomment dan menyesuaikan date.time menjasi
Asia/Jakarta seperti berikut

[root@sinau ~]# vim /etc/httpd/conf.d/zabbix.conf

Silakan simpan konfigurasi dan melakukan restart service apache dengan cara
menjalankan perintah

[root@sinau ~]# systemctl restart httpd

Jika sudah silakan melakukan konfigurasi zabbix dengan cara mengakses domain atau
IP_server/zabbix melalui browser Anda masing - masing seperti berikut ini

286 | CentOS 7 Linux Administrator Pada Cloud Computing


Klik Next step untuk melanjutkan ke langkah selanjutnya

Pada gambar diatas merupakan pengecekan module dan extension php yang dibutuhkan
oleh zabbix pastikan statusnya OK , Next step untuk melanjutkan ke proses berikutnya

287 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas Anda diminta untuk mengisikan nama, username, dan password
database yang telah dibuat sebelumnya, Next step untuk melanjutkan ke langkah
berikutnya

288 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas Anda dapat isikan Name yang diinginkan sebagai contoh pada
gambar diatas penulis mengisikan Name zabbix.hamim.web.id . Next step untuk
melanjutkan ke proses selanjutnya

Pada gambar diatas merupakan detail informasi pada server zabbix Anda, Next step
untuk melakukan proses instalasi dan konfigurasi zabbix

289 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas server zabbix telah berhasil di install, silakan klik Finish untuk login
ke Administrator zabbix, secara default user dan password untuk login ke Administrator
zzabbix yaitu:

Username: admin
Password: zabbix

Berikut ini dashboard server monitoring zabbix

Langkah selanjutnya, mengubah password default Administrator pada zabbix dengan


cara masuk ke menu Administration » Users Admin

290 | CentOS 7 Linux Administrator Pada Cloud Computing


Ubah password dengan cara klik pada menu Change password

Silakan isikan password baru lalu Update seperti berikut

291 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika berhasil maka hasilnya akan seperti berikut ini

Untuk membuat user baru zabbix silakan Masuk ke menu Administration » Users »
Create User

Silakan isikan Alias dengan nama user yang Anda ingin digunakan, selain itu Anda dapat
memilih Groups serta Anda dapat memilih themes yang telah disediakan oleh zabbix klik
Update untuk menyelesaikan proses pembuatan user zabbix

292 | CentOS 7 Linux Administrator Pada Cloud Computing


Jika berhasil maka akan ada informasi seperti berikut

Selain itu Anda dapat menentukan permission dari user tersebut, terdapat 3 pemilihan
permission user pada zabbix diantaranya

1. Zabbix User

Permission ini hanya sebagai user biasa.

293 | CentOS 7 Linux Administrator Pada Cloud Computing


2. Zabbix Admin

Permission ini user dapat dijadikan sebagai admin dari server monitoring.

3. Zabbix Super Admin

Permission ini merupakan permission spesial yang mana Anda dapat menjadi user
beserta admin dari server monitoring Anda.

Lihat perubahannya dari user biasa menjadi sebagai user admin seperti berikut ini

11.4 KONFIGURASI ZABBIX AGENT

Zabbix Agent merupakan zabbix client yang digunakan untuk mengumpulkan data atau
mengambil source data dari server lain untuk dapat dimonitoring.

Zabbix agent dapat di install di sisi server client yang ingin di monitoring, penulis disini
telah menyediakan server lain, server lain disini penulis menggunakan sistem operasi
CentOS 7.

Sebenarnya zabbix agent dapat dipasang di berbagai macam distro Linux dan windows
server. Untuk memasang zabbix agent di CentOS dapat dilakukan dengan tahapan
sebagai berikut:

294 | CentOS 7 Linux Administrator Pada Cloud Computing


Pertama silakan akses server Anda jika sudah Anda hanya perlu menambahkan
repository zabbix agent, pada saat penambahan repository zabbix agent harap untuk
disesuaikan dengan versi zabbix server yang digunakan, sebagai berikut:

[root@amar2900 ~]#
[root@amar2900 ~]# rpm -ivh
https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-
1.el7.noarch.rpm
Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-
release-4.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.niGsd7: Header V4 RSA/SHA512 Signature, key
ID a14fe591: NOKEY
Preparing... #################################
[100%]
Updating / installing...
1:zabbix-release-4.0-1.el7 #################################
[100%]
[root@amar2900 ~]#

Jika sudah selanjutnya Anda dapat menginstall zabbix agent dengan cara menjalankan
perintah berikut

[root@amar2900 ~]# yum install zabbix-agent zabbix-sender -y

Silakan tunggu proses instalasi sampai selesai, apabila sudah selesai berikutnya
melakukan konfigurasi zabbix agent, secara default direktorinya berada di
/etc/zabbix/zabbix_agentd.conf seperit berikut ini

[root@amar2900 ~]# vim /etc/zabbix/zabbix_agentd.conf

Silakan menambahkan IP zabbix server seperti berikut:

Server=117.53.xx.xx

ServerActive=117.53.xx.xx

295 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan simpan konfigurasi zabbix agent dan silakan start dan enable service zabbix
agent agar pada saat server mengalami restart service zabbix agent dapat otomatis
running, dan pastikan juga zabbix agent running, berikut perintahnya

[root@amar2900 ~]#
[root@amar2900 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@amar2900 ~]#
[root@amar2900 ~]# systemctl start zabbix-agent
[root@amar2900 ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-
user.target.wants/zabbix-agent.service to
/usr/lib/systemd/system/zabbix-agent.service.
[root@amar2900 ~]#
[root@amar2900 ~]# systemctl status zabbix-agent

Selanjutnya silakan membuat host baru melalui zabbix server, untuk membuatnya dapat
melalui menu Configuration » Hosts » Create Hosts

296 | CentOS 7 Linux Administrator Pada Cloud Computing


Silakan membuat host baru untuk server client yang ingin di monitoring, seperti berikut
ini

Pada menu Host:

Host name: Srv-Client 1 (untuk penamaan bebas)


Groups: Silakan pilih Group yang sudah ada atau membuat baru
Agent interfaces: Isikan IP server client.

Selanjutnya pindah ke menu Templates disini Anda dapat menentukan apa saja yang
ingin Anda monitoring untuk server client tersebut.

Penulis disini akan memilih Templates diantaranya:

- Template App SSH Service


- Template App HTTP Service
- Template Module ICMP Ping
- Template App Zabbix Server
- Template DB MySQL
- Template OS Linux

Anda dapat memilih template sesuai dengan keinginan dan kebutuhan Anda masing -
masing.

297 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya klik Add seperti pada gambar dibawah ini

Bila template telah berhasil diverifikasi maka akan seperti pada gambar dibawah ini.

Untuk melanjutkannya silakan klik menu Add, bila berhasil maka akan seperti pada
gambar dibawah ini

298 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk melihat graphic dari Host yang sudah dibuat dapat dilihat melalui menu Monitoring
» Graphs silakan pilih Host sesuai dengan Host yang telah dibuat sebelumnya seperti
pada gambar dibawah ini

Berikutnya penulis akan memberikan tips and triks bagaimana cara cepat membuat
sebuah Host untuk server client yang ingin di monitoring yaitu dengan cara melakukan
cloning terhadap Host yang sudah ada contohnya seperti berikut ini:

Pertama silakan menuju kemenu Configuration » Hosts » Klik pada Zabbix Server

299 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya scroll kebawah akan ada menu Full Clone yang artinya kita akan melakukan
cloning terhadap Host yang sudah ada secara default seperti berikut

Selanjutnya Anda dapat mengubah Hostname sesuai dengan keinginan Anda dan
silakan sesuaikan Agent Interfaces dengan ip server yang telah terpasang zabbix agent
untuk di monitoring, seperti pada gambar dibawah ini

300 | CentOS 7 Linux Administrator Pada Cloud Computing


Hasilnya akan seperti pada gambar dibawah ini

Untuk melihat graphic sama seperti sebelumnya di menu Monitoring » Grapsh

Contoh monitoring Network

Contoh Monitoring Server Performance

301 | CentOS 7 Linux Administrator Pada Cloud Computing


Bila Anda telah mempunya Host Anda dapat membuat Dashboard untuk masing - masing
Host tersebut di menu Dashboard » Create New .

Berikut demo mengenai hasil pembuatan Dashboard tersebut.

Selebihnya Anda dapat mengembangkannya secara mandiri mengikuti documentasi


resmi Zabbix berikut: Zabbix Server

302 | CentOS 7 Linux Administrator Pada Cloud Computing


12. CONTROL PANEL

12.1 MENGENAL APA ITU CONTROL PANEL

Mengelola sebuah VPS untuk dijadikan sebuah web Hosting salah satu hal yang tidak
mudah, terlebih mengelola banyak website beserta fitur - fitur Hosting seperti DNS, FTP,
Mail Server dan yang lainnya.

Dengan menggunakan control panel Anda dapat mengelola VPS Anda dengan mudah
karena Anda tidak perlu lagi mengelola VPS menggunakan perintah atau command line
interface yang biasa disebut dengan CLI.

Dengan menggunakan control panel maka, pekerjaan dalam maintenance baik itu
website, mail dan yang lainnya bisa lebih mudah dibanding dengan mengelola banyak
website tanpa managementnya.

Dengan control panel Anda dapat dengan mengelola VPS dengan mudah karena control
panel sendiri berbasis web based dan dapat diakses dari manapun kapanpun selama
masih terjangkau dengan internet.

12.2 INSTALASI WHM/CPANEL

WHM (Web Hosting Manager) adalah salah satu web hosting manager yang sering
digunakan pada sebuah web hosting. Dengan WHM, Anda dapat dengan mudah
menambah, mengurangi, mengedit banyak web yang terdaftar di dalamnya. Untuk
melakukan instalasi WHM, Anda hanya dapat menggunakan sistem operasi Linux RPM
based.

Untuk fitur - fitur yang diberikan oleh control panel WHM/cPanel dapat diketahui melalui
tautan berikut: WHM Features List

Berikutnya, WHM/cPanel merupakan control panel yang closed source dimana yang
dimaksud control panel ini berbayar, jika Anda ingin menggunakan control panel
WHM/cPanel Anda perlu memesan atau membeli License WHM/cPanel biasanya
provider Hosting contohnya CloudKilat menyediakan license WHM/cPanel yang dapat
dilihat melalui link berikut: Lisensi WHM/cPanel

Selanjutnya sebelumnya memulai instalasi control panel WHM/cPanel pada VPS,


pastikan VPS Anda dalam keadaan fresh OS atau belum terinstall aplikasi apapun.

Berikut langkah - langkah untuk instalasi control panel WHM/cPanel:

Langkah pertama yang harus Anda lakukan adalah melakukan konfigurasi hostname.
Untuk penamaan hostname yang akan digunakan WHM harus mengikuti format FQDN
(fully qualified domain name). Format ini dibutuhkan agar tidak terjadi pesan galat saat
melakukan instalasi WHM pada VPS Anda.

Berikut cara melakukan konfigurasi hostname di CentOS

303 | CentOS 7 Linux Administrator Pada Cloud Computing


Edit file /etc/hosts dengan text editor.

127.0.0.1 localhost.localdomain localhost


117.53.45.53 cpanel.hamim.web.id hamim.web.id

Berikutnya, jalankan perintah berikut untuk mengubah hostname menjadi fqdn dan
berikut contoh hostname fqdn (cpanel.hamim.web.id)

[root@hamimaja ~]#
[root@hamimaja ~]# echo "cpanel.hamim.web.id" > /etc/hostname
[root@hamimaja ~]# hostname -F /etc/hostname
[root@hamimaja ~]# exec bash
[root@cpanel ~]#

Untuk mengetahui hostname apakah sudah berubah atau belum, bisa dilakukan dengan
menjalankan perintah berikut:

[root@cpanel ~]#
[root@cpanel ~]# hostname & hostname
[1] 13327
cpanel.hamim.web.id
cpanel.hamim.web.id
[1]+ Done hostname
[root@cpanel ~]#
[root@cpanel ~]#

Melakukan pembaharuan sistem operasi centOS 7

[root@cpanel ~]# yum update -y

Mengunduh paket wget dan curl yang nantinya dapat digunakan untuk unduh aplikasi
atau paket yang dibutuhkan untuk instalasi WHM/cPanel, berikut perintahnya

[root@cpanel ~]# yum install wget curl -y

Jika sudah, silakan unduh dan instal control panel WHM/cPanel dengan cara
menjalankan perintah berikut

304 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@cpanel ~]# cd /home && curl -o latest -L
https://securedownloads.cpanel.net/latest && sh latest

Dengan menjalankan satu baris perintah tersebut maka control panel whm/cPanel
secara otomatis akan terinstal lama waktu instalasi kurang lebih 20 - 30 menit bahkan
sampai 1 jam tergantung dengan kecepatan koneksi dari VPS Anda masing - masing.

Apabila instalasi telah selesai Anda akan mendapatkan notifikasi untuk mengakses
control panel whm/cPanel seperti berikut ini

Silakan akses WHM/cPanel melalui browser Anda menggunakan port 2087 seperti
berikut: URL:https://117.53.45.53:2087/ atau http://cpanel.hamim.web.id:2087

Untuk usernamenya dapat menggunakan user root sedangkan password menggunakan


password root login ke VPS Anda.

305 | CentOS 7 Linux Administrator Pada Cloud Computing


Selanjutnya klik Agree to All untuk melanjutkan instalasi

Langkah berikutnya isikan alamat email beserta nameserver pada domain yang ingin
digunakan untuk domain utama di control panel WHM/cPanel Anda, klik Finish untuk
menyelesaikan proses instalasi dan konfigurasi control panel WHM/cPanel seperti pada
gambar berikut ini

306 | CentOS 7 Linux Administrator Pada Cloud Computing


Berikut merupakan Dashboard dari control panel WHM

12.3 INSTALASI PLESK PANEL

Plesk Panel merupakan control panel yang mempunyai banyak fitur teknologi terkini
serta didesain agar mudah dan nyaman dipakai untuk keperluan pengelolaan web.

Plesk panel sangat cocok bagi Anda yang ingin membuat web hosting untuk
kepentingan bisnis maupun personal.

Plesk Panel sendiri salah satu control panel yang bisa dibilang salah satu saingan dari
WHM/cPanel yang amat sangat populer di dunia per hostingan.

307 | CentOS 7 Linux Administrator Pada Cloud Computing


Berbeda dengan WHM/cPanel yang hanya dapat diinstall di sistem operasi CentOS,
CloudLinux, atau RHEL dan Amazon Linux, control panel Plesk Panel dapat diinstall di
berbagai distro Linux bahkan Plesk Panel dapat diinstall di Windows Server.

Plesk Panel sendiri merupakan control panel closed source atau berbayar. Bila Anda
ingin menggunakan control panel Plesk Panel maka, Anda perlu memesan license Plesk
Panel.

Anda dapat memesan atau beli license Plesk Panel melalui provider Hosting Indonesia
contohnya CloudKilat pada tautan berikut: License Plesk Panel

Sebelum melakukan instalasi control panel Plesk Panel pada VPS Anda pastikan VPS
Anda dalam Fresh OS atau Fresh Install dimana yang dimaksud yaitu belum adanya
instalasi sebuah program atau aplikasi pada sistem operasi tersebut.

Serta melakukan konfigurasi hostname, untuk penamaan hostname yang akan


digunakan pada control panel Plesk Panel harus mengikuti format FQDN (fully qualified
domain name) misalnya server.domainanda.com.

Berikut cara melakukan konfigurasi hostname pada CentOS 7

Edit file /etc/hosts dengan text editor.

127.0.0.1 localhost.localdomain localhost


117.10.10.10 srv.hamim.web.id hamim.web.id

Berikutnya jalankan perintah berikut di dalam mesin anda, ubah hamim.web.id menjadi
nama domain Anda.

[root@hamimaja ~]#
[root@hamimaja ~]# echo "srv.hamim.web.id" > /etc/hostname
[root@hamimaja ~]# hostname -F /etc/hostname
[root@hamimaja ~]# exec bash
[root@srv ~]#

Untuk mengetahui apakah sudah berubah atau belum, bisa dilakukan dengan
menjalankan perintah berikut:

[root@srv ~]#
[root@srv ~]# hostname & hostname
[1] 13283
srv.hamim.web.id
srv.hamim.web.id
[1]+ Done hostname

308 | CentOS 7 Linux Administrator Pada Cloud Computing


[root@srv ~]#

Melakukan pembaruan atau update sistem operasi centOS 7, berikut perintahnya

[root@srv ~]# yum update -y

Mengunduh paket wget dan curl yang nantinya dapat digunakan untuk melakukan
mengunduh dan install control panel Plesk Panel Anda, berikut perintahnya

[root@srv ~]# yum install wget -y

Jika sudah, silakan unduh aplikasi control plesk panel serta melakukan proses instalasi
plesk dengan cara menjalankan perintah sebagai berikut :

[root@srv ~]# sh <(curl https://autoinstall.plesk.com/one-click-


installer || wget -O - https://autoinstall.plesk.com/one-click-
installer)

Proses instalasi sedang berlangsung, lama waktu instalasi kurang lebihnya 30 menit -
1 jam.

Apabila proses instalasi telah selesai, Anda akan mendapatkan pemberitahuan seperti
pada gambar dibawah ini

309 | CentOS 7 Linux Administrator Pada Cloud Computing


Langkah berikutnya yaitu mengakses control panel Plesk Panel dengan cara
mengakses alamat IP VPS atau domain dengan menggunakan port default plesk panel
yaitu 8443. Berikut contoh URLnya: https://117.53.45.53:8443

Berikutnya Anda diminta untuk mengisikan credential detail mulai dari Contact Name,
Email, dan License control panel Plesk Panel.

310 | CentOS 7 Linux Administrator Pada Cloud Computing


Bila Anda belum mempunyai license Plesk Panel dan ingin mencoba trial dari Plesk
Panel silakan pilih Proceed with a full-featured trial license lalu klik Enter Plesk untuk
melanjutkan ke proses selanjutnya

Silakan tunggu proses setup control panel Plesk Panel sampai selesai. Jika sudah maka
berikut tampilan dari control panel Plesk Panel

311 | CentOS 7 Linux Administrator Pada Cloud Computing


Pada gambar diatas silakan klik menu Add Domain untuk menambahkan domain baru
dan utama yang ingin digunakan oleh control panel Plesk Panel, hasilnya akan seperti
pada gambar di bawah ini

312 | CentOS 7 Linux Administrator Pada Cloud Computing


12.4 INSTALASI CWP (CENTOS WEB PANEL)

CentOS Web Panel (CWP) merupakan control panel web hosting yang bersifat open
source system (free/bebas ) yang dirancang untuk melakukan manajemen administrator
server yang mudah dalam penggunaannya. Dengan menggunakan control panel ini
maka Anda tidak perlu lagi melakukan akses via SSH pada server Anda. CWP memiliki
kompatibilitas penuh dengan Soft Apps Installers, Anda dapat menginstal lebih dari 400
paket secara otomatis.

Untuk mengetahui fitur - fitur yang ada pada cwp dapat dilihat melalui tautan berikut:
Feature Control Web Panel

Berikut requirement yang dibutuhkan untuk instalasi control panel CWP

- Server 32bit - Minimal Ram yang digunakan 512MB


- Server 64bit - Minimal Ram yang digunakan sebesar 1024MB
- Storage yang dibutuhkan sebesar 10 GB
- Sistem Operasi CentOS 7 Fress, belum terdapat aplikasi yang terinstal pada
server

Berikut ini langkah - langkah untuk melakukan instalasi control panel CWOP.

Pertama yang harus Anda lakukan yaitu memperbarui sistem operasi CentOS 7 dengan
cara melakukan update dengan menjalankan perintah berikut:

[root@srv ~]# yum update -y

Melakukan instalasi paket yang dibutuhkan oleh CWP, paket tersebut berupa wget
dimana nantinya paket wget ini digunakan untuk mengunduh file control panel CWP,
berikut perintahnya

[root@srv ~]# yum install wget -y

Apabila sistem telah terupdate dengan sempurna, selanjutnya menentukan direktori


yang digunakan, secara default direktori yang digunakan yakni /usr/local/src/, silakan
untuk berpindah pada ke direktori tersebut, untuk pindah direktori dapat menggunakan
perintah cd sebagai berikut:

[root@srv ~]# cd /usr/local/src

Mengunduh aplikasi CWP dengan menggunakan paket wget yang telah kita install
sebelumnya

[root@srv src]# wget http://centos-webpanel.com/cwp-latest

313 | CentOS 7 Linux Administrator Pada Cloud Computing


Jalankan perintah berikut yang digunakan untuk melakukan instalasi CWP

[root@srv src]# sh cwp-latest

Proses instalasi sedang berlangsung, silakan menunggu proses instalasi sampai


selesai, lama waktu instalasi memakan waktu 10 - 20 menit menyesuaikan dengan
speed server yang Anda miliki.

Apabila proses instalasi telah selesai maka berikutnya Anda akan diberikan notifikasi
dan arahan mengenai bagaimana cara mengakses control panel CWP pada web
browser nantinya dan Anda akan diminta untuk melakukan reboot pada server seperti
berikut ini:

314 | CentOS 7 Linux Administrator Pada Cloud Computing


Untuk mengakses control panel CWP dapat melalui browser dengan menggunakan
alamat ip VPS diikuti dengan port default cwp (2031) seperti berikut:
https://117.53.45.53:2031

Berikut merupakan dashboard default dari CWP

315 | CentOS 7 Linux Administrator Pada Cloud Computing


316 | CentOS 7 Linux Administrator Pada Cloud Computing

Anda mungkin juga menyukai