SSD Nodes Learn
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-07-24

Cara mengamankan VPS baharu dalam 10 minit

Lindungi VPS anda daripada pengimbas automatik dengan langkah ini. Belajar cara tetapkan SSH keys, cipta pengguna baharu, dan aktifkan firewall dengan pantas.

10 minit pertama menentukan tahap keselamatan pelayan anda

VPS baharu tidak selamat. Sebaik sahaja ia mempunyai IP awam, pengimbas akan cuba log masuk, dan imej lalai memberikan sasaran yang besar: root sering boleh dicapai, kata laluan sering dibenarkan, tiada firewall, dan tiada tampalan (patch) dijadualkan. Berita baiknya ialah menutup semua perkara tersebut hanya mengambil masa kira-kira sepuluh minit dengan beberapa arahan. Ini adalah runbook yang saya gunakan pada setiap pelayan baharu sebelum saya memasang apa-apa di dalamnya.

Ikut langkah ini mengikut turutan kerana setiap langkah membina langkah seterusnya. Setiap langkah mempunyai panduan sendiri yang dipautkan semasa anda berjalan; halaman ini adalah laluan pantas yang menyatukan semuanya.

Minit 1: Kemas kini semua perkara

Log masuk sebagai root dengan kredential yang diberikan oleh penyedia anda, dan kemas kini sistem sepenuhnya sebelum melakukan perkara lain:

apt update && apt upgrade -y

Sistem yang tidak ditampal adalah sasaran yang paling mudah, jadi ini adalah langkah pertama. Setelah selesai, tetapkan kemas kini keselamatan automatik supaya ia sentiasa ditampal tanpa anda perlu mengingatinya.

Minit 2: Cipta pengguna biasa dengan sudo

Jangan terus bekerja sebagai root. Cipta pengguna untuk diri anda dan berikan akses sudo:

adduser matt
usermod -aG sudo matt

Dari sini anda log masuk sebagai pengguna ini dan gunakan sudo untuk tugas admin. Bekerja sebagai root sepanjang masa bermakna setiap kesilapan dan setiap pencerobohan berlaku dengan kuasa tanpa had, yang mana itulah sebabnya berjalan sebagai pengguna tanpa keistimewaan wujud untuk mencegahnya.

Minit 4: Tetapkan kunci SSH

Kata laluan boleh diteka; kunci tidak. Pada komputer riba anda sendiri, jika anda belum mempunyai kunci, cipta satu:

ssh-keygen -t ed25519

Kemudian salin bahagian awam (public half) ke pelayan:

ssh-copy-id matt@YOUR_SERVER

ssh-copy-id memerlukan log masuk kata laluan diaktifkan untuk pengguna baharu; jika ia sudah dimatikan, salin ~/.ssh/authorized_keys milik root ke dalam /home/matt/.ssh/authorized_keys (dimiliki oleh matt), atau tampal kunci awam anda ke dalam fail tersebut secara manual.

Model di sebalik langkah ini, satu kunci bagi setiap peranti, keizinan (permissions) yang membatalkan log masuk kunci, dan membatalkan kunci yang hilang, dibincangkan dalam asas pengurusan kunci SSH.

Log keluar dan log masuk semula sebagai matt menggunakan kunci tersebut, dan sahkan ia berfungsi sebelum anda menyentuh langkah seterusnya. Mengunci SSH sebelum anda boleh masuk dengan kunci adalah cara orang mengunci diri mereka sendiri.

Minit 6: Matikan log masuk root dan kata laluan

Sekarang kunci anda sudah berfungsi, tutup dua pintu yang digunakan oleh pengimbas. Gunakan fail drop-in supaya naik taraf pakej tidak menindihnya. Namakannya 00- supaya ia disusun sebelum 50-cloud-init.conf, yang disertakan oleh imej awan Ubuntu dengan PasswordAuthentication yes; sshd mengekalkan nilai pertama yang dibacanya, jadi fail yang disusun kemudian akan hilang secara senyap:

sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Kemudian muat semula SSH:

sudo systemctl restart ssh

Kemudian semak tetapan yang sebenarnya digunakan oleh sshd, supaya fail drop-in yang kalah tidak menipu anda:

sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'

Dengan kata laluan dimatikan dan log masuk root hilang, trafik brute-force yang berterusan terhadap pelayan anda tidak akan berjaya. Rawatan penuh, termasuk pertukaran port pilihan, ada dalam pengerasan SSH pada VPS.

Minit 8: Hidupkan firewall

Tolak semua trafik masuk secara lalai (default-deny), kemudian benarkan hanya apa yang anda perlukan. Benarkan SSH sebelum anda mengaktifkannya, atau anda akan memutuskan sambungan sendiri:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

Tambah peraturan allow untuk sebarang perkhidmatan yang anda jalankan, seperti 80/tcp dan 443/tcp untuk laman web. Pastikan kedua-dua IPv4 dan IPv6 dilindungi, kerana firewall yang hanya menapis IPv4 akan membiarkan bahagian IPv6 terbuka luas. Panduan penuh ada dalam Firewalls 101 pada VPS.

Minit 10: Perlahankan pengimbas dengan Fail2ban

Akhir sekali, tambah Fail2ban untuk menghalau alamat yang menyerang port anda:

sudo apt install -y fail2ban

Pada Ubuntu 24.04, pemasangan asal melindungi SSH dari but pertama. Dengan keperluan kunci yang sudah ditetapkan, ini adalah sandaran yang mengurangkan gangguan log dan menyekat pesalah berulang, dan bukannya sebagai pertahanan utama anda.

Senarai semak anda

Itulah runbook tersebut. Gunakan penjana di bawah untuk menanda setiap kawalan dan menghasilkan senarai semak peribadi yang boleh anda simpan bersama pelayan, termasuk arahan tepat untuk setiap langkah:

ToolBuild your VPS hardening checklist

Lakukan sekali bagi setiap pelayan baharu dan ia akan menjadi memori otot. Sepuluh minit sekarang menjimatkan anda waktu petang yang sangat buruk selepas pelayan diceroboh.

Setelah perkara penting telah ditetapkan, kemas kini keselamatan automatik pada Ubuntu memastikan pelayan sentiasa terkini tanpa anda perlu log masuk semula.

FAQ

Apakah yang patut saya lakukan dahulu pada VPS baharu?

Kemas kini sistem dengan apt update && apt upgrade -y, kemudian cipta pengguna biasa dengan sudo dan berhenti bekerja sebagai root. Dari situ, tetapkan kunci SSH, nyahaktifkan log masuk root dan pengesahan kata laluan, aktifkan firewall default-deny, dan pasang Fail2ban. Melakukannya mengikut urutan itu bermakna setiap langkah adalah selamat untuk diambil tanpa mengunci diri anda sendiri.

Bagaimanakah saya mengelakkan diri daripada terkunci keluar semasa melakukan pengerasan SSH?

Tetapkan dan uji log masuk kunci SSH anda sebelum anda menyahaktifkan kata laluan atau root. Log keluar dan log masuk semula dengan kunci untuk mengesahkan ia berfungsi, dan hanya selepas itu matikan PasswordAuthentication dan PermitRootLogin. Apabila anda mengaktifkan firewall, benarkan port 22 sebelum menjalankan ufw enable. Jika anda terkunci keluar, konsol web penyedia anda membolehkan anda masuk semula tanpa SSH.

Adakah saya benar-benar memerlukan semua ini pada pelayan kecil?

Ya, kerana pengimbas tidak peduli betapa kecilnya pelayan anda. Mereka mencuba setiap IP awam dengan cara yang sama. Keseluruhan runbook ini mengambil masa kira-kira sepuluh minit dan menghapuskan laluan mudah: tiada log masuk root, tiada tekaan kata laluan, tiada apa yang terdedah yang tidak anda pilih, dan pepijat yang diketahui ditampal secara automatik.

Apakah langkah yang paling penting?

SSH hanya dengan kunci dengan log masuk root dinyahaktifkan. Kebanyakan serangan pada VPS baharu adalah tekaan kata laluan automatik terhadap root, dan mematikan kedua-duanya menjadikan seluruh kategori serangan itu mustahil. Firewall dan Fail2ban kemudian mengehadkan apa yang terdedah dan memperlahankan apa yang berbaki.

Bagaimanakah saya mengesahkan pelayan benar-benar telah dikunci?

Semak tiga perkara secara manual sebelum anda mempercayainya. Jalankan sudo ss -tlnp dan sahkan hanya port yang anda mahu buka sedang mendengar pada alamat awam, tanpa sebarang perkhidmatan 0.0.0.0 atau [::] yang anda terlupa. Jalankan sudo ufw status verbose dan sahkan polisi masuk lalai adalah deny dan kedua-dua peraturan biasa dan (v6) adalah ada. Dan sentiasa buka sesi SSH kedua sebelum anda menutup sesi pertama, supaya kesilapan dalam konfigurasi SSH tidak mengunci anda keluar dari pelayan. Jika ketiga-tiga perkara kelihatan betul, asas telah ditetapkan.