ip tables
DESCRIPTION
Firewall LinuxTRANSCRIPT
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 oGuia do alunoa seguir
HistricoNesta lio veremos um breve histrico sobre o IpTablesIntroduo ao Netfilter e IpTablesNesta lio aprenderemos sobre firewall filtro de pacotes, firewall NAT e Netfilter/IpTabTabelasNesta lio veremos sobre as tabelas Filter, Nat e Mangle.Sintaxe e UsoNesta lio veremos como a sintaxe, os comandos, os alvos e a especificao das regras.Aplicaes da tabela NATNesta lio aprenderemos sobre SNAT, DNAT, Proxy Transparente e Compartilhamento de Internet, via NAT.Aplicaes da Tabela MangleNesta lio aprenderemos sobre TOS e como aplic-lo, seja no trfego de sada, seja no trfego de entrada.MdulosNesta lio aprenderemos sobre os mdulos Limit, State, Mac, Multiport, String e OwnAvaliaesAbaixo 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 - HistricoHistricoHistricoO 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.
OFirewall 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 oIpchainsnos
kernels do Linux da srie 2.2 e oIpfwadmda srie 2.0, que por sua vez
foi baseado noIpfwdos BSDs.Lio 2 - Introduo ao
Netfilter/IptablesFirewall Filtro de PacotesEsta 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/IptablesFirewall NATFirewall NATUm 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/IptablesNetfilter/IptablesNetfilter/IptablesO 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 - TabelasTabela FilterA Tabela FilterA 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 - TabelasTabela NATA Tabela NATA 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 - TabelasTabela MangleA Tabela MangleA 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 UsoAntes de comearAntes 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 iptablesCaso 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 iptablesLio 4 - Sintaxe e UsoSintaxe de uso do IptablesO 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 UsoComandosComandos
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 INPUTObs: O comando-Dtambm 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 quemodifica 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 -FExemplo
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 quesubstitui 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 quecria 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 UsoEspecificao das RegrasA 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 UsoAlvosAlvosSegue 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 nenhumaindicaodo 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
parasitualvos(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 parasituaes
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 natConsideraes IniciaisAntes 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_forwardNo 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 natSNATSNATCom 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.223Neste 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 natDNATDNATCom 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.223Neste 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 natProxy TransparenteProxy transparenteO 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 3128Neste exemplo, os pacotes que entram pela interface eth0 com destino porta 80 sero redirecionados para a porta 3128.
Lio 5 - Aplicaes da tabela natCompartilhamento de internet via NATCompartilhamento de internet via NATPodemos 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 mangleTOSTOS
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 mangleAplicando
TOSAplicando TOSPara 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
deMinimize-Delay,16ou0x10;Mximo Processamento: especificado atravs
deMaximize-Throughput,8,ou0x08;Mxima Confiana: especificado atravs
deMaximize-Reliability,4ou0x04;Custo mnimo:Especificado atravs
deMinimize-Cost,2ou0x02;Prioridade Normal:Especificado atravs
deNormal-Service,0ou0x00.
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 16Este 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 mangleTOS no trfego de entradaTOS no trfego de entradaEsta operao realizada nas situaes (chains)INPUTouPREROUTING. 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 mangleTOS no Trfego de sadaTOS no
trfego de sadaEsta 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
paraespera mnimae 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 16Lio
7 - MdulosMdulosMdulosOs mdulos do iptables so especificados com a
opo-m mduloou--match mduloe 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 -
MdulosLimitLimitRegras 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 ACCEPTNeste
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 DROPEsta regra ir bloquear ( -j DROP ) qualquer pacote ICMP ( -p
icmp ) que chegar ao FIrewall.Lio 7 - MdulosStateO 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
DROPEste exemplo faz com que qualquer nova conexo que parta da
interface eth0 seja rejeitada.Lio 7 - MdulosMacMac (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
DROPEste exemplo bloquearia qualquer pacote proveniente deste
dispositivo de rede cujo endereo mac foi referenciado.Lio 7 -
MdulosMultiportO 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
parmetromultiport 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 - MdulosString
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 - MdulosOwnerEste mdulo confere com o usurio que iniciou a conexo. somente vlido no chainOUTPUTda 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.