Introdução
...
Introdução
Todo servidor ou computador ligado a uma rede é exposto a um certo grau de risco. Qualquer máquina, incluindo um VPSuma instânica, conectado conectada à internet é um alvo potencial para ataques maliciosos.
Ter um firewall bem configurado irá evitar muitos tipos de acesso ilegítimo, você ainda precisa abrir mão de certos serviços para permitir-se a capacidade de login e administrar o servidor. SSH é o serviço mais utilizado para entrar em sistemas remotos, e por isso também é um dos alvos mais frequentes.
Felizmente, existe uma ferramenta disponível que pode mitigar este vetor de ataque, chamado fail2ban . Isso fail2ban , essa ferramenta pode ser configurado configurada para permitir logins legítimos usando SSH, mas e proibir endereços IP depois de terem falhado para autenticar corretamente após um determinado número de vezes.
Vamos instalar e configurar este software em um VPS Instância Debian 7.
Primeiro Passo - Instale fail2ban
Debian inclui fail2ban em seus repositórios padrão. Podemos fazer download e instalá-lo com o seguinte conjunto de comandoscomando:
|
---|
...
A configuração fail2ban é mantida no no diretório /etc/fail2ban diretório. O arquivo de configuração que especifica as regras que proíbem padrão é chamado chamado jail.conf .
Por causa da maneira que Fail2ban atualiza seus arquivos de configuração quando o programa tem uma nova versão, não devemos editar o arquivo de configuração padrão.
...
Aqui, podemos alterar qualquer configuração que não gostam que foram definidos foi definida na configuração padrão.
Configuração padrão
A sessão que começa começa [DEFAULT] configura padrões que podem ser substituídas em contextos mais específicos mais tarde na configuração. É uma boa ideia ter padrões fortes.
...
ignoreip: Este parâmetro recebe uma lista de endereços IP que devem ser excluídos das regras Fail2ban. Os endereços IP ou blocos listados aqui não terá restrições colocadas sobre eles, para escolhê-los com sabedoria e especificamente.
- Endereços IP e intervalos são separados por espaço em branco.
- Você deve adicionar o seu endereço residencial ou comercial IP para o final da lista de modo que você não será bloqueado, se você está tendo problemas para acessar.
- Isso será algo como: "ignoreip = 127.0.0.1/8 YOUR_IP_ADDRESS "
bantime: Esta lista a quantidade de tempo que uma proibição vai durar, se o cliente não consegue autenticar corretamente. É dado em segundos.
- O valor padrão proíbe clientes por 10 minutos.
maxretry: Este parâmetro especifica o número de tentativas que são permitidas antes de uma proibição ser instituída.
...
banaction: Esta configuração especifica o arquivo de configuração que será usada quando a proibição é necessária.
- O valor deste parâmetro refere-se a um arquivo no no diretório /etc/fail2ban/action.d diretório, que irá lidar com o processo de proibição real.
- O valor padrão usa iptables (um firewall) para proibir um IP em todas as portas quando ele falha a autenticação. Vamos olhar para as regras que proíbem IP específicos mais tarde.
action: Este parâmetro especifica um dos atalhos de ação listados acima dela. Ele basicamente chama um
banaction
um banaction roteiro (como mencionado acima), e em seguida, atribui informação apropriada para variáveis e as passa para o script.- A ação padrão é é action_ , que chama o script e passa o nome, porta, protocolo, e da cadeia para o script. Não envia um endereço de e-mail ou linhas de log como algumas das outras ações fazem.
...
Se você deseja configurar e-mail, você terá que editar a action
a action parâmetro como mencionado acima. Alterar a ação a qualquer "mw ação" ou "mwl ação" para ter a informação de e-mail passado para o script proibição.
Se você configurou a entrega de correio local, você pode verificar o e-mail, escrevendo:
|
---|
Configurar
...
as cadeias de Aplicação Específica
Mais abaixo no arquivo, você deve ver ações marcadas como esta:
[application_name] |
---|
Deve ser capaz de decifrar a maioria dos parâmetros.
O filter parâmetro especifica um arquivo dentro do do diretório /etc/fail2ban/filter.d diretório. Isto diz fail2ban como analisar o arquivo de log do programa de attemts falha de autenticação.
O logpath
logpath variável contém o caminho para o arquivo de log do serviço, que Fail2ban irá analisar as falhas.
Você pode substituir qualquer um dos outros parâmetros padrão aqui. Por exemplo, o maxretry
o maxretry opção é diferente para SSH do que a opção Dault em uma instalação Debian.
Terceiro Passo - Configurar iptables
...
Abra o arquivo que foi especificado na nossa configuração de prisão sob a banaction
a banaction parâmetro:
|
---|
Aqui, podemos ver o que realmente acontece quando uma chamada fail2ban chamadas proibiram proibi um IP. Ele usa o software de firewall (iptables) para implementar regras.
...
O tráfego de controles de software iptables tem base em "funis", ou "correntes". Cada um desses funis aplica regras em todo o tráfego que é dado a ele a fim de decidir se é aceitável ou não.
A primeira linha, iptables -N fail2ban-<name> , cria uma nova cadeia com o nome "fail2ban-" com o nome do serviço seguinte. Isto irá manter as regras que proíbem determinados endereços IP.
A próxima linha, iptables -A fail2ban-<name> -j RETURN , adiciona uma regra para a cadeia que acabamos de criar, que informa ao iptables para retornar o controle para a cadeia que chamou esta cadeia.
A última linha, iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name> , adiciona uma regra para a chain (corrente) INPUT (especificado em nosso arquivo jail.local), que imediatamente passa o controle para a nossa nova cadeia fail2ban.
...
Se você gostaria de ver quais as regras são implementadas e que os endereços IP são actualmente proibidaatualmente proibidos, você pode verificar as regras do iptables atual, digitando:
...
Para testar as novas regras, você pode criar outra instância VPS instâncias e autenticar incorretamente algumas vezes na finalidade de vezes suficientes a partir dessa máquina para acionar a regra proibição. Depois disso, a sua chamada SSH não vai voltar a solicitação da senha.
...
Você pode ver a nova segunda regra a partir do fundo.
Conclusão
Agora você deve ter alguma segurança adicional, tornando o seu servidor um alvo mais difícil de para ataques de força bruta. Enquanto isso é um grande começo, uma solução mais completa seria desabilitar a autenticação de senha completamente e permitindo apenas a autenticação baseada em chave.
...