Por que precisamos de um firewall se nenhum programa está sendo executado em suas portas?

14

Quando tento telnetar para uma porta em um servidor, e se não houver um programa escutando nessa porta, o telnet morre com o erro "Não é possível conectar ...". Eu entendi aquilo. Mas, por que precisamos de um firewall se não houver um programa escutando em nenhuma porta?

Khaja Minhajuddin
fonte
Defesa em profundidade. pt.wikipedia.org/wiki/Defense_in_Depth_(computing)
Zoredache

Respostas:

31

Pode não haver um serviço em execução no momento, mas e amanhã? Todos eles estão desativados, mas e os usuários? Qualquer pessoa em um sistema unix / windows / mac pode abrir uma porta> 1024 em qualquer máquina à qual tenha acesso. E o malware? Que tal um vírus? Eles também podem abrir portas e começar a fornecer informações ao mundo, ou começar a ouvir as conexões da rede.

O principal objetivo de um firewall não é bloquear as portas dos serviços que você sabe que estão desabilitadas; é bloquear as portas nos serviços que você talvez não conheça. Pense nisso como uma negação padrão, com apenas alguns buracos nos serviços que você autoriza. Qualquer usuário ou programa iniciado por um usuário pode iniciar um servidor em um sistema ao qual eles têm acesso; um firewall impede que outra pessoa se conecte a esse serviço.

Um bom administrador sabe quais serviços precisam ser expostos e pode habilitá-los. Um firewall é principalmente para mitigar o risco de servidores desconhecidos em execução no seu sistema ou rede, além de gerenciar o que é permitido na rede a partir de um local central.

É importante saber o que está em execução na sua máquina / servidor e ativar apenas o que você precisa, mas um firewall fornece esse pouco de proteção extra contra as coisas que você não conhece.

Gabe.
fonte
1
> "Qualquer usuário ou programa iniciado por um usuário pode iniciar um servidor em um sistema ao qual eles têm acesso; um firewall impede que outra pessoa se conecte a esse serviço." Mas, isso não tornaria o serviço inutilizável?
Khaja Minhajuddin
5
@KhajaMinhajuddin yes! Esse é exatamente o ponto. (-:
gabe.
2
@KhajaMinhajuddin Você deseja que apenas os serviços que você configurou estejam disponíveis para o mundo. Você não deseja o servidor smtp iniciado pelo super_spam_virus.exe enquanto não estava procurando conexões de outros sistemas infectados. Um firewall evitará isso, embora não seja uma panacéia.
Gabe.
super_spam_virus.exe não parece Unix e Linux :) #
user unknown
@userunknown true ... que tal um a.out ou uma versão comprometida de / bin / ls que foi copiada para o seu sistema. Ou, se você é um desenvolvedor hg serveque inicia um servidor da web em sua máquina. O ponto é que é trivial iniciar um servidor em qualquer máquina, independentemente de ser usado como 'desktop' ou 'servidor'. E uma vez iniciado o servidor, e você não o conhece ... bem, é aí que a diversão começa.
Gabe.
3

SE não houver um programa escutando em nenhuma porta, você não precisará de um firewall, mas também não poderá se conectar ao seu servidor, pois ele está "selado" no resto do mundo.

Por outro lado ... digamos que seu servidor não tenha nenhum programa em execução local escutando em nenhuma porta, mas serve como um gateway para outros computadores por trás dele. Nesse caso, você usa um firewall para gerenciar o NAT (disfarce) e, opcionalmente, pode filtrar algumas coisas no encaminhamento de pacotes.

Patkos Csaba
fonte
Esse é um bom ponto, mas se eu quiser que o servidor faça coisas (eu normalmente colocaria o openssh e um servidor da web). Mesmo com um firewall, tenho que abrir portas para tornar úteis os aplicativos em execução, como o openssh e os servidores da web. Então, acho que estou perguntando: existem programas que abrem portas para o mundo externo que precisam ser bloqueados por um firewall e que ainda seriam úteis.
Khaja Minhajuddin
1
Sim, existem. Não é necessário um exemplo para um servidor, mas vamos supor que você tenha uma máquina Linux com o X instalado e o X executando em uma porta de rede. Você gostaria de permitir que seu computador, talvez alguns outros computadores da LAN, se conectassem ao seu X. No entanto, você não gostaria que Joe da França se conectasse a ele. Outro exemplo, digamos que você configure vários serviços VPN em seu servidor e precise controlar quais redes podem ver outras redes (ou não). Ou, digamos que você tenha o OpenSSH, mas deseja permitir a conexão apenas do seu computador doméstico. Há muitos outros exemplos.
Patkos Csaba
1
@KhajaMinhajuddin: Para ssh, você deve usar o /etc/ssh/sshd_configpara proteger a máquina. PermitRootLogindeve ser definido como Não, você deve usar uma senha segura e manter a máquina com o sudo (você pode usar o sudo após fazer login com uma conta com permissões do sudo). Definir as restrições com um firewall é apenas a ferramenta errada para o trabalho. O mesmo seria verdadeiro para um postgresqlbanco de dados: Use a configuração do banco de dados para definir e revogar permissões.
usuário desconhecido
3

A rigor, pode não ser necessário, no entanto, lembre-se de que um firewall pode fornecer mais funcionalidades do que simplesmente recusar conexões por portas de rede. Por exemplo, comportamento DROP versus REJECT.

Tok
fonte
1
Qual é a vantagem do DROP versus REJECT?
usuário desconhecido
Não tenho certeza, mas acredito que o DROP simplesmente não responde, portanto o solicitante nem sabe se a solicitação foi recebida ou se sua máquina existe. REJECT diz que você definitivamente está lá e simplesmente não quer falar sobre isso. E, se algo está atrás de uma porta trancada, pode valer a pena tentar encontrar uma maneira de descobrir o que vale a pena proteger.
Joe
-5

Mas, por que precisamos de um firewall se não houver um programa escutando em nenhuma porta?

Se você possui um desktop de usuário único , não um servidor, não precisa de um firewall, se não houver nenhum serviço em execução, como em uma instalação padrão do Ubuntu.

O Windows teve alguns momentos, depois de poder fazer a rede, alguns serviços em execução no padrão para manutenção, atualizações, passagem interna de mensagens e assim por diante. Você não podia detê-los, sem interromper o funcionamento do Windows, mas eles eram vulneráveis ​​a ataques externos. Portanto, os usuários do Windows precisavam de um firewall, e o meme, de que todo mundo precisa de um firewall, se espalhava rapidamente.

Quando eles conheceram o pessoal do Linux, que geralmente eram administradores de servidores, eles não disseram 'você não precisa de um firewall no linux', mas 'nós temos firewalls gratuitos como o iptables por quase uma década'.

Um firewall pessoal , instalado no sistema que deve proteger, também não é a melhor idéia.

Em um sistema de desktop de usuário único, você não precisa de um firewall pessoal.

Usuário desconhecido
fonte
3
Veja a resposta de gabe e repensar. Especialmente os clientes de desktop são vulneráveis ​​a ataques.
Nils
1
@userunknown: um vírus pode ser um usuário da sua área de trabalho. Também é um daemon que você instala e falha na configuração.
André Paramés 02/02/2012
1
Realizo testes de segurança há muitos anos e o acesso através de desktops é uma rota muito útil para propagar um ataque. Não importa se é Windows, Linux, Solaris, qualquer que seja. Bloqueie-o ou perca-o para um invasor. A frase correta deve ser que você pode precisar de um firewall em seu desktop - avaliar plenamente os riscos em seu ambiente
Rory Alsop
2
@userunknown só porque você usa um computador como um desktopnão significa que ainda não é um, serversão apenas palavras. Você desktoptem muito serversdisso potencialmente funcionando, e possivelmente isso já existe .
Gabe.
1
Pense no CUPS (qualquer linux), SLPD (SuSE) e outras coisas (KDE-remoto, servidor iSCSI / cliente) que podem estar em execução no linux após uma atualização. Mesmo se você tiver verificado antes, essas coisas podem aparecer. Se o fizerem, é bom bloqueá-los. BTW - ative seu firewall via GUI (don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`: Voila - a porta CUPS está aberta sem aparecer na guia ...
Nils