Eu acho que as pessoas que dirigem Servidores Linux conhecer e saber sobre Negar HOSTS y Fail2ban. Para aqueles que não o conhecem eu vou explicar um pouco sobre esses dois aplicações. |
Vamos instalar e configurar esses dois aplicativos para evitar dores de cabeça subsequentes. Em primeiro lugar, explicaremos o que são esses dois aplicativos e quais são suas funções:
Falha2Ban
É um analisador de log que procura tentativas de registro malsucedidas e bloqueia os IPs de onde vêm essas tentativas. Ele é distribuído sob a licença GNU e normalmente funciona em todos os sistemas que fazem interface com um sistema de controle de ataque ou um firewall local.
Fail2Ban tem uma ótima configuração e também pode criar regras para programas
próprios ou de terceiros.
Negar HOSTS
É uma ferramenta de segurança escrita em python que monitora os logs do servidor de acesso para evitar ataques de força bruta em um servidor virtual. O programa funciona proibindo endereços IP que excedam um certo número de tentativas de conexão com falha.
Esses aplicativos Linux - DenyHosts e Fail2ban - podem ser usados separadamente ou juntos. No meu caso, tenho os dois trabalhando juntos.
A instalação e configuração de cada um depende da distribuição que você usa. Este post é voltado para CentOS 6.3, embora as diferenças entre as outras distros não sejam muito marcantes.
Bem, então vamos trabalhar.
Instalação e configuração Fail2Ban
Este aplicativo gera regras dinâmicas no próprio firewall do Linux e é responsável por criar regras ativas no IpTables.
instalação
Para a instalação:
yum instalar fail2ban
Se o pacote não aparecer, devemos adicionar o repositório necessário:
rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
Com isso, você deve começar a instalar o aplicativo junto com suas dependências.
Agora temos que configurar o Fail2Ban para analisar os logs que queremos e bloquear
IP's, enviando notificações por e-mail. Para isso, devemos modificar o arquivo jail.conf que encontramos em / etc / fail2ban
cd / etc / fail2ban
nanojail.conf
O seguinte deve ser feito neste arquivo:
- Modificar é o valor bantime, este valor determina o tempo em segundos que o IP do invasor ficará bloqueado, por padrão o valor vem em 600 segundos.
- Encontre o valor de maxretry que será o número de vezes que um IP pode ter uma autenticação com falha antes de ser bloqueado.
- Adicione nosso ip no parâmetro ignoreip. Aqui, o aplicativo irá ignorar nossos IPs autenticados nesse parâmetro.
[PADRÃO]
# "ignoreip" pode ser um endereço IP, uma máscara CIDR ou um host DNS. Fail2ban não
# banir um host que corresponda a um endereço desta lista. Vários endereços podem ser
# definido usando separador de espaço.
ignorarip = 127.0.0.1
# "bantime" é o número de segundos que um host é banido.
tempo de banimento = 600
# Um host é banido se gerou "maxretry" durante o último "findtime"
# segundos.
encontrar tempo = 600
# "maxretry" é o número de falhas antes de um host ser banido.
maxretria = 3
Um exemplo de como pode parecer é o seguinte:
ignorarip = 127.0.0.1 190.25.242.75 192.168.1.0/24
tempo de banimento = 800
maxretria = 2
Configure Fail2Ban e SSH
Para procurar tentativas de login SSH com falha, modificamos o arquivo até que tenha a seguinte aparência:
[ssh-iptables]
ativado = verdadeiro
filtro = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Este é o log que irá analisar fail2ban
maxretry = 3 # qualquer IP que tenha três ou mais tentativas falhadas será bloqueado.
bantime = 86400 # 24 horas de tempo de ban expresso em segundos
Não se esqueça de que se você modificar a porta em que o SSH escuta, também deve modificar o parâmetro da porta.
Este aplicativo não funciona apenas para acesso não autorizado a SSH, mas também para apache, para ler logs do Asterisk, etc.
Instalação e configuração do DenyHOSTS
Seu funcionamento é baseado na utilização do arquivo /etc/hosts.deny, ou seja, no bloqueio de endereços dos hosts “atacantes”, criando uma lista de hosts negados.
A instalação dos repositórios pode ser obtida com o seguinte comando:
yum instalar denyhosts
O arquivo de configuração está localizado em /etc/denyhosts.conf
Antes de continuar, já que como humanos podemos cometer erros e fazer o típico "Layer 8" ao acessar qualquer um dos serviços e nos bloquear. Para evitar isso, editamos o arquivo /etc/hosts.allow e adicionamos os IPs das máquinas das quais não queremos ser restringidos por falha de acesso.
Modificar o arquivo denyhosts.conf
Para não ir tão longe nas configurações, neste arquivo iremos apenas editar e descomentar alguns parâmetros. Estes são:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1h
SYNC_UPLOAD = sim
SYNC_DOWNLOAD = sim
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5h
Assim, deixaremos uma configuração praticamente por padrão, mas com grande segurança contra ataques SSH.
nano /etc/hosts.allow
Exemplo:
sshd:127.0.0.1
sshd:192.168.1.10
sshd: 192.168.0. *
Depois disso, reiniciamos o serviço:
/etc/init.d/denyhosts reinicie
Com isso, estamos dando permissão a um IP, uma faixa de IP e, claro, à nossa interface de loopback. Algo que ainda não tentei - portanto não sei se funciona - é adicionar DNSs a este arquivo; ou seja, com serviços como DynDNS. Se eu fizer isso, contarei como foi.
Com certas opções e configurações, também nos certificaremos de que após o período de tempo que indicamos na configuração do DenyHOSTS, os endereços armazenados são limpos e atualizados com outras listas feitas por terceiros - se o indicarmos - dando permissão de acesso o servidor de DenyHOSTS.
Para limpar os endereços armazenados de tempos em tempos, conforme configurado, o daemon deve ser executado com o parâmetro –purge:
/etc/init.d/denyhosts start --purge
Além disso, devemos incluí-lo no início do sistema:
chkconfig denyhosts ativado