Criando um firewall no Linux

Publicado por Carlo Diego em 25/06/2008

[ Hits: 6.365 ]

 


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

Chamada de código Java através de programas C++

C - Resolvendo problemas com buffers

Instalando uma placa wireless (rtl8180) sem o uso de NDISWrapper

Como gravar uma ISO no pendrive/USD externo

Cálculo de feriados móveis em Gambas3

  

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