Escolar Documentos
Profissional Documentos
Cultura Documentos
Firewall No Linux
Firewall No Linux
Firewall
Firewall um quesito de segurana com cada vez mais importncia no
mundo da computao. medida que o uso de informaes e sistemas cada
vez maior, a proteo destes requer a aplicao de ferramentas e conceitos de
segurana eficientes. O firewall uma opo praticamente imprescindvel.
Firewall o nome dado ao mecanismo de uma rede de computadores
que tem por objetivo aplicar uma poltica de segurana a um determinado ponto
de controle da rede. Seu objetivo permitir somente a transmisso e a
recepo de dados autorizados.
Este mecanismo atua como uma defesa de um computador ou de uma
rede, controlando o acesso ao sistema por meio de regras e a filtragem de
dados. A vantagem do uso de firewalls em redes, que somente um
computador pode atuar como firewall, no sendo necessrio instal-lo em cada
mquina conectada. A figura abaixo ilustra a idia de Firewall.
Funcionamento do Firewall
H varias formas de funcionamento de um firewall. Estas formas variam
de acordo com o sistema, aplicao ou do desenvolvedor do programa.
Entretanto, existem dois conceitos bsicos de utilizao de firewall:
- Firewall em nvel de Pacotes
- Firewall em nvel de Aplicao
Iptables
O Iptables uma ferramenta de edio da tabela de filtragem de
pacotes, ou seja, com ele voc capaz de analisar o cabealho e tomar
decises sobre os destinos destes pacotes.
O iptables um firewall com estado, ou seja, um firewall stateful. Os
anteriores eram stateless. O modo de filtragem 'Stateless' tende a tratar cada
pacote roteado pelo firewall como pacotes individuais, sendo mais simples de
implementar e por terem uma resoluo mais rpida que um do tipo stateful,
podem ser usados para obterem um desempenho melhor em determinadas
situaes onde existem regras de nvel de rede bem simples.
Atravs destas regras poderemos fazer com que os pacotes possam ser
ou no recebidos a rede toda, a determinada mquina, interface ou mesmo
porta de conexo. O Iptables trabalha atravs de Tabelas, Chains e Regras:
Instalao Iptables
Os requerimentos bsicos para o funcionamento do Iptables so um
computador sobre a arquitetura 386 com, no mnimo, 4MB de RAM e um kernel
da srie 2.4 ou superior.
Para a realizao deste tutorial, fora utilizado a sistema operacional
Linux, sendo a distribuio Debian.
Como este experimento fora realizado na rede interna da Universidade
Estadual do Oeste do Paran, necessrio realizar a exportao do proxy
utilizado pela faculdade, para que assim seja possvel realizar o download do
pacote de instalao do Iptables, lembrando que a maioria dos releases atuais
do Linux j possui o Iptables no seu Kernel.
export http_proxy=htpp://proxy.unioeste.br:8080
Para realizar a instalao de determinados programas, o Linux permite
que o pacote de instalao destes sejam obtidos por download atravs do
comando:
apt-get install iptables
Regras no Iptables
As regras so como comandos passados ao iptables para que ele
realize uma determinada ao (como bloquear ou deixar passar um pacote) de
acordo com o endereo/porta de origem/destino, interface de origem/destino,
Chains
Os Chains so locais onde as regras do firewall so definidas pelo
usurio e armazenadas para operao do firewall. Existem dois tipos de
Chains: os embutidos (como os Chains INPUT, OUTPUT e FORWARD) e os
criados pelo usurio. Os nomes dos Chains embutidos devem ser
especificados sempre em maisculas (note que os nomes dos Chains so
case-sensitive, ou seja, o Chain input completamente diferente de INPUT).
Tabelas
As Tabelas armazenam os Chains e o conjunto de regras com uma
determinada caracterstica em comum. Existem 3 tabelas disponveis no
Iptables:
Tabela Filter
a tabela padro do Iptables, composto por 3 Chains:
Tabela Nat
Utilizada para dados que geram outra conexo (masquerading, source
nat, destination nat, port forwarding, proxy transparente so alguns exemplos).
Ela composta por 3 Chains:
Tabela Mangle
A 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. Ela Possui 2 Chains padres:
Fazendo o IP Masquerading
Antes de manipular as regras necessrio que o kernel tenha suporte
ao iptables e ip_forward. Com os dois comandos abaixo habilitado o
masquerading para todas as mquinas da rede 192.168.1.*:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 j
MASQUERADE
echo "1" >/proc/sys/net/ipv4/ip_forward
A configurao do servidor Linux est completa, agora os clientes da
rede precisaro ser configurados para usar o endereo IP do servidor Linux
como gateway
Manipulao de Chains
Nesta sesso sero mostrados alguns dos comandos mais utilizados
para a manipulao de regras.
Listar Regras L
Utilizando a sintaxe abaixo possvel exibir todas as regras j criadas.
iptables [-t tabela] -L [Chain] [opes]
No exemplo abaixo o comando lista as regras do Chain INPUT
iptables -t filter -L INPUT
Podem-se utilizar tambm algumas opes para pra listar o contedo dos
Chains:
Adicionando regras A
Adiciona uma regra na Tabela e Chain determinados.
Como exemplo ser acrescentado uma regra no Chain INPUT (-A
INPUT) que bloqueie (-j DROP) qualquer acesso indo ao endereo 127.0.0.1 (d 127.0.0.1):
iptables -t filter -A INPUT -d 127.0.0.1 -j DROP
Apagando Regras D
A excluso de regras pode ser feita de duas formas, Quando sabemos
qual o nmero da regra no Chain (listado com a opo -L) podemos
referenciar o nmero diretamente, como no exemplo abaixo:
iptables -t filter -D INPUT 1
Porem, s vezes o conjunto de regras pode ser muito extenso, o que
dificulta saber o numero da regra. Neste caso usamos a mesma sintaxe para
criar a regra no Chain, mas trocamos -A por -D:
iptables -t filter -D INPUT -d 127.0.0.1 -j DROP
Substituir Regras R
Existem duas alternativas: apagar a regra e inserir uma nova no lugar ou
modificar diretamente a regra j criada sem afetar outras regras existentes e
mantendo a sua ordem no Chain .Use o seguinte comando:
iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP
O nmero 2 o nmero da regra que ser substituda no Chain INPUT.
-t filter -N Unioeste
Para inserir regras no Chain Unioeste basta especifica-lo aps a opo -A:
iptables
Logo, necessrio fazer uma ligao (-j) do Chain INPUT para o Chain
Unioeste:
iptables -t filter -A INPUT -j internet
Esta ligao necessria indicar que outro Chain foi criado
possibilitando a leitura das novas regras do Chain Unioeste.