Em geral, segurança é coisa de cebola, como já mencionado. Existem razões pelas quais existem firewalls, e não são apenas todos os outros lemmings que são idiotas idiotas.
Essa resposta vem, pois a pesquisa de 'fail2ban' nesta página não me deu nenhum resultado. Então, se eu duplicar outro conteúdo, tenha paciência comigo. E desculpe-me, se eu reclamar um pouco, forneço uma experiência clara, pois isso pode ser útil para os outros. :)
Considerações de rede, local x externa
Isso é bastante específico do Linux e se concentra no firewall baseado em host, que geralmente é o caso de uso. O firewall externo anda de mãos dadas com uma estrutura de rede adequada e outras considerações de segurança geralmente entram nessa. Ou você sabe o que está implícito aqui, provavelmente não precisará dessa publicação. Ou não, então continue lendo.
A execução de firewalls externamente e localmente pode parecer um trabalho contra-intuitivo e duplo. Mas isso também oferece a possibilidade de mudar as regras no externo, sem comprometer a segurança de todos os outros hosts por trás dele. A necessidade pode surgir por razões de depuração ou porque alguém acabou de foder. Outro caso de uso será apresentado na seção 'firewall global adaptável', para o qual você também precisará de firewalls globais e locais.
Custo e disponibilidade e a mesma história o tempo todo:
O firewall é apenas um aspecto de um sistema seguro adequado. Não instalar um firewall, pois 'custa' dinheiro, introduz um SPOF ou o que for apenas besteira, perdoe meu francês aqui. Basta configurar um cluster. Ah, mas e se a célula de incêndio tiver uma interrupção? Em seguida, configure seu cluster em dois ou mais compartimentos de incêndio.
Mas e se todo o datacenter estiver inacessível, pois as duas transportadoras externas estão fora do negócio (a escavadeira matou sua fibra)? Apenas faça seu cluster abrangendo vários datacenters, então.
Isso é caro? Clusters são muito complexos? Bem, a paranóia tem que ser paga.
Reclamar sobre SPOFs, mas não querer pagar mais dinheiro ou criar configurações pouco mais complexas é um caso claro de padrões duplos ou apenas uma pequena carteira do lado da empresa ou do cliente.
Esse padrão se aplica a TODAS essas discussões, não importa qual serviço seja o assunto atual do dia. Não importa se é um gateway VPN, um Cisco ASA usado apenas para firewall, um banco de dados MySQL ou PostgreSQL, um sistema virtual ou hardware de servidor, um back-end de armazenamento, switches / roteadores, ...
Até agora você deve ter uma ideia.
Por que se preocupar com firewall?
Em teoria, seu raciocínio é sólido. (Apenas serviços em execução podem ser explorados.)
Mas isso é apenas metade da verdade. O firewall, especialmente o firewall com estado, pode fazer muito mais por você. Os firewalls sem estado são importantes apenas se houver problemas de desempenho como outros já mencionados.
Controle de acesso fácil, central e discreto
Você mencionou os wrappers TCP que implementam basicamente a mesma funcionalidade para proteger o seu. Por uma questão de argumento, vamos assumir que alguém não conhece tcpd
e gosta de usar o mouse? fwbuilder
pode vir à mente.
Ter acesso total a partir da sua rede de gerenciamento é algo que você deveria ter habilitado, que é um dos primeiros casos de uso do firewall baseado em host.
Que tal uma configuração para vários servidores, onde o banco de dados é executado em outro lugar e você não pode colocar ambas / todas as máquinas em uma sub-rede compartilhada (privada) por qualquer motivo? Use o firewall para permitir o acesso MySQL na porta 3306 apenas para o único endereço IP fornecido do outro servidor, pronto, simples.
E isso também funciona perfeitamente para o UDP. Ou qualquer protocolo. Os firewalls podem ser extremamente flexíveis. ;)
Mitigação do Portscan
Além disso, com o firewall, as portas gerais podem ser detectadas e atenuadas, pois a quantidade de conexões por período de tempo pode ser monitorada via kernel e sua pilha de rede, e o firewall pode agir de acordo com isso.
Também pacotes inválidos ou obscuros podem ser manipulados antes que eles cheguem ao seu aplicativo.
Limitação de tráfego de saída
Filtrar o tráfego de saída geralmente é um pé no saco. Mas pode ser uma obrigação, dependendo do contrato.
Estatisticas
Outra coisa que um firewall pode oferecer é a estatística. (Pense watch -n1 -d iptables -vnxL INPUT
em adicionar algumas regras para endereços IP especiais logo na parte superior para ver se os pacotes estão chegando).
Você pode ver à luz do dia se as coisas funcionam ou não. O que é MUITO útil na solução de problemas de conexões e na capacidade de informar a outra pessoa pelo telefone que você não recebe pacotes, sem precisar recorrer ao chat tcpdump
. A rede é divertida, a maioria das pessoas agora sabe o que está fazendo e, muitas vezes, são apenas erros de roteamento simples. Inferno, nem sempre eu sei o que estou fazendo. Embora eu tenha trabalhado com literalmente dezenas de sistemas e dispositivos complexos, muitas vezes também com tunelamento até agora.
IDS / IPS
O firewall da Layer7 é geralmente óleo de cobra (IPS / IDS), se não for atendido adequadamente e atualizado regularmente. Além disso, as licenças são muito caras, então eu não compraria uma, se você não tiver necessidade real de obter tudo o que o dinheiro pode comprar.
Masqerading
Fácil, tente isso com seus invólucros. : D
Encaminhamento de porta local
Veja mascarada.
Protegendo os canais de acesso por senha com endereços IP dinâmicos
E se os clientes tiverem endereços IP dinâmicos e não houver uma configuração de VPN implantada? Ou outras abordagens dinâmicas para firewall? Isso já foi sugerido na pergunta e aqui virá um caso de uso para o Infelizmente, não consigo encontrar nenhum firewall que faça isso. parte.
Desabilitar o acesso à conta raiz por meio de uma senha é uma obrigação. Mesmo se o acesso for limitado a determinados endereços IP.
Além disso, ainda ter outra conta em branco pronta com um login com senha se as chaves ssh forem perdidas ou a implantação falhar é muito útil se algo der realmente errado (um usuário tem acesso administrativo à máquina e 'coisas aconteceram'?). É a mesma idéia para o acesso à rede, já que o modo de usuário único no Linux ou o uso init=/bin/bash
via grub
para acesso local são realmente muito ruins e não podem usar um disco ativo por qualquer motivo. Não ria, existem produtos de virtualização proibindo isso. Mesmo se a funcionalidade existir, e se uma versão desatualizada do software for executada sem a funcionalidade?
De qualquer forma, mesmo se você executar o seu daemon ssh em alguma porta esotérica e não na 22, se não tiver implementado coisas como porta batendo (para abrir outra porta e, portanto, atenuar as portas), lentamente se tornando muito impraticável), as verificações de portas detectarão seu serviço eventualmente.
Geralmente, você também configura todos os servidores com a mesma configuração, com as mesmas portas e serviços por motivos de eficiência. Você não pode configurar o ssh para uma porta diferente em todas as máquinas. Além disso, você não pode alterá-lo em todas as máquinas sempre que considerar informações "públicas", porque elas já estão após uma verificação. A questão de nmap
ser legal ou não não é um problema ao ter uma conexão Wi-Fi hackeada à sua disposição.
Se essa conta não for denominada 'root', as pessoas poderão não conseguir adivinhar o nome da conta de usuário do seu 'backdoor'. Mas eles saberão, se conseguirem outro servidor da sua empresa, ou apenas comprarem algum espaço na web, e tiverem uma visão não-enraizada / livre / não contida /etc/passwd
.
Para uma ilustração puramente teórica agora, eles poderiam usar um site hackável lá para obter acesso ao seu servidor e verificar como as coisas geralmente são executadas em seu lugar. Suas ferramentas de busca de hackers podem não funcionar 24 horas por dia, 7 dias por semana (normalmente, por motivos de desempenho de disco para as verificações do sistema de arquivos?) E seus antivírus não são atualizados no segundo em que um novo dia zero vê a luz do dia, portanto Não detecte esses acontecimentos de uma só vez e, sem outras medidas de proteção, você nunca saberá o que aconteceu. Para voltar à realidade, se alguém tiver acesso a explorações de dia zero, é muito provável que ele não atinja seus servidores de qualquer maneira, pois eles são caros. Isso é apenas para ilustrar que sempre existe uma maneira de entrar no sistema se a 'necessidade' surgir.
Mas, novamente, sobre o assunto, não use uma conta extra com senha e não se incomode? Por favor, continue a ler.
Mesmo que os invasores obtenham o nome e a porta dessa conta extra, uma combinação fail2ban
+ iptables
os interromperá, mesmo que você tenha usado apenas uma senha de oito letras. Além disso, o fail2ban também pode ser implementado para outros serviços, ampliando o horizonte de monitoramento!
Para seus próprios serviços, se surgir a necessidade: Basicamente, todas as falhas de log de serviço em um arquivo podem obter suporte para fail2ban através do fornecimento de um arquivo, qual regex corresponder e quantas falhas são permitidas, e o firewall banirá felizmente todos os endereços IP é dito para.
Não estou dizendo para usar senhas de 8 dígitos! Mas se eles forem banidos por 24 horas por cinco tentativas erradas de senha, você pode adivinhar quanto tempo eles terão que tentar se não tiverem uma botnet à sua disposição, mesmo com uma segurança tão ruim. E você ficaria surpreso com as senhas que os clientes costumam usar, não apenas com ssh
. Observar as senhas de e-mail das pessoas via Plesk diz tudo o que você prefere não saber, se quiser, mas o que não estou tentando sugerir aqui, é claro. :)
Firewall global adaptável
fail2ban
é apenas um aplicativo que usa algo do tipo iptables -I <chain_name> 1 -s <IP> -j DROP
, mas você pode criar essas coisas facilmente com alguma mágica do Bash rapidamente.
Para expandir ainda mais algo assim, agregue todos os endereços IP do fail2ban dos servidores dentro da sua rede em um servidor extra, que classifica todas as listas e as passa por sua vez para os firewalls principais, bloqueando todo o tráfego já existente na borda da sua rede.
Essa funcionalidade não pode ser vendida (é claro que pode, mas será apenas um sistema quebradiço e uma merda), mas precisa ser entrelaçada em sua infraestrutura.
Enquanto isso, você também pode usar endereços IP da lista negra ou listas de outras fontes, sejam elas agregadas por você ou por outras externas.