Sei sulla pagina 1di 17

IPTABLES

O IpTables uma ferramenta a nvel de usurio que manipula tabelas do Netfilter


atravs de comparao de regras para saber se um pacote tem ou no permisso de
passar, tambm pode ser utilizado para modificar e monitorar o trfego da rede, fazer
NAT (Masquerading, Source NAT, Destination NAT), redirecionamento de pacotes que
chegam e saem do sistema, contagem de bytes, dividir o trfego entre mquinas , criar
protees e outras potencialidades.
O curso, com base na distribuio Debian, possui uma semana, comea na segunda-feira
e termina no domingo. Todo o contedo do curso estar visvel somente a partir da data
de incio. Para comear o curso, voc deve ler o Guia do aluno a seguir
Histrico
Nesta lio veremos um breve histrico sobre o IpTables
Introduo ao Netfilter e IpTables
Nesta lio aprenderemos sobre firewall filtro de pacotes, firewall NAT e Netfilter/IpTab
Tabelas
Nesta lio veremos sobre as tabelas Filter, Nat e Mangle.

Sintaxe e Uso
Nesta lio veremos como a sintaxe, os comandos, os alvos e a especificao das
regras.
Aplicaes da tabela NAT
Nesta lio aprenderemos sobre SNAT, DNAT, Proxy Transparente e Compartilhamento
de Internet, via NAT.
Aplicaes da Tabela Mangle
Nesta lio aprenderemos sobre TOS e como aplic-lo, seja no trfego de sada, seja no
trfego de entrada.

Mdulos
Nesta lio aprenderemos sobre os mdulos Limit, State, Mac, Multiport, String e Own
Avaliaes

Abaixo esto as avaliaes do curso IpTables. A Avaliao de aprendizagem contar


como nota para que o aluno seja aprovado no curso. A Avaliao do curso uma
avaliao geral referente ao material do curso, as expectativas e a experincia que foi
adquirida.

Lio 1 - Histrico
Histrico

Histrico
O projeto Netfilter/Iptables foi iniciado em 1998 por Rusty Russel, que tambm autor o
projeto predecessor, Ipchains. Com o crescimento do projeto ele fundou o Netfilter Core
Team (ou simplesmente coreteam) em 1999. O software criado por eles foi licenciado sob
os termos da GPL (GNU Public License) e incorporado ao kernel do Linux em maro do
ano 2000.
O Firewall um programa que tem como objetivo proteger a mquina contra acessos
indesejados, trfego indesejado, proteger servios que estejam rodando na mquina e
bloquear a passagem de coisas que voc no deseja receber (como conexes vindas da
Internet para sua segura rede local, evitando acesso aos dados corporativos de uma
empresa ou a seus dados pessoais).
Antes do Iptables, o software predominante para a criao de firewalls no Linux era
o Ipchains nos kernels do Linux da srie 2.2 e oIpfwadm da srie 2.0, que por sua vez foi
baseado no Ipfw dos BSDs.
Lio 2 - Introduo ao Netfilter/Iptables

Firewall Filtro de Pacotes


Esta classe de firewall responsvel por filtrar todo o trfego direcionado ao prprio host
Firewall ou rede que este isola, tal como todos os pacotes emitidos por ele ou por sua
rede. Ocorre mediante anlise de regras previamente inseridas pelo administrador do
mesmo.
O Firewall filtro de pacotes possui a capacidade de analisar cabealhos (headers) de
pacotes enquanto os mesmos trafegam. Mediante esta anlise, que fruto de uma
extensa comparao de regras previamente adicionadas, pode decidir o destino de um
pacote como um todo.
A filtragem pode, ento, deixar tal pacote trafegar livremente pela rede ou simplesmente
parar sua trajetria, ignorando-o por completo. O mesmo , sem dvida, a classe mais
utilizada de Firewall e no aplicar seus conceitos deixar as portas abertas e permitir a
livre circulao de pacotes no confiveis por sua rede.
Um Firewall filtro de pacotes em sua rede lhe fornecer controle, segurana e vigilncia.

Lio 2 - Introduo ao Netfilter/Iptables


Firewall NAT

Firewall NAT
Um firewall aplicado classe NAT, a princpio, possui o objetivo de manipular a rota
padro de pacotes que atravessam o kernel do host Firewall aplicando-lhes o que
conhecemos por "traduo de endereamento". Isso lhe agrega diversas funcionalidades
dentro deste resumido conceito como, por exemplo, a de manipular o endereamento de
origem (SNAT) e destino (DNAT) dos pacotes, tal como realizar o que conhecemos como
"mascaramento" (Masqueranding) sobre conexes PPP, entre outras potencialidades.
Um firewall NAT pode, por exemplo, realizar o trabalho de um proxy de forma simples e
eficiente, independentemente do IP. Veremos estas potencialidades citadas, com mais
detalhes, posteriormente.

Lio 2 - Introduo ao Netfilter/Iptables


Netfilter/Iptables
Netfilter/Iptables
O Netfilter um conjunto de situaes de fluxo de dados agregados ao kernel do linux e
dividido em tabelas. Sob uma tica mais prtica, podemos ver o Netfilter como um grande
banco de dados que contm em sua estrutura 3 tabelas padres: Filter, Nat e Mangle.
Cada uma destas tabelas contm regras direcionadas a seus objetivos bsicos. A tabela
Filter, por exemplo, guarda todas as regras aplicadas a um Firewall filtro de pacotes; a
tabela Nat as regras direcionadas a um Firewall Nat e a Mangle funes mais
complexas de tratamento de pacote como o TOS. Todas as tabelas possuem situaes de
fluxo (entrada, sada, redirecionamento, etc.) que lhes proporcionam a realizao de seus
objetivos.
O Iptables trata-se, na verdade, de uma ferramenta a nvel de usurio para a manipulao
das tabelas do Netfilter, embora o mesmo seja freqentemente confundido com um
Firewall por si s. Ele uma verso mais robusta, completa e estvel que seus
antecessores Ipfwadm e Ipchains, dos kernels do Linux 2.0 e 2.2 , respectivamente.
Como principais caractersticas, o Iptables (alm de realizar suas tarefas de forma veloz,
eficaz e econmica, tanto no aspecto financeiro quanto no de requerimento de hardware)
nos d um amplo leque de possibilidades tais como a implementao desde filtros de
pacotes, utilizando a tabela Filter, a NAT via tabela NAT e mais controles avanados como
o desenvolvimento de QOS sobre o trfego, suporte SNAT e DNAT, redirecionamento de
endereamento e portas, mascaramento de conexes, deteco de fragmentos,
monitoramento de trfego, TOS, bloqueio de ataques, scanners ocultos, pings da morte e
muito mais. E alm disso tudo, ainda podemos utilizar mdulos externos ampliando ainda
mais o nosso leque de funcionalidades.
Os requerimentos bsicos para o funcionamento do Iptables so um computador sobre a
arquitetura 386 com, no mnimo, 4MB de RAM e obviamente, um kernel da srie 2.4 ou
superior.
O Iptables composto dos seguintes aplicativos:

Iptables: Aplicativo principal do pacote iptables para protocolos ipv4;


Ip6tables: Aplicativo principal do pacote iptables para protocolos ipv6;
Iptables-save: Aplicativo que salva todas as regras, para protocolos ipv4, inseridas na
seo ativa e tambm em um determinado arquivo informado pelo administrador do
Firewall;
Ip6tables-save: Aplicativo que salva todas as regras, para protocolos ipv6, inseridas na
seo ativa e tambm em um determinado arquivo informado pelo administrador do
Firewall;
Iptables-restore: Aplicativo que restaura todas as regras, para protocolos ipv4, salvas
pelo software Iptables-save;
Ip6tables-restore: Aplicativo que restaura todas as regras, para protocolos ipv6, salvas
pelo software Ip6tables-save.
Lio 3 - Tabelas
Tabela Filter
A Tabela Filter
A tabela Filter a tabela padro do Netfilter/Iptables e trata das situaes (chains)
implementadas por um Firewall filtro de pacotes.
Estas situaes so:
INPUT: Todos os pacotes que entram no host;
FORWARD: Todos os pacotes que entram no host, mas que devem ser redirecionados
um host secundrio ou outra interface de rede;
OUTPUT: Todos os pacotes que saem do host.

Lio 3 - Tabelas
Tabela NAT

A Tabela NAT
A tabela NAT a tabela que implementa funes de NAT (Network Address Translation)
ao host Firewall. O Nat por sua vez, possui diversas utilidades, conforme abordado
anteriormente.
Suas situaes (chains) so:
PREROUTING: utilizada quando h necessidade de se fazer alteraes em pacotes
antes que os mesmos sejam roteados;
OUTPUT: Trata os pacotes emitidos pelo host Firewall;
POSTROUTING: Utilizado quando h necessidade de se fazer alteraes em pacotes
aps o tratamento de roteamento.

Lio 3 - Tabelas
Tabela Mangle

A Tabela Mangle
A tabela MANGLE implementa alteraes especiais em pacotes em um nvel mais
complexo. A tabela mangle capaz, por exemplo, de alterar a prioridade de entrada e
sada de um pacote baseado no tipo de servio (TOS) o qual o pacote se destinava.
Suas situaes so:
PREROUTING: Modifica pacotes dando-lhes um tratamento especial antes que os
mesmos sejam roteados;
OUTPUT: Altera pacotes de forma especial gerados localmente antes que os mesmo
sejam roteados.

Lio 4 - Sintaxe e Uso

Antes de comear
Antes de comear a utilizar o Iptables, precisamos nos certificar de que o ambiente est
pronto.
Cheque se o pacote iptables est instalado em seu sistema.
Abra um terminal, como o gnome-terminal, e digite:
# dpkg -l | grep iptables
Caso este comando no retorne nada, significa que voc no o tem instalado e antes de
dar seqncia ao nosso curso precisamos instal-lo com o seguinte comando:
# apt-get install iptables
Lio 4 - Sintaxe e Uso

Sintaxe de uso do Iptables


O Iptables possui a seguinte sintaxe de uso, que pode variar um pouco dependendo da
ao desejada, mas que, em geral, pode ser representada por:
iptables [-t tabela] -[comando] [situao (chain)] especificao-da-regra [alvo]
Veremos adiante uma descrio mais detalhada de cada parte desta sintaxe de uso.

Lio 4 - Sintaxe e Uso


Comandos

Comandos
Segue abaixo uma lista de comandos bsicos do Iptables com exemplos explicativos:
-A: Adiciona uma nova entrada no fim da lista de regras:
Exemplo que adiciona uma nova regra no final da lista referente a INPUT chain:
# iptables -A INPUT
-D: Apaga uma regra especificada da lista:
Exemplo que apaga a regra inserida anteriormente apenas trocando o comando -A por -D:
#iptables -D INPUT
Obs: O comando -D tambm permite apagar uma certa regra por seu nmero da lista de
ocorrncias do Iptables.
Exemplo que apaga a regra de nmero 2 referente a FORWARD chain:
# iptables -D FORWARD 2
-L: Lista as regras existentes na lista:
Exemplo que mostra a lista das regras existentes:
# iptables -L FORWARD
-P: Altera a poltica padro das chains. Inicialmente, todas as chains de um tabela esto
setadas como ACCEPT, ou seja, aceitam todo e qualquer tipo de trfego.
Exemplo que modifica a poltica padro da chain FORWARD que ao invs de ser
direcionada para o alvo ACCEPT, ser direcionada para o alvo DROP. Um pacote
direcionado ao alvo DROP descartado pelo sistema:
# iptables -P FORWARD DROP
-F: Este comando capaz de remover todas as entradas da lista de chains, sem alterar a
poltica padro.
Exemplo que remove todas as regras existentes:
# iptables -F
Exemplo que remove todas as regras existentes referentes a OUTPUT chain:

# iptables -F OUTPUT
-I: Insere uma nova regra ao incio da lista de regras (Ao contrrio do comando -A, que
insere ao final da lista)
# iptables -I OUTPUT
-R: Substitui uma regra j adiciona por outra:
Exemplo que substitui a segunda regra referente FORWARD chain pela seguinte: " -s
10.0.40.3 -d 10.0.30.0/8 -j DROP" :
# iptables -R FORWARD 2 -s 10.0.40.3 -d 10.0.30.0/8 -j DROP
-N: Este comando nos permite inserir/criar uma nova chain na tabela especificada.
Exemplo que cria uma nova chain chamada internet na tabela filter:
# iptables -t filter -N internet
-E: Renomeia uma nova chain (Que tenha sido criada pelo administrador do Firewall):
Exemplo que renomeia a chain internet para INTERNET:
# iptables -E internet INTERNET
-X: Apaga uma chain criada pelo administrador do Firewall
Exemplo que remove a chain criada e renomeada anteriormente:
# iptables -X INTERNET

Lio 4 - Sintaxe e Uso

Especificao das Regras


A maioria dos comandos do Iptables requerem especificao para as regras a serem
aplicadas. A especificao da regra tambm inclui um alvo que especifica o que fazer com
os pacotes que casam com a regra.
As seguintes opes so as mais utilizadas na criao de especificaes para as regras:
-j (--jump) alvo: Especifica o alvo dos pacotes que casarem com a regra.
Exemplo:
#iptables -t filter -A INPUT -i eth0 -p tcp --dport 6881 -j ACCEPT

-p (--protocol) : Casa pacotes cujo protocolo utilizado seja o especificado.


Exemplo:
#iptables -t filter -A INPUT -i eth0 -p tcp --dport 6881 -j ACCEPT
-s (--source): Casa pacotes cuja origem seja o endereo especificado.
Exemplo:
#iptables -t filter -A INPUT -s 192.168.1.1/24 --dport 6112 -j DROP
-d (--destination): Casa pacotes cujo destino seja o especificado.
Exemplo:
#iptables -t filter -A INPUT -d 192.168.1.1/24 --dport 6112 -j DROP
-dport (--destionantion-port): Casa pacotes cuja porta de destino seja a especificada.
Exemplo:
#iptables -t filter -A INPUT -i eth0 -p tcp --dport 6881 -j ACCEPT
-sport (--source-port): Casa pacotes cuja porta de origem seja a especificada.
Exemplo:
#iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 6881 -j DROP

Obs: Para uma lista mais completa, consulte a pgina de manual do Iptables ($man
iptables).

Lio 4 - Sintaxe e Uso


Alvos

Alvos
Segue abaixo uma lista de alguns dos principais alvos para nossas regras:
ACCEPT: Este alvo faz com que o Netfilter aceite a passagem do pacote. O significado
prtico disto depende da situao (chain) em que feita esta aceitao. Por exemplo, um
pacote que aceito numa situao de entrada (INPUT chain) ter permisso para ser
recebido pelo host, j um pacote que aceito numa situao de sada (OUTPUT chain)
ter permisso para ser enviado pelo host, assim como um pacote que aceito numa

situao de encaminhamento (FORWARD chain) ter permisso para ser roteado atravs
da rede;
DROP: Este alvo faz com que o Netfilter descarte o pacote referenciado sem
processamento prvio deste. Este pacote simplesmente desaparece sem
nenhuma indicao do fato de ter sido descartado ao host ou aplicao que o enviou.
Freqentemente enviada para o emissor de tal pacote uma indicao de tempo de
comunicao esgotado (timeout), o que pode gerar uma certa confuso;
QUEUE: Este alvo faz com que o pacote seja enviado a uma fila e aguarda at que uma
aplicao o requeira. Caso no exista nenhum aplicativo capaz de requerer tal pacote na
fila, esta alvo equivale a alvo DROP e o pacote descartado;
REJECT: Este alvo tem o mesmo efeito do alvo DROP exceto pelo fato de que ele envia,
ao remetente do pacote, um outro pacote de erro;
LOG: Este alvo "loga" o trfego do pacote. Ou seja, cria um relatrio, no syslog, do seu
percurso na rede. Pode ser usada em qualquer situao alvo (chain) e em qualquer
tabela. Muito til para anlise de quais pacotes esto sendo descartados;
SNAT: Este alvo faz com que o pacote tenha seu endereo de origem alterado. Utilizamos
a flag "--to-source" para indicar o novo endereo de origem do pacote. Este alvo s
vlido para situalvos(chains) de POSTROUTING dentro da tabela NAT;
DNAT: Este alvo faz com que o pacote tenha seu endereo de destino alterado.
Utilizamos a flag "--to-destination" para indicar o novo endero de destino do pacote. Esta
alvo vlida apenas para situaes alvos (chains) de OUTPUT e PREROUTING dentro
da tabela NAT;
MASQUERADE: Este alvo uma forma especial restrita de SNAT para conexes com
IP's dinmicos. Ao invs de ter que alterar a um alvo SNAT toda vez que o IP for alterado,
este alvo calcula o endereo IP de origem para fazer o NAT analizando o endereo IP da
interface de sada quando um pacote encontra esta regra;
REDIRECT: Este alvo responsvel pelo redirecionamento de portas. Utilizamos a flag
--to-port para especificar a porta para a qual o trfego da regra ser redirecionado.

Lio 5 - Aplicaes da tabela nat


Consideraes Iniciais
Antes de iniciarmos a manipulao de qualquer regra que se utilize da tabela NAT,
importante que habilitemos a funo de redirecionamento de pacotes (forward) em nosso
kernel atravs do seguinte comando:
#echo "1" > /proc/sys/net/ipv4/ip_forward
No se esquea de utilizar este comando antes de adicionar qualquer regra que envolva a
tabela NAT.

Outra observao importante que sempre que fizermos um SNAT utilizaremos a


situao (chain) POSTROUTING e sempre que fizermos um DNAT utilizaremos a situao
(chain) PREROUTING, por motivos obvios.

Lio 5 - Aplicaes da tabela nat


SNAT
SNAT
Com o SNAT ( Source NAT ) possvel alterar o endero de origem
no cabealho (header) dos pacotes que casarem com a regra criada.
Exemplo:
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.223
Neste exemplo todos os pacotes que sarem pela interface de rede
eth0 tero os endereos de origem alterados para 192.168.1.223.

Lio 5 - Aplicaes da tabela nat


DNAT
DNAT
Com o DNAT possvel alterar o endereo de destino dos pacotes que casarem com a
regra criada.
Exemplo:
#iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.1.223
Neste exemplo todos os pacotes que entrarem pela interface de rede eth0 tero o
endereo de destino alterados para 192.168.1.223.

Lio 5 - Aplicaes da tabela nat


Proxy Transparente

Proxy transparente
O proxy transparente a forma que a tabela NAT possui de realizar um redirecionamento
de portas em um mesmo host de destino. Este mtodo comumente utilizado, por
exemplo, pelo software Squid, pois este costuma disponibilizar acesso internet atravs
da porta 3128 ao invs da porta padro, 80, para este tipo de acesso.
Logo, conclumos que o Squid faz um redirecionamento das portas solicitadas por seus
clientes, uma vez que estes solicitam conexo via porta 80 e so redirecionados porta

3128. Para esta finalidade utilizamos as situaes (chains) PREROUTING e OUTPUT da


tabela NAT e o alvo REDIRECT.
No confunda proxy transparente com DNAT. A nica forma de se fazer redirecionamento
de portas de destino em um mesmo host pelo alvo REDIRECT que caracteriza o modelo
de proxy transparente.
Exemplo:
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Neste exemplo, os pacotes que entram pela interface eth0 com destino porta 80 sero
redirecionados para a porta 3128.

Lio 5 - Aplicaes da tabela nat


Compartilhamento de internet via NAT
Compartilhamento de internet via NAT
Podemos utilizar ainda a tabela NAT para realizar o compartilhamento do acesso
internet. Isto til, por exemplo, quando desejamos que nossa rede local tenha acesso
internet. Para tanto, utilizamos o alvo MASQUERADE para fazer o que conhecemos como
"mascaramento".
Exemplo:
#iptables -t nat -A POSTROUTING -o lo -d 127.0.0.0/8 -j ACCEPT
#iptables -t nat -P POSTROUTING DROP
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Neste exemplo, todos os IP's da rede 192.168.1.0 com mscara de rede 255.255.255.0
sero "mascarados".

Lio 6 - Aplicaes da tabela mangle


TOS
TOS
O TOS (Type of Service) nos permite filtrar pacotes que trafegam na nossa rede
capturando informaes sobre o tipo de servio ao qual o pacote se destina. Estas
informaes esto contidas no cabealho de cada pacote. O campo TOS foi criado
especificamente para que pudssemos fazer tal filtragem. Para usufruirmos desta
funcionalidade, ns utilizamos a tabela mangle do Netfilter. O TOS um alvo (target) para
o qual direcionamos os pacotes desejados referenciando-os em uma determinada regra.
Compreenderemos o seu uso mais adiante.

Lio 6 - Aplicaes da tabela mangle


Aplicando TOS
Aplicando TOS
Para aplicar filtragem por TOS em nossa rede fazemos uso da tabela mangle e do alvo
TOS seguido pelo parmento --set-tos valor, em que os valores possveis so, em ordem
descrescente de prioridade:
Espera Mnima: especificado atravs de Minimize-Delay, 16 ou 0x10;
Mximo Processamento: especificado atravs de Maximize-Throughput, 8, ou 0x08;
Mxima Confiana: especificado atravs de Maximize-Reliability, 4 ou 0x04;
Custo mnimo: Especificado atravs de Minimize-Cost, 2 ou 0x02;
Prioridade Normal: Especificado atravs de Normal-Service, 0 ou 0x00.
Por pado, a prioridade dada todos os pacotes, a menos que voc especifique outro,
ser a prioridade normal.
Exemplos:
#iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 5123 -j TOS --set-tos 16
Este exemplo d prioridade de espera mnima todos os pacotes tcp que saem da rede
pela interface de rede eth0 com porta de destino 5123. Ou seja, estes pacotes tero uma
facilidade maior para trafegar na rede.

Lio 6 - Aplicaes da tabela mangle


TOS no trfego de entrada
TOS no trfego de entrada
Esta operao realizada nas situaes (chains) INPUT ou PREROUTING. No faz
muito sentido o uso desta chain (situao) dentro de uma rede pequena ou mdia, pois o
trfego que recebermos ser priorizado pelo chain de sada de outras mquinas da
internet ou de outras redes antes de chegar a nossa (desde que elas tambm estejam
usando TOS).
Exemplo:
#iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 6666-6668 -j TOS --set-tos
0x10

Lio 6 - Aplicaes da tabela mangle


TOS no Trfego de sada
TOS no trfego de sada
Esta operao pode ser realizada somente na situao (chain) OUTPUT e tem por
objetivo controlar o trfego de sada em nossa rede.
Exemplos:
Para priorizar todo o trfego de IRC de nossa rede interna indo para a interface ppp0:
#iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 6666-6668 -j TOS --set-tos 16
O bit TOS ajustado para espera mnima e ser enviado antes dos pacotes com
prioridade normal para fora.
Para priorizar a transmisso de dados ftp saindo da rede:
#iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 20 -j TOS --set-tos 8
Para priorizaer o trfego de ICQ da rede:
#iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 5190 -j TOS --set-tos 16
Lio 7 - Mdulos
Mdulos
Mdulos
Os mdulos do iptables so especificados com a opo -m mdulo ou --match mdulo e
permitem expandir a funcionalidade do firewall atravs de novas conferncias e recursos
de filtragem adicionais, como limitar a conferncia de regras do firewall (um mtodo til de
limitar ping floods, syn floods, etc).
Lio 7 - Mdulos
Limit
Limit
Regras sob o mdulo limit especificam exatamente quantas vezes as mesmas devem ser
executadas em um intervalo de tempo especfico e, caso isto ocorra, ela automaticamente
executar a regra seguinte.
Trata-se de um mdulo muito til para conter ataques sofisticados como ataques do tipo
DOS (Denial Of Service) onde o cracker tenta enviar o mximo de requisies ICMP
possveis em um menor intervalo de tempo, esperando que com isso cause uma negao
de servios por parte de seu Firewall.
Exemplo:
#iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Neste exemplo, temos que os pacotes de respostas de ICMP ( -p icmp ) sero aceitos
somente se recebidos em um intervalo de tempo de 1 segundo ( -m limit --limit 1/s -j
ACCEPT ). Caso algum pacote ultrapasse este limite imposto pela regra, esta dever
automaticamente executar a regra seguinte que dever ser algo como:
#iptables -A INPUT -p icmp -j DROP
Esta regra ir bloquear ( -j DROP ) qualquer pacote ICMP ( -p icmp ) que chegar ao
FIrewall.
Lio 7 - Mdulos
State
O mdulo state atribui regras mediante a anlise do estado da conexo de um pacote.
Tais estados podem ser:
NEW: Indica que o pacote est criando uma nova conexo;
ESTABLISHED: Informa que o pacote pertence uma conexo j existente, logo, trata-se
de um pacote de resposta;
RELATED: Referente pacotes que relacionam-se indiretamente com outro pacote, a
exemplo das mensagens de erros de conexo;
INVALID: Referente pacotes no identificados por algum motivo desconhecido.
Aconselha-se que estes pacotes sejam descartados pelo Firewall.
Exemplo:
#iptables -A INPUT -m state --state NEW -i eth0 -j DROP
Este exemplo faz com que qualquer nova conexo que parta da interface eth0 seja
rejeitada.
Lio 7 - Mdulos
Mac
Mac (Media access control) a identificao de mais baixo nvel que um dispositivo de
rede pode ter.
O mdulo mac permite que seu Firewall atue neste nvel, independentemente de
endereamento de rede. Logo, a checagem da regra no depende mais do endereo IP e
sim do endereo Mac do dispositivo de rede.
Exemplo:
#iptables -A INPUT -m mac --mac-source 00:0F:B0:C2:0C:5C -j DROP
Este exemplo bloquearia qualquer pacote proveniente deste dispositivo de rede cujo
endereo mac foi referenciado.

Lio 7 - Mdulos
Multiport
O mdulo multiport permite que seja especificado mltiplas portas para um alvo. Podem
ser especificadas at 15 portas em um nico parmetro e basta que uma porta confira
para que a regra entre em ao, pois a comparao feita usando condies "or". O
parmetro multiport deve ser acompanhado de um dos argumentos abaixo:
--source-port [porta1, porta2...] - Faz a regra conferir se a porta de origem estiver
presente entre as portas especificadas;
--destination-port [porta1, porta2...] - Faz a regra conferir se a porta de destino
estiver presente entre as portas especificadas;
--port [porta1, porta2...] - Faz a regra conferir caso a porta de origem ou destino
esteja presente no parmetro.
Este mdulo pode eliminar muitas regras de firewall que fazem o mesmo tratamento de
pacotes para diversas portas diferentes.
Exemplo:
#iptables -A INPUT -p tcp -i ppp0 -m multiport --destination-port 21,23,25,80,110,113,6667
-j DROP

Este exemplo bloqueia todos os pacotes vindo de ppp0 para as portas 21 (ftp), 23 (telnet),
25 (smtp), 80 (www), 110 (pop3), 113 (ident), 6667 (irc).
Lio 7 - Mdulos

String
O mdulo string do Iptables permite a inspeo de contedo de um pacote e tomar uma
ao se determinado tipo de trfego for encontrado em um pacote. Esta tcnica pode ser
usada tanto para segurana como para economia de banda dentro da rede. Esta opo
*NO* torna o Iptables como um firewall proxy, pois o proxy tem a habilidade de
inspecionar o contedo, protocolo, comandos do pacote e decidir se o seu contedo
nocivo ou no.
O firewall em nvel de pacotes fazendo inspeo de contedo chega a ser 3 a 10 vezes
mais rpido do que um proxy, assim seu uso deve ser analisado dependendo do trfego
que circula pelo link e da segurana dos dados que trafegam atravs dele.
Uma boa prtica aliar esta opo a um IDS externo usando o alvo QUEUE e deixando o
trabalho de inspeo de contedo para ele. Um exemplo de restrio direta o bloqueio
do envio de qualquer informao confidencial sigilosa para fora da rede interna (nmero
de contas, tudo que conferir com CPF, CGC, endereos de e-mail, memorandos, etc).
De qualquer forma, analise o trfego de sua rede antes de querer implementar qualquer
soluo baseada neste mtodo sob o risco de afetar trfego legtimo.
Outra utilidade eficiente a diminuio de trfego, pois podemos barrar programas que
sobrecarregam o link em uma rede com muitos usurios como, por exemplo, usando o
Kazaa ou qualquer outro programa para cpia de arquivos via Internet.

Veja alguns exemplos:


Bloqueia qualquer tentativa de acesso ao programa Kazaa:
#iptables -A INPUT -m string --string "X-Kazaa" -j DROP
No permite que dados confidenciais sejam enviados para fora da empresa e registra o
ocorrido:
#iptables -A OUTPUT -m string --string "conta" -j LOG --log-prefix "ALERTA: dados
confidencial "
#iptables -A OUTPUT -m string --string "conta" -j DROP
Somente permite a passagem de pacotes que no contm ".exe" em seu contedo:
#iptables -A INPUT -m string --string ! ".exe" -j ACCEPT

Lio 7 - Mdulos

Owner
Este mdulo confere com o usurio que iniciou a conexo. somente vlido no
chain OUTPUT da tabela filter. Os seguintes argumentos so vlidos para este mdulo:
--uid-owner UID - Confere se o pacote foi criado por um processo com o UID
especificado. At o momento somente UID numricos so aceitos;
--gid-owner GID - Confere se o pacote foi criado por um usurio pertencente ao
grupo GID. At o momento somente GID numricos so aceitos;
--pid-owner PID - Confere se o pacote foi criado por um processo com o PID
especificado;
--sid-owner ID - Confere se o pacote foi criado por um processo no grupo de seo
especificado.
OBS: - Lembre-se que pacotes que no possuem detalhes suficientes de cabealho
nunca sero conferidos.
Exemplo:
#iptables -A OUTPUT -m owner --gid-owner 100 -p udp -j DROP

Este exemplo rejeita um conexes indo para portas UDP de pacotes criados pelo usurios
pertencentes ao grupo 100.

Potrebbero piacerti anche