Vous êtes sur la page 1sur 24

FERM

18 de abril de 2007

Sumrio
I

Sobre essa Apostila

II Informaes Bsicas

III FERM

1 O que o FERM
2 Plano de ensino
2.1 Objetivo . . .
2.2 Pblico Alvo .
2.3 Pr-requisitos
2.4 Descrio . .
2.5 Metodologia .
2.6 Cronograma
2.7 Programa . .
2.8 Avaliao . .
2.9 Bibliografia .

10
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

11
11
11
11
11
11
11
12
13
13

3 Introduo, Caracteres especiais


3.1 Instalao . . . . . . . . . . . . . .
3.2 Introduo . . . . . . . . . . . . . .
3.3 Estrutura de um arquivo de firewall
3.4 Caracteres Especiais . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

14
14
14
15
15

.
.
.
.
.

17
17
17
18
19
19

.
.
.
.

21
21
22
23
23

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

4 Palavras-Chave e parmetros
4.1 Palavras-chave . . . . . . . .
4.2 Parmetros . . . . . . . . . .
4.3 Algumas Location Keywords
4.4 Algumas Match Keywords . .
4.5 Algumas Target Keywords . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

5 Variveis, Funes, Include, Opes de comandos


5.1 Variveis . . . . . . . . . . . . . . . . . . . . . .
5.2 Funes . . . . . . . . . . . . . . . . . . . . . . .
5.3 Include . . . . . . . . . . . . . . . . . . . . . . .
5.4 Algumas opes de comandos . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

Parte I

Sobre essa Apostila

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.
O formato original deste material bem como sua atualizao est disponvel dentro da licena
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de
mesmo nome, tendo inclusive uma verso traduzida (no oficial).
A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro
de 2006. Crticas e sugestes construtivas so bem-vindas a qualquer tempo.

Autores
A autoria deste de responsabilidade de Beatriz Marlia Ferreira Ribeiro (beatriz@cdtc.org.br)
.
O texto original faz parte do projeto Centro de Difuso de Tecnologia e Conhecimento, que
vem sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informao) em conjunto com
outros parceiros institucionais, atuando em conjunto com as universidades federais brasileiras
que tem produzido e utilizado Software Livre, apoiando inclusive a comunidade Free Software
junto a outras entidades no pas.
Informaes adicionais podem ser obtidas atravs do email ouvidoria@cdtc.org.br, ou da
home page da entidade, atravs da URL http://www.cdtc.org.br.

Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam
direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation
License.

Parte II

Informaes Bsicas

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do
desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira.
Objetivo Especfico
Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e
de cdigo fonte aberto, identificando e mobilizando grupos de formadores de opinio dentre os
servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios
de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo
treinamento especfico para tcnicos, profissionais de suporte e funcionrios pblicos usurios,
criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como
incentivadores e defensores de produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de
produtos de software no proprietrios e de seu cdigo fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.

Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece
seu curso. So elas:
Licenas para cpia de material disponvel
Os 10 mandamentos do aluno de Educao a Distncia
Como participar dos foruns e da wikipdia
Primeiros passos
muito importante que voc entre em contato com TODAS estas informaes, seguindo o
roteiro acima.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br).
5

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

dada permisso para copiar, distribuir e/ou modificar este documento sob os termos
da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior
pblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".

Os 10 mandamentos do aluno de educao online

1. Acesso Internet: ter endereo eletrnico, um provedor e um equipamento adequado


pr-requisito para a participao nos cursos a distncia.
2. Habilidade e disposio para operar programas: ter conhecimentos bsicos de Informtica necessrio para poder executar as tarefas.
3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distncia conta muitos pontos, pois ir colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
4. Comportamentos compatveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
5. Organizao pessoal: planejar e organizar tudo fundamental para facilitar a sua reviso
e a sua recuperao de materiais.
6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigaes e
realiz-las em tempo real.
7. Curiosidade e abertura para inovaes: aceitar novas idias e inovar sempre.
8. Flexibilidade e adaptao: requisitos necessrio mudana tecnolgica, aprendizagens
e descobertas.
9. Objetividade em sua comunicao: comunicar-se de forma clara, breve e transparente
ponto - chave na comunicao pela Internet.
10. Responsabilidade: ser responsvel por seu prprio aprendizado. O ambiente virtual no
controla a sua dedicao, mas reflete os resultados do seu esforo e da sua colaborao.

Como participar dos fruns e Wikipdia


Voc tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira o uso dos fruns de notcias e de dvidas gerais que se distinguem pelo uso:
. O frum de notcias tem por objetivo disponibilizar um meio de acesso rpido a informaes
que sejam pertinentes ao curso (avisos, notcias). As mensagens postadas nele so enviadas a
6

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que
interesse ao grupo, favor post-la aqui.
Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especfico do
curso. recomendado que voc faa uso do Forum de dvidas gerais que lhe d recursos mais
efetivos para esta prtica.
. O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo
para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas
a todos participantes do curso. Assim, fica muito mais fcil obter respostas, j que todos podem
ajudar.
Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a
formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico
recomendvel ver se a sua pergunta j foi feita por outro participante.
A segunda forma se d pelas Wikis:
. Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em portugus pelos links:
Pgina principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!

Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos:
Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar;
Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas bsicas do mesmo;
Entrar nas lies seguindo a seqncia descrita no Plano de Ensino;
Qualquer dvida, reporte ao Frum de Dvidas Gerais.

Perfil do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal um modelo de excelncia: consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as
idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
7

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

A classificao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor
ou instrutor:
fornece explicaes claras acerca do que ele espera, e do estilo de classificao que ir
utilizar;
gosta que lhe faam perguntas adicionais;
identifica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classificao foi ou no foi atribuda;
tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um
reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de
ameaa e de nervossismo)
d uma ajuda complementar para encorajar um estudante em dificuldade;
esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente;
ajuda o estudante a alcanar os seus objetivos;
flexvel quando necessrio;
mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado;
acima de tudo, devolve os trabalhos rapidamente;

Parte III

FERM

Captulo 1

O que o FERM
FERM (For Easy Rule Making) um software usado para facilitar as tarefas de escrita e leitura
de regras de firewall.

10

Captulo 2

Plano de ensino
2.1 Objetivo
Qualificar tcnicos e programadores no software FERM.

2.2 Pblico Alvo


Usurios finais ou novatos que desejam migrar os seus sistemas proprietrios para software
livre.

2.3 Pr-requisitos
Os usurios devero ser, necessariamente, funcionrios pblicos e ter conhecimentos bsicos
para operar um computador.

2.4 Descrio
O curso ser realizado na modalidade Educao a Distncia e utilizar a Plataforma Moodle
como ferramenta de aprendizagem. O curso tem durao de uma semana e possui um conjunto
de atividades (lies, fruns, glossrios, questionrios e outros) que devero ser executadas de
acordo com as instrues fornecidas. O material didtico est disponvel on-line de acordo com
as datas pr-estabelecidas em cada tpico. A verso adotada do Nvu a 1.0, caso possua outra
verso, podem ocorrer diferenas com relao a este material.

2.5 Metodologia
O curso est dividido da seguinte maneira:

2.6 Cronograma
Descrio das atividades

11

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

De Seguda-Feira a Domingo
Lio 1 - instalao, introduo, estrutura de um arquivo de firewall, caracteres especiais
Lio 2 - Palavras chave e Parmetros
Lio 3 - Variveis, funes, include, opes de parmetros
De Quinta-Feira a Domigo
Avaliao de aprendizagem
Avaliao do curso
As lies contm o contudo principal. Elas podero ser acessadas quantas vezes forem necessrias, desde que esteja dentro da semana programada. Ao final de uma lio, voc receber uma
nota de acordo com o seu desempenho. Responda com ateno s perguntas de cada lio, pois
elas sero consideradas na sua nota final. Caso sua nota numa determinada lio for menor do
que 6.0, sugerimos que voc faa novamente esta lio. // Ao final do curso ser disponibilizada a
avaliao referente ao curso. Tanto as notas das lies quanto a da avaliao sero consideradas
para a nota final. Todos os mdulos ficaro visveis para que possam ser consultados durante
a avaliao final. // Aconselhamos a leitura da "Ambientao do Moodle"para que voc conhea
a plataforma de Ensino a Distncia, evitando dificuldades advindas do "desconhecimento"sobre
a mesma. // Os instrutores estaro a sua disposio ao longo de todo curso. Qualquer dvida
dever ser enviada no frum. Diariamente os monitores daro respostas e esclarecimentos.

2.7 Programa
O curso oferecer o seguinte contedo:
Instalao
Introduo
Estrutura de um arquivo de firewall
Caracteres especiais
Palavras chave e parmetros
Algumas location keywords
Algumas match keywords
Algumas target keywords
Variveis
Funes
Include
Algumas opes de comandos

12

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

2.8 Avaliao
Toda a avaliao ser feita on-line.
Aspectos a serem considerados na avaliao:
Iniciativa e autonomia no processo de aprendizagem e de produo de conhecimento;
Capacidade de pesquisa e abordagem criativa na soluo dos problemas apresentados.
Instrumentos de avaliao:
Participao ativa nas atividades programadas.
Avaliao ao final do curso.
O participante far vrias avaliaes referente ao contedo do curso. Para a aprovao e
obteno do certificado o participante dever obter nota final maior ou igual a 6.0 de acordo
com a frmula abaixo:
Nota Final = ((ML x 7) + (AF x 3)) / 10 = Mdia aritmtica das lies
AF = Avaliaes

2.9 Bibliografia
Man page: http://ferm.foo-projects.org/ferm.html/

13

Captulo 3

Introduo, Caracteres especiais


3.1 Instalao
FERM uma ferramenta de manuteno para complexos firewalls, a qual retira o problema de
precisar reescrever complexas regras vrias vezes. FERM permite que todo o conjunto de regras
do firewall sejam armazenadas em arquivos separados, para que no futuro possa ser carregado
com um s comando.
Sendo assim, FERM um aplicativo super til e interessante sob GPL na qual a licena pode
ser encontrada na pgina do "Free Software Foundation".
Para instalar o ferm basta digitar no terminal, logado como root, o seguinte:
apt-get install ferm

3.2 Introduo
O FERM uma ferramenta que tem como funo facilitar a tarefa de criao de regras de
firewall. Ele suporta firewalls ipchains, regras de ipfwadm e firewalls iptables. Esse curso foi baseado na pgina de manual do FERM.
Vamos comear com um exemplo simples:
chain INPUT {
proto tcp ACCEPT;
}
isto adicionar uma regra ao chain INPUT para que todos os pacotes tcp sejam aceitos. Vejamos o segundo exemplo:
chain (INPUT OUTPUT) {
proto (udp tcp) ACCEPT;
}
Esse exemplo equivalente a quatro regras:
iptables -A INPUT -p tcp -j ACCEPT
14

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

iptables -A OUTPUT -p tcp -j ACCEPT


iptables -A INPUT -p udp -j ACCEPT
iptables -A OUTPUT -p udp -j ACCEPT

Pode-se perceber com esse exemplo que o FERM realmete simplifica bastante a criao de
regras. O objetivo desse curso justamete aprender como criar essas regras.

3.3 Estrutura de um arquivo de firewall


A estrutura de um arquivo de firewall deve ser semelhante a de um programa em C. Existem
alguns caracteres especiais que podem ser usados nos arquivos de configurao do FERM, alm
de utilizar tambm opes e parmetros.
Com essas palavras voc pode definir as caractersticas do seu firewall. Qualquer firewall
formado por duas funes principais: a primeira delas verificar se o trfego satisfaz certas condies, a segunda delas definir o que deve ser feito com o trfego.

3.4 Caracteres Especiais


Listarei a seguir alguns caracteres especiais:
; usado o final de regras. possvel escrever mais de uma, separadas por ponto e vrgula,
em cada linha. Porm, isso prejudica a legibilidade do programa.
so usados para delimitar blocos de regras. Blocos so usados para facilitar a tarefa de
escrever regras que tm os primeiros parmetros iguais e os demais diferentes. Ento, os
parmetros comuns s regras so escritos fora do bloco (apenas uma vez, esquerda do
bloco) e os diferentes dentro dele. Veja um exemplo:
chain INPUT proto tcp {
syn DENY;
ACCEPT;
}
esse bloco equivale as duas seguintes regras:
iptables -A INPUT -p tcp -y -j DENY
iptables -A INPUT -p tcp -j ACCEPT
$ - na definio de variveis. Esse um recurso pode melhorar a legibilidade dos arquivos, se forem escolhidos nomes significativos para as variveis. Ao executar as regras o
FERM substitui as variveis por seus valores. Veja um exemplo:
set IF eth0
set $IF ACCEPT
15

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

set TARGET $IF

o resultado dessas definies o seguinte:


$IF = eth0
$eth0 = ACCEPT
$TARGET = eth0
& - usado na chamada de funes. Voc aprender sobre elas posteriormente.
( ) - so usados na definio de listas de valores. Tais valores sero aplicados palavrachave a esquerda da lista. Exemplo:
proto ( tcp udp icmp )
o resultado sero trs regras com os seguintes trechos:
... -p tcp ...
... -p udp ...
... -p icmp ...
Veja outro exemplo:
chain (INPUT OUTPUT FORWARD) proto (icmp,udp,tcp) DENY;
esta linha tem como resultado 9 regras, pois h 9 possveis combinaes dos elementos
das duas listas. Observe duas coisas importantes: os elementos podem ser separados por
espaos ou vrgulas, e as listas podem estar tanto esquerda quanto direita de palavraschave, ao contrrio dos blocos de regras, que tm de estar sempre direita destas palavras.
# - esse carcter usado antes de comentrios. Tudo que estiver na mesma linha deste
carcter e que for escrito depois dele ser ignorado. Fazer comentrios um bom hbito,
que facilita a leitura do arquivo futuramente por ns mesmos, ou por uma pessoa diiferente
da que o escreveu.
comando - executa, em um shell, o comando escrito dentro das aspas e escreve a mensagem de sada desse comando.

16

Captulo 4

Palavras-Chave e parmetros
4.1 Palavras-chave
J foram citadas nas pginas anteriores algumas palavras chave, como "chain"e "ACCEPT".
Nesta lio voc aprender muitas outras.
Existem trs tipos de palavras-chave, descritos a seguir:
location keywords - definem onde uma regra ser criada, por exemplo "table"ou chain".
match keywords - executam um teste em todos os pacotes. Caso um ou mais dos pacotes
no passe nesse teste a regra no ter efeito. Exemplo: "proto", "daddr". Geralmante
matches tem parmetros: "proto tcp", "daddr 172.16.0.0/12".
target keywords - especificam o que deve ser feito com um pacote. Exemplo: REJECT",
"ACCEPT", "goto"
Qualquer regra costituda de uma location keyword, uma target keyword e algumas match
keywords:
table filter #location
proto tcp dport (http https) #match
ACCEPT #target

4.2 Parmetros
Algumas palavras-chave precisam ser complementadas com parmetros, que podem ser literais, referncias a variveis ou listas. Exemplo:
proto tcp
saddr %TRUSTED_HOSTS;
proto tcp dport (http https ssh);
LOG log-prefix "funky wardriver alert: ";
Alguns parmetros podem ser negados:

17

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

proto !esp;
proto udp dport !domain;

Para negar palavras chave que no recebem parmetros basta digitar ! antes delas:
proto tcp !syn;

4.3 Algumas Location Keywords


domain [ip|ip6] - define o domnio. O padro ip, que significa IPv4, ip6 usado para suporte
ao protocolo ipv6.
table [filter|nat|mangle] - especifica em qual tabela a regra ser inserida. As opes so, "filter",
que o padro, "nat"e "mangle"
chain [chain-name] - especifica em qual chain (dentro da tabela atual) a regra ser inserida. Geralmete as chains pr-definidas so "INPUT", "OUTPUT", "FORWARD", "PREROUTING"e "POSTROUTING".
policy [ACCEPT|DROP] - especifica a poltica padro do chain atual. Pode ser um dos targets ACCEPT, DROP, REJECT etc. Os pacotes que no satisfazem as regras sero tratados
da maeira especificada pela poltica padro. Para evitar ambiguidades, sempre especifique qual
poltica ser adotada para cada chain.
subchain - funciona como um bloco normal, mas o FERM move as regras de detro desse bloco
para outro chain. O nome do novo chain ser escolhido automaticamente pelo FERM. Em muitos
casos isto mais rpido que um simples bloco, porque o ferm pode pular um grande bloco caso
a pr-condio for falsa. Veja um exemplo:
table filter chain INPUT {
saddr (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) {
proto tcp dport (http https ssh) ACCEPT;
proto udp dport domain ACCEPT;
}
}
sero geradas ento 20 regras. Se um pacote chega e no satisfaz o saddr, ainda assim sero testadas as 20 regras. Usando subchain a checagem ser feita apenas uma vez. Assim, o
processo ser mais rpido.
table filter chain INPUT {
saddr (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) subchain {
proto tcp dport (http https ssh) ACCEPT;
proto udp dport domain ACCEPT;
}
}
18

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

4.4 Algumas Match Keywords


interface [interface-name] - define o nome da interface. equivalente a -i switch no iptables.
outerface [interface-name] - semelhante a interface, somente para testar a interface de sada
dos pacotes, como no iptables.
protocol [protocol-name|protocol-number] - atualmente so suportados pelo kernel os protocolos tcp, udp e icmp, ou seus respectivos nmeros.
saddr|daddr [address-spec] - testa os pacotes originados de determinado endereo(saddr) ou
destinados a um determinado endereo(daddr). Exemplo:
saddr 192.168/8 ACCEPT; #idntico ao prximo: saddr 192.168.0.0/255.255.255.0 ACCEPT;
daddr my.domain.com ACCEPT;
fragment - especifica que apenas pacotes fragmentados devem ser testados. Quando o pacote
maior que o tamanho mximo de pacote que um sistema est apto a tratar ele ser dividido em
pedaos menores que sero enviados um a um como se fossem pacotes.
sport|dport [port-spec] - faz a verificao dos pacotes em portas TCP ou UDP especificadas. sport verifica as portas de origem dos pacotes e dport verifica as portas de destino. Essas
palavras-chave (sport e dport) s podem ser usadas depois de especificados os protocolos "protocol tcp"ou "protocol udp".
icmp-type [type] - usado para especificar um tipo de uma mensagem icmp. Pode ser usado
apenas aps "protocol icmp".
module [module-name] - Carrega um mdulo do iptables. A maioria dos mdulos fornecem
mais mach keywords.

4.5 Algumas Target Keywords


goto [custon-chain-name] - vai para um outro chain. Caso nesse novo chain no haja regras
retorna para o chain anterior, para a regra seguinte a do goto.
ACCEPT - aceita os pacotes.
DROP - bloqueia os pacotes sem fazer nenhuma advertncia.
REJECT - rejeita os pacotes e envia um pacote ICMP para o remetente. Por padro esse pacote
port-unreachable, mas voc pode especificar um outro tipo de pacote ICMP.
REJECT; #padro
REJECT reject-with icmp-net-unreachable; # outro tipo especificado
RETURN - finaliza o chain atual e, caso ele tenha sido chamado por um goto retorna ao chain
que o chamou.
19

CDTC

Centro de Difuso de Tecnologia e Conhecimento

NOP - nenhuma ao realizada.

20

Brasil/DF

Captulo 5

Variveis, Funes, Include, Opes de


comandos
5.1 Variveis
Variveis so utilizadas com o objetivo de melhorar a legibilidade de arquivos de firewall, principalmente se estes forem complexos. Veja um exemplo de definio de variveis:
def $DEV_INTERNET = eth0;
def $PORTS = (http ftp);
def $MORE_PORTS = ($PORTS 8080);

depois de definir as variveis use-as da mesma forma que usaria os parmetros que elas substituem. Veja um exemplo:
chain INPUT interface $DEV_INTERNET proto tcp dport $MORE_PORTS ACCEPT;
OBS: as variveis no podem conter palavras-chave como "proto"ou "interface"em seus nomes,
apenas podem ter parmetros.
O valor definido para uma varivel dentro de um bloco s vale dentro dele. Por exemplo, no
trecho seguinte:
def $DEV_INTERNET = eth1;
chain INPUT {
proto tcp {
def $DEV_INTERNET = ppp0;
interface $DEV_INTERNET dport http ACCEPT;
}
interface $DEV_INTERNET DROP;
}
a definio def $DEV_INTERNET = ppp0 s vale dentro do bloco

21

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

{
def $DEV_INTERNET = ppp0;
interface $DEV_INTERNET dport http ACCEPT;
}
fora deste bloco continua valendo a definio def $DEV_INTERNET = eth1.
Se houver uma chamada a um arquivo no qual foi feita uma declarao de varivel ento a declarao continua valendo no bloco que fez a chamada. Isto til quando so necessrias muitas
declaraes. Neste caso pode-se fazer um arquivo s de declaraes e inclu-lo no arquivo que
usa as variveis.

Variveis Automticas
Algumas variveis vm definidas pelo FERM. Voc pode utiliz-las da mesma fora que utiliza
as que voc definiu. So variveis pr-definidas:

$DOMAIN - o domnio atual, que pode ser "ip"ou "ip6"


$TABLE - a tabela atual.
$CHAIN - o chain atual.

5.2 Funes
Funes so semelhantes a variveis, a diferena que funes podem ter parmetros e que
elas fornecem comandos, e no valores. Veja um exemplo:
def &FOO() = proto (tcp udp) dport domain;
&FOO() ACCEPT;

def &TCP_TUNNEL($port, $dest) = {


table filter chain FORWARD interface ppp0 proto tcp
dport $port daddr $dest outerface eth0 ACCEPT;
table nat chain PREROUTING interface ppp0 proto tcp dport $port daddr 1.2.3.4 DNAT to
$dest;
}
&TCP_TUNNEL(http, 192.168.1.33);
&TCP_TUNNEL(ftp, 192.168.1.30;
&TCP_TUNNEL((ssh smtp), 192.168.1.2);

Uma chamda de fuo que contm um bloco (como ...) tem de ser o ltimo comando da regra,
isto , deve prceder um ;. No exemplo acima voc pde escrever ACCEPT depois da chamada a
&FOO() porque no h blocos em &FOO().
22

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

5.3 Include
A palavra-chave include permite a incluso de arquivos externos. Exemplo:
include vars.ferm;
O nome do arquivo relativo ao arquivo que faz a chamada, ou seja, quando includo /etc/ferm/ferm.conf
. Variveis e funes declaradas em um arquivo includo ainda ficam disponveis no arquivo no
qual a chamada feita. possvel tambm usar includes dentro de blocos:
chain INPUT {
include input.ferm;
}
Se voc incluir um diretrio ao invs de um arquivo todos os arquivos desse diretrio sero includos. Exemplo:
include ferm.d/;

5.4 Algumas opes de comandos


noexec - Pula os comandos iptables ao invs de execut-los.
lines - mostra as linhas do firewall geradas pelas regras. Essas linhas sero mostradas
imeditamente antes de serem executadas. Assim, se houver uma mensagem de erro voc
poder ver a regra que o causou.
interactive - aplica as regras do firewall e pede uma confirmao do usurio. Caso no
haja essa confirmao dentro de 30 segundos o firewall volta a configurao anterior.
help - mostra uma lista das opes disponveis.
version - informa qual a verso do programa.
fast - habilita o modo rpido. feito o seguinte: o FERM cria o arquivo iptables-save e
o intala com o iptables-restore. Dessa forma o FERM precisar chamar o iptables apenas
uma vez.
domain - lida apenas com o domnio especificado. Caso o domnio no esteja especificado
no arquivo de entrada pode ser que no haja nenhuma sada.

23

Vous aimerez peut-être aussi