Menggunakan Fail2ban Untuk Memblokir Login ISPConfig yang Salah
Pertama-tama:jika Anda tidak paranoid, Anda tidak membutuhkan ini. ISPConfig melakukan pekerjaan yang baik untuk memblokir login pengguna yang gagal lebih dari lima kali dalam satu menit.
Di sisi lain, Anda MUNGKIN ingin dapat menyempurnakan ini sedikit.
Dalam tutorial ini, kita akan menulis plugin ISPConfig untuk mencatat login yang gagal ke syslog, memfilter entri tersebut menggunakan rsyslogd dan menambahkan aturan fail2ban untuk memblokir IP pengguna jahat.
Sekali lagi:kita juga tidak membutuhkan bagian ini. Jika Anda menyetel Loglevel ISPConfig ke DEBUG, login yang gagal akan tetap dicatat. Tapi kita tidak ingin semua kekacauan itu, bukan?
Jadi kita butuh plugin untuk login gagal login ke syslog dulu:
~ispconfig/interface/lib/plugins/login_fail2ban_plugin.inc.php
class login_fail2ban_plugin {
var $plugin_name = 'login_fail2ban_plugin';
var $class_name = 'login_fail2ban_plugin';
function onLoad() {
global $app;
$app->plugin->registerEvent('login_failed',$this->plugin_name,'log_fail');
}
function log_fail($event_name,$data) {
openlog("ispconfig", LOG_PID | LOG_PERROR, LOG_LOCAL0);
syslog(LOG_WARNING, "Login failed for user ".$_POST['username']." on IP ".$_SERVER['REMOTE_ADDR']);
}
}
ISPConfig memiliki cara yang aneh untuk meng-cache plugin-nya sehingga Anda mungkin ingin mengosongkan cache browser untuk domain Anda sekarang.
Sekarang, kami tidak menginginkannya di /var/log/syslog. Jika server Anda penuh sesak, akan ada penebangan besar-besaran di sana dan fail2ban tidak perlu memfilter semua omong kosong itu.
Mari kita gunakan rsyslogd untuk itu:
/etc/rsyslog.d/12-ispconfig.conf
if $programname == 'ispconfig' then /var/log/ispconfig.log
Sekarang mulai ulang rsyslog
service rsyslog restart
Buat aturan filter fail2ban:
/etc/fail2ban/filter.d/ispconfig.conf
[Definition]
failregex = (.*) Login failed for user (.*) on IP <HOST>
ignoreregex =
Ujilah (Anda harus mencoba masuk dengan nama pengguna/kata sandi palsu agar ini menunjukkan apa pun).
fail2ban-regex /var/log/ispconfig.log /etc/fail2ban/filter.d/ispconfig.conf
dan tambahkan jail ke /etc/fail2ban/jail.conf:
[ispconfig]
enabled = true
port = http,https
filter = ispconfig
logpath = /var/log/ispconfig.log
Mulai ulang fail2ban dan selesai.
service fail2ban restart
Selamat bersenang-senang!