Membuat SSH Banner dan System Dashboard Linux Profesional

Pada tutorial ini kita akan membuat tampilan SSH server menjadi lebih profesional seperti layanan cloud atau hosting provider. Saat user melakukan login SSH, akan muncul:

  • Banner keamanan sebelum login
  • Informasi server setelah berhasil login
  • Status memory, disk, uptime, dan CPU load
  • Link panduan dan client area
 

Preview Hasil

 ☁️  Indonetsoft  |  System Dashboard
 ========================================================
 Hostname     : dbmaria
 OS Version   : Ubuntu 22.04.5 LTS
 Kernel       : 5.15.0-174-generic
 IP Address   : 10.124.110.254
 --------------------------------------------------------
 Uptime       : 2 minutes
 ========================================================
 CPU Load     : 0.25, 0.23, 0.09
 Memory       : [||.............] 15% (0.3 G / 1.9 G)
 Disk Usage   : [|..............] 9% (1.7G / 20G)
 ========================================================
 💡 Panduan     : https://indonetsoft.com/panduan
 💡 Client Area : https://office.indonetsoft.com
 ========================================================

1. Membuat Banner SSH Sebelum Login

Banner SSH digunakan untuk menampilkan informasi atau peringatan keamanan sebelum user memasukkan password login.

Banner ini sangat umum digunakan pada server production, VPS perusahaan, hosting provider, dan infrastruktur enterprise.

Edit File Banner

sudo nano /etc/issue.net

Masukkan isi berikut:

  ___           _                  _              __ _
 |_ _|_ __   __| | ___  _ __   ___| |_ ___  ___ / _| |_
  | || '_ \ / _` |/ _ \| '_ \ / _ \ __/ __|/ _ \ |_| __|
  | || | | | (_| | (_) | | | |  __/ |_\__ \  __/  _| |_
 |___|_| |_|\__,_|\___/|_| |_|\___|\__|___/\___|_|  \__|

                 >>> AUTHORIZED ACCESS ONLY <<<

 Unauthorized access is prohibited.
 Activity may be monitored and logged.

 https://office.indonetsoft.com
 https://indonetsoft.com/panduan

Aktifkan Banner SSH

sudo nano /etc/ssh/sshd_config

Cari atau tambahkan baris berikut:

Banner /etc/issue.net

Restart Service SSH

sudo systemctl restart ssh

2. Membuat Dashboard Setelah Login SSH

Setelah user berhasil login, kita akan menampilkan dashboard system monitoring sederhana menggunakan Bash script.

Buat File Dashboard

sudo nano /etc/profile.d/indonetsoft-dashboard.sh

Isi dengan script berikut:

#!/bin/bash

# Skip non-interactive shell
[[ $- != *i* ]] && return

HOSTNAME=$(hostname)
OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
KERNEL=$(uname -r)
IP=$(hostname -I | awk '{print $1}')
UPTIME=$(uptime -p | sed 's/up //')
LOAD=$(cat /proc/loadavg | awk '{print $1", "$2", "$3}')

# Memory
MEM_USED=$(free -h | awk '/Mem:/ {print $3}')
MEM_TOTAL=$(free -h | awk '/Mem:/ {print $2}')
MEM_PERCENT=$(free | awk '/Mem:/ {printf("%.0f"), $3/$2 * 100}')

# Disk
DISK_USED=$(df -h / | awk 'NR==2 {print $3}')
DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}')
DISK_PERCENT=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')

# Progress Bar Function
bar() {
    local percent=$1
    local filled=$((percent / 7))
    local empty=$((15 - filled))

    printf "["
    printf "%0.s|" $(seq 1 $filled)
    printf "%0.s." $(seq 1 $empty)
    printf "]"
}

clear

echo " ☁️  Indonetsoft  |  System Dashboard"
echo " ========================================================"
printf " %-13s: %s\n" "Hostname" "$HOSTNAME"
printf " %-13s: %s\n" "OS Version" "$OS"
printf " %-13s: %s\n" "Kernel" "$KERNEL"
printf " %-13s: %s\n" "IP Address" "$IP"
echo " --------------------------------------------------------"
printf " %-13s: %s\n" "Uptime" "$UPTIME"
echo " ========================================================"
printf " %-13s: %s\n" "CPU Load" "$LOAD"

printf " %-13s: " "Memory"
bar $MEM_PERCENT
printf " %s%% (%s / %s)\n" "$MEM_PERCENT" "$MEM_USED" "$MEM_TOTAL"

printf " %-13s: " "Disk Usage"
bar $DISK_PERCENT
printf " %s%% (%s / %s)\n" "$DISK_PERCENT" "$DISK_USED" "$DISK_TOTAL"

echo " ========================================================"
echo " 💡 Panduan     : https://indonetsoft.com/panduan"
echo " 💡 Client Area : https://office.indonetsoft.com"
echo " ========================================================"
echo

Berikan Permission Execute

sudo chmod +x /etc/profile.d/indonetsoft-dashboard.sh

3. Testing Login SSH

Setelah semua selesai, silakan logout lalu login kembali menggunakan SSH:

ssh user@ip-server

Jika berhasil, maka banner keamanan akan tampil sebelum password dimasukkan dan dashboard server akan muncul setelah login berhasil.


Tips Tambahan

Tambahkan Monitoring

  • Status MariaDB
  • Status NGINX
  • Docker Container
  • Public IP
  • CPU Temperature

Best Practice

  • Jangan tampilkan informasi sensitif
  • Gunakan warning legal
  • Batasi informasi public
  • Gunakan SSH key login
  • Aktifkan Fail2Ban

The power of documents

Kami sajikan dengan bahasa yang mudah dengan disertai command line yang bisa di copy-paste sehingga memudahkan untuk melakukan modifikasi command line