Tutorial ini mendokumentasikan proses penggunaan pelacak penyalahgunaan badips bersama dengan Fail2ban untuk melindungi server atau komputer Anda. Saya telah mengujinya pada sistem Debian 8 Jessie dan Debian 7 Wheezy.
Apa itu badIP?
BadIps adalah daftar IP yang dilaporkan buruk jika digabungkan dengan fail2ban.
Tutorial ini berisi dua bagian, yang pertama akan membahas penggunaan daftar dan yang kedua akan menangani injeksi data.
Gunakan daftar badIPs
Tentukan tingkat dan kategori keamanan Anda
Anda bisa mendapatkan daftar alamat IP hanya dengan menggunakan REST API.
Saat Anda MENDAPATKAN URL ini : https://www.badips.com/get/categories
Anda akan melihat semua kategori berbeda yang ada di layanan.
- Langkah kedua, tentukan skor penyihir dibuat untuk Anda.
Berikut kutipan dari badips yang akan membantu (secara pribadi saya mengambil skor =3): - Jika Anda ingin mengumpulkan statistik atau menggunakan data untuk beberapa eksperimen, dll. Anda dapat memulai dengan skor 0.
- Jika Anda ingin mem-firewall server atau situs web pribadi Anda, gunakan skor dari 2. Mungkin digabungkan dengan hasil Anda sendiri, meskipun skornya tidak di atas 0 atau 1.
- Jika Anda akan melindungi toko web atau lalu lintas tinggi, server e-niaga penghasil uang, kami sarankan untuk menggunakan nilai dari 3 atau 4. Mungkin juga dikombinasikan dengan hasil Anda sendiri (kunci / sinkronisasi).
- Jika Anda paranoid, ambil 5.
Jadi sekarang setelah Anda mendapatkan dua variabel, mari buat tautan Anda dengan menggabungkannya dan ambil tautan Anda.
http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}
Catatan:Seperti saya, Anda dapat mengambil semua layanan. Ubah nama layanan menjadi "any" dalam kasus ini.
URL yang dihasilkan adalah:
https://www.badips.com/get/list/any/3
Ayo buat skrip
Baiklah, setelah selesai, kita akan membuat skrip sederhana.
- Menempatkan daftar kami dalam file sementara.
- (hanya sekali) membuat rantai di iptables.
- Hapus semua data yang ditautkan ke rantai kami (entri lama).
- Kami akan menautkan setiap IP ke rantai baru kami.
- Setelah selesai, blokir semua INPUT / OUTPUT / FORWARD yang terkait dengan rantai kami.
- Hapus file sementara kami.
Sekarang kita akan membuat skrip untuk itu:
cd /home/<user>/
vi myBlacklist.sh
Masukkan konten berikut ke dalam file itu.
#!/bin/sh
# based on this version http://www.timokorthals.de/?p=334
# adapted by Stéphane T.
_ipt=/sbin/iptables # Location of iptables (might be correct)
_input=badips.db # Name of database (will be downloaded with this name)
_pub_if=eth0 # Device which is connected to the internet (ex. $ifconfig for that)
_droplist=droplist # Name of chain in iptables (Only change this if you have already a chain with this name)
_level=3 # Blog level: not so bad/false report (0) over confirmed bad (3) to quite aggressive (5) (see www.badips.com for that)
_service=any # Logged service (see www.badips.com for that)
# Get the bad IPs
wget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }
### Setup our black list ###
# First flush it
$_ipt --flush $_droplist
# Create a new chain
# Decomment the next line on the first run
# $_ipt -N $_droplist
# Filter out comments and blank lines
# store each ip in $ip
for ip in `cat $_input`
do
# Append everything to $_droplist
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j LOG --log-prefix "Drop Bad IP List "
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j DROP
done
# Finally, insert or append our black list
$_ipt -I INPUT -j $_droplist
$_ipt -I OUTPUT -j $_droplist
$_ipt -I FORWARD -j $_droplist
# Delete your temp file
rm $_input
exit 0
Setelah selesai, Anda harus membuat cronjob yang akan memperbarui daftar hitam kami.
Untuk ini, saya menggunakan crontab dan menjalankan skrip setiap hari pada pukul 11:30 (tepat sebelum pencadangan saya yang tertunda).
crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS
Jangan lupa untuk chmod skrip Anda:
chmod + x myBlacklist.sh
Setelah selesai, server/komputer Anda akan sedikit lebih aman.
Anda juga dapat menjalankan skrip secara manual seperti ini:
cd /home/<user>/
./myBlacklist.sh
Ini akan memakan waktu ... jadi jangan merusak skrip. Bahkan, nilainya terletak di baris terakhir.
Laporkan alamat IP ke badIP dengan Fail2ban
Di bagian kedua dari tutorial ini, saya akan menunjukkan cara melaporkan alamat IP bd ke situs web badips.com dengan menggunakan Fail2ban.
Fail2ban>=0.8.12
Pelaporan dibuat dengan Fail2ban. Tergantung pada versi Fail2ban Anda, Anda harus menggunakan bagian pertama atau kedua dari bab ini. Jika Anda memiliki fail2ban di versi 0.8.12.
Jika Anda memiliki fail2ban versi 0.8.12 atau yang lebih baru.
fail2ban-server --version
Di setiap kategori yang akan Anda laporkan, cukup tambahkan tindakan.
[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6
Seperti yang Anda lihat, kategorinya adalah SSH, lihat di sini (https://www.badips.com/get/categories) untuk menemukan kategori yang benar.
Fail2ban < 0.8.12
Jika versinya kurang dari 0.8.12, Anda harus membuat tindakan. Ini dapat diunduh di sini: https://www.badips.com/asset/fail2ban/badips.conf.
wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf
Dengan badips.conf dari atas, Anda dapat mengaktifkan per kategori seperti di atas atau Anda dapat mengaktifkannya secara global:
cd /etc/fail2ban/
vi jail.conf
[DEFAULT]
...
banaction = iptables-multiport
badips
Sekarang restart fail2ban - itu harus mulai melaporkan mulai sekarang.
service fail2ban restart
Statistik pelaporan IP Anda
Langkah terakhir – tidak terlalu berguna… Anda dapat membuat kunci.
Yang ini berguna jika Anda ingin melihat data Anda.
Cukup salin / tempel ini dan respons JSON akan muncul di Anda konsol.
wget https://www.badips.com/get/key -qO -
{ "err":"", "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.", "key":"5f72253b673eb49fc64dd34439531b5cca05327f" }
Kemudian buka situs web badips, masukkan “kunci” Anda dan klik “statistik”.
Ini dia… semua statistik Anda berdasarkan kategori.