Apa yang Dinonaktifkan Secara Default pada Kebanyakan Server Linux (Dan Mengapa Hal Ini Penting)
Ketika Anda menyediakan server Linux baru — baik itu VPS, dedicated server, atau mesin virtual yang dihosting di cloud — sistem boot ke dalam lingkungan yang sengaja diminimalkan dan dikeras. Ini bukan kebetulan atau setup yang tidak lengkap. Ini adalah filosofi desain yang disengaja yang tertanam dalam setiap distribusi Linux utama.
Build server Linux modern menghilangkan layanan, protokol, dan antarmuka yang tidak perlu untuk meminimalkan permukaan serangan, menghemat sumber daya sistem, dan memberikan administrator kontrol presisi atas apa yang berjalan di infrastruktur mereka. Memahami apa yang dinonaktifkan secara default — dan mengapa — adalah pengetahuan dasar bagi setiap administrator sistem, insinyur DevOps, atau pengembang yang mengelola beban kerja produksi.
Panduan ini menganalisis fitur dan layanan paling umum yang dinonaktifkan atau tidak ada secara default pada server Linux, menjelaskan alasan keamanan dan operasional di balik setiap keputusan, dan menunjukkan kepada Anda dengan tepat cara memverifikasi setiap pengaturan di sistem Anda sendiri.
Mengapa “Dinonaktifkan Secara Default” Adalah Strategi Keamanan, Bukan Keterbatasan
Prinsip yang bekerja di sini sering disebut “aman secara default, dapat diperluas sesuai pilihan.” Daripada mengirimkan sistem yang sepenuhnya berfitur dan mempercayai administrator untuk menguncinya, distribusi Linux modern mengirimkan sistem yang terkunci dan mempercayai administrator untuk hanya mengaktifkan apa yang mereka butuhkan.
Pendekatan ini secara langsung mengurangi risiko kesalahan konfigurasi — salah satu penyebab utama pelanggaran server. Setiap layanan yang tidak berjalan adalah layanan yang tidak dapat dieksploitasi. Setiap protokol yang tidak diaktifkan adalah protokol yang tidak dapat disadap. Setiap port terbuka yang tidak ada adalah titik masuk yang tidak dapat diselidiki penyerang.
Dengan konteks itu ditetapkan, mari kita periksa setiap pembatasan default secara detail.
1. Root SSH Login
Status: Dinonaktifkan secara default pada hampir semua distribusi server Linux modern
Login root langsung melalui SSH secara universal dinonaktifkan dalam build server Linux kontemporer — dan untuk alasan yang sangat bagus. Memungkinkan akses root jarak jauh menciptakan satu titik kegagalan yang bencana: satu kata sandi yang dikompromikan memberikan penyerang kontrol lengkap dan tanpa batas atas seluruh sistem.
Alur kerja yang benar adalah login sebagai pengguna non-istimewa dan meningkatkan hak istimewa menggunakan sudo atau su hanya jika diperlukan. Ini menciptakan jejak audit, membatasi radius ledakan pencurian kredensial, dan memaksa tindakan yang disengaja sebelum menjalankan perintah istimewa.
Cara memverifikasi:
grep PermitRootLogin /etc/ssh/sshd_configOutput yang diharapkan pada server yang dikeras dengan benar:
PermitRootLogin noJika Anda melihat PermitRootLogin yes atau PermitRootLogin prohibit-password, tinjau konfigurasi SSH Anda segera dan selaraskan dengan kebijakan keamanan organisasi Anda.
Praktik terbaik:
Buat pengguna administratif khusus, tambahkan ke grup sudo, dan pastikan PermitRootLogin no diatur sebelum menerapkan layanan yang menghadap publik.
2. Autentikasi Kata Sandi di SSH
Status: Dinonaktifkan secara default pada sebagian besar server yang disediakan cloud
Pada banyak platform cloud dan lingkungan hosting terkelola, autentikasi kata sandi SSH dinonaktifkan sepenuhnya pada waktu penyediaan. Pasangan kunci SSH adalah satu-satunya mekanisme autentikasi yang diterima.
Ini adalah peningkatan keamanan yang signifikan. Autentikasi kata sandi rentan terhadap serangan brute-force, credential stuffing, dan serangan kamus. Kunci SSH — terutama ketika dilindungi oleh passphrase — secara komputasi tidak mungkin untuk brute-force dengan teknologi saat ini.
Instalasi berbasis ISO tradisional mungkin masih mengizinkan login kata sandi secara default, tetapi praktik terbaik adalah menonaktifkannya segera setelah menyiapkan autentikasi berbasis kunci.
Cara memverifikasi:
grep PasswordAuthentication /etc/ssh/sshd_configOutput yang diharapkan:
PasswordAuthentication noCara menonaktifkan autentikasi kata sandi:
Edit /etc/ssh/sshd_config dan atur:
PasswordAuthentication no
PubkeyAuthentication yesKemudian muat ulang daemon SSH:
# Ubuntu/Debian
sudo systemctl reload ssh
# RHEL/AlmaLinux/Rocky Linux
sudo systemctl reload sshd> Peringatan: Selalu konfirmasi bahwa kunci SSH Anda berfungsi sebelum menonaktifkan autentikasi kata sandi, atau Anda berisiko mengunci diri sendiri dari server.
3. Protokol Jaringan Warisan dan Teks Biasa
Status: Tidak ada dalam build server modern
Layanan seperti Telnet, FTP, Rlogin, dan Rsh tidak diinstal pada citra server Linux modern. Protokol ini dirancang di era sebelum enkripsi menjadi prioritas. Mereka mengirimkan kredensial, perintah, dan data dalam teks biasa — membuatnya sangat mudah untuk disadap dengan packet sniffer pada segmen jaringan apa pun antara klien dan server.
Protokol ini telah digantikan oleh alternatif yang aman:
| Protokol Warisan | Pengganti Aman |
|---|---|
| Telnet (port 23) | SSH (port 22) |
| FTP (port 21) | SFTP atau FTPS |
| Rlogin / Rsh | SSH |
Cara memverifikasi tidak ada layanan warisan yang berjalan:
ss -tulnpJika port 21 (FTP) atau 23 (Telnet) tidak muncul dalam output, layanan tersebut tidak aktif. Jika muncul, selidiki segera dan hapus atau nonaktifkan kecuali ada persyaratan tertentu yang dibenarkan.
4. Antarmuka Pengguna Grafis (GUI)
Status: Tidak diinstal pada edisi server
Distribusi server — termasuk Ubuntu Server, Debian, AlmaLinux, Rocky Linux, dan CentOS Stream — tidak dilengkapi dengan lingkungan desktop grafis seperti GNOME, KDE Plasma, atau XFCE. Ini adalah pilihan yang disengaja dan beralasan dengan baik.
Lingkungan GUI:
- Mengonsumsi RAM dan sumber daya CPU yang signifikan yang harus didedikasikan untuk beban kerja
- Memperkenalkan sejumlah besar paket perangkat lunak tambahan, masing-masing mewakili potensi kerentanan
- Sepenuhnya tidak perlu untuk administrasi server, yang dilakukan melalui baris perintah melalui SSH
Harapannya jelas: server dikelola melalui CLI. Jika Anda menemukan diri Anda menginginkan antarmuka grafis pada server produksi, itu umumnya merupakan sinyal bahwa proses atau alur kerja perlu dipertimbangkan kembali.
> Catatan: Alat seperti Panel Kontrol VPS — seperti cPanel, Plesk, atau DirectAdmin — menyediakan antarmuka manajemen grafis berbasis web tanpa memerlukan lingkungan desktop lengkap untuk diinstal di server.
5. Rantai Alat Pengembangan dan Kompiler
Status: Tidak diinstal dalam citra server minimal
Kompiler seperti gcc dan utilitas build seperti make, cmake, dan autoconf sengaja tidak ada dalam sebagian besar citra server Linux minimal. Alasannya dua kali lipat:
- Ukuran citra berkurang: Citra minimal lebih cepat untuk diterapkan, lebih mudah untuk dicadangkan, dan mengonsumsi lebih sedikit sumber daya.
- Pengerasan keamanan: Jika penyerang mendapatkan akses ke server, ketiadaan kompiler mencegah mereka mengompilasi biner berbahaya atau kode exploit langsung di sistem. Ini adalah hambatan yang bermakna dalam banyak rantai serangan.
Cara memverifikasi:
gcc --versionJika rantai alat tidak diinstal, Anda akan melihat:
-bash: gcc: command not foundCara menginstal jika diperlukan:
# Ubuntu/Debian
sudo apt update && sudo apt install build-essential
# RHEL/AlmaLinux/Rocky Linux
sudo dnf groupinstall "Development Tools"Instal alat pengembangan hanya pada server di mana kompilasi adalah persyaratan operasional yang asli — seperti server build atau lingkungan pengembangan — dan hindari menginstalnya pada server aplikasi atau database produksi.
6. ICMP (Respons Ping)
Status: Diaktifkan secara default di tingkat OS; sering dibatasi di tingkat jaringan/firewall
Server Linux merespons permintaan echo ICMP (ping) secara default di tingkat sistem operasi. Namun, banyak penyedia hosting dan platform cloud memblokir ICMP di tingkat firewall jaringan atau grup keamanan, membuat server tampak tidak dapat dijangkau untuk ping bahkan ketika mereka sepenuhnya operasional.
Menekan respons ICMP membuat server kurang dapat ditemukan selama pemindaian pengintaian jaringan. Namun, ini juga memperumit pemantauan dan diagnostik yang sah — alat seperti ping dan traceroute bergantung pada ICMP untuk berfungsi dengan benar.
Cara menguji:
ping your_server_ipCara memblokir ICMP di tingkat OS menggunakan iptables (jika diperlukan):
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROPKeputusan untuk memblokir ICMP harus dibuat dengan sengaja, menimbang manfaat keamanan marginal terhadap biaya operasional untuk alur kerja pemantauan dan pemecahan masalah.
7. IPv6
Status: Diaktifkan secara default di sebagian besar distribusi; dapat dibatasi di tingkat penyedia
IPv6 diaktifkan secara default dalam distribusi Linux modern termasuk Ubuntu, Debian, Fedora, dan turunan RHEL. Namun, banyak penyedia hosting menonaktifkan IPv6 di tingkat jaringan jika infrastruktur mereka tidak mendukungnya, berarti OS mungkin dikonfigurasi untuk IPv6 tetapi server tidak akan memiliki alamat IPv6 yang dapat dirutekan.
Cara memeriksa alamat IPv6:
ip a | grep inet6Jika hanya ::1 (alamat loopback) muncul, IPv6 tidak dikonfigurasi di tingkat jaringan bahkan jika diaktifkan di OS.
Jika beban kerja Anda tidak memerlukan IPv6 dan penyedia Anda tidak menawarkannya, Anda dapat menonaktifkannya di tingkat kernel dengan menambahkan berikut ke /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1Kemudian terapkan perubahan:
sudo sysctl -p8. Layanan dan Daemon Sistem yang Tidak Perlu
Status: Bervariasi menurut distribusi; instalasi minimal menonaktifkan sebagian besar layanan non-esensial
Selain item yang tercantum di atas, instalasi server Linux minimal biasanya menonaktifkan atau menghilangkan berbagai layanan yang ada pada build desktop atau berfitur lengkap:
- Bluetooth — tidak relevan di server; tidak diinstal
- Avahi/mDNS — penemuan jaringan lokal; tidak perlu dan berpotensi menjadi masalah keamanan di server
- Cups (pencetakan) — tidak ada kasus penggunaan di server
- ModemManager — tidak relevan pada perangkat keras server
- NetworkManager — sering diganti oleh
systemd-networkdatau konfigurasinetplanmanual di server
Cara mengaudit layanan yang berjalan:
systemctl list-units --type=service --state=runningTinjau daftar ini secara berkala dan nonaktifkan layanan apa pun yang tidak melayani tujuan yang terdokumentasi di server tertentu itu.
Daftar Periksa Keamanan Praktis untuk Server Linux yang Baru Disediakan
Setelah menyediakan server baru — baik itu hosting web bersama yang ditingkatkan ke VPS atau dedicated server yang benar-benar baru — jalankan daftar periksa ini untuk mengonfirmasi postur keamanan dasar Anda:
| Periksa | Perintah | Hasil yang Diharapkan | |
|---|---|---|---|
| Root SSH login | grep PermitRootLogin /etc/ssh/sshd_config | no | |
| Autentikasi kata sandi | grep PasswordAuthentication /etc/ssh/sshd_config | no | |
| Port terbuka | ss -tulnp | Hanya port yang diharapkan terlihat | |
| GCC diinstal | gcc --version | command not found (kecuali diperlukan) | |
| Layanan yang berjalan | systemctl list-units --type=service --state=running | Hanya layanan yang diperlukan | |
| Status IPv6 | `ip a | grep inet6` | Seperti yang diharapkan untuk lingkungan Anda |
Memilih Lingkungan Hosting yang Tepat untuk Persyaratan Keamanan Anda
Postur keamanan default server Anda juga dipengaruhi oleh lingkungan hosting yang Anda pilih. VPS dengan cPanel menyediakan antarmuka terkelola berbasis web yang menyederhanakan administrasi sambil mempertahankan model keamanan Linux yang mendasar. Dedicated server bare-metal memberikan Anda kontrol penuh atas setiap lapisan tumpukan, dari firmware hingga aplikasi.
Untuk tim yang menja
