Sie sind auf Seite 1von 4

#

# IPFIREWALL
#

IPFW ---> interface de comando do IPFIREWALL (firewall nativo do FreeBSD)


|
|
implementa a filtragem de pacotes
IP e controle de trafego de rede

ACIONANDO O IPFIREWALL

- adicionando as opcoes apropriadas ao kernel ou;

- usando o kldload para carregar os modulos do ipfw.


(kldload ipfw)

A compilacao estatica proporciona uma melhor performance e permite que se adici-


one opcoes mais detalhadas de configuracao, como por exemplo, a geracao e limi-
tacao de logs.

ACIONANDO O FIREWALL NA INICIALIZACAO

{/etc/rc.conf}
firewall_enable="YES"
firewall_type="OPEN"
firewall_script="/etc/rc.ipfw" #conjunto de regras customizado.
#este arquivo sera carregado sempre que o firewall
#for iniciado.

SINTAXE DE REGRAS BASICAS DO IPFW

- qualquer regra pode ser adicionada pelo console, com o comando ipfw.
- as regras sao obedecidas de cima para baixo.
- a ultima regra sempre define a politica padrao do firewall.

<comando> [<nr regra>] <acao> <protocolo> from <origem> to <destino>

comando: add, delete


nr regra: 0 a 65535
acao: allow (pass,permit,accept) e deny (drop)
protocolo: proto que se deseja que a regra combine (/etc/protocols) - "ip" ou
"all" englobam todos os protocolos.
origem e destino: pode ser um endereco ip, endereco de rede com mascara e portas
se o proto for tcp ou udp.

a) listar regras ativas

ipfw list
ipfw -t list (mostra a data e hora que um pacote coincidiu com uma regra)
ipfw -a list
ipfw show (lista o nr de vezes que um pacote passou (ou foi bloqueado) por
uma regra, e o numero de bytes que esse trafego gerou)
b) adicionar uma regra
ipfw add 100 allow tcp from any to any
ipfw add 200 deny all from 10.0.0.5 to any
ipfw add 300 deny icmp from any to any
ipfw add 400 allow all from 192.168.0.0/24 to any
ipfw add 500 deny all from any to 10.0.0.0:255.0.0.0
ipfw add 600 allow tcp from any to 172.16.0.5 21,22,23
ipfw add 700 deny udp from any to 172.16.0.5 1024-1028

c) apagar uma regra


ipfw del 400

d) limpar todas as regras


ipfw flush
ipfw -f flush (nao pede confirmacao)

UM ARQUIVO DE REGRAS BASICO - /etc/rc.ipfw

|--------------------------------------------------------|
| |
| #!/bin/sh |
| |
| fw="/sbin/ipfw" |
| #controle para a rede lo0 |
| $fw add allow ip from any to any via lo0 |
| $fw add deny ip from 127.0.0.0/8 to any |
| $fw add deny ip from any to 127.0.0.0/8 |
| |
| $fw add allow ip from any to any |
| |
| |
| |
|--------------------------------------------------------|

#### CONTROLE DE BANDA ####

Para se implementar controle de banda e preciso o uso do dummynet. E necessario,


entao, adicionar uma opcao ao kernel:

options DUMMYNET

Depois de compilado o kernel o administrador podera especificar a criacao de


tuneis ("pipes") para controle de trafego.

Criacao de tuneis -------> comando "pipe <pipe #>" no ipfw

Exemplo:

pipe 10 config bw 100Kbit/s

O pipe e apenas mais uma acao para o ipfw, assim como add e delete, portanto
antes de cada comando e feita uma chamada ao ipfw.
O tunel criado anteriormente vai limitar o fluxo de informacoes para uma
velocidade maxima de 100 kilobits por segundo.

Medidas de velocidade de trafego pode ser indicada por: bit/s, Byte/s, Kbit/s,
kbyte/s, Mbit/s, Mbyte/s.

Filas de Tuneis

A necessidade seguinte e definir o tamanho das filas dos tuneis gerados.

As filas sao utilizadas pelos tuneis para forcar as limitacoes e atrasos de


banda. Seu tamanho e geralmente configurado em "Kbytes", mas tambem pode ser
definido em slots.

1 slot equivale a 1 pacote. Se a MTU das interfaces de rede e de 1500 bytes,


quer dizer que o tamanho maximo de um pacote sera de 1500 bytes.

Por padrao o tamanho de cada fila e de 50 slots.


(50 * 1500 bytes ou 12000 bits = 75 kbytes ou 600 kbits)

Por exemplo, vamos criar um tunel que simule a velocidade maxima de um modem
de 56k.

pipe 10 config bw 56kbit/s

Considerando o tamanho padrao de uma fila seria necessario 11 segundos aproxi-


madamente para a fila ser preenchida. Isso geraria um atraso inaceitavel para
por o trafego em andamento.

Para evitar este tipo de problema e recomendavel ajustar manualmente o tamanho


da fila.

Quanto menor a banda disponivel, menor deve ser a fila.

pipe 10 config bw 56kbit/s queue 5kbytes

O controle de banda pode ser feito por IP de host ou endereco de rede.

Por exemplo: Suponhamos que eu queira limitar a banda do host 192.168.1.2 para
300 kbps de download e 300 kbps de upload. Vamos supor tambem que
o servidor tenha duas interfaces de rede e a interface da LAN seja
a rl0. As regras ficariam da seguinte forma:

ipfw pipe 100 config bw 300Kbit/s queue 10Kbytes


ipfw pipe 101 config bw 300Kbit/s queue 10Kbytes
ipfw add 100 pipe 100 ip from any to 192.168.1.2/32 out via rl0 //lim. download
ipfw add 101 pipe 101 ip from 192.168.1.2/32 to any in via rl0 //lim. upload

O controle de banda por rede segue o mesmo padrao so que, nesse caso, sera o
endereco de rede configurado na regra. Se temos por exemplo, uma rede com
endereco 192.168.1.0/29 (com seis enderecos de hosts) a configuracao da regra
ficaria assim:

ipfw pipe 100 config bw 500Kbit/s queue 10Kbytes


ipfw pipe 101 config bw 500Kbit/s queue 10Kbytes
ipfw add 100 pipe 100 ip from any to 192.168.1.0/29 out via rl0 //lim. download
ipfw add 101 pipe 101 ip from 192.168.1.0/29 to any in via rl0 //lim. upload

Se tivessemos todos os 6 hosts dessa rede usando o link ao mesmo tempo, os 500
kbps definidos na regra do ipfw seriam divididos para as seis maquinas.

Das könnte Ihnen auch gefallen