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.
Nur Hamim
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.
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).
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
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
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
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
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.
Selain itu dengan menggunakan Cloud Computing kita akan mendapatkan manfaat
diantaranya :
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.
Jenis ini merupakan sebuah layanan cloud yang disediakan dalam bentuk perangkat
lunak.
Keuntungan :
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 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.
- 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 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 :
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.
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:
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.
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
- 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.
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.
uname -a: Perintah ini digunakan untuk mengetahui versi sistem operasi Linux saat ini
yang kita gunakan.
uname: Perintah ini digunakan mengetahui sistem operasi Linux yang kita gunakan
cd: Perintah ini digunakan untuk berpindah antar direktori, (cd) singkatan dari change
direktori.
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.
Contoh diatas telah menunjukkan bahwa Anda saat ini berada di direktori /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 :
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
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:
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.
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.
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.
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.
Gunakan opsi -f (force) agar tidak perlu menjawab prompt saat ingin menghapus file
menghapus banyak file sekaligus yang berekstensi tertentu, misal file image .jpg
menghapus banyak file sekaligus yang mempunyai awalan nama tertentu, misal foto
liburan
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.
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 ?
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 :
Untuk memeriksa versi vim telah terinstall dapat dilakukan dengan menggunakan perintah
berikut :
Mari kita memulai mencoba menggunakan vim, silakan membuat file dengan perintah
touch seperti berikut
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
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
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.
Jika Anda membutuhkan cheat sheet untuk penggunaan vim silakan unduh cheat sheet
tersebut dengan cara klik disini : cheat sheet vim
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).
Sebuah file dengan nama CentOS.txt memiliki permission User (membaca, menulis dan
eksekusi), Group (membaca dan menulis) dan Other (membaca).
Keterangan:
- r: Read
- w: write
- x: execute
Sehingga angka yang didapatkan untuk menentukan permission dalam studi kasus
tersebut adalah 764, untuk membuat permission silakan mengikuti perintah dibawah ini :
Menggunakan simbol:
Metode permission menggunakan simbol lebih mudah dari pada menggunakan binary,
pada metode ini hanya menerapkan 2 konsep yaitu:
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 ?
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.
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.
Silakan buka terminal linux Anda masing - masing, disini penulis menggunakan
Desktop sistem operasi Ubuntu 18.04 LTS.
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 :
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.
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.
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.
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:
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 :
Untuk memasang atau menyimpan Public Key yang telah di generate ke server (VPS)
dengan menggunakan perintah berikut:
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?
Jika sudah, silahkan login kembali ke server (VPS) Anda seperti berikut:
Jika terdapat pemberitahuan seperti pada gambar dibawah silakan klik Accept.
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.
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
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”
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 :
Untuk instalasi service bind dan utilitas yang dibutuhkan silakan menggunakan perintah
berikut:
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:
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.
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.
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).
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.
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 :
– TTL (Time To Live) merupakan waktu yang diperlukan server DNS untuk menyimpan
hasil resolving ke cache-nya.
– Refresh adalah selang waktu yang diperlukan (dalam detik) secondary-master name-
server untuk melakukan pengecekan perubahan database-cache pada primary-master
name-server.
– 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.
– 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.
Jika semua telah berhasil dikonfigurasi maka, DNS Server siap digunakan.
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.
Nameserver: ns1
IP Address: IP VPS (117.53.46.228)
Save changes
Nameserver: ns2
IP Address: IP VPS (117.53.46.228)
Save changes
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:
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
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:~$
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:~$
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
Kebutuhan yang diperlukan untuk LAB DNS Master - Slave kali ini yaitu sebagai berikut
- 2 VPS
- Sistem operasi CentOS 7
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.
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.
Jika sudah, silahkan melakukan konfigurasi di file direktori /etc/named.conf, seperti berikut
Berikut merupakan contoh konfigurasi record - record DNS dari sisi Master
Jika sudah silakan simpan dan melakukan restart service bind (named) dengan
menggunakan perintah berikut
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 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
Keterangan:
Berikutnya, silakan mendaftarkan Glue Record atau private nameserver seperti halnya
instalasi DNS sebelumnya.
Jika sudah silakan melakukan restart service bind (named) dari sisi Master dan Slave
seperti berikut
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 :
Jika Anda pengguna Linux, Anda dapat memastikan perubahan diatas dengan
menggunakan perintah dig seperti berikut
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)
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
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
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.
Sebelum kita melakukan instalasi vsftpd silakan update atau melakukan pembaharuan
sistem operasi CentOS 7 Anda dengan cara menjalankan perintah berikut
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.
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
#
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)
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
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
[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.
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.
Jika Anda menggunakan browser firefox tampilan FTP Server bisa dibilang bagus, hasil
akan seperti gambar dibawah ini
[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]#
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.
Terdapat berbagai macam jenis - jenis web server diantaranya yang sering sekali
digunakan yakni
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.
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.
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.
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 juga salah satu web server yang dapat digunakan untuk website yang
membutuhkan trafik dan beban yang tinggi.
Web Server LiteSpeed merupakan salah satu web server yang mempunyai kinerja tinggi
dan sangat baik yang dikembangkan oleh LiteSpeed Technologies.
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
- 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.
Untuk melakukan instalasi web server apache di CentOS sangatlah mudah dikarenakan
secara default repository apache telah tersedia di CentOS.
[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 ~]#
[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
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:
Jika Anda sebelumnya telah melakukan perubahan konfigurasi Apache dapat melakukan
reload service apache dengan menjalankan perintah:
Berikut merupakan best praktis dari struktur file konfigurasi Apache di CentOS 7:
- 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
- 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>
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 ?
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.
<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
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
Silakan tunggu penambahan repository epel sampai selesai, jika sudah Anda dapat
langsung menginstall web server nginx dengan cara menjalankan perintah berikut
[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 ~]#
Untuk mengetahui versi nginx yang baru saja kita install silakan menjalankan perintah
berikut
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.
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
Jika Anda telah melakukan sebuah perubahan konfigurasi terhadap service nginx dan
Anda perlu melakukan opsi reload silakan jalankan perintah berikut
Untuk menonaktifkan service otomatis running di kala server VPS melakukan reboot
atau restart jalankan perintah berikut
Sebaliknya jika Anda ingin set service nginx otomatis running dikala server melakukan
reboot atau restart silakan jalankan perintah berikut
Berikut ini merupakan best praktis mengenai struktur file konfigurasi web server Nginx
di CentOS 7:
- 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)
- 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>
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
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Selamat Datang di Updateartikel.net</title>
</head>
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;
}
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]#
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 .
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)
Jika Anda ingin menggunakan php versi 7.0 Anda hanya perlu mengaktifkan paket
manager untuk php 7.0 dengan cara menjalankan perintah berikut
Jika Anda ingin menggunakan php versi 7.1 silakan aktifkan terlebih dahulu paket
manager untuk php 7.1 berikut perintahnya
Jika Anda ingin menggunakan php versi 7.2 silakan aktifkan terlebih dahulu paket
manager untuk php 7.2 berikut perintahnya
Jika Anda ingin menggunakan php versi 7.3 silakan aktifkan terlebih dahulu paket
manager untuk php 7.3 berikut perintahnya
Penulis disini akan menginstall php versi 7.0 berikut hasil aktivasi paket manager untuk
php 7.0
[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 .
[root@sinau html]#
[root@sinau html]# cd /var/www/html/
[root@sinau html]# vim info.php
<?php
phpinfo();
?>
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
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.
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
Selengkapnya : https://www.mysql.com/
- Oracle Database
Selengkapnya : https://www.oracle.com/database/
Selengkapnya : https://www.postgresql.org/
- MongoDB
Selengkapnya : https://www.mongodb.com/
- CouchDB
Selengkapnya : http://couchdb.apache.org/
- Redis
Selengkapnya : https://redis.io/
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.
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
[root@sinau ~]#
[root@sinau ~]# vim /etc/yum.repos.d/MariaDB.repo
Jika sudah silakan simpan file repo mariadb diatas. Berikutnya, menginstall database
MariaDB dengan cara menjalankan perintah
Jika sebelumnya kita telah berhasil menginstall database mariadb selanjutnya marilah
kita konfigurasi database dengan cara menjalankan perintah berikut
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.
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
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.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
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
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:
Untuk melihat list database yang udah kita buat dapat menggunakan perintah
Untuk melihat isi dari table yang sudah dibuat gunakan perintah
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
Jika Anda ingin memberikan permission khusus ke akun pengguna melalui jenis
database tertentu gunakan perintah
Untuk keluar dari database Mariadb tekan tombol ctrl + shift + d atau ketikan perintah exit
seperti berikut
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 ~]#
[root@sinau ~]# systemctl set-environment MYSQLD_OPTS="--skip-grant-
tables"
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]# systemctl status mariadb
Silakan masuk ke mysql dengan menggunakan perintah use dan silakan memperbaharui
password root Anda seperti berikut ini
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
Selanjutnya silakan stop dan kembalikan ke pengaturan semula dan start kembali
mariadb seperti berikut
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
MariaDB [(none)]>
MariaDB [(none)]> exit
Bye
[root@sinau ~]#
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).
[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:
[root@sinau ~]#
[root@sinau ~]# mysql -u root -p namadatabaseku < backup-database-
mariadb.sql
Enter password: Isikan Password root database Anda
[root@sinau ~]#
phpMyAdmin adalah perangkat lunak bebas (open source) yang ditulis dalam bahasa
pemrograman PHP yang digunakan untuk menangani administrasi MySQL melalui web
browser.
Kali ini penulis akan menginstall phpMyAdmin menggunakan web server apache.
Sebelum itu pastikan Anda telah menambahkan repository epel jika belum silakan
tambahkan perintah berikut
Jika sudah, silakan simpan file phpMyAdmin lalu melakukan reload atau restart terhadap
web server apache dengan cara menjalankan perintah berikut
Jika sudah, silakan akses IP VPS atau domain Anda dengan /phpmyadmin seperti pada
gambar dibawah ini
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?
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.
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.
Berikut ini langkah - langkah instalasi dan konfigurasi database Master Slave
menggunakan MariaDB:
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
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
Pada baris berikut, silakan isikan password root database mariadb yang ingin Anda
gunakan
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Jika sudah silakan simpan konfigurasi di atas dan melakukan restart terhadap service
mariadb Anda dengan menjalankan perintah
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
MariaDB [(none)]>
MariaDB [(none)]>
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected, 1 warning (0.000 sec)
Keterangan:
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
Mengirimkan file cadangan/backup hasil dump database master yang telah dilakukan
sebelumnya ke VPS 2 database Slave dengan menggunakan perintah scp seperti berikut
Sampai disini instalasi dan konfigurasi database untuk master telah selesai.
Untuk instalasi database slave disini sama dengan instalasi database master, untuk
database mariadb-nya menggunakan versi 10.3.
Jika sudah selanjutnya silakan install mariadb server dengan cara menjalankan perintah
berikut:
Silakan tunggu proses instalasi sampai selesai, jika sudah silakan start mariadb dan
pastikan mariadb Anda telah running dengan cara menggunakan perintah
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
Jika sudah silakan simpan konfigurasi diatas dan silakan melakukan restart terhadap
service database slave Anda dengan cara menjalankan perintah
[root@srv-slave ~]#
[root@srv-slave ~]# mysql -u root -p < backupdatabasemaster.sql
Enter password: Isikan password database Anda
[root@srv-slave ~]#
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)]>
Jika sudah, silakan lihat status slave, pastikan telah terhubung/sinkron antara VPS
Master dengan VPS Slave seperti berikut untuk hasilnya
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
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
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.
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 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 merupakan program atau aplikasi di sisi mail client yang dapat digunakan
pengguna untuk membaca, mengedit, menulis dan mengirim email.
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).
Merupakan sebuah record mail yang digunakan untuk memvalidasi email yg didesain
untuk mencegah spam dengan cara mendeteksi spoofing, dengan memverifikasi
alamat IP pengirim.
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
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.
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
Silakan tunggu proses update sampai selesai. Jika sudah instalasi postfix di CentOS
dengan cara menjalankan perintah
Silakan tunggu proses instalasi sampai selesai, jika sudah silakan start dan enable
service postfix supaya service tetap berjalan (running) apabila VPS dilakukan
reboot/restart.
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
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
Silakan hapus tanda (#) pada line 75 dan ubah menjadi mail dari domain Anda
(mail.hamim.web.id).
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
message_size_limit = 10485760
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
Jika sudah silakan simpan konfigurasi dovecot.conf tersebut. Selanjutnya, silakan buka
file 10-auth.conf yang berada di /etc/dovecot/conf.d/
Hapus tanda (#) pada line 96 -98 dan menambahkan user serta group untuk postfix
seperti berikut
Jika sudah silakan simpan konfigurasi 10-ssl.conf tersebut dan silakan restart service
dovecot dengan menggunakan perintah
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.
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.
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
Regards,
Nur Hamim
.
quit
+OK Logging out.
Connection closed by foreign host.
[root@sinau ~]#
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.
Klik pada menu Local Folders » Email » Isikan Detail Informasi dari email Anda »
Continue, seperti berikut, harap pengisian alamat email dan password Anda telah benar:
Selanjutnya akan muncul peringatan, silakan centang dan Klik pada menu Done seperti
pada gambar dibawah ini:
Untuk melihat hasil pengiriman silakan masuk ke menu Sent pada akun email
user1@hamim.web.id seperti berikut
Silakan buka kembali mozilla thunderbird Anda hasilnya akan ada email masuk dari gmail
seperti berikut
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/
Berikutnya, silakan login ke VPS Anda masing - masing dan silakan melakukan
pembaruan atau update sistem operasi CentOS 7 Anda dengan cara menjalankan
perintah berikut:
Jika sudah, berikutnya unduh iRedmail klik disini, dan jalankan perintah wget seperti
berikut
Jika sudah silakan ekstrak file iRedmail tersebut menggunakan perintah tar xjf seperti
berikut ini
[root@srv-iRedmail ~]# ls
iRedMail-0.9.9.tar.bz2
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
Berikutnya, Anda diminta untuk memilih database yang ingin Anda gunakan terdapat
banyak pemilihan mulai dari MariaDB, PostgreSQL dan OpenLDAP
Berikutnya, Anda diminta untuk mengisikan nama domain yang ingin Anda gunakan
Silakan memilih komponen yang ingin Anda gunakan, disini penulis memilih semuanya
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/
*
Untuk membuat user baru silakan klik pada menu Add » User
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
Jika dikemudian hari Anda ingin menambahkan domain baru dapat dilakukan dengan
cara pindah ke menu Domains and Accounts lalu klik menu + Add domain
Bila dilihat di menu Domains and Account saat ini sudah terdapat 2 domain 1 yang baru
saja kita tambahkan seperti berikut:
Selain itu pada mail server iRedmail ini sudah tersedia mail SOGO berikut link untuk login
ke SOGO:
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
Bila Anda ingin menggunakan Let's Encrypt Anda dapat mengikuti tautan berikut:
Request a free cert from Let's Encrypt
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.
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
Menambahkan IP VPS Anda beserta hostname Anda tersebut ke hosts seperti berikut
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
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
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
[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.
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:
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 login ke zimbra mail client Anda dapat dilakukan dengan cara mengakses
https://mail.hamim.web.id tanpa menggunakan port seperti berikut
SSL sendiri terdapat banyak pilihan mulai dari yang open source (free) dan yang
berbayar.
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
Pada menu berikut, silakan mengisikan alamat email Anda, biasanya alamat email ini
digunakan untuk notifikasi renew SSL Anda seperti berikut
Selain itu Anda diminta untuk membaca ketentuan dari lets encrypt, jika Anda
menyetujuinya silakan ketikan huruf A
(A)gree/(C)ancel: A
(Y)es/(N)o: Y
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:
[root@mail letsencrypt]#
[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]#
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
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
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
Berikut hasil dari penambahan PTR/rDNS record untuk kebutuhan 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
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
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.
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
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
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.
Silakan akses VPS Anda masing - masing, jika sudah selanjutnya melakukan
pembaharuan sistem operasi CentOS 7 Anda dengan cara menjalankan perintah
Silakan tunggu proses update sampai selesai, berikutnya memasang repository epel
dengan cara menjalankan perintah berikut
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
Namun jika Anda ingin menggunakan php versi 7.1 Anda dapat menggunakan perintah
berikut
Jika Anda ingin menggunakan php versi 7.2 silakan menggunakan perintah berikut
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.
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 ~]#
[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
[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
[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
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
[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
[root@hamim-sinau wordpress]#
[root@hamim-sinau wordpress]# cd /etc/httpd/conf.d/
[root@hamim-sinau conf.d]# vim wordpress.hamim.web.id.conf
<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
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
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
Jika sudah langkah berikutnya yaitu menginstall beberapa module python2 yang
dibutuhkan oleh cerbort, berikut perintahnya
Apabila proses instalasi sudah selesai, berikutnya Anda dapat memasang ssl terhadap
domain atau subdomain Anda dengan cara menjalankan perintah berikut
Pada pemilihan apakah Anda ingin melakukan redirect dari http ke https silakan pilih
nomor 2 , detailnya seperti pada gambar dibawah ini.
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:
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
[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
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
<VirtualHost *:80>
ServerName opencart.hamim.web.id
Simpan konfigurasi di atas dan silakan restart service apache beserta mariadb dengan
cara menjalankan perintah
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
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
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
[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.
Anda dapat mengeksplorasi lebih dalam mengenai opencart secara mandiri jika Anda
ingin menekuni opencart untuk kebutuhan website e-commerce Anda.
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
Silakan tunggu sampai proses update selesai, jika sudah berikutnya memasang service
wget beserta unzip untuk kebutuhan instalasi prestashop dengan cara menjalankan
perintah berikut
Selanjutnya menambahkan repository remi untuk kebutuhan instalasi php versi 7, berikut
perintahnya
Apabila sudah, selanjutnya Anda dapat menginstall module - module php yang
dibutuhkan oleh prestashop diantaranya sebagai berikut
Berikutnya Anda dapat menginstall web server. Disini penulis menggunakan web server
apache, silakan jalankan perintah berikut untuk menginstall web server apache
Jika sudah silakan start dan enable service apache agar pada saat VPS mengalami
reboot/restart service httpd akan otomatis running, berikut perintahnya
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 ~]#
[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
[root@hamim-sinau ~]#
[root@hamim-sinau ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
[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’
[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
<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]#
Pada gambar dibawah ini merupakan keterangan mengenai lisensi yang digunakan oleh
prestashop, silakan Next untuk melanjutkannya
Apabila sudah silakan refresh dan Next untuk melanjutkannya ke tahapan selanjutnya
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
[root@hamim-sinau prestashop]#
[root@hamim-sinau prestashop]# rm -rf install/
[root@hamim-sinau prestashop]#
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.
Langkah pertama yang harus dilakukan yaitu melakukan pembaharuan sistem CentOS
7 dengan cara menjalankan perintah
Silakan tunggu proses update sampai selesai, jika sudah silakan memasang repository
epel dengan cara menjalankan perintah berikut
Apabila repository epel telah terinstall, langkah selanjutnya menginstall web server nginx
dengan cara menjalankan perintah
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
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 ~]#
[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
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"
Langkah berikutnya membuat direktori session untuk php serta membuat direktori socket
untuk php-fpm dan pastikan ownernya menggunakan nginx seperti berikut
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
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
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 ~]#
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 ~]#
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.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Disallow root login remotely? (Press y|Y for Yes, any other key for No)
: y
Success.
Remove test database and access to it? (Press y|Y for Yes, any other key
for No) : Y
- Dropping test database...
Success.
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.
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights
reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql> exit
Bye
[root@magento ~]#
[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
[root@magento www]#
[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 magento2]#
[root@magento magento2]# cd /etc/nginx/conf.d/
[root@magento conf.d]# vim magento.conf
upstream fastcgi_backend {
server unix:/run/php/php-fpm.sock;
}
server {
listen 80;
Jika sudah pastikan tidak tidak ada konfigurasi nginx yang tidak sesuai/salah dengan
cara menjalankan perintah nginx -t dan silakan restart nginx seperti berikut
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@ \
[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
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
Silakan login dengan credential yang telah dibuat sebelumnya jika berhasil maka akan
seperti berikut ini
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]#
Dan hasilnya sekarang sudah tidak terdapat warning kembali terhadap magento 2.1
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
Silakan tunggu proses update sampai selesai, jika sudah silakan menambahkan repo
epel dengan cara menjalankan perintah berikut
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 ~]#
[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
<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
</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
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…
Jika sudah silakan akses database Anda dan membuat database untuk moodle Anda,
seperti berikut ini
[root@hamimaja ~]#
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
MariaDB [(none)]>
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)]>
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
100%[==================================================================
===================>] 46.044.918 1,16MB/s in 39s
[root@hamimaja ~]#
[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
Pada gambar diatas silakan memilih database yang ingin Anda gunakan disini penulis
menggunakan database Mariadb, silakan klik Next 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
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.
Langkah pertama yang harus dilakukan yaitu melakukan update pada sistem operasi
CentOS Anda dengan cara menjalankan berikut:
Silakan tunggu proses update sampai selesai, jika sudah berikutnya memasang
repository epel serta memasang service - service atau utiltias yang dibutuhkan oleh
nextcloud sebagai berikut:
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.
[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
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
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
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
Apabila sudah silakan mengunduh nextcloud, untuk unduh nextcloud dapat dilakukan
dengan menggunakan perintah wget seperti berikut ini
100%[==================================================================
==============================>] 79.477.367 3,86MB/s in 20s
[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
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
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
<VirtualHost *:80>
<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
Jika sudah silakan akses subdomain atau IP VPS yang telah Anda daftarkan pada Virtual
Host sebelumnya, berikut hasilnya.
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 ~]#
[root@sinau ~]# yum-config-manager --enable rhui-REGION-rhel-server-
extras rhui-REGION-rhel-server-optional
Loaded plugins: fastestmirror
[root@sinau ~]#
Jika sudah silakan menginstall SSL let's encrypt dengan cara menjalankan perintah
berikut:
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.
2. Positive List: Menutup semua port dan buka port tertentu yang ingin digunakan:
Selanjutnya kita akan membahas beberapa jenis firewall yang sering digunakan.
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.
2. Tabel NAT
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:
- 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.
- 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 ini beberapa parameter dasar yang digunakan untuk membuat sebuah
aturan/rule pada iptables
iptables -F
# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp
dpt:ssh
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.
Bila output yang dihasilkan yaitu success menandakan reload firewalld telah berhasil.
Di firewalld terdapat zone, untuk melihat zone silakan jalankan perintah berikut
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
Bila Anda ingin melihat detail info dari zone secara spesifik, misalnya ingin melihat
interface dari VPS Anda silakan jalankan perintah
Jika Anda ingin melihat service apa saja yang listen secara spesifik silakan jalankan
perintah
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
Berikutnya, untuk menambahkan service misalnya service http silakan jalankan perintah
Untuk menambahkan port misalnya ingin menambahkan port khusus contoh port 2019
silakan jalankan perintah berikut
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
Jika sudah silakan reload dan lihat hasilnya service http sudah tidak berada di list zone
firewalld, seperti berikut
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.
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.
Pada gambar diatas terdapat seorang attacker, ibaratkan saja si attacker ingin
melakukan brute force password ssh VPS.
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
Silakan enable service dan start fail2ban, serta pastikan service fail2ban running,berikut
perintahnya
Secara default direktori fail2ban berada di /etc/fail2ban/ dan konfigurasi default yang
sudah disediakan fail2ban bernama jail.conf.
1. Ignore IP
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) .
Bantime: -1
Findtime: 200
maxretry: 3
Silakan buka file jail.local Anda dan silakan sesuaikan konfigurasinya seperti pada
gambar berikut
Jika sudah silakan simpan konfigurasi jail.local dan silakan restart fail2ban dengan cara
menggunakan perintah
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
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.
Buka file jail.local secara default fail2ban di CentOS untuk jail nginx sudah ada Anda
dapat enabled = true semua service nginx seperti berikut
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
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
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.
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
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
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.
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:
Selengkapnya mengenai fitur yang berada di monitorix dapat dilihat melalui tautan
berikut: Features Monitorix .
Pertama silakan akses server dan melakukan pembaharuan sistem operasi CentOS 7
Anda dengan cara menjalankan perintah
Silakan tunggu sampai proses update selesai, jika sudah selanjutnya memasang
repository epel, dengan cara menjalankan perintah
Silakan tunggu prosesnya sampai selesai, jika sudah selanjutnya Anda dapat menginstall
monitorix dengan cara menjalankan satu baris perintah berikut
Proses instalasi monitorix membutuhkan waktu silakan tunggu sampai selesai apabila
monitorix telah berhasil terinstall Anda dapat melihat versi monitorix dengan cara
menjalankan perintah
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
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.
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.
Pertama silakan akses server dan melakukan update terhadap sistem operasi CentOS 7
Anda dengan cara menjalankan perintah
Silakan tunggu proses update sampai selesai, jika sudah selanjutnya menambahkan
repository epel dengan cara menjalankan perintah
Tunggu proses instalasi epel sampai selesai, berikutnya memasang atau install
webserver disini webserver yang digunakan yaitu Apache, silakan jalankan perintah
berikut
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
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
[root@sinau ~]#
[root@sinau ~]# systemctl enable mariadb
[root@sinau ~]# systemctl start mariadb
[root@sinau ~]# systemctl status mariadb
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
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
[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
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 ~]#
Cari dan sesuaikan nama database, username dan password database sebagai berikut
Keterangan:
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
Silakan simpan konfigurasi dan melakukan restart service apache dengan cara
menjalankan perintah
Jika sudah silakan melakukan konfigurasi zabbix dengan cara mengakses domain atau
IP_server/zabbix melalui browser Anda masing - masing seperti berikut ini
Pada gambar diatas merupakan pengecekan module dan extension php yang dibutuhkan
oleh zabbix pastikan statusnya OK , Next step untuk melanjutkan ke proses berikutnya
Pada gambar diatas merupakan detail informasi pada server zabbix Anda, Next step
untuk melakukan proses instalasi dan konfigurasi zabbix
Username: admin
Password: zabbix
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
Selain itu Anda dapat menentukan permission dari user tersebut, terdapat 3 pemilihan
permission user pada zabbix diantaranya
1. Zabbix User
Permission ini user dapat dijadikan sebagai admin dari server monitoring.
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
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:
[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
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
Server=117.53.xx.xx
ServerActive=117.53.xx.xx
[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
Selanjutnya pindah ke menu Templates disini Anda dapat menentukan apa saja yang
ingin Anda monitoring untuk server client tersebut.
Anda dapat memilih template sesuai dengan keinginan dan kebutuhan Anda masing -
masing.
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
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
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
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.
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
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.
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 ~]#
Mengunduh paket wget dan curl yang nantinya dapat digunakan untuk unduh aplikasi
atau paket yang dibutuhkan untuk instalasi WHM/cPanel, berikut perintahnya
Jika sudah, silakan unduh dan instal control panel WHM/cPanel dengan cara
menjalankan perintah berikut
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
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
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.
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.
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
Mengunduh paket wget dan curl yang nantinya dapat digunakan untuk melakukan
mengunduh dan install control panel Plesk Panel Anda, berikut perintahnya
Jika sudah, silakan unduh aplikasi control plesk panel serta melakukan proses instalasi
plesk dengan cara menjalankan perintah sebagai berikut :
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
Berikutnya Anda diminta untuk mengisikan credential detail mulai dari Contact Name,
Email, dan License control panel Plesk Panel.
Silakan tunggu proses setup control panel Plesk Panel sampai selesai. Jika sudah maka
berikut tampilan dari control panel Plesk 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 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:
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
Mengunduh aplikasi CWP dengan menggunakan paket wget yang telah kita install
sebelumnya
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: