Blok Fail2ban dengan IPtables tidak berfungsi pada Debian Lenny. [port ssh dipindahkan]


11

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:

  1. Konfigurasikan Fail2ban ke bantime rendah. 60 detik Kemudian muat ulang.
  2. Mencoba masuk (dengan SSH), langsung dengan passwd yang salah.
  3. 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.
  4. iptables -Lmenunjukkan saya seperti yang disebutkan di atas. Jadi larangan aktif, ketika saya terhubung, memerintahkan server saya.

Uji # 2 langkah demi langkah:

  1. Hentikan Fail2ban. Buat atskrip, untuk menghapus aturan larangan menulis di bawah ini di masa depan. ( iptables -D INPUT 1)
  2. Buat aturan larangan: iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. Saya tidak bisa mengetik apa pun, koneksi SSH tidak dapat digunakan. Saya tidak dapat mengakses halaman web. Jadi, apa yang saya inginkan dari iptables.
  4. Setelah atskrip, saya dapat mengakses server saya.

Saya tidak melihat solusinya, apa yang harus saya lakukan untuk membuat larangan IPtables saya (dibuat oleh Fail2ban) berfungsi?


Pertanyaan diedit! Ada ide?
antivirtel

Jawaban:


8

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 iptablesmerujuk 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):

  1. Buka jail.local (atau .conf).
  2. Temukan layanan Anda (dalam kawat gigi).
  3. Perbaiki portbagian ini untuk semua . Contoh:port = all
  4. Tambahkan atau edit banactionbaris yang ada setelah garis port, dengan nilai iptables-allports . Contoh: banaction = iptables-allports.
  5. Mulai ulang daemon. Contoh: # service fail2ban restart.

Saya tidak dapat menemukan solusi untuk mengubah port ssharahan, atau menulis nomor di sana. Jika Anda memiliki solusi non-semua-port, saya akan mendengarkannya!


1
Yang perlu Anda lakukan adalah memberikan nomor port alih-alih nama.
Julian Knight

Perhatikan juga bahwa nama iptable Anda harus memiliki kurang dari 32 karakter agar dapat ditambahkan dengan sukses.
Adrian Lopez

2

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.

port = ssh 

ke

port = 12345

Saya menganggap pendekatan serupa akan bekerja untuk layanan lain pada port non standar.


0

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 copy jail.confuntuk jail.local, sehingga Anda memiliki kedua file di /etc/fail2ban/. Edit jail.local, buka baris yang berisi [ssh]dan aktifkan seperti ini:

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Setelah itu, restart fail2ban:

sudo /etc/init.d/fail2ban restart

Mungkin itu akan berfungsi sekarang, saya telah mengaturnya seperti itu dan berfungsi.


Saya pikir, Anda tidak mengerti pertanyaan saya! Fail2ban tidak, apa yang saya inginkan: menonton log, dan melarang penyerang. Tapi larangan itu, apa yang harus dilakukan IPtables, tidak berfungsi. Saya dapat MASIH AKSES server, dengan pengaturan aturan yang disebutkan di atas.
antivirtel

Maaf, saya sedang terburu-buru, jadi saya salah paham dan karena saya memiliki masalah yang sama, yang saya selesaikan dengan menambahkan penjara. Secara lokal, saya pikir itu akan membantu. Sayangnya, jika semuanya sudah diatur dengan benar, saya tidak tahu apa masalahnya, tapi harap orang lain melakukannya.
enedene

0

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:

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-server = 1: 5.5p1-6


Dalam hal ini, saya sarankan melakukan dist-upgrade.
James Sumners

okok, ini tidak terlalu mudah, tetapi saya akan berhasil melakukannya entah bagaimana ... - mungkin instal ulang yang bersih
antivirtel

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade. Sederhana saja.
James Sumners

ya, tetapi apakah ada peluang untuk tidak melakukan booting di waktu berikutnya ... catatan rilisnya menulis, bahwa kenel baru + sistem udev baru ... - apakah berhasil dengan mesin Anda?
antivirtel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.