Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Mengamankan Server Linux Anda dengan fail2ban

Posted on October 24, 2023

Dengan fail2ban, komputer Linux Anda secara otomatis memblokir alamat IP yang memiliki terlalu banyak kegagalan koneksi. Ini adalah keamanan yang mengatur dirinya sendiri! Kami akan menunjukkan cara menggunakannya.

Artikel Pekan Kesadaran Keamanan Siber ini dipersembahkan untuk Anda terkait dengan Incogni.

Apa itu fail2ban?

Fail2ban adalah utilitas yang secara otomatis akan memblokir alamat IP jika mencoba dan gagal menyambung ke server terlalu sering.

Ketika seseorang mencoba menyambung ke server Anda — baik itu server SSH, server web atau email, atau server Minecraft — mereka biasanya diminta memasukkan nama pengguna dan kata sandi sebelum mereka diizinkan mengakses. Manusia normal yang memasukkan (atau menebak) detail akun mereka secara fisik tidak akan dapat memasukkan lebih dari satu upaya paling cepat setiap beberapa detik. Ketika kredensial dimasukkan lebih cepat dan lebih sering dari itu, itu tandanya Anda mempunyai masalah — seseorang mungkin menjalankan serangan brute force dengan komputer lain untuk mencoba membobolnya.

Untuk mendeteksi serangan brute force, Anda perlu memantau permintaan koneksi yang gagal masuk ke akun. Setelah penyerang teridentifikasi, mereka harus dilarang melakukan upaya lebih lanjut.

Satu-satunya cara praktis untuk mencapai hal ini adalah dengan mengotomatiskan seluruh proses. Dengan sedikit konfigurasi sederhana, fail2ban akan mengelola pemantauan, pelarangan, dan pembatalan pelarangan untuk Anda.

fail2ban terintegrasi dengan firewalliptables Linux. Ini memberlakukan larangan terhadap alamat IP yang dicurigai dengan menambahkan aturan ke firewall. Agar penjelasan ini tidak berantakan, kami menggunakan iptables dengan kumpulan aturan yang kosong. Tentu saja, jika Anda mengkhawatirkan keamanan, Anda mungkin memiliki firewall yang dikonfigurasi dengan kumpulan aturan yang banyak. fail2ban hanya menambahkan dan menghapus aturannya sendiri — fungsi firewall reguler Anda tidak akan tersentuh.

Kami dapat melihat kumpulan aturan kosong kami menggunakan perintah ini:

sudo iptables -L

Instalasi fail2ban

Instalasi fail2ban mudah dilakukan di semua distribusi yang kami gunakan untuk meneliti artikel ini. Di Ubuntu 20.04, perintahnya adalah sebagai berikut:

sudo apt-get install fail2ban

Pada Fedora 32, ketik:

sudo dnf install fail2ban

Pada Manjaro 20.0.1, kami menggunakan pacman:

sudo pacman -Sy fail2ban

Configuring fail2ban

Instalasi fail2ban berisi file konfigurasi default yang disebut jail .conf. File ini ditimpa ketika fail2ban ditingkatkan, jadi kami akan kehilangan perubahan jika kami melakukan penyesuaian pada file ini.

Sebagai gantinya, kami akan menyalin file jail.conf ke file bernama jail.local. Dengan menempatkan perubahan konfigurasi kami di jail.local, perubahan tersebut akan bertahan selama peningkatan. Kedua file secara otomatis dibaca oleh fail2ban.

Ini adalah cara menyalin file:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Sekarang buka file di editor favorit Anda. Kami akan menggunakan gedit:

sudo gedit /etc/fail2ban/jail.local

Kami akan mencari dua bagian dalam file: [DEFAULT] dan [sshd]. Namun, berhati-hatilah untuk menemukan bagian sebenarnya. Label tersebut juga muncul di dekat bagian atas di bagian yang mendeskripsikannya, tapi bukan itu yang kami inginkan.

Anda akan menemukan bagian [DEFAULT] di sekitar baris 40. Ini adalah bagian panjang dengan banyak komentar dan penjelasan.

Gulir ke bawah hingga sekitar baris 90, dan Anda akan menemukan empat pengaturan berikut yang perlu Anda ketahui:

ignoreip: Daftar putih alamat IP yang tidak akan pernah dilarang. Mereka memiliki kartu Bebas Keluar Penjara permanen. Alamat IP localhost (127.0.0.1) ada dalam daftar secara default, bersama dengan IPv6 yang setara (::1). Jika ada alamat IP lain yang Anda tahu tidak boleh dilarang, tambahkan alamat tersebut ke daftar ini dan beri spasi di antara masing-masing alamat. bantime: Durasi pemblokiran alamat IP (“m” berarti menit). Jika Anda mengetikkan nilai tanpa “m” atau “h” (untuk jam), nilai tersebut akan dianggap sebagai detik. Nilai -1 akan memblokir alamat IP secara permanen. Berhati-hatilah untuk tidak mengunci diri Anda secara permanen. findtime: Jumlah waktu di mana terlalu banyak upaya koneksi yang gagal akan mengakibatkan alamat IP diblokir. maxretry: Nilai untuk “terlalu banyak upaya yang gagal”.

Jika koneksi dari alamat IP yang sama membuat upaya koneksi maxretry gagal dalam jangka waktu findtime, maka koneksi tersebut akan diblokir selama durasi bantime tersebut. Satu-satunya pengecualian adalah alamat IP dalam daftar abaikan.

fail2ban memasukkan alamat IP ke penjara selama jangka waktu tertentu. fail2ban mendukung banyak jail yang berbeda, dan masing-masing jail mewakili pengaturan yang berlaku untuk satu jenis koneksi. Ini memungkinkan Anda memiliki pengaturan berbeda untuk berbagai jenis koneksi. Atau Anda dapat meminta fail2ban memantau hanya sekumpulan jenis koneksi yang dipilih.

Anda mungkin sudah menebaknya dari nama bagian [DEFAULT], tetapi pengaturan yang kami lihat adalah defaultnya. Sekarang, mari kita lihat pengaturan untuk SSH jail.

Mengonfigurasi Jail

Jails memungkinkan Anda memindahkan jenis koneksi masuk dan keluar dari pemantauan fail2ban. Jika pengaturan default tidak cocok dengan yang ingin Anda terapkan ke jail, Anda dapat mengatur nilai spesifik untuk bantime, findtime, dan maxretry.

Gulir ke bawah hingga sekitar baris 280, dan Anda akan melihat bagian [sshd].

Di sinilah Anda dapat menetapkan nilai untuk jail koneksi SSH. Untuk memasukkan jail ini ke dalam pemantauan dan pelarangan, kita harus mengetikkan baris berikut:

enabled = true

Kami juga mengetikkan baris ini:

maxretry = 3

Pengaturan defaultnya adalah lima, tetapi kami ingin lebih berhati-hati dengan koneksi SSH. Kami menurunkannya menjadi tiga, lalu menyimpan dan menutup file.

Kami menambahkan jail ini ke pemantauan fail2ban, dan mengesampingkan salah satu pengaturan default. Sebuah jail dapat menggunakan kombinasi pengaturan default dan spesifik jail.

Mengaktifkan fail2ban

Sejauh ini, kami telah menginstal fail2ban dan mengonfigurasinya. Sekarang, kita harus mengaktifkannya untuk dijalankan sebagai layanan mulai otomatis. Kemudian, kita perlu mengujinya untuk memastikannya berfungsi seperti yang diharapkan.

Untuk mengaktifkan fail2ban sebagai layanan, kita menggunakan perintah systemctl:

sudo systemctl enable fail2ban

Kami juga menggunakannya untuk memulai layanan:

sudo systemctl start fail2ban

Kami dapat memeriksa status layanan menggunakan systemctl juga:

sudo systemctl status fail2ban.service

Semuanya terlihat baik – kami mendapat lampu hijau, jadi semuanya baik-baik saja.

Mari kita lihat apakah fail2ban setuju:

sudo fail2ban-client status

Ini mencerminkan apa yang kami siapkan. Kami telah mengaktifkan satu jail, bernama [sshd]. Jika kita menyertakan nama jail dengan perintah sebelumnya, kita dapat melihatnya lebih dalam:

sudo fail2ban-client status sshd

Ini mencantumkan jumlah kegagalan dan alamat IP yang diblokir. Tentu saja, semua statistiknya nol saat ini.

Di komputer lain, kami akan membuat permintaan koneksi SSH ke mesin pengujian kami dan dengan sengaja salah mengetikkan kata sandi. Anda mendapatkan tiga upaya untuk mendapatkan kata sandi yang benar pada setiap upaya koneksi.

Nilai maxretry akan terpicu setelah tiga upaya koneksi gagal, bukan tiga upaya kata sandi yang gagal. Jadi, kita harus mengetikkan kata sandi yang salah tiga kali untuk gagal dalam upaya koneksi satu kali. Nbsp

Kami kemudian akan membuat upaya koneksi lagi dan mengetikkan kata sandi yang salah sebanyak tiga kali lagi. Upaya kata sandi pertama yang salah pada permintaan koneksi ketiga akan memicu fail2ban.

Setelah kata sandi salah pertama pada permintaan koneksi ketiga, kami tidak mendapat respons dari mesin jarak jauh. Kami tidak mendapatkan penjelasan apa pun; kami baru saja bersikap dingin.

Anda harus menekan Ctrl+C untuk kembali ke command prompt. Jika kita mencoba sekali lagi, kita akan mendapatkan respon yang berbeda:

ssh dave@ubuntu20-04.local

Sebelumnya, pesan kesalahannya adalah “Izin ditolak.” Kali ini, koneksinya ditolak mentah-mentah. Kami adalah persona non grata. Kami telah diblokir.

Mari kita lihat kembali detail penjara [sshd]:

sudo fail2ban-client status sshd

Ada tiga kegagalan, dan satu alamat IP (192.168.4.25) diblokir.

Seperti yang kami sebutkan sebelumnya, fail2ban memberlakukan larangan oleh menambahkan aturan ke kumpulan aturan firewall. Mari kita lihat lagi kumpulan aturan (sebelumnya kosong):

sudo iptables -L

Sebuah aturan telah ditambahkan ke kebijakan INPUT, mengirimkan lalu lintas SSH ke rantai f2b-sshd. Aturan dalam rantai f2b-sshd menolak koneksi SSH dari 192.168.4.25. Kami tidak mengubah pengaturan default untuk bantime, jadi, dalam 10 menit, alamat IP tersebut tidak akan diblokir dan dapat membuat permintaan koneksi baru.

Jika Anda menetapkan durasi larangan yang lebih lama (misalnya beberapa jam), namun ingin mengizinkan alamat IP untuk membuat permintaan koneksi lain lebih cepat, Anda dapat membebaskannya lebih awal.

Kami mengetikkan yang berikut untuk melakukan ini:

sudo fail2ban-client set sshd unbanip 192.168.5.25

Di komputer jarak jauh kami, jika kami membuat permintaan koneksi SSH lain dan mengetikkan kata sandi yang benar, kami akan diizinkan untuk terhubung:

ssh dave@ubuntu20-04.local

Terbaru

  • Ngefans Maxwell Clash of Champions? Begini Cara Masuk Saluran WA-nya Biar Update Terus!
  • Ini Cara Pakai greatonlinetools.com buat Nambah Likes dan Iseng ke Teman!
  • Cara Pakai Bug Token M7 Mobile Legends, Banjir Skin Prime Cuma Modal Browser!
  • Pusing Gagal Simpan Data Internet Dapodik 2026.b? Ini Trik Jitu Mengatasinya!
  • Mau Cuan Tambahan? Ini Cara Mudah Jadi Clipper di Ternak Klip Modal HP Doang!
  • Akun PTK Silang Merah di Dapodik 2026.b Bikin Panik? Jangan Dihapus, Coba Trik Ini Dulu!
  • Ini Trik Supaya Bisa Mancing Otomatis di Fish It Roblox Pakai GG Game Space
  • Sering Stuck Saat Registrasi Dapodik 2026.b? Coba Cara Offline Ini, Dijamin Lancar!
  • Belum Tahu? Ini Trik Isi Data Internet Dapodik 2026.B Biar Validasi Aman!
  • Belum Tahu? Inilah Cara Dapat Saldo E-Wallet Cuma Modal Tidur di Sleep Time Tracker
  • Padahal Negara Maju, Kenapa Selandia Baru Nggak Bangun Jembatan Antar Pulau? Ini Alasannya!
  • Nonton Drama Bisa Dapat 1 Juta? Cek Dulu Fakta dan Bukti Penarikan Aplikasi Gold Drama Ini!
  • Takut Saldo Habis? Gini Cara Stop Langganan CapCut Pro Sebelum Perpanjangan Otomatis
  • Gini Caranya Hilangkan Invalid Peserta Didik di Dapodik 2026 B Tanpa Ribet, Cuma Sekali Klik!
  • Rombel Hilang di Dapodik 2026 B? Tenang, Gini Cara Mudah Mengatasinya Tanpa Menu Aksi!
  • Pusing Lihat Ratusan Invalid Sarpras di Dapodik 2026 B? Tenang, Ini Cara Membereskan Datanya
  • Validasi Merah Terus? Ini Cara Tuntas Isi Data Listrik & Internet di Dapodik 2026 B
  • Inilah Trik Install Dapodik 2026.B Tanpa Patch, Wajib Uninstall Versi Lama!
  • Apakah APK PinjamAja Penipu?
  • Ini Trik Cepat Cuan di Clear Blast Tanpa Undang Teman
  • Belum Tahu? Inilah Suku Bajau Punya Gen “Mutan” Mirip Fishman One Piece, Ini Faktanya!
  • Inilah Paket PLTS Hybrid 6kVA Aspro DML 600 yang Paling Powerful!
  • Suku Tsaatan: Suku Mongolia Penggembala Rusa Kutub
  • Game Happy Rush Terbukti Membayar atau Cuma Scam Iklan?
  • Cara Nonton Drama Dapat Duit di Free Flick, Tapi Awas Jangan Sampai Tertipu Saldo Jutaan!
  • APK Pinjol Rajindompet Penipu? Ini Review Aslinya
  • Keganggu Iklan Pop-Up Indosat Pas Main Game? Ini Trik Ampuh Matikannya!
  • Belum Tahu? Inilah Cara Upload Reels Instagram Sampai 20 Menit, Konten Jadi Lebih Puas!
  • Apa itu Negara Somaliland? Apa Hubungannya dengan Israel?
  • Apa itu Game TheoTown? Game Simulasi Jadi Diktator
  • What is OpenEverest? The Future of Database Management on Kubernetes
  • T3g: Code is Cheap Now, Software Isn’t
  • Is the New $130 Raspberry Pi AI Hat+ 2 Worth Your Allowance? A Detailed Review
  • Create AI Voices on Your CPU: Pocket TTS Explained for Beginners
  • Building Your First Server: Windows Server Setup and Active Directory
  • Begini Cara Mencegah Output Agen AI Melenceng Menggunakan Task Guardrails di CrewAI
  • Tutorial AI Lengkap Strategi Indexing RAG
  • Cara Membuat AI Voice Agent Cerdas untuk Layanan Pelanggan Menggunakan Vapi
  • Inilah Cara Belajar Cepat Model Context Protocol (MCP) Lewat 7 Proyek Open Source Terbaik
  • Inilah Cara Menguasai Tracing dan Evaluasi Aplikasi LLM Menggunakan LangSmith
  • Clipper Malware? Ini Pengertian dan Bahaya yang Mengintai Kalian
  • Kronologi Serangan Gentlemen Ransomware di Oltenia Energy
  • Apa itu CVE-2020-12812? Ini Penjelasan Celah Keamanan Fortinet FortiOS 2FA yang Masih Bahaya
  • Apa itu CVE-2025-14847? Ini Penjelasan Lengkap MongoBleed
  • Ini Kronologi & Resiko Kebocoran Data WIRED
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

©2026 emka.web.id | Design: Newspaperly WordPress Theme