Você está na página 1de 6

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

Pgina Imutvel Informao Anexos Mais Aces Texto sem formato Ubuntu Brazil Entrar Help Proceder

Iptables
ESTE TUTORIAL NO EST COMPLETO E DEVE SER COMPLETADO POR ALGUM QUE SAIBA MAIS QUE EU! OBRIGADO Traduzido por: RodrigodaSilvaVaz

Bsico do Iptables para Ubuntu Server Edition


Iptables um firewall, instalado por padro no Ubuntu Server. Na instalao normal do Ubuntu, o iptables instalado mas todo trfego permitido (o firewall ineficaz / inativo). Tem muita informao disponvel a respeito do iptables, mas de modo muito complexo, se voc est em busca de como fazer de forma simples, este How To para voc.

Contedo Contedo 1. Bsico do Iptables para Ubuntu Server Edition 1. Comando Bsicos 2. Permitindo Sesses Estabelecidas 3. Permitindo Trfego de Entrada em Portas Especficas 4. Bloqueando Trfego 5. Editando o iptables 6. Logando 7. Salvando o Iptables 8. Configurao na inicializao 9. Dicas 1. Se voc edita o iptables regularmente 2. Usando iptablessave/restore para testar as regras 3. Logging mais detalhado 4. Desabilitando o firewall 10. Configurao simples por uma Interface Grfica 11. Mais Informaes 12. Crditos

Comando Bsicos
Digitando:
# sudo iptables -L

listar suas regras correntes no iptables. Se voc j configurou seu servidor e no tem nenhuma regra, voc dever ver:
Chain INPUT (policy ACCEPT) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source destination

destination

destination

1 de 6

14-02-2013 17:02

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

Permitindo Sesses Estabelecidas


Ns podemos permitir que sesses estabelecidas recebam trfego:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Permitindo Trfego de Entrada em Portas Especficas


Voc pode comear impedindo o trfego, mas voc pode estar trabalhando em SSH, onde voc deve permitir SSH antes de bloquear qualquer coisa. Para permitir trfego de entrada na porta 22 (tradicionalmente usada pelo SSH), voc pode dizer ao iptables para permitir todo trfego TCP na porta 22 do seu adaptador de rede.
# iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

Especificamente isso adiciona (-A) tabela INPUT (entrada) a regra que diz que qualquer trfego para a interface (-i) eth0 na porta destinada ao ssh, o iptables poder pular (-j), ou escolher a ao, ACCEPT. Vamos verificar as regras: (somente as primeiras linhas sero mostradas aqui, voc ver mais)
# iptables -L Chain INPUT (policy target prot opt ACCEPT all -ACCEPT tcp -ACCEPT) source anywhere anywhere

destination anywhere anywhere

state RELATED,ESTABLISHED tcp dpt:ssh

Agora, vamos permitir todo o trfego da web:


# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

Verificando nossas regras, ns temos:


# iptables -L Chain INPUT (policy target prot opt ACCEPT all -ACCEPT tcp -ACCEPT tcp -ACCEPT) source anywhere anywhere anywhere

destination anywhere anywhere anywhere

state RELATED,ESTABLISHED tcp dpt:ssh tcp dpt:www

Ns permitimos especificamente o trfego tcp ao ssh e portas web, mas como no bloqueamos nada, todo o trfego continua chegando.

Bloqueando Trfego
Uma vez feita a deciso sobre o pacote, nenhuma regra o afetar. Como nossas regras permitindo ssh e trfego web vm primeiro, e como nossa regra para bloquear todo o trfego vm depois delas, ns podemos permanecer aceitando o trfego que queremos. Tudo que precisamos fazer colocar a regra para bloquear todo o trfego no fim. O comando -A diz ao iptables para adicionar a regra no final, ento ns usaremos isso de novo.
# iptables -A INPUT -j DROP # iptables -L Chain INPUT (policy ACCEPT) target prot opt source

destination

2 de 6

14-02-2013 17:02

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

ACCEPT ACCEPT ACCEPT DROP

all tcp tcp all

-----

anywhere anywhere anywhere anywhere

anywhere anywhere anywhere anywhere

state RELATED,ESTABLISHED tcp dpt:ssh tcp dpt:www

Pelo motivo de no especificarmos uma interface ou protocolo, qualquer trfego de qualquer porta em qualquer interface est bloqueado, exceto para a web e ssh.

Editando o iptables
O nico problema com nossa configurao que at a porta "loopback" est bloqueada. Ns podemos escrever a regra de liberao somente para eth0 especificando -i eth0, mas ns podemos ainda adicionar a regra para o "loopback". Se ns adicionarmos essa regra ela vir muito tarde - depois que todo o trfego foi liberado. Ns precisamos inserir essa regra na quarta linha.
# iptables -I INPUT # iptables -L Chain INPUT (policy target prot opt ACCEPT all -ACCEPT tcp -ACCEPT tcp -ACCEPT all -DROP all -4 -i lo -j ACCEPT ACCEPT) source anywhere anywhere anywhere anywhere anywhere

destination anywhere anywhere anywhere anywhere anywhere

state RELATED,ESTABLISHED tcp dpt:ssh tcp dpt:www

As tlimas duas linhas parecem quase as mesmas, ento vamos listar o iptables com um detalhe maior.
# iptables -L -v

Logando
Nos exemplos abaixo, nenhum dos trfegos sero logados. Se voc quiser logar pacotes liberados ao syslog, esse o mtodo mais rpido:
# iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Veja a seo Dicas para mais detalhes sobre logar.

Salvando o Iptables
Se voc fosse reiniciar a sua mquina agora a configurao do seu iptables desapareceria. Ao invs de escrev-la toda vez que reinicia voc pode salvar a configurao e deix-la inicializando automaticamente. Para salvar as configuraes voc pode usar iptables-save e iptables-restore.

Configurao na inicializao
Salve as regras do seu firewall num arquivo
# iptables-save > /etc/iptables.up.rules

Modifique o script /etc/network/interfaces para aplicar as regras automaticamente (a ltima linha foi a adicionada)

3 de 6

14-02-2013 17:02

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /etc/iptables.up.rules

Voc tambm pode preparar um conjunto de regras para quando desligar, e aplic-las automaticamente
auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /etc/iptables.up.rules post-down iptables-restore < /etc/iptables.down.rules

Dicas
Se voc edita o iptables regularmente
Os passos abaixo tratam de como configurar as regras de seu firewall e presume que elas so relativamente estticas (e para a maioria das pessoas deve ser). Mas se voc faz muito trabalho de desenvolvimento voc pode querer ter sua iptables salva em todo reboot. Voc pode adicionar uma linha como essa em /etc/network/interfaces:
pre-up iptables-restore < /etc/iptables.up.rules post-down iptables-save > /etc/iptables.up.rules

A linha "post-down iptables-save > /etc/iptables.up.rules" vai salvar as regras para serem usadas no prximo boot.

Usando iptables-save/restore para testar as regras


Se voc editar seu iptables alm desse tutorial, voc pode querer usar o iptables-save e iptablesrestore para editar e testar suas regras. Para fazer isso abra o arquivo de regras no seu editor de textos (no exemplo usarei o gedit).
# iptables-save > /etc/iptables.test.rules # gedit /etc/iptables.test.rules

Voc ver um arquivo parecido com o exemplo abaixo:


# Generated by iptables-save v1.3.1 on Sun Apr 23 06:19:53 2006 *filter :INPUT ACCEPT [368:102354] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [92952:20764374] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j DROP COMMIT # Completed on Sun Apr 23 06:19:53 2006

Observe que esses so comandos iptables, exceto o comando iptable. Sinta-se livre em editar esse arquivo e salvar quando terminar. Ento vamos testar:
# iptables-restore < /etc/iptables.test.rules

4 de 6

14-02-2013 17:02

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

Depois de testar, se voc no adicionou o comando iptables-save sobre seu /etc/network /interfaces lembre-se de no perder suas alteraes:
# iptables-save > /etc/iptables.up.rules

Logging mais detalhado


Para mais detalhes no seu syslog, voc pode querer criar uma corrente (Chain) adicional. Segue um exemplo muito breve do meu /etc/iptables.up.rules mostrando como eu configurei minha iptables para logar ao syslog:
# Generated by iptables-save v1.3.1 on Sun Apr 23 05:32:09 2006 *filter :INPUT ACCEPT [273:55355] :FORWARD ACCEPT [0:0] :LOGNDROP - [0:0] :OUTPUT ACCEPT [92376:20668252] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j LOGNDROP -A LOGNDROP -p tcp -m limit --limit 5/min -j LOG --log-prefix "Denied TCP: " --log-level 7 -A LOGNDROP -p udp -m limit --limit 5/min -j LOG --log-prefix "Denied UDP: " --log-level 7 -A LOGNDROP -p icmp -m limit --limit 5/min -j LOG --log-prefix "Denied ICMP: " --log-level 7 -A LOGNDROP -j DROP COMMIT # Completed on Sun Apr 23 05:32:09 2006

Note uma corrente (CHAIN) chamada LOGNDROP no comeo do arquivo. Tambm, o padro DROP embaixo da corrente INPUT foi modificado para LOGNDROP e adiciona descries de protocolo ento faz sentido olhar para o log. Por ltimo ns permitimos o trfego no fim da corrente LOGNDROP. Segue uma idia do que est acontecendo: --limit sets the number of times to log the same rule to syslog --log-prefix "Denied..." adds a prefix to make finding in the syslog easier --log-level 7 sets the syslog level to informational (see man syslog for more detail, but you can probably leave this)

Desabilitando o firewall
Se voc necessitar desabilitar o firewall temporariamente poder cancelar todas as regras usando
# sudo iptables -F

Configurao simples por uma Interface Grfica


Um usurio iniciante pode facilmente usar o FireStarter (Programa com Interface Grfica - GUI), disponvel nos repositrios (Synaptic ou apt-get) para configurar as suas regras de iptables sem precisar de nenhum conhecimento em linha de comando. A configurao simples, mas pode no ser suficiente para usurios avanados. Entretanto, pode atender a maioria dos usurios domsticos. Uma sugesto interessante utilizar uma poltica de sada restritiva por padro, permitindo pela
5 de 6 14-02-2013 17:02

Iptables - Ubuntu Brazil

http://wiki.ubuntu-br.org/Iptables

"lista branca" somente as conexes que voc realmente precisa, como a porta 80 (comunicao http), porta 443 (https), porta 1863 para o MSN, etc, na aba "Poltica" que fica dentro do FireStarter. Voc tambm pode us-lo para ver as conexes ativas de e para o seu computador. O Firewall fica ligado assim que configurado atravs do assistente.

Usurios de conexes DialUp tero de especificar para uma inicializao automtica quando em ligaes dial up, no assistente de configurao. Pgina do FireStarter: http://www.fs-security.com/ (novamente, disponvel nos repositrios. no h nenhuma necessidade de compil-lo) Tutorial: http://www.fs-security.com/docs/tutorial.php Nota pessoal do autor: Infelizmente, o FireStarter no tem uma opo para bloquear (ou perguntar a opo ao usurio) conexes especficas de programas e aplicaes... ento, uma vez que voc libera a porta 80 (para acesso web, por exemplo), qualquer programa que utilize a porta 80 poder se conectar em qualquer servidor e fazer o que bem entender...

Mais Informaes
Dicas-l: Implemente e Configure seu firewall com iptables Guia Foca Linux - Iptables Iptables Tutorial Iptables How To Netfilter and Iptables Multilingual Documentation Easy Firewall Generator for IPTables

Crditos
Obrigado Rusty Russell e seu How-To, pois muita coisa baseada naquilo. CategoryDocumentacao CategoryRevisada Iptables (ltima edio 2011-09-19 23:20:48 efectuada por localhost)

6 de 6

14-02-2013 17:02