Cài đặt Fail2ban cho zimbra trên centos 7

Cài đặt epel-repo

# yum update

# yum install epel-release

Cài đặt fail2ban

yum install fail2ban

backup các file mặc định của fail2ban

# cp /etc/fail2ban/action.d/iptables-allports.conf /etc/fail2ban/action.d/iptables-allports.conf.backup

# mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.backup

Tạo file /etc/fail2ban/filter.d/zimbra.conf với nội dung sau

vi /etc/fail2ban/filter.d/zimbra.conf
# Fail2Ban configuration file

#

# Author:

#

# $Revision: 1 $

#



[Definition]



# Option: failregex

# Notes.: regex to match the password failures messages in the logfile. The

# host must be matched by a group named "host". The tag "<HOST>" can

# be used for standard IP/hostname matching and is only an alias for

# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)

# Values: TEXT

#

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>;.* SoapEngine - handler exception: authentication failed for .*, account not found$

WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

NOQUEUE: reject: RCPT from .*\[<HOST>\]: 550 5.1.1 .*: Recipient address rejected:



# .*\[ip=<HOST>;\] .* - authentication failed for .* \(invalid password\)

#

# Option: ignoreregex

# Notes.: regex to ignore. If this regex matches, the line is ignored.

# Values: TEXT

#

ignoreregex =

File này định nghĩa các patten được coi là lỗi, có biểu hiện bất thường trong file log.

Tạo file có nội dung như sau

vi /etc/fail2ban/jail.conf
# Fail2Ban configuration file

#

# Author: Cyril Jaquier

#

# $Revision: 747 $

## The DEFAULT allows a global definition of the options. They can be overridden

# in each jail afterwards.

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not

# ban a host which matches an address in this list. Several addresses can be

# defined using space separator.

#ignoreip = 127.0.0.1/8 ip_public/32

ignoreip = 127.0.0.1/8

# "bantime" is the number of seconds that a host is banned.

bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"

# seconds.

findtime = 600



# "maxretry" is the number of failures before a host get banned.

maxretry = 3



# "backend" specifies the backend used to get files modification. Available

# options are "gamin", "polling" and "auto". This option can be overridden in

# each jail too (use "gamin" for a jail and "polling" for another).

#

# gamin: requires Gamin (a file alteration monitor) to be installed. If Gamin

# is not installed, Fail2ban will use polling.

# polling: uses a polling algorithm which does not require external libraries.

# auto: will choose Gamin if available and polling otherwise.

backend = auto



# This jail corresponds to the standard configuration in Fail2ban 0.6.

# The mail-whois action send a notification e-mail with a whois request

# in the body.



[ssh-iptables]



enabled = false

filter = sshd

action = iptables[name=SSH, port=ssh, protocol=tcp]

sendmail-whois[name=SSH, dest=yourmail1@company.loc;yourmail2@company.loc]

logpath = /var/log/messages

maxretry = 5



# This jail forces the backend to "polling".



[sasl-iptables]



enabled = false

filter = sasl

backend = polling

action = iptables[name=sasl, port=smtp, protocol=tcp]

sendmail-whois[name=sasl, dest=yourmail1@company.loc;yourmail2@company.loc]

logpath = /var/log/zimbra.log



# Here we use TCP-Wrappers instead of Netfilter/Iptables. "ignoreregex" is

# used to avoid banning the user "myuser".



[ssh-tcpwrapper]



enabled = false

filter = sshd

action = hostsdeny

sendmail-whois[name=SSH, dest=yourmail1@company.loc;yourmail2@company.loc]

ignoreregex = for myuser from

logpath = /var/log/messages



# This jail uses ipfw, the standard firewall on FreeBSD. The "ignoreip"

# option is overridden in this jail. Moreover, the action "mail-whois" defines

# the variable "name" which contains a comma using "". The characters '' are

# valid too.



[zimbra-account]

enabled = true

filter = zimbra

action = iptables-allports[name=zimbra-account]

sendmail[name=zimbra-account, dest=yourmail1@company.loc;yourmail2@company.loc]

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, dest=yourmail1@company.loc;yourmail2@company.loc]

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, dest=yourmail1@company.loc;yourmail2@company.loc]

logpath = /var/log/zimbra.log

#findtime = 604800

bantime = 172800

maxretry = 5



[postfix]

enabled = true

filter = postfix

action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]

sendmail-buffered[name=Postfix, dest=yourmail1@company.loc;yourmail2@company.loc]

logpath = /var/log/zimbra.log

bantime = -1

maxretry = 5



#[sasl]

#enabled = true

#port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s

#filter = sasl

# You might consider monitoring /var/log/warn.log instead

# if you are running postfix. See http://bugs.debian.org/507990

#logpath = /var/log/zimbra.log

Nhớ thay đổi thông tin yourmail1@company.loc, yourmail2@company.loc thành địa chỉ của mình và thêm IP của mình vào ignoreip =  nhé

Tiếp tục, sửa file sau:
/etc/fail2ban/action.d/sendmail.conf
thay đổi dòng Fail2Ban” | /usr/sbin/sendmail -f <sender> <dest> thành:

Fail2Ban" | /opt/zimbra/postfix/sbin/sendmail -f <sender> <dest>

Cuối cùng là bật fail2ban lên

# systemctl start fail2ban



# systemctl enable fail2ban

Monitor fail2ban

fail2ban-client status

 

 

Fix lỗi “The sign-in method you’re trying to use isn’t allowed”

Case: tạo user trên AD windows 2016. sau đó log in trên màn hình console thì báo lỗi. Hướng xử lý như sau:
Quay lại sử dụng user administrator

1) Open the Group Policy editor using gpmc.msc

2) Select your domain and expand Group Policy Objects then right click on "Default Domain Controller Policy"    and Click Edit

3) Under Computer Management, expand Policies and then select Windows Settings

4) Expand Security Settings and Select Local Policies and then click on User Rights Management

5) Right click on Allow Logon Locally and click on Properties

6) In the next screen you can Add the User of Group that you want

Hoặc

1) Open the Group Policy editor using gpmc.msc

2) Select your domain and expand Group Policy Objects then right click on "Default Domain Controller Policy"    and Click Edit

3) Under Computer Management, expand Policies and then select Windows Settings

4) Expand Security Settings and Select Local Policies and then click on User Rights Management

5) Right click on Deny log on locally and click on Properties

6) In the next screen you can remove the User of Group that you want