Hardening Linux

Hardening Linux (SSH & Web Server) - Dark Mode

📁 Hardening Linux: Remote Tools (SSH & Web Server)

Keamanan server Linux sangat penting, terutama untuk layanan yang sering diakses secara remote, seperti SSH dan Web Server. Pada artikel ini, kita akan membahas bagaimana melakukan hardening atau penguatan pada kedua layanan tersebut agar server kamu aman dari ancaman umum di internet.

Server keamanan

🔐 Hardening SSH (Secure Shell)

SSH adalah protokol yang memungkinkan kamu mengakses server Linux secara remote dengan aman. Namun, bila menggunakan pengaturan default, servermu bisa menjadi target serangan brute force atau percobaan login ilegal lainnya.

SSH logo

1. Ubah Port Default (22)

Port 22 adalah port standar SSH dan biasanya jadi target utama serangan. Dengan mengubah port ini ke angka lain (misal 2222), kamu mengurangi risiko serangan otomatis.

sudo nano /etc/ssh/sshd_config
# Ganti:
Port 22
# Menjadi misal:
Port 2222
💡 Tips: Pilih port antara 1024-49151 agar tidak bentrok dengan port sistem.

2. Nonaktifkan Login Root

Login langsung sebagai root sangat berbahaya. Jika seseorang berhasil menebak password root, mereka akan memiliki kontrol penuh. Sebaiknya, nonaktifkan login root via SSH dan gunakan akun biasa dengan akses sudo.

PermitRootLogin no

3. Gunakan Autentikasi Key SSH

Daripada menggunakan password, metode yang lebih aman adalah menggunakan SSH keypair. Ini melibatkan pembuatan sepasang kunci: private key di komputer lokal dan public key yang disimpan di server.

# Generate key di client
ssh-keygen

# Salin key ke server
ssh-copy-id user@ip-server
"Password bisa ditebak, tapi keypair jauh lebih aman dan sulit ditembus."

4. Batasi Akses Berdasarkan IP

Kamu juga bisa memperkuat keamanan SSH dengan membatasi alamat IP yang bisa terhubung, misalnya hanya dari jaringan internal atau IP tertentu.

# Contoh menggunakan UFW:
sudo ufw allow from 192.168.1.0/24 to any port 2222

🌐 Hardening Web Server (Apache/Nginx)

Web server adalah wajah publik server kamu, sehingga harus dilindungi dengan baik agar tidak jadi sasaran serangan.

Web server coding

1. Nonaktifkan Directory Listing

Directory listing memungkinkan siapa saja melihat isi folder web kamu jika tidak ada file index. Ini berbahaya karena bisa membuka informasi yang tidak perlu diketahui publik.

# Apache
Options -Indexes

# Nginx
autoindex off;

2. Sembunyikan Versi Server

Menampilkan versi server web dapat memudahkan penyerang mencari celah spesifik. Oleh karena itu, sembunyikan informasi ini.

# Apache
ServerSignature Off
ServerTokens Prod

# Nginx
server_tokens off;

3. Gunakan HTTPS

Selalu gunakan HTTPS agar data yang dikirim dan diterima dienkripsi. Let's Encrypt menyediakan sertifikat SSL gratis dan mudah dipasang.

# Dengan Let's Encrypt:
sudo certbot --apache
# atau untuk nginx:
sudo certbot --nginx
✅ Tips: Jangan lupa untuk selalu redirect HTTP ke HTTPS agar koneksi selalu aman.

4. Batasi Ukuran Request dan Timeout

Mengatur batas ukuran request dan timeout membantu melindungi server dari serangan DoS atau upload file berbahaya yang terlalu besar.

# Contoh konfigurasi nginx:
client_max_body_size 1M;
client_body_timeout 10s;

🎯 Kesimpulan

  • Selalu perbarui dan audit sistem secara berkala.
  • Minimalkan layanan yang berjalan untuk mengurangi permukaan serangan.
  • Pasang firewall dan tools monitoring seperti Fail2ban untuk mencegah serangan berulang.
  • Backup data dan konfigurasi secara rutin agar mudah pemulihan jika terjadi masalah.

Keamanan adalah proses berkelanjutan, bukan sekali jadi. Dengan langkah-langkah hardening ini, kamu sudah meningkatkan pertahanan server Linux secara signifikan. Selamat mencoba dan tetap jaga keamanan servermu!

Comments