Administro um punhado de servidores baseados em nuvem (VPS) para a empresa em que trabalho.
Os servidores são instalações mínimas do ubuntu que executam bits de pilhas LAMP / coleta de dados de entrada (rsync). Os dados são grandes, mas não pessoais, financeiros ou algo assim (ou seja, não é tão interessante)
Claramente, aqui as pessoas sempre perguntam sobre a configuração de firewalls e coisas do gênero.
Eu uso várias abordagens para proteger os servidores, por exemplo (mas não restrito a)
- ssh em portas não padrão; sem digitação de senha, apenas chaves ssh conhecidas de ips conhecidos para login etc.
- https e shells restritos (rssh) geralmente apenas de chaves / ips conhecidos
- servidores são mínimos, atualizados e atualizados regularmente
- use coisas como rkhunter, cfengine, lynis denyhosts etc. para monitorar
Tenho uma vasta experiência em administração de sistemas unix. Estou confiante de que sei o que estou fazendo nas minhas configurações. Eu configuro arquivos / etc. Nunca senti uma necessidade convincente de instalar coisas como firewalls: iptables etc.
Ponha de lado por um momento as questões de segurança física do VPS.
Q? Não consigo decidir se estou sendo ingênuo ou se a proteção incremental que um fw pode oferecer vale o esforço de aprender / instalar e a complexidade adicional (pacotes, arquivos de configuração, possível suporte etc.) nos servidores.
Até o momento (toque madeira), nunca tive problemas com segurança, mas também não sou complacente.
fonte
Respostas:
Percebo que você fez um ótimo trabalho ao restringir vários daemons diferentes e, pelo que disse, acho improvável que você se exponha a problemas por meio dos serviços que já garantiu. Isso ainda deixa você em um estado "tudo é permitido, exceto o que eu proibi", e você não pode sair desse estado caçando daemon após daemon e protegendo-os um a um.
Um firewall configurado para NEGAR QUALQUER QUALQUER, por padrão, leva você a um modo de operação "tudo é proibido, exceto o permitido", e eu descobri há muitos anos que eles são melhores.
No momento, dado um usuário legítimo com um shell legítimo em seu sistema, ele pode decidir executar algum daemon local não privilegiado para fazer proxy de solicitações da Web para a Internet, iniciar o compartilhamento de arquivos na porta 4662 ou abrir acidentalmente um ouvinte usando -g com tunelamento de porta ssh, sem entender o que faz; ou uma instalação do sendmail pode deixar você executando um MUA na porta 587 que foi configurado incorretamente, apesar de todo o trabalho que você fez para proteger o sendail do MTA na porta 25; ou podem acontecer cento e uma coisas que ignoram sua segurança cuidadosa e cuidadosa, simplesmente porque elas não estavam presentes quando você pensava cuidadosamente sobre o que proibir.
Você entende meu ponto? No momento, você se esforçou muito para garantir tudo o que sabe e parece que elas não vão te morder. O que pode te morder são as coisas que você não conhece, ou que nem estão lá, no momento.
Um firewall cujo padrão é NEGAR QUALQUER QUALQUER é a maneira sysadmin de dizer que, se algo novo surgir e abrir um ouvinte de rede nesse servidor, ninguém poderá conversar com ele até que eu tenha permissão explícita .
fonte
Princípio do menor privilégio. Um firewall ajuda você a chegar lá. Princípio de defesa em profundidade. Um firewall também ajuda você a chegar lá. Qualquer configuração bem projetada depende explicitamente desses dois de uma maneira ou de outra.
Outra coisa é que seus servidores provavelmente serão de hardware comum ou específico para lidar com software de servidor em execução no SO de um servidor padrão (Unix, NT, Linux). Ou seja, eles não possuem hardware especializado para manipular e filtrar o tráfego de entrada com eficiência. Deseja que o servidor lide com cada digitalização multicast, pacote ICMP ou porta possível em seu caminho?
Provavelmente, o que você deseja é que seus servidores manipulem fisicamente solicitações apenas para algumas portas (80, 443, sua porta ssl, sua porta típica oracle 1521, sua porta rsync, etc.) Sim, é claro que você configurou firewalls de software em seu servidores para escutar apenas essas portas. Mas suas NICs ainda sofrerão o impacto do tráfego indesejado (seja maligno ou normal em sua organização). Se suas NICs estiverem sendo marteladas, também serão os caminhos de rede que atravessam seus servidores (e possivelmente entre servidores e clientes internos e conexões com outros servidores e serviços internos.)
Além de suas placas de rede serem marteladas, o firewall do software também será ativado, pois ele deve inspecionar todos os pacotes ou datagramas que obtém.
Os firewalls, por outro lado, especialmente aqueles nas extremidades das sub-redes (ou que separam suas sub-redes do mundo externo) tendem a ser hardware especializado especificamente criado para lidar com esse tipo de volume.
Você pode cercar N número de servidores com M número de firewalls (com N >> M). E você define o hardware do firewall para despejar qualquer coisa que não seja direcionada a portas específicas. Verificações de porta, ICMPs e outras porcarias estão fora. Depois, você ajusta o firewall do software em seus servidores de acordo com a função específica deles.
Agora você reduziu (mas não eliminou) a probabilidade de um blecaute total, reduzindo-o a um particionamento da rede ou a uma falha parcial na pior das hipóteses. E, assim, você aumentou a capacidade de seus sistemas de sobreviver a um ataque ou configuração incorreta.
Não ter um firewall porque seus servidores têm um é como se sentir seguro ao colocar o cinto de segurança enquanto dirigia a 120 km / h sob visibilidade zero devido ao nevoeiro. Não é assim que funciona.
fonte
Existem muitos ataques aos quais você pode ser aceito se não tiver um firewall que faça algum tipo de inspeção no nível de pacote:
Exemplo é o pacote da árvore de Natal
http://en.wikipedia.org/wiki/Christmas_tree_packet
Os ataques DDOS podem ser executados no seu sistema; um firewall (talvez externo, antes de qualquer servidor) interrompe / diminui / mata o tráfego antes de prejudicar seus servidores.
Só porque você não possui dados financeiros ou pessoais nos servidores, não significa que você não se machucará. Tenho certeza de que você paga pela largura de banda ou uso da CPU ou tem uma taxa medida. Imagine ao longo de uma noite (enquanto você dorme) alguém sobe seu medidor (eu já vi isso acontecer com os provedores de VOIP Switch, atropelados à noite por MILHÕES DE MINUTOS DE tráfego, que eles devem pagar).
Portanto, seja inteligente, use a proteção, se houver, você NÃO É PERFEITO, nem o software. Só é seguro até que a próxima exploração seja encontrada. ;)
fonte
Se você pode aplicar um princípio de menor privilégio sem usar um firewall, provavelmente não precisa dele. Do meu ponto de vista, a construção de um sistema seguro sem o uso de firewall exige mais esforço, e sou bastante preguiçoso. Por que devo me preocupar em restringir as conexões TCP usando outras ferramentas e provavelmente muitos arquivos de configuração quando posso separar privilégios em um nível de transporte usando uma única configuração.
fonte
Um firewall também pode interceptar pacotes indesejados de alcançar seus servidores. Em vez de lidar com eles no nível do servidor individual, você pode lidar com eles no firewall. Você pode manter toda essa atividade de configuração no firewall único em vez de vários servidores.
Por exemplo, se um invasor obteve o controle de um IP externo e está inundando seus servidores com pacotes indesejados e você deseja mitigar os efeitos que isso causa em seus servidores ... você pode configurar cada um dos servidores afetados para eliminar os pacotes maliciosos ou simplesmente faça a alteração no seu firewall e todos os seus servidores estão protegidos. Ter o firewall diminuiu o tempo de reação.
fonte
Você ou outra pessoa pode cometer um erro na configuração do servidor um dia, um firewall oferece uma segunda chance de impedir que alguém entre. Não somos perfeitos, cometemos erros e, portanto, um pouco de seguro "desnecessário" pode valer a pena .
(Tente não executar seu firewall no mesmo sistema operacional que os servidores, caso contrário, um único bug no sistema operacional .... Considero que todas as versões do Unix são o mesmo sistema operacional, pois têm muito em comum)
fonte
Os firewalls são oficializados na manipulação de tráfego. Eles fazem isso rápido e têm recursos. E você não desperdiça recursos do servidor para filtrar o tráfego (disco io / proc time / etc). Você deve configurar alguma segurança no ambiente do servidor, mas toda inspeção de tráfego e verificação de vírus e assim por diante devem executar servidores especializados.
fonte
Eu ficaria preocupado se você for hackeado e não tiver um firewall no lugar. Os hackers podem abrir outras portas nos seus servidores. Além disso, se um consultor é chamado para fazer alguma limpeza e auditoria, a primeira coisa que eles dizem é: "O QUE?!?! Você não tem um firewall!" Então você pode ser queimado.
fonte