Lindungi Zimbra OSE dari serangan brute force dan DoS

Zimbra Collaboration Suite Open-Source Edition memiliki beberapa alat canggih untuk memastikan keamanan informasi. Diantara mereka Layar pasca - solusi untuk melindungi server email dari serangan botnet, ClamAV - antivirus yang dapat memindai file dan surat yang masuk untuk mencari infeksi program jahat, serta SpamAssassin - salah satu filter spam terbaik saat ini. Namun, alat ini tidak dapat melindungi Zimbra OSE dari serangan brute force. Bukan yang paling elegan, tetapi masih cukup efektif, kata sandi brute force menggunakan kamus khusus tidak hanya penuh dengan kemungkinan peretasan berhasil dengan semua konsekuensi berikutnya, tetapi juga dengan penciptaan beban signifikan di server, yang memproses semua upaya yang gagal untuk meretas server dengan Zimbra OSE.

Lindungi Zimbra OSE dari serangan brute force dan DoS

Pada prinsipnya, Anda dapat melindungi diri Anda dari kekerasan menggunakan alat Zimbra OSE standar. Pengaturan kebijakan keamanan kata sandi memungkinkan Anda mengatur jumlah upaya entri kata sandi yang gagal, setelah itu akun yang berpotensi diserang akan diblokir. Masalah utama dengan pendekatan ini adalah munculnya situasi di mana akun satu atau lebih karyawan mungkin diblokir karena serangan brute force yang tidak ada hubungannya dengan mereka, dan downtime yang diakibatkan dalam pekerjaan karyawan dapat membawa kerugian besar bagi karyawan. perusahaan. Oleh karena itu, sebaiknya jangan gunakan opsi perlindungan terhadap kekerasan ini.

Lindungi Zimbra OSE dari serangan brute force dan DoS

Untuk melindungi dari kekerasan, alat khusus yang disebut DoSFilter jauh lebih cocok, yang dibangun ke dalam Zimbra OSE dan dapat secara otomatis mengakhiri koneksi ke Zimbra OSE melalui HTTP. Dengan kata lain prinsip pengoperasian DoSFilter mirip dengan prinsip pengoperasian PostScreen, hanya saja digunakan untuk protokol yang berbeda. Awalnya dirancang untuk membatasi jumlah tindakan yang dapat dilakukan oleh satu pengguna, DoSFilter juga dapat memberikan perlindungan brute force. Perbedaan utamanya dari alat yang ada di dalam Zimbra adalah bahwa setelah beberapa kali gagal, alat ini tidak memblokir pengguna itu sendiri, tetapi alamat IP yang digunakan untuk melakukan beberapa upaya untuk masuk ke akun tertentu. Berkat ini, administrator sistem tidak hanya dapat melindungi dari kekerasan, tetapi juga menghindari pemblokiran karyawan perusahaan hanya dengan menambahkan jaringan internal perusahaannya ke daftar alamat IP dan subnet tepercaya.

Keuntungan besar DoSFilter adalah selain berbagai upaya untuk masuk ke akun tertentu, dengan menggunakan alat ini Anda dapat secara otomatis memblokir penyerang yang mengambil alih data otentikasi karyawan, dan kemudian berhasil masuk ke akunnya dan mulai mengirimkan ratusan permintaan. ke server.

Anda dapat mengonfigurasi DoSFilter menggunakan perintah konsol berikut:

  • zimbraHttpDosFilterMaxRequestsPerSec — Dengan menggunakan perintah ini, Anda dapat mengatur jumlah maksimum koneksi yang diperbolehkan untuk satu pengguna. Secara default nilai ini adalah 30 koneksi.
  • zimbraHttpDosFilterDelayMillis - Dengan menggunakan perintah ini, Anda dapat mengatur penundaan dalam milidetik untuk koneksi yang melebihi batas yang ditentukan oleh perintah sebelumnya. Selain nilai integer, administrator dapat menentukan 0, sehingga tidak ada penundaan sama sekali, dan -1, sehingga semua koneksi yang melebihi batas yang ditentukan akan terputus begitu saja. Nilai defaultnya adalah -1.
  • zimbraHttpThrottleSafeIPs — Dengan menggunakan perintah ini, administrator dapat menentukan alamat IP dan subnet tepercaya yang tidak tunduk pada batasan yang tercantum di atas. Perhatikan bahwa sintaks perintah ini mungkin berbeda tergantung pada hasil yang diinginkan. Jadi, misalnya dengan memasukkan perintah zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, Anda akan menimpa seluruh daftar dan hanya menyisakan satu alamat IP di dalamnya. Jika Anda memasukkan perintah zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, alamat IP yang Anda masukkan akan ditambahkan ke daftar putih. Demikian pula, dengan menggunakan tanda pengurangan, Anda dapat menghapus IP apa pun dari daftar yang diizinkan.

Harap dicatat bahwa DoSFilter dapat menimbulkan sejumlah masalah saat menggunakan ekstensi Zextras Suite Pro. Untuk menghindarinya, kami menyarankan untuk meningkatkan jumlah koneksi simultan dari 30 menjadi 100 menggunakan perintah zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Selain itu, kami menyarankan untuk menambahkan jaringan internal perusahaan ke daftar jaringan yang diizinkan. Ini dapat dilakukan dengan menggunakan perintah zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Setelah melakukan perubahan apa pun pada DoSFilter, pastikan untuk memulai ulang server email Anda menggunakan perintah zmmailboxdctl dimulai ulang.

Kerugian utama DoSFilter adalah ia bekerja pada tingkat aplikasi dan oleh karena itu hanya dapat membatasi kemampuan penyerang untuk melakukan berbagai tindakan di server, tanpa membatasi kemampuan untuk terhubung ke utara. Oleh karena itu, permintaan yang dikirim ke server untuk otentikasi atau pengiriman surat, meskipun jelas gagal, masih akan mewakili serangan DoS lama yang bagus, yang tidak dapat dihentikan pada tingkat setinggi itu.

Untuk mengamankan server perusahaan Anda sepenuhnya dengan Zimbra OSE, Anda dapat menggunakan solusi seperti Fail2ban, yang merupakan kerangka kerja yang dapat terus memantau log sistem informasi untuk tindakan berulang dan memblokir penyusup dengan mengubah pengaturan firewall. Pemblokiran pada tingkat rendah memungkinkan Anda menonaktifkan penyerang tepat pada tahap koneksi IP ke server. Dengan demikian, Fail2Ban dapat melengkapi perlindungan yang dibangun menggunakan DoSFilter dengan sempurna. Mari cari tahu bagaimana Anda dapat menghubungkan Fail2Ban dengan Zimbra OSE dan dengan demikian meningkatkan keamanan infrastruktur TI perusahaan Anda.

Seperti aplikasi kelas perusahaan lainnya, Zimbra Collaboration Suite Open-Source Edition menyimpan catatan rinci tentang pekerjaannya. Kebanyakan dari mereka disimpan dalam folder /opt/zimbra/log/ dalam bentuk file. Berikut ini beberapa di antaranya:

  • mailbox.log — Log layanan email dermaga
  • audit.log - log otentikasi
  • clamd.log — log operasi antivirus
  • freshclam.log - log pembaruan antivirus
  • convertd.log — log konverter lampiran
  • zimbrastats.csv - log kinerja server

Log Zimbra juga dapat ditemukan di file tersebut /var/log/zimbra.log, tempat log Postfix dan Zimbra disimpan.

Untuk melindungi sistem kami dari kekerasan, kami akan memantau kotak surat.log, audit.log и zimbra.log.

Agar semuanya berfungsi, Fail2Ban dan iptables harus diinstal di server Anda dengan Zimbra OSE. Jika Anda menggunakan Ubuntu, Anda dapat melakukannya menggunakan perintah dpkg -s fail2ban, jika Anda menggunakan CentOS, Anda dapat memeriksanya menggunakan perintah daftar yum diinstal fail2ban. Jika Anda belum menginstal Fail2Ban, menginstalnya tidak akan menjadi masalah, karena paket ini tersedia di hampir semua repositori standar.

Setelah semua perangkat lunak yang diperlukan terinstal, Anda dapat mulai menyiapkan Fail2Ban. Untuk melakukan ini, Anda perlu membuat file konfigurasi /etc/fail2ban/filter.d/zimbra.conf, di mana kita akan menulis ekspresi reguler untuk log Zimbra OSE yang akan mencocokkan upaya login yang salah dan memicu mekanisme Fail2Ban. Berikut adalah contoh konten zimbra.conf dengan serangkaian ekspresi reguler yang sesuai dengan berbagai kesalahan yang dilakukan Zimbra OSE ketika upaya otentikasi gagal:

# Fail2Ban configuration file
 
[Definition]
failregex = [ip=<HOST>;] account - authentication failed for .* (no such account)$
                        [ip=<HOST>;] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=imap; error=authentication failed for .* invalid password;$
                        [oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
                        WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

ignoreregex =

Setelah ekspresi reguler untuk Zimbra OSE dikompilasi, saatnya untuk mulai mengedit konfigurasi Fail2ban itu sendiri. Pengaturan utilitas ini terletak di file /etc/fail2ban/jail.conf. Untuk berjaga-jaga, mari buat salinan cadangannya menggunakan perintah cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Setelah itu, file ini akan kami perkecil menjadi kira-kira seperti berikut:

# Fail2Ban configuration file
 
[DEFAULT]
ignoreip = 192.168.0.1/24
bantime = 600
findtime = 600
maxretry = 5
backend = auto
 
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, [email protected], [email protected]]
logpath = /var/log/messages
maxretry = 5
 
[sasl-iptables]
enabled = false
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, [email protected]]
logpath = /var/log/zimbra.log
 
[ssh-tcpwrapper]
enabled = false
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=support@ company.ru]
ignoreregex = for myuser from
logpath = /var/log/messages
 
[zimbra-account]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-account]
sendmail[name=zimbra-account, [email protected] ]
logpath = /opt/zimbra/log/mailbox.log
bantime = 600
maxretry = 5
 
[zimbra-audit]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-audit]
sendmail[name=Zimbra-audit, [email protected]]
logpath = /opt/zimbra/log/audit.log
bantime = 600
maxretry = 5
 
[zimbra-recipient]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-recipient]
sendmail[name=Zimbra-recipient, [email protected]]
logpath = /var/log/zimbra.log
bantime = 172800
maxretry = 5
 
[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, [email protected]]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

Meskipun contoh ini cukup umum, ada baiknya menjelaskan beberapa parameter yang mungkin ingin Anda ubah saat menyiapkan Fail2Ban sendiri:

  • Abaikan — menggunakan parameter ini Anda dapat menentukan ip atau subnet tertentu yang alamatnya tidak boleh diperiksa oleh Fail2Ban. Biasanya, jaringan internal perusahaan dan alamat tepercaya lainnya ditambahkan ke daftar alamat yang diabaikan.
  • waktu ban — Waktu dimana pelanggar akan dibanned. Diukur dalam hitungan detik. Nilai -1 berarti larangan permanen.
  • coba lagi — Berapa kali maksimum satu alamat IP dapat mencoba mengakses server.
  • Kirim email — Pengaturan yang memungkinkan Anda mengirim pemberitahuan email secara otomatis ketika Fail2Ban dipicu.
  • Cari waktu — Pengaturan yang memungkinkan Anda mengatur interval waktu setelah alamat IP dapat mencoba mengakses server lagi setelah jumlah maksimum upaya yang gagal telah habis (parameter maxretry)

Setelah menyimpan file dengan pengaturan Fail2Ban, yang tersisa hanyalah me-restart utilitas ini menggunakan perintah layanan fail2ban restart. Setelah restart, log Zimbra utama akan mulai dipantau secara konstan untuk kepatuhan dengan ekspresi reguler. Berkat ini, administrator akan dapat menghilangkan kemungkinan penyerang menembus tidak hanya kotak surat Zimbra Collaboration Suite Open-Source Edition, tetapi juga melindungi semua layanan yang berjalan dalam Zimbra OSE, dan juga mewaspadai segala upaya untuk mendapatkan akses tidak sah. .

Untuk segala pertanyaan terkait Zextras Suite, Anda dapat menghubungi Perwakilan Zextras Ekaterina Triandafilidi melalui email [email dilindungi]

Sumber: www.habr.com

Tambah komentar