O Firewall é um programa que como objetivo proteger a máquina contra
acessos indesejados, tráfego indesejado, proteger serviços que estejam rodando
na máquina e bloquear a passagem de coisas que você não deseja receber (como
conexões vindas da Internet para sua segura rede local, evitando acesso aos
dados corporativos de uma empresa ou a seus dados pessoais). No kernel do Linux
2.4, foi introduzido o firewall iptables (também chamado de netfilter) que
substitui o ipchains dos kernels da série 2.2. Este novo firewall tem como
vantagem ser muito estável (assim como o ipchains e ipfwadm), confiável,
permitir muita flexibilidade na programação de regras pelo administrador do
sistema, mais opções disponíveis ao administrador para controle de tráfego,
controle independente do tráfego da rede local/entre redes/interfaces devido a
nova organização das etapas de roteamento de pacotes.
Ele também pode ser usado para modificar e monitorar o tráfego da
rede, fazer NAT (masquerading, source nat, destination nat), redirecionamento
de pacotes, marcação de pacotes, modificar a prioridade de pacotes que
chegam/saem do seu sistema, contagem de bytes, dividir tráfego entre máquinas,
criar proteções anti-spoofing, contra syn flood, DoS, etc. O tráfego vindo de
máquinas desconhecidas da rede pode também ser bloqueado/registrado através do
uso de simples regras. As possibilidades oferecidas pelos recursos de filtragem
iptables como todas as ferramentas UNIX maduras dependem de sua imaginação,
pois ele garante uma grande flexibilidade na manipulação das regras de acesso
ao sistema, precisando apenas conhecer quais interfaces o sistema possui, o que
deseja bloquear, o que tem acesso garantido, quais serviços devem estar
acessíveis para cada rede, e iniciar a construção de seu firewall. O iptables
ainda tem a vantagem de ser modularizável, funções podem ser adicionadas ao
firewall ampliando as possibilidades oferecidas.
Um firewall não funciona de forma automática (instalando e esperar que
ele faça as coisas por você), é necessário pelo menos conhecimentos básicos de
rede tcp/ip, roteamento e portas para criar as regras que farão a segurança de
seu sistema. A segurança do sistema depende do controle das regras que serão
criadas por você, as falhas humanas são garantia de mais de 95% de sucesso nas
invasões.
Enfim o iptables é um firewall que agradará tanto a pessoas que
desejam uma segurança básica em seu sistema, quando administradores de grandes
redes que querem ter um controle minucioso sobre o tráfego que passam entre
suas interfaces de rede (controlando tudo o que pode passar de uma rede a
outra), controlar o uso de tráfego, monitoração, etc.
Fonte: guiafoca.org
O Linux utiliza um recurso independente em termos de kernel para
controlar e monitorar todo o tipo de fluxo de dados dentro de sua estrutura
operacional. Mas não o faz sozinho, pois sua função deve ser a de trabalhar ao
lado de processos e tarefas tão somente.
Para que o kernel pudesse então controlar seu próprio fluxo interno
lhe fora agregada uma ferramenta batizada de netfilter.
Criado por Marc Boucher, James Morris, Harald Welte e Rusty Russell, o
netfilter é m conjunto de situações de fluxo de dados agregadas inicialmente ao
kernel do Linux e dividido em tabelas.
Sob uma ótica mais pratica podemos ver o netfilter como um grande
bando de dados que contem em sua estrutura 3 tabelas padrões: Filter, Nat e
Mangle. Cada uma destas tabelas contem regras direcionadas a seus objetivos
básicos. A tabela filter por exemplo guarda todas as regras aplicadas a um
firewall filtro de pacotes, a tabela Nat das regras direcionadas a um Firewall
Nat e a Mangle a funções mais complexas de tratamento de pacotes como o TOS.
Todas as tabelas possuem situações de fluxo (entrada, saída,
redirecionamento, etc.) que lhes proporcionam a realização de seus objetivos.
Tabela Filter
É a tabela
padrão do Netfilter e trata das situações implementadas por um Firewall filtro
de pacotes. Estas situações são:
INPUT
Tudo o que
entra no host.
FORWARD
Tudo o que
chega ao host mas deve ser redirecionado a um host secundário ou outra
interface de rede.
OUTPUT
Tudo o que
sai do host.
Esta tabela
implementa funções de NAT (Networ Address Translation) ao host Firewall. O Nat
por sua vez, possui diversas utilidades, conforme abordado anteriormente. Suas
situações são:
PREROUTING
Utilizada
quando há necessidade de se fazer alterações em pacotes antes mesmo que sejam
roteados.
OUTPUT
Trata os
pacotes emitidos pelo host Firewall.
POSTROUTING
Utilizado
quando há necessidade de se fazer alterações em pacotes após o tratamento de
roteamento.
Implementa
alterações especiais em pacotes em um nível mais complexo. A tabela Mangle é
capaz por exemplo de alterar a prioridade de entrada e saída de um pacote
baseado no tipo de serviço (TOS) o qual o pacote se destinava, Suas situações
são:
PREROUTING
Modifica
pacotes dando-lhes em tratamento especial antes que os mesmos sejam roteados.
OUTPUT
Altera
pacotes de forma especial gerados localmente antes que os mesmos sejam
roteados.
AS
prioridades são:
Espera mínima
16 ou 0x10
Maximo processamento 8 ou 0x08
Máxima confiança 4 ou 0x04
Custo mínimo 2
ou 0x02
Prioridade normal 0 ou 0x00
Parâmetros
-A = Adiciona uma nova entrada ao fim
da lista de regras.
-D = Apaga um regra especificada da
lista.
-L = Lista as regras existentes na
lista.
-P = Altera a política padrão das
chains.
-F = Remove todas as entradas
adicionadas na lista.
-I = Insere uma nova regra ao inicio da
lista de regras.
-R = Substitui uma regra já adicionada.
-N = Cria uma nova chain a tabela
especificada.
-E = Renomeia uma chain criada
anteriormente.
-X = Apaga uma chain.
-p =Especifica o protocolo aplicado a
regra, pode ser qualquer valor numérico especificado no arquivo /etc/protocol
ou o próprio nome do protocolo (tcp, udp, icmp, etc...).
-i = Especifica a interface de entrada
a ser utilizada.
-o = Especifica a interface de saída a
ser utilizada.
-s = Especifica a origem (source) do
pacote ao qual a regra deve ser aplicada.
-d = Especifica o destino do pacote (destination)
ao qual a regra deve ser aplicada.
! = Significa exclusão e é utilizada
quando se deseja aplicar uma exceção a uma regra.
-j = Define o alvo (target) do pacote
caso o mesmo se encaixe a uma regra.
--sport = Porta de origem.
--dport = Porta de destino.
ACCEPT = Aceita a passagem do pacote.
DROP = Descarta o pacote.
REJECT = Rejeita o pacote.
LOG = Cria uma entrada de log no
arquivo /var/log/messages
RETURN = Retorna o processamento do
chain anterior sem processar o resto do chain atual.
QUEUE = Encarrega um pograma em nível de
usuário de administrar o processamento de fluxo atribuído ao mesmo.
SNAT = Altera a origem das maquinas
clientes antes dos pacotes serem roteados.
DNAT = Altera o destino das maquinas
clientes.
REDIRECT = Realiza o redirecionamento
de portas.
TOS = Prioriza a entrada e saída de
pacotes baseados em seu tipo de serviço.
Exemplos
Lista as
regras na lista da tabela Filter.
# iptables -L
Lista as
regras na lista da tabela Nat.
# iptables -t nat -L
Lista as
regras na lista da tabela Mangle.
# iptables -t mangle -L
Define a política
padrão DROP da da chain INPUT.
# iptables -P INPUT DROP
Define a política
padrão DROP da da chain OUTPUT.
# iptables -P OUTPUT DROP
Define a política padrão DROP da da
chain FORWARD.
# iptables -P FORWARD DROP
Libera o
trafego na interface de loopback
# iptables -A INPUT -i lo -j ACCEPT
Proibe a
rede 192.168.0.0/24 acessar o dominio sex.com.br
# iptables -A FORWARD -s 192.168.0.0/24 -d www.sex.com.br -j DROP
Rejeita
pacotes vindos do ip 200.200.100.44 para a rede 192.168.0.0/24.
# iptables -A FORWARD -s 200.200.100.44 -d 192.168.0.0/24 -j REJECT
Redireciona
os pacotes com destino a porta 3389 do protocolo tcp para o ip 10.0.0.5
# iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 10.0.0.5:3389
Aceita a
saida de pacotes de todas as interfaces exceto da eth3.
# iptables -A OUTPUT -i ! eth3 -j ACCEPT
Deleta a
regra inserida anteriormente
# iptables -D OUTPUT -i ! eth3 -j ACCEPT
Aceita
pacotes tcp com porta origem entre a 1024 até a 65535 com destino ao ip
10.0.10.5 na porta 80.
# iptables -A FORWARD -p tcp --sport 1024:65535 -d 10.0.10.5 --dport 80 -j
ACCEPT
Configura o
proxy transparente caso o proxy esteja rodando no mesmo host do firewall, a
regra redireciona todo pacote com destino a porta 80 para a porta 3128.
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port
3128
Apaga todas
as regras na chain INPUT
# iptables -F INPUT
Insere a
regra no topo da lista, bloqueia o pacote que sair pela interface eth0 com
destino a porta 3777.
# iptables -I OUTPUT -o eth0 --dport 3777 -j DROP
Cria a chain
INTERNET na tabela filter
# iptables -t filter -N INTERNET
Renomeia a
chain INTERNET para NET
# iptables -E INTERNET NET
Apaga a chain NET
# iptables -X NET
Loga acessos na porta 22
# iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "ACESSO A
PORTA 22"
Define
espera minima para pacotes que entrarem no host com porta origem 22
# iptables -t mangle -A PREROUTING -p tcp --sport 22 -j TOS --set-tos 16
Fonte: Abrir
0 comentários:
Postar um comentário