Tips Mengamankan Server atau VPS Linux

Linux-VPSServer atau VPS yang kita gunakan untuk menghosting website kita terkoneksi dengan Internet, siapa saja dapat mengaksesnya. Untuk melindungi dari akses tangan-tangan jahil, kita perlu mengamankan server atau VPS tersebut. Kita akan memasang firewall, SSH key pair authentication dan sistem blokir otomatis yang disebut dengan fail2ban. Diharapkan dengan langkah-langkah tersebut dibawah ini, server atau VPS kita bisa mampu terlindungi dari serangan pihak yang tidak bertanggungjawab.

Login Non Root

root adalah user yang sangat powerful di mesin Linux. Tapi masalah muncul apabila login sebagai root ialah kita dapat mengeksekusi semua perintah, baik perintah yang standar maupun perintah yang bisa menghancurkan server kita! Oleh sebab itu, ada baiknya kita tidak login ke server atau VPS menggunakan root, yakni dengan membuat user lain dan menggunakannya disaat kita bekerja pada server atau VPS. Walaupun login dengan user non-root, kita masih bisa mengeksekusi perintah root dengan menggunakan sudo.

Berikut cara membuat user baru non root:

  1. Login seperti biasa menggunakan root ke server atau VPS.
  2. Install program sudo dulu jika belum ada dengan perintah berikut:
    apt-get install sudo
  3. Buat user baru dengan perintah seperti berikut. Ganti user_baru dengan nama user yang kita inginkan:
    adduser user_baru
  4. Tambahkan user_baru ke grup administrator sistem (admin) dengan menggunakan perintah berikut. Ganti user_baru dengan user yang tadi kita buat:
    usermod -a -G sudo user_baru
  5. Kemudian kita keluar dari root agar bisa masuk dengan user yang baru kita buat, dengan perintah:
    logout
  6. Sekarang kita coba login lagi ke server atau VPS kita dengan user baru.

 

Sekarang anda bisa mengelola server dengan menggunakan nama user yang barusan anda buat, tanpa harus sebagai root. Jika anda ingin mengeksekusi perintah superuser (sebagai root), anda bisa menambahkan sudo didepan perintah tsb. Sebagai contoh jika anda ingin mengupdate server, gunakan perintah sudo apt-get update. Hampir semua perintah superuser bisa dieksekusi dengan menggunakan sudo, dan semua perintah yang dieksekusi dengan sudo akan di catat /var/log/auth.log.

Non Aktifkan Root Login & Ubah Port SSH

Karena kita sudah membuat user baru untuk login SSH dengan kemampuan sudo, ada baiknya kita non aktifkan root login & mengganti default port SSH. Ini untuk meningkatkan keamanan dan meminimalisir serangan.

  1. Langkah pertama adalah dengan memperbarui file konfigurasi SSH dengan menggunakan perintah berikut:
    sudo nano /etc/ssh/sshd_config
  2. Ubah PermitRootLogin ke noseperti nampak berikut ini:
    PermitRootLogin no
  3. Ganti port SSH dari 22 ke port lain, semisal 3342. Cari konfigurasi port 22 dan ganti dengan port sesuai keinginan anda.
    Port 3342
  4. Simpan konfigurasi yang sudah kita ubah dengan menekan tombol keyboard Ctrl-X, dan kemudian Y.
  5. Restart SSH dengan menggunakan perintah berikut:
    sudo service ssh restart

    Setelah SSH di restart, konfigurasi baru akan dipakai oleh SSH.

Membuat Firewall

Selanjutnya kita akan membuat firewall untuk membatasi atau memblokir trafik inbound yang tidak diinginkan. Konfigurasi firewall berikut ini adalah contoh sederhana, yakni hanya membuka port 80 (http), 443 (https) dan 3342 (port SSH yang sebelumnya kita ganti dari port default 22). Anda bisa bebas mengubah konfigurasi sesuai dengan kebutuhan server.

  1. Periksa dulu konfigurasi firewall saat ini dengan menggunakan perintah:
    sudo iptables -L
  2. Lihat outputnya. Jika sebelumnya anda belum pernah mengedit firewall, maka akan melihat empty ruleset, seperti dibawah ini:
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destinationChain FORWARD (policy ACCEPT)
    target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
  3. Buat sebuah file untuk menyimpan konfigurasi firewall kita, dengan perintah:
    sudo nano /etc/iptables.firewall.rules
  4. Sekarang kita masukkan beberapa firewall rules ke file iptables.firewall.rules yang anda buat diatas.

    *filter

    #  Mengijinkan semua trafik loopback (lo0) dan drop semua trafik ke 127/8 yang tidak digunakan oleh lo0
    -A INPUT -i lo -j ACCEPT
    -A INPUT -d 127.0.0.0/8 -j REJECT

    #  Menerima semua koneksi inbound yang sudah terkoneksi
    -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

    #  Ijinkan semua trafik outbound, anda bisa memodifikasi rule ini agar hanya mengijinkan trafik tertentu
    -A OUTPUT -j ACCEPT

    #  Ijinkan koneksi HTTP dan HTTPS dari mana saja (port standar untuk koneksi website dan SSL).
    -A INPUT -p tcp –dport 80 -j ACCEPT
    -A INPUT -p tcp –dport 443 -j ACCEPT

    #  Ijinkan koneksi SSH
    #
    #  Nomor pada -dport harus sama dengan konfigurasi file SSH yang kita lakukan sebelumnya.
    #
    -A INPUT -p tcp -m state –state NEW –dport 3342 -j ACCEPT

    #  Ijinkan ping
    -A INPUT -p icmp -j ACCEPT

    #  Catat koneksi yang ditolak
    -A INPUT -m limit –limit 5/min -j LOG –log-prefix “iptables denied: ” –log-level 7

    #  Tolak semua koneksi inbound lainnya
    -A INPUT -j REJECT
    -A FORWARD -j REJECT

    COMMIT

  5. Simpan konfigurasi diatas dengan menekan tombol Ctrl-X, dan kemudian Y.
  6. Aktifkan firewalldengan menjalankan perintah berikut:
    sudo iptables-restore < /etc/iptables.firewall.rules
  7. Cek ulang konfigurasi firewallkita dengan perintah:
    sudo iptables -L
  8. Periksa outputnya. Ruleset yang baru akan nampak seperti berikut:
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination
    ACCEPT     all  --  anywhere             anywhere
    REJECT     all  --  anywhere             127.0.0.0/8         reject-with icmp-port-unreachable
    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
    ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
    LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    ACCEPT     all  --  anywhere             anywhere
  9. Untuk memastikan konfigurasi firewall kita berjalan pada saat server di restart, kita harus membuat script baru dengan perintah:
    sudo nano /etc/network/if-pre-up.d/firewall
  10. Salin dan masukkan baris berikut:
    #!/bin/sh
    /sbin/iptables-restore < /etc/iptables.firewall.rules
  11. Tekan Ctrl-X dan kemudian Y untuk menyimpan script.
  12. Chmod script kita dengan perintah:
    sudo chmod +x /etc/network/if-pre-up.d/firewall

    Firewall sudah terinstal, dan akan melindungi server kita. Ingat, anda harus mengubah konfigurasi diatas jika menginstall software baru. Semisal jika anda menginstall layanan DNS, maka anda harus membuka port 53.

Instal Fail2Ban

Fail2Ban adalah aplikasi yang akan mendeteksi percobaan login secara berulang-ulang ke server kita, Fail2Ban akan membuat rule firewall sementara untuk memblokir alamat IP si penyerang server kita. Fail2Ban dapat memonitor bermacam protokol, seperti SSH, HTTP dan SMTP. Tetapi secara default, Fail2Ban hanya memonitor SSH saja.

Berikut adalah cara menginstal Fail2Ban:

  1. Instal Fail2Ban dengan menggunakan perintah:
    sudo apt-get install fail2ban
  2. Secara default Fail2Ban akan memproteksi SSH setelah diinstal, tidak perlu langkah lainnya. Tetapi jika anda mengubah konfigurasi default dari Fail2Ban, anda dapat membuat file jail.localbaru. Dengan perintah berikut:
    sudo nano /etc/fail2ban/jail.local
  3. Set variabel bantime untuk mengatur berapa lama blokir diterapkan (dalam detik).
  4. Set variabel maxretry untuk mengatur batasan berapa kali percobaan login yang bisa dilakukan sebelum alamat IP diblokir.
  5. Tekan tombol Ctrl-X dan kemudian Y untuk menyimpan konfigurasi.

Fail2Ban sekarang akan memonitor SSH server kita. Jika ada yang mencoba login ke server kita, hingga bebera kali percobaan gagal login, Fail2Ban akan memblokir alamt IP si penyerang dan akan mencatatnya di /var/log/fail2ban.log.

Instal (D)DoS Deflate

(D)DoS Deflate adalah bash shell script ringan yang didesain untuk membantu proses pemblokiran serangan DoS (Denial of Service).

Proses instalasinya sangat mudah, berikut langkahnya:

  1. Download script (D)DoS Deflate dengan perintah:
    wget http://www.inetbase.com/scripts/ddos/install.sh
  2. Kemudian chmod script instalasinya dengan perintah:
    chmod 0700 install.sh
  3. Jalankan script instalasinya
    ./install.sh
  4. Untuk keluar dari tampilan readme, ketikkan perintah
    :q

Selesai! Server anda sudah terproteksi dari serangan Denial of Service dengan menggunakan (D)Dos Deflate!

Tips Mengamankan Server atau VPS Linux
Written by: dwi tikto
Reting: 4.7


Blog Riau Network ini penuh dengan informasi yang berharga mengenai hosting, web design, web pemasaran Search Engine Optimization, web hosting, database mysql dan melindungi website.


Follow me on Google+ | Twitter | Facebook | Linkedin | YouTube

Share This Post

Recent Articles

Leave a Reply

Hosting By Riau Network