Por que eu precisaria de um firewall se meu servidor está bem configurado?

59

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.

Aitch
fonte
Você deve tentar novamente em security.stackexchange.com
AviD
6
Dê-me seu endereço IP e eu mostrarei por que você precisa de um firewall.
Gregd

Respostas:

87

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 .

Chapeleiro Louco
fonte
Essa é uma resposta muito perspicaz, principalmente o texto sobre mudar de "tudo é permitido ..." para "tudo é proibido ..." Seu ponto de vista também é bem esclarecido sobre os daemons locais. Como é frequentemente o caso - Tenho certeza que você vai concordar - o perigo é muitas vezes no "interior"
Aitch
12
(Certo, se me permite supor um pouco, seu perfil sugere que você é novo em falha no servidor. A etiqueta local é que, quando você está satisfeito com uma resposta, você a aceita, clicando no esboço, se a memória servir; isso impulsiona o sistema de reputação.Claro, se você já sabe disso, ou está esperando para ver outras respostas melhores aparecerem, isso também é muito correto e adequado, e por favor me ignore.A comunidade só pede isso uma vez você está plenamente satisfeito com uma resposta para sua pergunta, você aceitá-lo).
MadHatter
+1 @MatHatter - boa descrição de como os firewalls podem fornecer segurança por padrão, em vez de escolha.
Coops
É um risco calculado. Pelo menos no OpenBSD, ativar o pf adiciona 35K linhas de código no kernel, que podem ter bugs. Por outro lado, uma negação padrão - e um firewall de registro adequado - é o melhor IDS que o dinheiro pode comprar. Pare de tentar usar o Snort para procurar coisas ruins: sempre que uma de suas máquinas fizer algo que você não permitiu especificamente, você deve ser notificado.
21811 Alex Holst
14

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.

luis.espinal
fonte
4

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.

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. ;)

Jakub
fonte
2

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.

Alex
fonte
11
Bom ponto sobre a configuração única, menos espaço para erro. Eu concordo em ser preguiçoso sempre que possível! O cfengine elimina parte dessa complexidade para mim, mitigando parcialmente o problema de muitos arquivos de configuração .... mas ... é tão bom quanto as regras escritas, é claro. Portanto, você deixa a maioria dos arquivos de configuração em "padrão" (ou próximo a) como uma barreira secundária e tem o firewall como (pelo menos em um sentido de camada) a principal preocupação.
Aitch
2
Primeiro votei em PoLP, depois votei em preguiça. Os firewalls não são ferramentas para permitir que seus proprietários sejam desleixados. Você deve se preocupar em apertar sua superfície de ataque, porque se o invasor passar pelo firewall (depois que você precisar abrir algo), ele poderá simplesmente desativar as tabelas de ip. Aplique a sua preguiça aonde ela pertence: torne o sistema o mais livre de sujeira possível, para que você não precise corrigi-lo por um longo tempo.
Marcin
@ Marcin, quero dizer que, se alguém quiser proteger um sistema sem o uso de um firewall, precisará criar primeiro um modelo abrangente de ameaças. Os firewalls implicam algum tipo de modelo de ameaça bem conhecido e bem descrito, portanto, não preciso construí-lo do zero para todos os hosts. Obviamente, se falamos de segurança de nível militar, não há escolha, um modelo formal de ameaça deve ser construído.
8281 Alex
1

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.

Allen
fonte
Além disso, fazer isso é configurar um firewall de qualquer maneira - acontece em cada servidor.
mfinni
1

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)

Ian Ringrose
fonte
Excelente, misturar plataformas (SO e hardware) é fundamental.
DutchUncle
1

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.

MealstroM
fonte
-2

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.

jftuga
fonte
-1 Uma resposta um pouco sensacionalista + não sendo realmente construtiva.
Coops
2
Se o servidor estiver comprometido, um firewall não ajudará necessariamente quando o bozo invadido simplesmente o desativa! * aviso de isenção, a pergunta mencionou o uso do iptables, não um firewall de hardware separado.
Bryan