Bảo vệ Zimbra OSE khỏi các cuộc tấn công vũ phu và DoS

Phiên bản mã nguồn mở Zimbra Collaboration Suite có một số công cụ mạnh mẽ để đảm bảo an ninh thông tin. Trong số đó Màn hình đăng bài - giải pháp bảo vệ máy chủ thư khỏi các cuộc tấn công từ botnet, ClamAV - một phần mềm chống vi-rút có thể quét các tệp và thư đến để tìm lây nhiễm các chương trình độc hại, cũng như SpamAssassin - một trong những bộ lọc thư rác tốt nhất hiện nay. Tuy nhiên, những công cụ này không thể bảo vệ Zimbra OSE khỏi các cuộc tấn công vũ phu. Không phải là mật khẩu thanh lịch nhất nhưng vẫn khá hiệu quả, việc ép buộc mạnh mẽ bằng cách sử dụng một từ điển đặc biệt không chỉ có khả năng hack thành công với tất cả các hậu quả sau đó mà còn tạo ra một tải trọng đáng kể trên máy chủ, nơi xử lý tất cả nỗ lực hack máy chủ bằng Zimbra OSE không thành công.

Bảo vệ Zimbra OSE khỏi các cuộc tấn công vũ phu và DoS

Về nguyên tắc, bạn có thể tự bảo vệ mình khỏi bạo lực bằng các công cụ Zimbra OSE tiêu chuẩn. Cài đặt chính sách bảo mật mật khẩu cho phép bạn đặt số lần nhập mật khẩu không thành công, sau đó tài khoản có khả năng bị tấn công sẽ bị chặn. Vấn đề chính với cách tiếp cận này là phát sinh các tình huống trong đó tài khoản của một hoặc nhiều nhân viên có thể bị chặn do một cuộc tấn công vũ phu mà họ không liên quan gì và dẫn đến thời gian ngừng hoạt động của nhân viên có thể mang lại tổn thất lớn cho công ty. Đó là lý do tại sao tốt nhất không nên sử dụng tùy chọn bảo vệ này trước vũ lực.

Bảo vệ Zimbra OSE khỏi các cuộc tấn công vũ phu và DoS

Để bảo vệ chống lại bạo lực, một công cụ đặc biệt có tên DoSFilter phù hợp hơn nhiều, được tích hợp trong Zimbra OSE và có thể tự động chấm dứt kết nối với Zimbra OSE qua HTTP. Nói cách khác, nguyên lý hoạt động của DoSFilter tương tự như nguyên lý hoạt động của PostScreen, chỉ khác là nó được sử dụng cho một giao thức khác. Được thiết kế ban đầu để giới hạn số lượng hành động mà một người dùng có thể thực hiện, DoSFilter cũng có thể cung cấp khả năng bảo vệ bạo lực. Điểm khác biệt chính của nó so với công cụ được tích hợp trong Zimbra là sau một số lần thử không thành công nhất định, nó không chặn chính người dùng mà chặn địa chỉ IP mà từ đó nhiều lần thử đăng nhập vào một tài khoản cụ thể. Nhờ đó, quản trị viên hệ thống không chỉ có thể bảo vệ khỏi vũ lực mà còn tránh chặn nhân viên công ty bằng cách thêm mạng nội bộ của công ty mình vào danh sách các địa chỉ IP và mạng con đáng tin cậy.

Ưu điểm lớn của DoSFilter là ngoài nhiều nỗ lực đăng nhập vào một tài khoản cụ thể, bằng cách sử dụng công cụ này, bạn có thể tự động chặn những kẻ tấn công đã chiếm hữu dữ liệu xác thực của nhân viên, sau đó đăng nhập thành công vào tài khoản của anh ta và bắt đầu gửi hàng trăm yêu cầu đến máy chủ.

Bạn có thể định cấu hình DoSFilter bằng các lệnh console sau:

  • zimbraHttpDosFilterMaxRequestsPerSec — Sử dụng lệnh này, bạn có thể đặt số lượng kết nối tối đa được phép cho một người dùng. Theo mặc định giá trị này là 30 kết nối.
  • zimbraHttpDosFilterDelayMillis - Sử dụng lệnh này, bạn có thể đặt độ trễ tính bằng mili giây cho các kết nối sẽ vượt quá giới hạn được chỉ định bởi lệnh trước đó. Ngoài các giá trị số nguyên, quản trị viên có thể chỉ định 0 để không có độ trễ nào cả và -1 để tất cả các kết nối vượt quá giới hạn đã chỉ định sẽ bị gián đoạn. Giá trị mặc định là -1.
  • zimbraHttpThrottleSafeIP — Sử dụng lệnh này, quản trị viên có thể chỉ định các địa chỉ IP và mạng con đáng tin cậy sẽ không phải tuân theo các hạn chế được liệt kê ở trên. Lưu ý rằng cú pháp của lệnh này có thể thay đổi tùy theo kết quả mong muốn. Vì vậy, ví dụ, bằng cách nhập lệnh zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, bạn sẽ ghi đè hoàn toàn toàn bộ danh sách và chỉ để lại một địa chỉ IP trong đó. Nếu bạn nhập lệnh zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, địa chỉ IP bạn nhập sẽ được thêm vào danh sách trắng. Tương tự, bằng cách sử dụng dấu trừ, bạn có thể xóa bất kỳ IP nào khỏi danh sách được phép.

Xin lưu ý rằng DoSFilter có thể tạo ra một số vấn đề khi sử dụng tiện ích mở rộng Zextras Suite Pro. Để tránh chúng, chúng tôi khuyên bạn nên tăng số lượng kết nối đồng thời từ 30 lên 100 bằng lệnh zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Ngoài ra, chúng tôi khuyên bạn nên thêm mạng nội bộ của doanh nghiệp vào danh sách được phép. Điều này có thể được thực hiện bằng lệnh zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Sau khi thực hiện bất kỳ thay đổi nào đối với DoSFilter, hãy nhớ khởi động lại máy chủ thư của bạn bằng lệnh khởi động lại zmmailboxdctl.

Nhược điểm chính của DoSFilter là nó hoạt động ở cấp ứng dụng và do đó chỉ có thể hạn chế khả năng kẻ tấn công thực hiện các hành động khác nhau trên máy chủ mà không hạn chế khả năng kết nối với phía bắc. Do đó, các yêu cầu được gửi đến máy chủ để xác thực hoặc gửi thư, mặc dù rõ ràng là sẽ thất bại nhưng vẫn sẽ là một cuộc tấn công DoS cũ, không thể dừng lại ở mức cao như vậy.

Để bảo mật hoàn toàn máy chủ công ty của bạn bằng Zimbra OSE, bạn có thể sử dụng giải pháp như Fail2ban, một framework có thể liên tục giám sát nhật ký hệ thống thông tin để phát hiện các hành động lặp lại và chặn kẻ xâm nhập bằng cách thay đổi cài đặt tường lửa. Việc chặn ở mức độ thấp như vậy cho phép bạn vô hiệu hóa những kẻ tấn công ngay ở giai đoạn kết nối IP với máy chủ. Do đó, Fail2Ban có thể bổ sung hoàn hảo cho khả năng bảo vệ được xây dựng bằng DoSFilter. Hãy tìm hiểu cách bạn có thể kết nối Fail2Ban với Zimbra OSE và từ đó tăng cường tính bảo mật cho cơ sở hạ tầng CNTT của doanh nghiệp bạn.

Giống như bất kỳ ứng dụng cấp doanh nghiệp nào khác, Phiên bản mã nguồn mở Zimbra Collaboration Suite lưu giữ nhật ký chi tiết về công việc của nó. Hầu hết chúng được lưu trữ trong thư mục /opt/zimbra/log/ ở dạng tập tin. Đây chỉ là một vài trong số họ:

  • hòm thư.log — Nhật ký dịch vụ thư Jetty
  • Audit.log - nhật ký xác thực
  • Clamd.log — nhật ký hoạt động chống virus
  • Freshclam.log - nhật ký cập nhật phần mềm chống vi-rút
  • Convert.log - nhật ký chuyển đổi tệp đính kèm
  • zimbrastats.csv - nhật ký hiệu suất máy chủ

Nhật ký Zimbra cũng có thể được tìm thấy trong tập tin /var/log/zimbra.log, nơi lưu giữ nhật ký của Postfix và Zimbra.

Để bảo vệ hệ thống của chúng tôi khỏi bạo lực, chúng tôi sẽ giám sát hộp thư.log, sổ ghi chép đánh giá и zimbra.log.

Để mọi thứ hoạt động, điều cần thiết là Fail2Ban và iptables phải được cài đặt trên máy chủ của bạn với Zimbra OSE. Nếu bạn đang sử dụng Ubuntu, bạn có thể thực hiện việc này bằng các lệnh dpkg -s failed2ban, nếu bạn sử dụng CentOS, bạn có thể kiểm tra điều này bằng các lệnh danh sách yum được cài đặt failed2ban. Nếu bạn chưa cài đặt Fail2Ban thì việc cài đặt nó sẽ không thành vấn đề vì gói này có sẵn trong hầu hết các kho lưu trữ tiêu chuẩn.

Sau khi cài đặt tất cả phần mềm cần thiết, bạn có thể bắt đầu thiết lập Fail2Ban. Để làm điều này bạn cần tạo một tập tin cấu hình /etc/fail2ban/filter.d/zimbra.conf, trong đó chúng tôi sẽ viết các biểu thức chính quy cho nhật ký Zimbra OSE để khớp với các lần đăng nhập không chính xác và kích hoạt cơ chế Fail2Ban. Dưới đây là ví dụ về nội dung của zimbra.conf với một tập hợp các biểu thức chính quy tương ứng với các lỗi khác nhau mà Zimbra OSE đưa ra khi nỗ lực xác thực không thành công:

# 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 =

Khi các biểu thức chính quy cho Zimbra OSE đã được biên soạn, đã đến lúc bắt đầu chỉnh sửa cấu hình của Fail2ban. Các cài đặt của tiện ích này nằm trong tập tin /etc/fail2ban/jail.conf. Để đề phòng, hãy tạo một bản sao lưu của nó bằng lệnh cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Sau đó, chúng tôi sẽ giảm tệp này xuống dạng gần đúng sau:

# 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

Mặc dù ví dụ này khá chung chung nhưng vẫn cần giải thích một số tham số mà bạn có thể muốn thay đổi khi tự mình thiết lập Fail2Ban:

  • Bỏ qua — sử dụng tham số này, bạn có thể chỉ định một ip hoặc mạng con cụ thể mà Fail2Ban không nên kiểm tra địa chỉ. Theo quy định, mạng nội bộ của doanh nghiệp và các địa chỉ đáng tin cậy khác sẽ được thêm vào danh sách bị bỏ qua.
  • Bantime - Thời gian người vi phạm sẽ bị cấm. Tính bằng giây. Giá trị -1 có nghĩa là lệnh cấm vĩnh viễn.
  • Maxretry — Số lần tối đa mà một địa chỉ IP có thể truy cập vào máy chủ.
  • Gửi thư — Cài đặt cho phép bạn tự động gửi thông báo qua email khi Fail2Ban được kích hoạt.
  • Tìm giờ — Cài đặt cho phép bạn đặt khoảng thời gian mà sau đó địa chỉ IP có thể cố gắng truy cập lại vào máy chủ sau khi đã hết số lần thử không thành công tối đa (tham số maxretry)

Sau khi lưu tệp với cài đặt Fail2Ban, tất cả những gì còn lại là khởi động lại tiện ích này bằng lệnh khởi động lại dịch vụ failed2ban. Sau khi khởi động lại, nhật ký Zimbra chính sẽ bắt đầu được giám sát liên tục để đảm bảo tuân thủ các biểu thức thông thường. Nhờ đó, quản trị viên sẽ có thể hầu như loại bỏ mọi khả năng kẻ tấn công xâm nhập không chỉ các hộp thư Phiên bản nguồn mở Zimbra Collaboration Suite mà còn bảo vệ tất cả các dịch vụ chạy trong Zimbra OSE, đồng thời nhận thức được mọi nỗ lực nhằm đạt được quyền truy cập trái phép. .

Đối với tất cả các câu hỏi liên quan đến Zextras Suite, bạn có thể liên hệ với Đại diện Zextras Ekaterina Triandafilidi qua email [email được bảo vệ]

Nguồn: www.habr.com

Thêm một lời nhận xét