Saya baru-baru ini memutuskan untuk melakukan pemeliharaan keamanan. Saya melihat log saya, dan ada beberapa percobaan terhadap server SSH saya. Pada awalnya, saya memindahkan port SSH dari default 22. Setelah itu, saya membaca sesuatu tentang Fail2ban , BlockHosts dan DenyHosts .
Saya melihat yang pertama: mudah dikonfigurasikan, semuanya bisa dimengerti; tetapi ketika saya mencoba untuk "menyelidiki proteksinya", tes gagal . Semuanya tampak baik, tetapi saya masih dapat mengakses server.
Saya juga menguji IPtables: # iptables -I INPUT -j DROP
- setelah itu koneksi SSH saya hilang (jadi, apa yang saya inginkan). Lalu # iptables -I INPUT -s 84.x.y.z -j DROP
, yang berhasil juga.
Tapi, aturan apa yang dilakukan Fail2ban, itu tidak berfungsi: ( $ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Modul kernel dimuat: ( $ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
Versi:
- Debian Lenny 5.06, kernel 2.6.26-2-686
- Daftar Tabel 1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1: 5.1p1-5
Uji # 1 langkah demi langkah:
- Konfigurasikan Fail2ban ke bantime rendah. 60 detik Kemudian muat ulang.
- Mencoba masuk (dengan SSH), langsung dengan passwd yang salah.
- Untuk ke 6 kalinya masukkan passwd yang benar (percobaan maksimal hanya 4 di sini). Saya masuk. Saya juga dapat mengakses halaman web yang dihosting oleh server itu.
iptables -L
menunjukkan saya seperti yang disebutkan di atas. Jadi larangan aktif, ketika saya terhubung, memerintahkan server saya.
Uji # 2 langkah demi langkah:
- Hentikan Fail2ban. Buat
at
skrip, untuk menghapus aturan larangan menulis di bawah ini di masa depan. (iptables -D INPUT 1
) - Buat aturan larangan:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- Saya tidak bisa mengetik apa pun, koneksi SSH tidak dapat digunakan. Saya tidak dapat mengakses halaman web. Jadi, apa yang saya inginkan dari iptables.
- Setelah
at
skrip, saya dapat mengakses server saya.
Saya tidak melihat solusinya, apa yang harus saya lakukan untuk membuat larangan IPtables saya (dibuat oleh Fail2ban) berfungsi?
Jawaban:
Saya menemukan masalah, apa yang saya lakukan, sebelum menginstal fail2ban. Maaf atas waktumu
Demi alasan keamanan, saya memindahkan sshd saya dari port 22 ke yang lain. Referensi dalam
iptables
merujuk ke port 22 saja. Saya pikir, itu adalah variabel, yang selalu merujuk ke port sshd saat ini. Tapi TIDAK .Solusi tepat (jika Anda memindahkan daemon Anda dari port aslinya):
port
bagian ini untuk semua . Contoh:port = all
banaction
baris yang ada setelah garis port, dengan nilai iptables-allports . Contoh:banaction = iptables-allports
.# service fail2ban restart
.Saya tidak dapat menemukan solusi untuk mengubah
port ssh
arahan, atau menulis nomor di sana. Jika Anda memiliki solusi non-semua-port, saya akan mendengarkannya!sumber
Saya memiliki masalah yang sama dengan fail2ban tidak mencekal setelah saya memindahkan server ssh ke port standar 12345 (katakanlah).
Untuk membuat fail2ban menghasilkan aturan yang tepat setelah sejumlah upaya otentikasi gagal, saya mengedit
/etc/fail2ban/jail.conf
.ke
Saya menganggap pendekatan serupa akan bekerja untuk layanan lain pada port non standar.
sumber
Pengaturan untuk fail2ban dalam
/etc/fail2ban/jail.local
. Pada instalasi default saya tidak yakin apakah itu ada di sana. Lalu apa yang Anda lakukan adalah copyjail.conf
untukjail.local
, sehingga Anda memiliki kedua file di/etc/fail2ban/
. Editjail.local
, buka baris yang berisi[ssh]
dan aktifkan seperti ini:Setelah itu, restart fail2ban:
Mungkin itu akan berfungsi sekarang, saya telah mengaturnya seperti itu dan berfungsi.
sumber
Anda mencantumkan "Fail2ban 0.8.3-2sid1" sebagai diinstal. Ini adalah konfigurasi yang tidak didukung. Paket sid tidak boleh dipasang ke lingkungan yang stabil.
Saya menjalankan Debian 6 (Squeeze), yang ditingkatkan dari Lenny, di VM khusus sebagai server SSH untuk rumah saya. Saya juga menggunakan fail2ban. Saya melakukan Tes Anda # 1 dan semuanya berjalan sebagaimana mestinya. Saya gagal masuk untuk jumlah upaya maksimum, dan kemudian permintaan saya untuk masuk dibatalkan selama 60 detik.
Daftar versi saya:
sumber
sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade
. Sederhana saja.