Pesquisar por palavra-chave:

terça-feira, 18 de setembro de 2012

iptables, o firewall do Linux (Parte 2 do tutorial)

Agora que já conhece os conceitos básicos do iptables, podemos avançar um pouco mais. Para quem não leu a primeira parte deste tutorial, clique aqui.


  • Como abrir portas no iptables:


iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Analizando detalhadamente:

iptables -A = anexar uma regra a chain
INPUT = de entrada de dados
-p tcp = do protocolo tcp
--dport 80 = a porta de destino 80
ACCEPT = está aceita

Porém somente este comando não abriu a porta totalmente, pois está aberta somente para entrada de dados, logo, precisa da regra a seguir para abrir a porta para saída também:

iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

A diferença está na chain OUTPUT que especifica saída de dados.


  • Para abrir várias portas ao mesmo tempo, por exemplo tcp 80, tcp 443 e tcp 21 (porta do HTTP, HTTPS e FTP respecticamente) usamos o -m multiport no comando:


iptables -A INPUT -m multiport -p tcp --dport 80,443,21 -j ACCEPT

Obs: não podemos abrir portas de diferentes protocolos no mesmo comando, não esqueça disso :)


  • Como abir um conjunto de portas sequenciais:


iptables -A INPUT -p tcp --dport 27000:27015 -j ACCEPT

Basta digitar a porta inicial e a porta final com " : " no meio


  • Bloqueando pings
Bloquear ping pode ser útil para evitar ataques com o "ping da morte" ou evitar "nuke ip death", que são técnicas hacker para "derrubar" rede.

iptables -a OUTPUT -p icmp --icmp-type echo-request -j DROP

  • Desbloqueando interface loopback
Muitos programas do Linux como SWAT (Samba Web Administration Tool) ou Webmim entre outros, são acessados via browser, usando o endereço 127.0.0.1:901 (ip do localhost e porta), mas para que funcionem, é preciso desbloquear a interface loopback, que é uma interface virtual que permite acessar seu próprio computador via browser, essencial para vários aplicativos e ferramentas:

iptables -a INPUT -i lo -j ACCEPT

a opção "-i" especifica interface, e "lo" especifica loop´back

  • negando todas as novas conexões
Este comando permite negar todas as novas conexões exceto as digitadas anteriormente,  bloqueando acesso externo

iptables -A INPUT -p tcp --syn -j DROP

Leia a terceira e última parte deste artigo clicando aqui
 
Com este tutorial, você aprendeu novos comandos iptables úteis, mas ainda não é tudo, continue acompanhado este tutorial, a parte 3 vem aí! comentem se gostaram!





terça-feira, 11 de setembro de 2012

Iptables, o firewall do Linux (parte 1 do tutorial)

Antes de ler este artigo, remomendo a leitura do artigo Protocolos TCP e UDP

Todas as distribuições Linux vem com o iptables integrado ao kernel, logo não precisa baixa-lo e é muito seguro, pois integrado ao kernel, o firewall "sobe" junto com o sistema, não tendo aquele intervalo de alguns segundos após a inicialização do sistema para depois carregar o firewall como é comum em firewalls instalados no Windows.



Usando o modo-texto (crtl + alt + f1 no linux) devidamente "logado" como administrador (root) podemos configurar e gerenciar as políticas do firewall pelo comando:

iptables -<OPÇÃO> <CHAIN> <dados> -j <AÇÃO>

Parece complicado? mas não é tanto quanto parece.

Para entender o iptables, precisamos entender as CHAINS:
Chains são todas as possibilidades de trânsito de pacotes pela placa de rede;

INPUT = esta chain especifica dados que entram pela placa de rede com destino ao firewall , ou seja, entrada de dados
OUTPUT = esta chain especifica dados gerados no computador com destino a rede, ou seja, saída de dados
FORWARD = chain usada em servidores, especifica dados que entram pela rede externa, atravessam o computador firewall com destino a outro computador da rede interna (LAN)

Quais são as opções do iptables?

obs: todas as opções devem ser digitadas em letra maiúscula.

iptables -P = cria uma nova política, cancelado as anteriores da mesma CHAIN
iptables -A = anexa uma nova política as politicas anteriores
iptables -D = deleta uma políticacriada anteriormente
iptables -L = lista politicas ativas no sistema
iptables -F = esvasia todas as políticas ativas

Exemplos:
iptables -L INPUT = exibe todas as políticas de entrada de dados

Dados do iptables:

-s = especifica a origem do pacote (source)

-d = especifica o destino do pacote (destination)

-p <protocolo> = antes de indicar uma porta, precisamos identificar de qual protocolo TCP ou UDP por exemplo.

--sport = especifica a porta de origem do pacote

--dport = especifica a porta de destino do pacote

Ações do iptables:

DROP = Não aceita a entrada do pacote

ACCEPT = aceita a entrada do pacote

REJECT = rejeita a entrada do pacote

Exemplos:

iptables -A INPUT -s www.facebook.com -j DROP

vamos entender o comando acima por partes:

iptables -A = anexa uma nova política
INPUT = dados que entrarem pela placa de rede
-s www.facebook.com = originados em www.facebook.com
-j DROP = estão bloqueados

exemplo 2:

iptables -A OUTPUT -d 192.168.1.10 -j ACCEPT

por partes:

iptables -A = anexa uma nova política
OUTPUT = dados que sairem pela placa de rede
-d 192.168.1.10 = com destino ao IP especificado
-j ACCEPT = estão aceitos


Exemplo 3:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

por partes denovo?

iptables -A = anexa nova política
INPUT = dados que entram pela placa de rede
-p tcp = do protocolo TCP
--sport = originados na porta 80
-j ACCEPT = estão aceitos

Ou seja, neste exemplo abri a porta tcp 80, usada para conexões de internet HTTP

Bom, espero ter ajudado a entender este "bicho-de-sete-cabeças" que é o iptables, mas ainda tem mais a aprender! aguardem a parte 2 deste artigo, enquanto isso, testem e estudem os comandos acima.

Leia a segunda parte deste artigo clicando aqui

Obrigado a todos
google-site-verification: google53a8eb0bc7dc474a.html