Prolog
Akhirnya nyobain juga Rocky Linux untuk mengatasi kebimbangan dan ternyata ya sama aja, HAHAHA. Ya ini kan dari segi perspectif newbie, hehehe. Sebelumnya sih mau buat catatan or postingan post install untuk CentOS tapi berhubung sekarang dah ganti, ya udah pakai yang di Rocky Linux aja deh.
Kalau install OS pastinya mudah, ya begitu² aja sih next next next aja, tiba² jadi aja, tiba² selesai, xixixi. Yang bingung itu justru sudah selesai install OS Linux, ngapain lagi yah? Apaan coba yang kudu di install. Tapi, pastinya awal banget ya harus update, dengan perintah yum update.
Buat User Non-Root Sebagai Administrator
Disarankan dan sangat untuk tidak mengakses server sebagai root, karena kalau dah jebol passwordnya root bisa berabe, jadinya, gak usah dibahas lagi yah password harus berapa karakter? Pokoknya sesusah mungkin lah. Dan bagi yang belum user pas waktu proses installasi bisa menggunakan perintah berikut:
adduser kakanda
passwd kakanda
usermod -aG wheel kakanda
Setelah itu untuk login ke user yang baru kita buat bisa dengan perintah:
su - kakanda
Setelah itu lakukan test dengan perintah sudo ls -la /root atau dengan sudo yum update.
Untuk mengkatifkan mode auto completion untuk mode user, perlu install tambahan, tidak seperti root yang selalu aktif mode auto completionnya.
sudo yum install bash-completion
Waktu
Yang paling penting adalah setting waktu. Kalau gak sempat setting waktu pas installasi atau memang menggunakan default template vm dari cloud, bisa menggunakan perintah berikut.
sudo timedatectl
sudo timedatectl list-timezones
sudo timedatectl set-timezone Asia/Jakarta
Ditambahkan pada Sabtu, 3 Rabi’ul Akhir 1444H / 29 Oktober 2022 05.56
Dan kita akan menambahkan NTP Server dari lokasi terdekat dengan server, silakan lihat di ntppool.org
sudo vim /etc/chrony.conf
Nanti di comment saja pool 2.rhel.pool.ntp.org iburst dan kemudian tambahkan NTP server terdekat.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
server 0.id.pool.ntp.org
server 1.id.pool.ntp.org
server 2.id.pool.ntp.org
server 3.id.pool.ntp.org
Kemudian restart service chronyd, dengan perintah
sudo systemctl restart chronyd
Hostname
Oh iya, bagi yang kelupaan untuk menyiapkan hostname server pada saat proses install Rocky Linux yang seharusnya adalah ini (nama hostname server) dipersiapkan sebelumnya, tapi kadang ada yang masih bingung tapi tetap lanjut proses install server, ya berikut cara rubahnya:
sudo hostnamectl set-hostname data.darto.id
Vnstat
Kalau saya terkadang perlu juga mengetahui berapa total bandwidth yang sudah terpakai. Vnstat bisa menampilkannya dalam per-jam, hari, pekan, bulan dan tahun.
sudo yum install epel-release
sudo yum update
sudo yum install vnstat
sudo systemctl enable vnstat
sudo systemctl start vnstat
Contoh output dari vnstat
❯ vnstat
Database updated: Fri Dec 10 11:06:28 2021
ens160 since 11/05/2021
rx: 491.96 GiB tx: 3.05 TiB total: 3.53 TiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Nov '21 342.78 GiB | 1.96 TiB | 2.29 TiB | 7.60 Mbit/s
Dec '21 149.18 GiB | 1.09 TiB | 1.24 TiB | 13.45 Mbit/s
------------------------+-------------+-------------+---------------
estimated 504.25 GiB | 3.70 TiB | 4.19 TiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 16.48 GiB | 120.83 GiB | 137.31 GiB | 13.33 Mbit/s
today 7.35 GiB | 60.33 GiB | 67.68 GiB | 14.20 Mbit/s
------------------------+-------------+-------------+---------------
estimated 15.90 GiB | 130.44 GiB | 146.34 GiB |
Untuk melihat per-jam perintahnya vnstat -h. Per-hari perintahnya vnstat -d, per-pekan perintahnya vnstat -w, per-bulan perintahnya vnstat -m, dan per-tahun perintahnya vnstat -y. Tapi, kalau awal install terus dicoba perintahnya ya bakalan kosong, walaupun servernya sudah diinstall puluhan tahun yang lalu, iyaaaaa kaaannn?
Vim
sudo yum install vim
Kemudian buat profile setting untuk vim dengan perintah vim ~/.vimrc dengan isi
if has('filetype')
filetype indent plugin on
endif
if has('syntax')
syntax on
endif
set autoindent
set number
Nanti diupdate lagi deh .vimrc nya sesuai dengan kebutuhan yang akan datang, hehehe. إِنْ شَاءَ اللّٰهُ
Sekalian deh nitip catatan tuk copy paste dipostingan ini biar nanti gak bolak balik nyari di internet, hehehe.
Copy
yy - meng-copy satu baris kursor berada 3yy - meng-copy 3 baris kebawah dari kursor berada y$ - meng-copy dari kursor berada sampai baris terakhir y^ - meng-copy dari kursor berada sampai baris pertama
Delete
dd - hapus satu baris kursor berada 3dd - hapus 3 baris kebawah dari kursor berada d$ - hapus dari kursor berada sampai baris terakhir
Paste
p (lowercase) - paste kebawah dari kursor berada P (uppercase / capslock) - paste keatas dari kursor berada
Oh-My-Bash
Nah, ini sih biar menarik aja, hehehe, biar gak jemu² amat pas waktu ngoprek server melalui Terminal.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
Kalau saya sih biasanya langsung rubah themenya menjadi powerline.
vim ~/.bashrc
Kemudian pada OSH-THEME=”font” dirubah menjadi OSH-THEME=”powerline”.
Dan begitu juga untuk root saya gunakan oh-my-bash, tapi themenya menggunakan powerline-multiline.
su -
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
vim .bashrc
Saya memang sengaja untuk install oh-my-bash nya disetiap user, walaupun itu root.
Screen
Mmmm agak bingung juga menjelaskan screen di Linux itu apa kedalam bahasa Indonesia. Ya kalau arti secara harfiahnya ya screen itu adalah layar. Pakai screen itu kita bisa bikin layar dan kemudian bisa bikin layar lagi didalamnya. Layarnya pun bisa displit dan bisa dimacem-macemin, tapi tetep aja yah gak bisa di celup trus dijilat.
Screen menurut saya fungsinya sangat keren, apalagi kalau dipakai tuk monitoring sebuah services or task. Hanya saja kekurangannya adalah perintah² yang kita lakukan di screen tidak tersimpan kedalam history.
sudo yum install screen
Berikut task yang biasa saya lakukan menggunakan screen.
screen -S nama_session untuk memulai sebuah screen. Dan berikut perintah² or shortcut saat menggunakan screen.
ctrl + a + S (capslock) atau ctrl + a ketik :split untuk membuat layar terbagi secara horizontal ctrl + a + | atau ctrl + a ketik :split -v untuk membuat layar terbagi secara vertikal ctrl + a + tab atau ctrl + a ketik :focus untuk berpindah cursor yang aktif diantara layar yang sudah terbagi ctrl + a + c atau ctrl + a ketik :screen untuk mengaktifkan layar baru pada layar yang sudah terbagi ctrl + a + X (capslock) atau ctrl + a ketik :remove untuk mematikan layar dimana cursor berada ctrl + a + Q (capslock) atau ctrl + a ketik :only untuk menampilkan satu layar dan menyembunyikan layar lainnya dimana layar yang akan tampil adalah layar yang pada saat itu cursornya sedang aktif ctrl + a + nomor-layar, contoh ctrl + a + 0 atau ctrl + a + 1 atau ctrl + a + 2 dan seterusnya yang berfungsi untuk menampilkan kembali layar yang tersembunyi ctrl + a + " untuk menampilkan list layar yang sedang aktif dan berpindah ke layar yang ada didalam list ctrl + a kemudian k kemudian y untuk menutup atau mematikan layar yang sedang aktif ctrl + a + d untuk keluar dari screen tetapi membiarkan semua layar tetap aktif berjalan ctrl + a ketik :quit untuk mematikan atau berhenti dari screen. Mematikan semua layar dan kemudian exit dari screen.
Untuk melihat ada screen yang aktif atau tidak bisa menggunakan perintah screen -ls dan kemudian kita bisa lanjut dengan perintah screen -r nama_session atau dengan nomor session ID screen yang aktif tersebut screen -r no-session-ID. Dan untuk mematikan screen tanpa harus masuk ke session banyak cara sebetulnya, tinggal pilih menggunakan cara yang diinginkan yang mana.
pidof screen | xargs kill
screen -XS <nomor-session-ID> quit
pkill screen
kill <nomor-session-ID>
Ditambahkan pada Jum’at, 18 Syawwal 1443H / 20 Mei 2022
Untuk menggunakan Screen secara mudahnya seperti ini:
- Dimulai dengan membuat session,
screen -S nama_session
- Untuk detach dengan menekan tombol,
{ ctrl + a } + { ctrl + d }
- Jika ingin masuk ke session screen yang sudah kita detach, gunakan perintah:
screen -r nama_session
- Jika diperhatikan dengan seksama, screen tidak mendukung scrolling, trik agar bisa melakukan scrolling bisa dengan cara kita masuk ke copy mode yaitu dengan menekan tombol
{ ctrl + a } + Esc
dan silakan scrolling ke command yang ingin dilihat kembali. Dan untuk keluar dari copy mode ini tekan tombolEsc
.
Firewall
Kalau ada yang ingin gunakan selain FirewallD silakan aja, kalau mau install dan melihat beberapa perintah yang bisa dilakukan oleh firewall-cmd bisa lihat dibawah:
yum install firewalld
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=500/udp
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --remove-port=123/tcp
firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --reload
firewall-cmd --list-all
SSH Hardening Security (Pengetatan Keamanan SSH)
Dan SSH hardening ini sebetulnya adalah hal yang paling penting dan beberapa metode untuk pengetatan keamanan sebuah atau banyak server.
Cara Ke-1: Merubah Port SSH
sudo vim /etc/ssh/sshd_config
Dan kemudian rubah pada setting #Port 22 dengan port yang diinginkan. Misalkan menjadi 1717, tapi dihapus terlebih dahulu yah pagar or hashtagnya.
Port 1717
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Cara Ke-2: Jumper Host
Mmmm jumper host tuh mmmm ya misalkan kita mempunyai 10 servers dalam 1 network, kemudian kita membuat jaringan local untuk 10 server tersebut kemudian merubah ListenAddress SSH 9 server ke IP local, misal server 2-9 dan nanti kita melakukan remotenya ke server 1 yang tidak kita rubah ListenAddress nya. Dan kemudian dari server 1 itu kita melakukan remote lagi ke server 2-9 melalui jaringan local.

Cara Ke-3: Passwordless dan sshd_config
Yang dimaksud dengan passwordless ya pastinya adalah kita login ke server melalui protocol SSH tapi tanpa harus memasukkan password. Jadi, ketika kita misalkan ingin remote ke salah satu server kita melalui SSH yang biasanya menggetikkan perintah di Terminal ssh superman@10.10.10.100, tidak akan ditanya lagi identitasnya, tapi akan langsung masuk ke prompt.
Langkah Pertama: Di Komputer Anda Yang Akan digunakan Untuk Melakukan Remote
ssh-keygen
ssh-copy-id superman@10.10.10.100
Waktu melakukan perintah ssh-keygen enter³ aja terus dan ketika melakukan perintah ssh-copy-id superman@10.10.10.100 untuk melakukan remote SSH ke server, masukkan passwordnya seperti biasa. Sewaktu melakukan perintah ssh-copy-id tidak akan masuk ke prompt server tapi hanya meng-copy identitas komputer kita yang berada di id_rsa.pub yang sudah kita buat sebelumnya melalui perintah ssh-keygen ke remote server yang akan dimuat di file authorized_keys.
Langkah Kedua: Di Remote Server
vim /etc/ssh/sshd_config
Dan kemudian lakukan perubahan sesuai keinginan atau seperti yang saya buat.
PermitRootLogin no
MaxAuthTries 3
MaxSessions 2
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
Kemudian restart service SSH
systemctl restart sshd
Dan masih banyak lagi cara² untuk proteksi OS, bisa menggunakan hosts.allow dan hosts.deny ataupun bisa menggunakan iptables dan bahkan bisa juga menggunakan firewalld yang berguna untuk membatasi siapa saja yang bisa mengakses ke server.
Ditambahkan pada Jum’at 18 Syawwal 1443H / 20 Mei 2022 6.50PM
NetStat
Program yang satu ini sangat berguna untuk melihat port yang terbuka berapa saja dan yang menjalankan aplikasi apa, untuk install menggunakan perintah:
sudo dnf install net-tools
Dan menggunakannya bisa dengan perintah netstat -tlpn
seperti yang dicontohkan dibawah ini.
❯ netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 27817/mongod
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 28129/sshd
tcp 0 0 0.0.0.0:1688 0.0.0.0:* LISTEN 1155/vlmcsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1643/master
tcp6 0 0 :::3306 :::* LISTEN 840/mysqld
tcp6 0 0 :::80 :::* LISTEN 19805/httpd
tcp6 0 0 :::22 :::* LISTEN 28129/sshd
tcp6 0 0 :::1688 :::* LISTEN 1155/vlmcsd
tcp6 0 0 ::1:25 :::* LISTEN 1643/master
Ditambahkan pada Rabu, 23 Rabi’ul Awal 1444 / 19 Oktober 2022 10.30
Neofetch
Tools ini saya tambahkan karena sepertinya berguna sebagai reminder kita pada saat login melalui terminal.
sudo dnf install neofetch
Dan untuk menambahkannya agar bisa muncul saat pertama kita login dengan mengedit file .bashrc, tinggal tambahkan saja perintah neofetch diujung perintah alias paling bawah.

Ditambahkan pada Sabtu, 26 Rabi’ul Awal 1444 / 22 Oktober 2022 05.56
Otomatis Update
Bagi yang sibuk, tentunya tidak bisa monitoring server terus menerus dan akan sangat efektif jika proses update server bisa berjalan otomatis tanpa kita manual harus update. Nah, sebetulnya, dulu saya paling anti update otomatis, apalagi di Windows, wah, pokoknya setiap proses update itu yang ada masalah, tapi di era sekarang setelah saya coba, ternyata setiap OS wajib terupdate, terlebih dengan adanya banyak serangan-serangan yang bisa mengancam server kita. OK, lanjut dengan proses setup update otomatis Rocky Linux-nya.
sudo dnf install dnf-automatic
Setelah selesai install kita konfigure agar nantinya bisa berjalan proses otomatis updatenya.
sudo vim /etc/dnf/automatic.conf
Rubah dan sesuaikan seperti berikut:
upgrade_type = default
download_updates = yes
apply_updates = yes
emit_via = motd
Sebetulnya saya mencoba agar setiap proses update kirim email, jadi, nanti di emit_via dirubah menjadi email dan kemudian dibawahnya disesuaikan dengan emailnya:
[email]
email_from = root
email_to = testing@kloningspoon.com
email_host = localhost
Nah, sebetulnya kemarin sudah begitu tapi kok belum berhasil, tapi mungkin karena belum ada update-an atau gimana, tapi nanti saya update kembali artikel ini jika sudah berhasil.
Setelah itu kita aktifkan melalui systemctl dengan cara:
sudo systemctl enable --now dnf-automatic
Dan kemudian kita update waktunya dijam berapa agar proses update otomatis berjalan:
sudo vim /etc/systemd/system/timers.target.wants/dnf-automatic.timer
Rubah disesuaikan keinginan yah, tapi kalau saya begini:
OnCalendar=*-*-* 1:00
RandomizedDelaySec=0m
Setelah itu di save dan close. OnCalendar=*-*-* 1:00 maksudnya adalah agar proses updatenya berjalan di jam 1:00 malam, kayanya sih udah pada tahu cara bacanya yah, gak perlu diterangin lagi, HAHAHA. Dan setelah itu kita akan reload dan kemudian lihat proses list timersnya.
sudo systemctl daemon-reload
sudo systemctl list-timers