Instalasi SSH Server – Ubuntu 20

Seperti janji saya pada tulisan sebelumnya yang berjudul Secure Shell (SSH). Selanjutnya saya akan menunjukkan bagaimana caranya supaya server SSH yang digunakan bisa aman dari ancaman-ancaman hacker. Dari mulai rekomendasi sampai dengan bagaimana caranya untuk hardening konfigurasi SSH servernya.

Tetapi sebelum mengamankan SSH server yang digunakan, kita perlu melakukan instalasi SSH pada server Linux. Maka dari itu, pada tutorial kali ini saya akan menunjukkan terlebih dahulu bagaimana caranya untuk melakukan instalasi SSH server, mulai dari persiapan yang harus dilakukan, instalasi SSH sampai dengan pengetesan remote login SSH server.

Walaupun sebenarnya, secara default sebagian besar sistem operasi berbasis Linux server versi terbaru sudah dilengkapi dengan SSH server, tapi tidak apa-apa saya akan tetap menunjukkan apa yang perlu dilakukan apabila server belum di install SSH, supaya bisa memahami alur & proses konfigurasi SSH server ini.

Persiapan

Konfigurasi Dasar Ubuntu Server

Sebelum melakukan instalasi SSH, perlu dilakukan konfigurasi dasar pada Ubuntu server yang digunakan. Konfigurasi dasar ini perlu dilakukan pada setiap server Linux pasca intalasi dilakukan, jadi bukan hanya di SSH server saja melainkan server-server berbasis Linux lainnya.

  • Login menggunakan user yang sudah dibuat pada saat instalasi
  • Catat IP address yang digunakan server Ubuntu (enp0s3/eth0). Untuk mendapatkan IP address yang digunakan bisa dengan cara menjalankan perintah “ip address”
  • Disini IP address DHCP yang didapatkan oleh Ubuntu server adalah 192.168.60.162
  • Pastikan IP address yang digunakan bisa terkoneksi ke internet dengan cara test ping IP Google (8.8.8.8), dengan cara menjalankan perintah “ping 8.8.8.8”

Menggunakan Repository Indonesia

Pertama-tama mengarahkan repository yang digunakan Ubuntu ke server repo yang berada di Indonesia. Penggunaan repository Indonesia ini dilatarbelakangi oleh letak server yang secara lokasi lebih dekat, jika dibandingkan dengan server repository pusat Ubuntu yang ada diluar negeri. Sehingga pengunduhan package/aplikasi bisa lebih cepat, karena seperti yang kita ketahui banyak provider internet di Indonesia yang membatasi bandwidth ke luar negeri dan menyebabkan pengunduhan data dari server luar negeri relatif lambat.

  • Masuk ke dalam direktori /etc/apt yang merupakan tempat list repository dengan perintah berikut
    # cd /etc/apt
    # ls
    apt.conf.d   preferences.d  sources.list.curtin.old  trusted.gpg.d
    auth.conf.d  sources.list   sources.list.d
  • Sebelum melakukan perubahan repository yang digunakan, lakukan backup file asli yang berisi list repository bawaan (sources.list) dengan perintah berikut
    # sudo mv sources.list sources.list.save
    (masukkan password user)
    # ls
    apt.conf.d   preferences.d            sources.list.d     trusted.gpg.d
    auth.conf.d  sources.list.curtin.old  sources.list.save
  • Buat file list repository yang baru pada direktori tersebut dengan nama (sources.list) dan edit file tersebut, dengan cara menjalankan perintah “sudo nano sources.list” atau “sudo vi sources.list“. Dan masukkan teks berikut ke dalam file tersebut
    deb http://mirror.poliwangi.ac.id/ubuntu/ focal main restricted universe multiverse
    deb http://mirror.poliwangi.ac.id/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirror.poliwangi.ac.id/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirror.poliwangi.ac.id/ubuntu/ focal-backports main restricted universe multiverse
    deb http://mirror.poliwangi.ac.id/ubuntu/ focal-proposed main restricted universe multiverse
  • Untuk pilihan repository yang ada di Indonesia sendiri sebenarnya banyak, tetapi saya pribadi biasanya menggunakan server repository yang disediakan oleh Politeknik Negeri Poliwangi (mirror.poliwangi.ac.id). Walaupun demikian, rekan-rekan juga bisa mengarahkan repository Ubuntu server ke repository Indonesia lainnya. (Baca : Repository Lokal (Indonesia) Ubuntu 20.04 LTS (Focal Fossa))
  • Selanjutnya, lakukan update & upgrade Ubuntu server. Update & upgrade akan mengacu pada package/aplikasi yang ada di server repository Indonesia. Jalankan perintah berikut untuk melakukan update list package yang terdapat di repository.
    # sudo apt-get update -y
    (masukkan password user)
  • Setelah proses update selesai, selanjutnya lakukan upgrade package-package yang ada ke versi terbaru dengan perintah berikut
    # sudo apt-get upgrade -y
    (masukkan password user)
  • Tunggu hingga proses upgrade selesai

Menyesuaikan Waktu & Zona Waktu

Hal yang tidak kalah penting adalah pengaturan waktu pada Ubuntu server. Pasca instalasi, waktu pada sistem operasi Ubuntu belum tentu sesuai, bisa saja berbeda beberapa detik ataupun beberapa menit dari waktu yang sebenarnya. Selain itu, zona waktu yang digunakan pun masih UTC.

Pengaturan ini bisa dibilang wajib karena kaitannya dengan log-log aplikasi yang ada di Ubuntu server, jika waktu pada server tidak sesuai maka waktu pada file-file log yang ada juga tidak sesuai, mengikuti waktu yang digunakan oleh server. Sedangkan log yang ada harus memiliki keterangan waktu yang valid, karena dibutuhkan untuk membuat laporan ataupun tracking error yang terjadi di aplikasi bersangkutan.

  • Cek waktu yang saat ini digunakan oleh server dengan perintah “date
  • Bisa dilihat zona waktu yang digunakan masih UTC
  • Pertama-tama kita akan pastikan waktu yang digunakan sesuai menggunakan aplikasi NTP
  • Lakukan instalasi NTP client dengan perintah berikut
    # sudo apt-get install ntpdate -y
    (masukkan password user)
  • Akses link berikut untuk melihat list server NTP yang ada di Indonesia https://www.pool.ntp.org/zone/id
  • Catat salah satu NTP server yang ada di list tersebut, misalnya “0.id.pool.ntp.org”
  • Jalankan perintah berikut untuk menyesuaikan waktu supaya mengacu ke server NTP Indonesia
    # ntpdate -q 0.id.pool.ntp.org
  • Setelah itu sesuaikan timezone yang digunakan dengan perintah berikut
    # sudo timedatectl set-timezone Asia/Jakarta
    (masukkan password user)
  • Jalankan kembali perintah “date” untuk melihat waktu yang digunakan saat ini

Instalasi SSH

  • Login menggunakan user yang sudah dibuat pada saat instalasi
  • Jalankan perintah berikut untuk melakukan update list package/aplikasi dari repository server
    # sudo apt-get update -y
    (masukkan password user)
  • Tunggu hingga proses update selesai
  • Selanjutnya, lakukan instalasi package openssh-server dengan perintah berikut
    # sudo apt-get install openssh-server -y
    (masukkan password user)
  • Tunggu hingga proses instalasi selesai
  • Jalankan perintah “systemctl status ssh” untuk melihat status service SSH server
  • Apabila status service SSH inactive, coba jalankan perintah berikut untuk mengaktifkannya
    # sudo systemctl start ssh
    # sudo systemctl enable ssh

Login Remote SSH (Linux/MacOS)

Apabila aplikasi openssh sudah di install dan service SSH sudah active, maka langkah selanjutnya adalah melakukan testing login remote ke SSH server dari SSH client. Testing yang pertama dilakukan akan menggunakan client dengan sistem operasi berbasis Unix seperti Linux & MacOS. Secara teknis untuk remote login dari Linux maupun MacOS, langkahnya kurang lebih sama. Berikut adalah langkah-langkahnya :

  • Jalankan aplikasi terminal pada sistem operasi Linux atau MacOS
  • Sebelum melakukan remote login, pastikan SSH client bisa terkoneksi ke SSH server dengan cara ping ke IP yang digunakan oleh SSH server
    # ping 192.168.60.162             
    PING 192.168.60.162 (192.168.60.162): 56 data bytes
    64 bytes from 192.168.60.162: icmp_seq=0 ttl=57 time=27.116 ms
    64 bytes from 192.168.60.162: icmp_seq=1 ttl=57 time=26.631 ms
    64 bytes from 192.168.60.162: icmp_seq=2 ttl=57 time=36.146 ms
    64 bytes from 192.168.60.162: icmp_seq=3 ttl=57 time=35.787 ms
    ^C
    --- 192.168.60.162 ping statistics ---
    4 packets transmitted, 4 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 26.631/31.420/36.146/4.552 ms
  • Jalankan perintah “ssh (nama user)@(ip server)” untuk melakukan remote login SSH
    # ssh raihan@192.168.60.162
    The authenticity of host '192.168.60.162 (192.168.60.162)' can't be established.
    ECDSA key fingerprint is SHA256:PQrZ/7le6R6oyMfDS+dAl0IcpFRVH/3H6k7ISP/HW1E.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.60.162' (ECDSA) to the list of known hosts.
    raihan@192.168.60.162's password: (masukkan password user)
    Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-26-generic x86_64)
    .....
    *** System restart required ***
    Last login: Mon Jul 27 15:51:55 2020 from 192.168.60.130
    raihan@server:~$
  • Setelah remote login SSH berhasil dilakukan, rekan-rekan bisa melakukan konfigurasi server dari SSH client tanpa harus mengakses langsung console server

Login Remote SSH (Windows)

Selanjutnya adalah melakukan testing remote login SSH server dari SSH client yang menggunakan sistem operasi berbasis Windows. Untuk melakukan remote login dengan sistem operasi Windows perlu adanya aplikasi pihak ketiga untuk melakukan koneksi SSH dari client ke server. Salah satu contoh aplikasi SSH client yang bisa dan umum sekali digunakan Windows adalah Putty.

Putty merupakan aplikasi SSH client portable yang bisa digunakan langsung tanpa instalasi terlebih dahulu, jadi cukup download Putty, jalankan aplikasinya, dan terakhir login remote ke SSH server. Berikut adalah langkah-langkah untuk remote login menggunakan aplikasi Putty :

  • Jalankan aplikasi “cmd” untuk melakukan test ping, pastikan SSH client bisa terkoneksi dengan SSH server
  • Download aplikasi Putty portable dari link berikut https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe
  • Jalankan aplikasi Putty yang telah didownload
  • Masukkan IP address SSH server pada kolom Host Name, lalu klik Open
  • Jika muncul popup “PuTTY Security Alert”, klik Yes
  • Masukkan nama user Ubuntu server, tekan ENTER
  • Masukkan password user, tekan ENTER
  • Setelah remote login SSH berhasil dilakukan, rekan-rekan bisa melakukan konfigurasi server dari aplikasi Putty

Setelah konfigurasi dasar Ubuntu server & SSH selesai dilakukan, baru kita bisa melanjutkan konfigurasi untuk melakukan hardening SSH server pada server Ubuntu yang sudah di set sedemikian rupa.

Selanjutnya, saya akan menunjukkan bagaimana cara untuk melakukan hardening SSH server, dari sisi konfigurasi SSH itu sendiri sampai dengan pengamanan di sisi firewall.

2 comments

  1. Mas, artikel nya sangat membantu sekali. Tutorial nya work 100%. Saya sangat apresiasi anda. Tapi saya bingung disini, apakah ssh server ini sama dengan ssh server SERVEO.NET atau NGROK? Jika demikian, bagaimana caranya saya melakukan port forwarding dengan ssh server ini? #newbiebertanya

    1. Hi pak Rapip,

      SSH Server yang saya tuliskan berbeda dengan yang SERVEO.NET atau NGROK. Ini SSH langsung dari sisi server, tanpa bantuan serveo.net atau ngrok.

      Untuk port forwarding bisa menggunakan iptables Linux ataupun router yang memiliki kemampuan tersebut. Atau bisa juga menggunakan firewall appliance, contohnya Untangle.

Leave a Reply

Your email address will not be published. Required fields are marked *