Zimbra Collaboration Suite Open-Source Edition possui várias ferramentas poderosas de segurança da informação em seu arsenal. Entre eles
Em princípio, você pode se proteger da força bruta usando ferramentas padrão do Zimbra OSE. As configurações da política de segurança de senha permitem definir o número de tentativas malsucedidas de entrada de senha, após as quais a conta potencialmente atacada é bloqueada. O principal problema desta abordagem é que existem situações em que as contas de um ou mais funcionários podem ser bloqueadas devido a um ataque de força bruta ao qual eles não têm nada a ver, e o tempo de inatividade resultante no trabalho dos funcionários pode trazer grandes perdas para a empresa. É por isso que é melhor não usar esta opção de proteção contra força bruta.
Para proteção contra força bruta, uma ferramenta especial chamada DoSFilter é muito mais adequada, que é integrada ao Zimbra OSE e pode encerrar automaticamente a conexão com o Zimbra OSE via HTTP. Em outras palavras, o princípio do DoSFilter é semelhante ao princípio do PostScreen, só que é usado para um protocolo diferente. Originalmente projetado para limitar o número de ações que um único usuário pode realizar, o DoSFilter também pode fornecer proteção contra força bruta. Sua principal diferença em relação à ferramenta integrada ao Zimbra é que, após um certo número de tentativas malsucedidas, ele bloqueia não o próprio usuário, mas o endereço IP a partir do qual são feitas várias tentativas de login em uma ou outra conta. Graças a isso, o administrador do sistema pode não apenas se proteger da força bruta, mas também evitar o bloqueio de funcionários da empresa, simplesmente adicionando a rede interna de sua empresa à lista de endereços IP e sub-redes confiáveis.
A grande vantagem do DoSFilter é que além das inúmeras tentativas de login em uma ou outra conta, usando esta ferramenta, você pode bloquear automaticamente os invasores que se apoderaram dos dados de autenticação do funcionário, e então efetuaram login com sucesso em sua conta e começaram a enviar centenas de solicitações ao servidor.
Você pode configurar DoSFilter usando os seguintes comandos do console:
- zimbraHttpDosFilterMaxRequestsPerSec - Com este comando você pode definir o número máximo de conexões permitidas por usuário. Por padrão, esse valor é 30 conexões.
- zimbraHttpDosFilterDelayMillis - Com este comando você pode definir um atraso em milissegundos para conexões que excederão o limite especificado pelo comando anterior. Além dos valores inteiros, o administrador pode especificar 0 para não ter nenhum atraso, bem como -1 para simplesmente encerrar todas as conexões que excedam o limite especificado. Por padrão, esse valor é -1.
- zimbraHttpThrottleSafeIPs - Usando este comando, o administrador pode especificar endereços IP e sub-redes confiáveis que não serão afetados pelas restrições listadas acima. Observe que a sintaxe deste comando pode variar dependendo do resultado desejado. Então, por exemplo, digitando o comando zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, você substituirá completamente a lista inteira e deixará apenas um endereço IP nela. Se você digitar o comando zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, o endereço IP inserido será adicionado à lista branca. Da mesma forma, usando o sinal de subtração, você pode remover qualquer IP da lista permitida.
Observe que DoSFilter pode criar vários problemas ao usar extensões Zextras Suite Pro. Para evitá-los, recomendamos aumentar o número de conexões simultâneas de 30 para 100 usando o comando zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Além disso, recomendamos adicionar a rede interna da empresa à lista de permitidas. Você pode fazer isso com o comando zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Depois de fazer qualquer alteração no DoSFilter, reinicie o servidor de e-mail com o comando reinicialização do zmmailboxdctl.
A principal desvantagem do DoSFilter é que ele funciona no nível do aplicativo e, portanto, só pode limitar a capacidade dos invasores de realizar diversas ações no servidor, sem limitar a capacidade de conexão ao servidor. Por causa disso, as solicitações enviadas ao servidor para autenticação ou envio de cartas, embora obviamente falhem, ainda serão um bom e velho ataque DoS, que não pode ser interrompido em um nível tão alto.
Para proteger completamente o seu servidor corporativo com Zimbra OSE, você pode usar uma solução como o Fail2ban, que é uma estrutura que pode monitorar constantemente os logs do sistema de informação em busca de ações repetitivas e bloquear o intruso alterando as configurações do firewall. O bloqueio em um nível tão baixo permite desabilitar invasores logo no estágio da conexão IP ao servidor. Assim, Fail2Ban pode complementar perfeitamente a proteção construída com DoSFilter. Vamos descobrir como você pode fazer amizade com o Fail2Ban Zimbra OSE e, assim, aumentar a segurança da infraestrutura de TI da sua empresa.
Como qualquer outro aplicativo de classe empresarial, o Zimbra Collaboration Suite Open-Source Edition mantém registros detalhados de seu trabalho. A maioria deles está armazenada na pasta /opt/zimbra/log/ na forma de arquivos. Aqui estão apenas alguns deles:
- mailbox.log - Logs do serviço de correio Jetty
- audit.log - logs de autenticação
- clamd.log - logs de operação de antivírus
- Freshclam.log - registros de atualização de antivírus
- convertd.log - logs do conversor de anexos
- zimbrastats.csv - logs de desempenho do servidor
Também os logs do Zimbra podem ser encontrados no arquivo /var/log/zimbra.log, onde são mantidos os logs do Postfix e do próprio Zimbra.
Para proteger nosso sistema da força bruta, monitoraremos caixa de correio.log, auditoria.log и zimbra.log.
Para que tudo funcione, você precisa ter o Fail2Ban e o iptables instalados no seu servidor Zimbra OSE. Caso você esteja usando Ubuntu, você pode fazer isso usando os comandos dpkg -s fail2ban, se você estiver usando CentOS, poderá verificar isso usando os comandos lista yum instalada fail2ban. Caso você não tenha o Fail2Ban instalado, instalá-lo não será um problema, pois este pacote está em quase todos os repositórios padrão.
Depois que todo o software necessário estiver instalado, você poderá começar a configurar o Fail2Ban. Para fazer isso, você precisa criar um arquivo de configuração /etc/fail2ban/filter.d/zimbra.conf, no qual escrevemos expressões regulares para os logs do Zimbra OSE, que corresponderão a tentativas de login inválidas e acionarão os mecanismos Fail2Ban. Aqui está um exemplo do conteúdo do zimbra.conf com um conjunto de expressões regulares correspondentes a vários erros emitidos no Zimbra OSE quando uma tentativa de autenticação falha:
# 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 =
Após a compilação das expressões regulares do Zimbra OSE, é hora de começar a editar a configuração do próprio Fail2ban. As configurações deste utilitário estão localizadas no arquivo /etc/fail2ban/jail.conf. Por precaução, faremos uma cópia de backup dele usando o comando cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Depois disso, traremos este arquivo para o seguinte formato:
# 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
Embora este exemplo seja bastante genérico, vale a pena explicar algumas das configurações que você pode querer alterar ao configurar o Fail2Ban:
- Ignorar - usando este parâmetro, você pode especificar um IP ou sub-rede específico, endereços dos quais o Fail2Ban não deve verificar. Via de regra, a rede interna da empresa e outros endereços confiáveis são adicionados à lista dos ignorados.
- Bantime - O tempo durante o qual o infrator ficará banido. Medido em segundos. Um valor de -1 significa um banimento indefinido.
- tentativa máxima - O número máximo de vezes que um endereço IP pode tentar acessar o servidor.
- Enviar correio - Uma configuração que permite enviar automaticamente notificações por e-mail sobre o funcionamento do Fail2Ban.
- Encontre tempo - Uma configuração que permite definir o intervalo de tempo após o qual o endereço IP pode tentar novamente acessar o servidor após o número máximo de tentativas malsucedidas ter sido esgotado (parâmetro maxretry)
Após salvar o arquivo com as configurações Fail2Ban, resta apenas reiniciar este utilitário usando o comando reinicialização do serviço fail2ban. Após a reinicialização, os principais logs do Zimbra serão constantemente monitorados em busca de expressões regulares. Graças a isso, o administrador poderá praticamente excluir qualquer possibilidade de um invasor penetrar não apenas nas caixas de correio do Zimbra Collaboration Suite Open-Source Edition, mas também proteger todos os serviços em execução no Zimbra OSE e estar ciente de qualquer tentativa de obter acesso não autorizado. .
Para todas as perguntas relacionadas ao Zextras Suite, você pode entrar em contato com o representante da Zextras Ekaterina Triandafilidi por e-mail [email protegido]
Fonte: habr.com