Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blogosfera d...
Tela cheia Sugerir um artigo

Leonardo Couto Conrado: IPFW - Criação de regras no IPFIREWALL

8 de Julho de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 339 vezes
Utilizado o FreeBSD 7.2 e o IPFW2 para este artigo.

Inicialmente é bom informar as duas formas de funcionamento do IPFW, no que diz respeito, ao tratamento dos pacotes que trafegam por ele. Os modos em que ele pode funcionar é:

Modo Filtro de pacotes:

- Restringir o tráfego baseado no endereço IP de origem ou destino;
- Restringir o tráfego através da porta (TCP ou UDP) do serviço.

Modo Firewall statefull:

- Herda as caracteristica do firewall filtro de pacotes e extende outras;
- Filtro de estado de sessão;
- Armazena o estado das conexões e filtra com base nesse estado. Na verdade, o firewall guarda o estado de todas as últimas transações efetuadas e inspecionava o tráfego para evitar pacotes ilegítimos(Evitar técnicas de ip spoofing, por exemplo).

Primeiramente iremos abordar a construção das regras no IPFW utilizando o modo filtro de pacotes. Para isso é necessário criar um arquivo onde será colocado as nossa regras e que será aonde o IPFW irá ler as regras, para isso foi criado o arquivo abaixo:

# mkdir -p /tools/firewall


# touch /tools/firewall/rules.fw

Iremos editar o arquivo rules.fw:

vi /tools/firewall/rules.fw


Agora iremos começar a escrever as nossas regras, mas como seria a sintaxe para escrever as regras?

Abaixo uma breve explicação sobre a sintaxe das regras do IPFW:

CMD [número_regra] [prob probalilidade] ação [log [logamount número] ] corpo_regra

CMD = add, nat, set, table.
[número_regra] = Varia de 1 a 65535 e indica a sequência em que as regras serão processadas.
[prob probabilidade] = Define uma probabilidade para aplicar a regra. Varia de 0 a 1.
ação =
allow | accept | pass | permit
Tem o mesmo sentido aceitar pacote.
deny | drop
Tem o mesmo sentido, descartar pacotes que correspondem a essa regra. A busca termina.
check-state, count, deny, divert porta, fwd ip[porta], pipe número, queue número, reset, skipto número, tee porta... etc.
[log [logamount número]] = Caso mencionada a palavra log, cada vez que um pacote coincidir com esta regra será feito um log, através do syslog.
corpo_regra = Contém uma ou mais exigências que o pacote precisa coincidir para a regra ser atendida. Ex.: dst-ip endereço, dst-port porta, established, frag etc.

Exemplos práticos:

### Liebrar udp da rede 192.168.0.0/24 para a rede 192.168.1.0/24
add 00100 allow udp from 192.168.0.0/24 to 192.168.1.0/24 in
### Regra para o INPUT do trafego SSH
add 00200 allow tcp from any to 192.168.1.1/32 22 in
### Regras para o INPUT do VNC da rede 192.168.1.0/24 para VNCs na rede 192.168.1.0/24
add 00300 allow tcp from 192.168.1.0/24 to 192.168.0.0/24 5900 in setup

Quando um pacote entra no firewall, ele é comparado com a primeira regra no conjunto de regras e avança uma regra de cada vez, que se deslocam de cima para baixo do conjunto em ordem crescente do número de seqüência das regras. Quando o pacote se adequa a seleção de parâmetros de uma regra, o campo de ação é executada e a busca do conjunto de regras termina para o pacote, Isto é referido como "o primeiro que se adequa ganha" metodo de procura. Se o pacote não corresponde a nenhuma das regras, ele é pego pela regra padrão obrigatório IPFW, número 65.535, que nega todos os pacotes e descarta-los sem qualquer resposta de volta para o remetente, a não ser que se coloque na regra para que o IPFW envie uma mensagem de resposta.



Fonte: http://conteudoopensource.blogspot.com/2010/07/ipfw-criacao-de-regras.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.