Criando um firewall no Linux

Publicado por Carlo Diego em 25/06/2008

[ Hits: 6.234 ]

 


Criando um firewall no Linux



Este tópico permite a impossibilidade de invasão tanto pela rede, como por meio de internet, para que não haja preocupação por parte do usuário Linux.

Antes de tudo é necessário verificar as portas abertas. O programa nmap é utilizado para rastrear sistemas em busca de portas de serviços ativas. Seu uso mais simples é sem argumentos, especificando apenas um nome ou endereço de host a ser rastreado.

O nmap possui muitas opções de rastreamento que podem ser consultadas através de sua página manual (man nmap). É possível, por exemplo, fazer um rastreamento para tentar descobrir as portas passíveis de conexão e qual o sistema operacional do host em questão:

# nmap -sS -O localhost

Starting nmap 3.93 ( http://www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 1666 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
631/tcp open ipp
6000/tcp open X11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: KDE 3.5.5 - , Linux 3.5.5 - 2.6.7

Nmap finished: 1 IP address (1 host up) scanned in 3.240 seconds

Existe um programa parecido, suas funções são semelhantes, o nome dele é netstat. Com ele, é possível monitorar as conexões ativas. Algumas de suas opções são:
  • -t - Mostra todas as conexões tcp ativas;
  • -l - Mostra todas as portas abertas à conexões;
  • -c - Execução contínua, renova as informações a cada segundo.

O netstat é capaz de obter e mostrar várias outras informações (tabelas de rotas, estatísticas de interface etc). Mais detalhes sobre sua operação na página manual (man netstat).

Feito isso, podemos dar início a criação de um firewall.

Primeiro vamos apagar todas as regras da tabela filter:

# iptables -t filter -F

Comece a estabelecer política de descartar os pacotes em todas chains da tabela filters:

# iptables -t filter -P INPUT DROP
# iptables -t filter -P FORWARD DROP
# iptables -t filter -P OUTPUT DROP


Liberando todos os pacotes (saída e entrada) da interface local:

# iptables -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
# iptables -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT


Liberando pacotes saindo através da interface eth0:

# iptables -t filter -A OUTPUT -o eth0 -s 0/0 -d 0/0 -j ACCEPT

Liberado para entrar pela interface eth0 somente os pacote pertencentes (ESTABLISHED) ou relacionados (RELATED) a uma conexão existente:

# iptables -t filter -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -s 0/0 -d 0/0 -j ACCEPT

Listando as configurações de filtros novas:

# iptables -t filter -L -v

Chain INPUT (policy DROP 39 packets, 12431 bytes)
pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 ACCEPT     all  --  eth0   any     anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        

Chain OUTPUT (policy DROP 12 packets, 816 bytes)
pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere            
    0     0 ACCEPT     all  --  any    eth0    anywhere             anywhere    

Este firewall irá descartar qualquer tentativa de conexão, seja por programas remotos ou por arquivos compartilhados e até mesmo por mensagens instantâneas.

Voltar à configuração padrão (aceite indiscriminado):

# iptables -t filter -F INPUT
# iptables -t filter -P INPUT ACCEPT
# iptables -t filter -F FORWARD
# iptables -t filter -P FORWARD ACCEPT
# iptables -t filter -F OUTPUT
# iptables -t filter -P OUTPUT ACCEPT


Pronto, temos nosso Firewall simples, mas criado.

É isso aí, se protejam, pois a moçada não perdoa.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalando Squid automaticamente no Slackware

Iniciando na linguagem Perl

TeamViewer no Ubuntu 13.10 64 bits

Fechando programas que não estão respondendo no modo gráfico

Desabilitar o sininho (bell) no terminal

  

Comentários
[1] Comentário enviado por F0K3R em 25/06/2008 - 23:56h

Muito bom cara,vou testar aki no meu (Quando tiver)

[2] Comentário enviado por rafaelbb em 03/11/2008 - 13:50h

Legal, funcionou perfeito aqui (bloqueou tdo mesmo);
me deu até animo pra aprender sobre firewall no linux e largar mão dakele firestarter!
vlwss!!

[]'s



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts