Keselamatan

Cara Setup Firewall Server: Melindungi Server dari DDoS & Bot Jahat

  • Bacaan 12 minit
  • Pasukan Hostragons
Cara Setup Firewall Server: Melindungi Server dari DDoS & Bot Jahat

Pemasangan firewall server merupakan langkah utama untuk memastikan hanya port yang benar-benar diperlukan sahaja dibuka, manakala segala akses yang tidak diperlukan disekat; ia membentuk lapisan pertahanan pertama terhadap DDoS, brute force dan trafik bot berbahaya. Secara praktikal, matlamatnya ialah menghadkan akses SSH, membuka port web secara terkawal, meletakkan had pada permintaan mencurigakan, memantau log, dan jika boleh menggunakan perlindungan lapisan atas seperti CDN/WAF untuk menapis trafik sebelum tiba ke server.

Apabila anda membuka server web ke internet, dalam beberapa minit sahaja ia akan menerima scan port, percubaan SSH, bot mencari kelemahan, dan user agent palsu. Bagi website WordPress, e-dagang, panel, API atau server permainan, firewall bukan sekadar pilihan teknikal—ia wajib untuk kelangsungan operasi. Dalam panduan ini, kita akan bina satu arkitektur firewall langkah demi langkah untuk server Linux; membincangkan UFW, firewalld, nftables, Fail2ban, firewall aplikasi web dan strategi mitigasi DDoS secara menyeluruh.

Satu fakta penting: firewall server tempatan tidak mampu menahan serangan DDoS berskala besar secara bersendirian. Serangan 20 Gbps, 80 Gbps atau lebih tinggi boleh membanjiri pusat data atau backbone rangkaian sebelum paket sampai ke OS anda. Pendekatan terbaik ialah keselamatan berlapis: perlindungan DDoS di tahap penyedia, CDN/WAF, firewall OS, rate limiting pada aplikasi dan analisis log secara berkala harus digabungkan. Untuk pilihan infrastruktur, rujuk Hostragons penyelesaian pelayan VPS dan VDS serta Hostragons pakej hosting web untuk hosting selamat di bahagian website.

Apa Fungsi Firewall Server?

Firewall server menapis trafik rangkaian berdasarkan IP sumber, IP destinasi, port, protokol, status sambungan dan kadangkala ciri paket. Contohnya: untuk website, port 80 dan 443 perlu dibuka, tetapi port database seperti 3306 tidak patut dibuka ke internet. SSH pada port 22 sebaiknya hanya dibenarkan dari alamat IP pejabat anda, bukan seluruh dunia.

Matlamat utama firewall bukanlah menghapuskan serangan secara magik, tetapi mengecilkan permukaan serangan. Semakin kecil permukaan serangan, semakin sedikit peluang untuk penyerang cuba masuk. Contohnya server Linux baru mungkin ada SSH, panel web, mail, database, monitoring agent dan servis ujian dibuka serentak—setiap satu risiko tersendiri. Firewall yang baik berfungsi dengan prinsip “deny secara lalai, allow bila perlu sahaja”.

Memahami DDoS & Trafik Bot

Kenapa DDoS Berbeza?

DDoS (Distributed Denial of Service) ialah serangan yang bertujuan melumpuhkan perkhidmatan dengan menghantar trafik dari pelbagai sumber. Kadangkala ia memenuhi bandwidth, kadangkala menghabiskan CPU/RAM server, kadangkala pula memicu proses aplikasi yang berat. Contohnya: server aplikasi kecil yang menerima 50,000 HTTP request sesaat boleh jadi tidak responsif walaupun bandwidth tidak penuh—kerana overload PHP-FPM, Node.js, atau connection database.

Adakah Semua Bot Jahat?

Tidak. Bot seperti Googlebot, Bingbot dan bot pemantau berguna untuk SEO dan analitik. Namun bot jahat pula melakukan scan panel admin, mencari direktori terbuka, spam form, copy content, penyalahgunaan XML-RPC, buat pendaftaran palsu dan cuba login. Pengurusan bot harus berdasarkan tingkah laku: hanya bot dengan pola mencurigakan seperti error rate tinggi, request terlalu banyak dalam masa singkat, user-agent yang tidak seperti browser sebenar, dan pola URL pelik perlu disekat.

Senarai Semak Sebelum Memulakan Setup

Risiko terbesar ketika menulis aturan firewall pada server live ialah terputus akses sendiri. Jadi, sedikit persiapan diperlukan sebelum perubahan dibuat. Senarai semak berikut adalah amalan selamat yang biasa digunakan dalam production:

  • Jangan tutup sesi SSH aktif; guna terminal kedua untuk ujian.
  • Pastikan provider server anda menyediakan akses konsol, VNC atau recovery.
  • Senaraikan port yang terbuka: semak output ss -tulpn atau netstat -tulpn.
  • Catat port yang digunakan oleh web, mail, DNS, database, panel dan monitoring.
  • Jika guna IPv6, rancang firewall untuk IPv6 juga.
  • Mulakan dengan aturan allow (benarkan), kemudian deny (sekatan).
  • Pastikan aturan firewall kekal (persistent), tidak hilang selepas reboot.

Contoh pada server hosting website biasa, port yang perlu dibuka biasanya hanya 80, 443 dan port SSH terhad. Jika tiada mail server, port seperti 25, 465, 587, 993 tidak perlu dibuka. Database seperti 3306 atau 5432 hanya perlu dibuka jika digunakan dari luar; jika tidak, biarkan tertutup ke internet.

Pilih Alat Firewall yang Sesuai?

Di Linux, terdapat pelbagai alat firewall dan kebanyakannya mengurus filter kernel dengan cara berlainan. UFW mudah dan pantas untuk pemula. firewalld pula biasa pada sistem korporat atau Red Hat. Nftables menawarkan fleksibiliti untuk senario lanjutan. Jadual di bawah membantu pemilihan:

Pilih Alat Firewall yang Sesuai?
Alat Kegunaan Terbaik Kelebihan Peringatan
UFW Server web Ubuntu/Debian sederhana Mudah sintaks, setup cepat Terhad untuk aturan kompleks
firewalld AlmaLinux, Rocky Linux, CentOS Stream, RHEL Konsep zone, aturan kekal, profil servis Fahami beza runtime vs permanent rule
nftables Keselamatan rangkaian Linux lanjutan Moden, pantas, fleksibel Aturan salah boleh putus akses
Cloud Security Groups VPS, cloud, perimeter data center Menapis trafik sebelum ke server Digunakan bersama, bukan ganti OS firewall
WAF/CDN Aplikasi web & serangan HTTP Mengurangkan bot, HTTP flood, scan kelemahan Konfigurasi DNS & IP sebenar mesti tepat

Langkah demi Langkah Setup Firewall Server

1. Kenal pasti Port & Servis Terbuka

Langkah pertama: tahu apa yang terbuka. Di Linux, ss -tulpn menunjukkan servis dan port yang sedang listen. Jika nginx listen pada 0.0.0.0:80 atau 0.0.0.0:443, bermakna web trafik diterima dari semua interface. Jika MariaDB listen pada 0.0.0.0:3306, ini sangat berisiko—database patut listen pada 127.0.0.1.

Praktis terbaik: Tiada servis yang tidak perlu diakses dari internet patut listen pada 0.0.0.0. Betulkan config servis dahulu, baru tutup dengan firewall. Sebab jika firewall disabled pun, servis sepatutnya tidak terbuka ke dunia luar.

2. Tetapkan Polisi Default ke Deny

Setup firewall selamat biasanya menolak trafik masuk secara lalai, dan hanya membenarkan keluar bila perlu. Ini mengelak servis baru tiba-tiba terbuka ke internet. Di Ubuntu dengan UFW, caranya: allow SSH, buka 80 & 443, tetapkan polisi default untuk deny incoming, dan aktifkan firewall.

Contoh: allow SSH kepada IP admin, allow HTTP/HTTPS, deny port lain, aktifkan firewall. Jangan aktifkan firewall tanpa allow SSH terlebih dahulu, terutamanya bagi server remote—kesilapan paling kerap berlaku.

3. Hadkan Akses SSH

SSH adalah sasaran utama penyerang. Port 22 yang terbuka akan menerima ratusan atau ribuan cubaan password setiap hari. Cara paling selamat ialah hadkan akses SSH kepada IP tertentu. Jika anda mempunyai IP tetap, benarkan hanya dari IP pejabat/VPN. Jika tiada, gunakan authentication melalui SSH key dan disable password login.

  • Disable login root secara langsung.
  • Guna SSH key, bukan password.
  • Hadkan user dengan AllowUsers atau AllowGroups.
  • Gunakan Fail2ban untuk sekat cubaan gagal secara automatik.
  • Jika ada panel admin, sekat port panel kepada IP tertentu.

Menukar port SSH boleh mengurangkan noise dari bot, tetapi bukan langkah utama keselamatan. Perlindungan sebenar datang dari IP restriction, authentication kuat dan pemantauan log.

4. Buka Port Web Secara Terkawal

Server web biasanya perlukan port 80 dan 443. Namun hari ini, port 443 (HTTPS) patut jadi utama, manakala port 80 hanya untuk redirect ke HTTPS. Website tanpa SSL bukan sahaja mengurangkan keyakinan pengguna, malah menjejaskan SEO. Hostragons sijil SSL ialah pautan dalaman semula jadi untuk setup HTTPS selamat.

Sewaktu membuka port web, perhatian pada IP sebenar. Jika guna CDN atau reverse proxy, lebih baik hanya benarkan trafik dari IP CDN ke port 80/443, bukan seluruh internet. Ini meningkatkan perlindungan, kerana penyerang walaupun tahu IP server tidak boleh akses web secara langsung.

5. Tutup Database & Servis Dalaman dari Internet

Servis seperti MySQL, MariaDB, PostgreSQL, Redis, Elasticsearch, MongoDB sangat berisiko jika dibuka ke internet. Redis tanpa authentication, Elasticsearch dengan akses indeks terbuka, MongoDB dengan port management terbuka—semua pernah menyebabkan kebocoran data besar. Semua servis ini patut listen hanya pada localhost atau private network.

Bagi WordPress di server yang sama, database cukup listen pada 127.0.0.1. Jika aplikasi dan database dipisahkan, allow hanya IP aplikasi ke database. Jangan sekali-kali buka 3306 atau 5432 ke internet—bot sentiasa scan port ini.

6. Gunakan Fail2ban untuk Sekat Brute Force

Fail2ban memantau log file dan mengesan cubaan login gagal berulang, lalu sekat IP tersebut secara sementara. Jail boleh diset untuk SSH, nginx, Apache, Postfix, Dovecot, login WordPress dan panel. Contohnya: IP yang gagal login SSH 5 kali dalam 10 minit disekat selama 1 jam—mudah tetapi efektif.

Elakkan aturan Fail2ban terlalu agresif; filter log yang salah boleh sekat user sebenar. Mulakan dengan tempoh ban sederhana, pantau log dan sesuaikan secara bertahap.

7. Tambahkan Rate Limiting & Had Sambungan

Rate limiting di OS boleh membantu lawan DDoS dan bot. Jika satu IP buat sambungan baru terlalu banyak setiap saat, hadkan. Untuk web server, nginx boleh guna limit_req dan limit_conn, Apache ada mod_evasive atau lain-lain. Di aplikasi, endpoint login, carian, checkout, API perlu ada had tersendiri.

Contoh: login page hadkan 10 cubaan per minit per IP. Endpoint carian 2-5 request per saat. API pula hadkan berdasarkan token, IP dan analisis tingkah laku. Ini mengelak penyerang melepasi had hanya dengan tukar IP.

Senario Setup Selamat dengan UFW

Pada server Ubuntu/Debian, senario asas: semak servis terbuka, allow SSH dari IP admin, buka 80/443 untuk web, deny incoming lain, dan sahkan status UFW. Jika tak boleh hadkan SSH kepada IP tetap, allow semua IP buat sementara, kemudian tukar kepada VPN/IP tetap.

Contoh: IP admin ialah 203.0.113.10. SSH hanya dibenarkan dari IP ini. Web terbuka 80/443 kepada semua. Database, Redis, panel dan port ujian ditutup ke luar. Struktur ini sesuai untuk website korporat sederhana. Untuk domain dan DNS, pautan dalaman ke Hostragons semakan domain dan pendaftaran boleh digunakan.

firewalld dan Konsep Zone

firewalld biasa digunakan pada AlmaLinux, Rocky Linux dan RHEL. Ia beroperasi dengan konsep zone: public zone untuk interface internet, trusted zone untuk rangkaian dalaman, drop zone untuk trafik tidak dikehendaki. Perbezaan utama ialah antara aturan runtime (segera, hilang selepas reboot) dan permanent (kekal, perlu reload).

Untuk perusahaan, definisi servis berasaskan zone memudahkan pengurusan. Contohnya: servis http/https dibuka pada public zone, SSH hanya dibenarkan dari IP tertentu. Jika ada interface berasingan untuk management, backup dan trafik pengguna, penggunaan zone meningkatkan keselamatan dan jelas.

CDN, WAF dan Perlindungan DDoS di Tahap Provider

Firewall tempatan hanya membuat keputusan selepas paket sampai ke server. Dalam DDoS besar, trafik mesti ditapis sebelum sampai ke server. CDN, WAF dan perlindungan DDoS provider sangat penting. CDN hidangkan konten statik di lokasi edge, WAF tapis request berbahaya di aplikasi, perlindungan provider menyerap serangan network-level.

Model ideal: DNS melalui CDN, IP server sebenar disembunyikan, firewall server hanya allow port 80/443 dari IP CDN. Port admin hanya boleh diakses dari VPN/IP tetap. Model ini mengurangkan risiko serangan direct ke IP dan menapis bot sebelum sampai aplikasi. Untuk topik keselamatan dan prestasi web, gunakan Panduan Mempercepat dan Keselamatan Laman Web.

Langkah Aplikasi Lawan Bot

Langkah Aplikasi Lawan Bot

Pemantauan bot bukan sekadar ban IP. Bot moden guna proxy, IP pusat data, user agent pelbagai. Pendekatan mesti berdasarkan tingkah laku: cubaan login banyak dalam masa singkat, scan 404 berterusan, akses ke wp-login.php/xmlrpc.php, pola klik berbeza, user agent/referer mencurigakan mesti dianalisis.

  • Gunakan rate limiting pada form login/daftar.
  • Tutup atau hadkan akses XML-RPC.
  • Lindungi panel admin dengan URL unik, IP restriction dan authentication multi-factor.
  • Filter user-agent/referer mencurigakan di peringkat WAF.
  • Gunakan CAPTCHA atau sistem bot detection yang tidak terlalu mengganggu user.
  • API endpoint mesti ada key, signature, quota dan timestamp check.

Penting untuk tidak merosakkan pengalaman pengguna sebenar. CAPTCHA berlebihan, ban terlalu agresif atau sekatan negara yang tidak tepat boleh rugikan pelanggan sah. Amalkan pengukuran dan ujian sebelum memperketat aturan.

Pemantauan Log & Aturan Alarm

Jangan anggap setup firewall selesai selepas konfigurasi. Ia mesti dipantau secara konsisten. Semak auth.log untuk cubaan SSH, nginx access log untuk request abnormal, error log untuk kenaikan 404/500, serta metrik CPU dan sambungan. Alarm automatik boleh beri masa respons yang kritikal.

Contoh threshold awal: 100 permintaan 404 dari satu IP dalam 5 minit, >20 cubaan login dalam 1 minit, CPU >90% selama 10 minit, sambungan naik 3 kali ganda dari normal. Setiap website berbeza—kenali pola trafik biasa anda.

Kesilapan Biasa & Cara Elak

  • Aktifkan firewall tanpa allow SSH: Boleh putus akses ke server. Sentiasa uji dengan sesi kedua.
  • Lupa IPv6: Servis boleh terbuka melalui IPv6 walaupun IPv4 disekat.
  • Database terbuka ke internet: Port seperti 3306, 5432, 6379, 9200 sentiasa discan bot.
  • Guna CDN tapi IP sebenar terbuka: Penyerang boleh bypass CDN dan serang server terus.
  • Ubah aturan tanpa dokumentasi: Sukar untuk troubleshooting jika berlaku masalah.
  • Tiada pelan backup akses: Kesilapan aturan tanpa akses konsol boleh menyebabkan downtime lama.

Contoh Polisi Firewall Praktikal

Untuk website korporat kecil, polisi ringkas ialah: incoming default deny; port 443 terbuka kepada semua; port 80 hanya untuk redirect ke HTTPS; SSH hanya dari VPN/IP admin; database di localhost/private network; jika guna CDN, port 80/443 hanya dibenarkan dari IP CDN; Fail2ban pantau SSH/login web; log dihantar ke sistem pemantauan pusat.

Bagi website e-dagang sederhana, tambah allowlist untuk IP callback pembayaran, panel admin di belakang VPN, API dengan quota per user, WAF dengan aturan SQL injection dan XSS, serta filter negara/ASN sementara. Polisi bertulis penting—lebih mudah laksana jika serangan berlaku, daripada buat keputusan ad hoc.

Ujian: Adakah Aturan Firewall Berfungsi?

Selepas setup firewall, ujian mesti dijalankan. Scan port dari rangkaian berbeza, pastikan SSH hanya boleh dari IP yang dibenarkan, website boleh diakses melalui HTTPS, port database tertutup ke luar. Jika gunakan CDN, cuba akses IP sebenar server dengan request HTTP—pastikan ia disekat.

Jangan buat ujian agresif yang boleh rosakkan sistem production. Tujuan ialah pengesahan selamat. Selepas setiap perubahan, eksport atau catat aturan firewall. Jika berlaku masalah, mudah revert ke konfigurasi sebelumnya.

Penyelenggaraan & Pelan Kemas Kini

Keselamatan server bukan setup sekali sahaja, tetapi perlu penyelenggaraan berkala. Bila servis baru ditambah, semak keperluan port; bila servis lama dibuang, padam aturan berkaitan; update security, semak log secara berkala. Sekurang-kurangnya audit port sebulan sekali, semak aturan firewall setiap tiga bulan.

Pelan backup juga sebahagian strategi keselamatan. DDoS boleh putuskan akses, malware atau akses tidak sah boleh hilangkan data. Hosting selamat, SSL, pengurusan domain dan backup perlu dirancang bersama. Perkara yang perlu dipertimbangkan semasa memilih hosting selamat dan Cara memasang sijil SSL adalah pautan lanjutan sesuai.

Kesimpulan

Setup firewall server tidak akan menjadikan server anda “invisible” sepenuhnya dari DDoS atau bot, tetapi ia sangat mengurangkan permukaan serangan, menurunkan risiko akses tidak sah dan membolehkan anda bertindak balas dengan lebih terkawal. Hasil optimum dicapai dengan gabungan perlindungan DDoS provider, CDN/WAF, polisi port ketat, restriction SSH, Fail2ban, rate limit dan pemantauan log konsisten.

Jika memulakan projek baru, lebih mudah rancang polisi firewall dari awal berbanding membaiki kemudian. Bila menilai server, hosting, domain dan SSL di Hostragons, fikirkan keperluan keselamatan bersama supaya website lebih tahan lasak. Mulakan dengan senarai semak ringkas: tutup port tidak perlu, hadkan SSH, wajibkan HTTPS dan pantau log.

Soalan Lazim

Adakah firewall server boleh hentikan DDoS sepenuhnya?

Tidak. Firewall tempatan hanya mampu kurangkan serangan kecil dan sesetengah protokol. Untuk DDoS besar, perlu gunakan perlindungan provider, CDN dan WAF.

Port apa yang perlu dibuka pada web server?

Biasanya port 80 dan 443 sahaja. SSH hanya dibenarkan dari IP admin. Port database dan servis dalaman mesti ditutup ke internet.

Pilih UFW atau firewalld?

UFW mudah untuk Ubuntu/Debian. firewalld biasa pada AlmaLinux, Rocky Linux, RHEL. Untuk senario lanjutan, nftables boleh digunakan.

Bolehkah sekat bot hanya dengan ban IP?

Kebanyakan bot moden guna IP/proxy berbeza. Selain ban IP, perlu rate limit, aturan WAF, analisis tingkah laku, CAPTCHA dan quota aplikasi.

Apa risiko terbesar semasa setup firewall?

Risiko terbesar ialah terputus akses SSH sendiri akibat aturan salah. Pastikan allow SSH terlebih dahulu, uji dengan sesi kedua dan sediakan akses konsol provider.

Kongsikan artikel ini:

Pasukan Hostragons

Panduan terkini daripada pasukan pakar kami tentang pengehosan, pelayan dan nama domain. Mari kita cari penyelesaian yang tepat untuk projek anda bersama-sama.

Hubungi Kami