Treinamento Firewall : Treinamento Firewall Firewall Linux
Slide 2 : Tabela Mangle
Alvos do Mangle
TOS
TTL
MARK
Uso do TOS
prioridades
Módulos Adicionais
state
multiport
limit
mac
iprange
quota
Slide 3 : Tabela Mangle
O tabela mangle do iptables é usada para marcar pacote, alterar o compo TTL ou TOS do datagrama ip.
Poderá usar qualquer um dos fluxos ( Cadeias )
Slide 4 : TOS – O TOS é usado para setar ou alterar o campo TOS do datagrama IP. Ele é usado para definir prioridade de um pacote, dando maior privilégio em relação aos outros. Tipos de prioridade:
Slide 5 : TTL – O TTL é usado para alterar o tempo de vida em um pacote.
MARK - O MARK é usado para configurar , marcar um pacote com um valor especifico. Tais marcas poderão ser verificadas por outros sofwares para decisões de roteamento, QOS, etc.
Slide 6 : Usando o TOS
Prioridade pacotes ssh:
iptables –t mangle –A PREROUTING –p tcp –dport 22 –j TOS --set-tos 16
Prioridade saída HTTP
iptables –t mangle –A OUTPUT –o eth0 –p tcp ---dport 80 –j TOS –set-tos 8
Slide 7 : Usando o TTL
Alterando o TTL de um pacote para o padrão Linux :
iptables –t mangle –A POSTROUTING –o eth0 –j TTL --ttl-set 64
Slide 8 : Usando o MARK
Marcando um pacote com um valor usando o MARK:
iptables –t mangle –A PREROUTING –s 192.168.0.0/24 –p tcp –dport 25 –j MARK --set-mark 2
Slide 9 : Fluxo :
Slide 10 : Módulos Adicionais – aumenta o possibilidade de uso do iptables.
Módulo netfilter: state, time, limit.
Módulos independentes: layer7, ipp2p, etc.
Muitos módulos já estão integrados a compilação padrão, outros devem ser compilados.
Slide 11 : Módulo State: Verifica o estado da conexão em relação as flags TCP
NEW – pacotes iniciando novas conexões
ESTABLISHED - pacotes com conexão já estabelecida
RELATED – pacotes relacionados com alguma conexão já existente. Pode-se utilizado para iniciar um conexão, desde que já tenha sido feita um outra anteriormente.
INVALID - pacotes inválidos.
Slide 12 : Usando módulo state.
TRHEE WAY HANDSHAK ssh:
iptables –A INPUT –p tcp –dport 22 –m state --state NEW –j ACCEPT
iptables –A OUTPUT –p tcp –sport 22 –m state --state ESTABLISHED,RELATED –j ACCEPT
iptables –A INPUT –p tcp –dport 22 –m state --state ESTABLISHED,RELATED –j ACCEPT
Slide 13 : Uso tráfego local:
iptables –A OUTPUT –p tcp --dport 80 –j ACCEPT
iptables –A OUTPUT –p tcp --dport 443 –j ACCEPT
iptables –A OUTPUT –p tcp --dport 25 –j ACCEPT
iptables –A OUTPUT –p tcp --dport 110 –j ACCEPT
iptables –A INPUT –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT
Slide 14 : Uso tráfego encaminhado:
iptables –A FORWARD –s 192.168.0.0/24 –p tcp --dport 80 –j ACCEPT
iptables –A FORWARD –s 192.168.0.0/24 –p tcp --dport 443 –j ACCEPT
iptables –A FORWARD –s 192.168.0.0/24 –p tcp --dport 25 –j ACCEPT
iptables –A FORWARD –s 192.168.0.0/24 –p tcp --dport 110 –j ACCEPT
iptables –A FORWARD -d 192.168.0.0/24 –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT
Slide 15 : Módulo Limit: Usado para limitar a quantidade de pacotes por um tempo determinado, onde o tempo poderá ser segundo, minuto, horas, ou dias. Executa próxima regra, quando o valor é atingido.
Exemplo, limitação de pings:
iptables –A INPUT –p icmp --icmp-type echo-request –m limit --limit 30/s –j ACCEPT
Slide 16 : Teoricamente usado para evitar DOS ( Deny of Service ), sem muito sucesso.
Por padrão o Linux reversa o uso de recursos para novas conexões.
Para evitar uso de recursos, e o DOS , usar /proc/sys/net/ipv4/tcp_syn_cookies .
Slide 17 : Módulo Multiport: permite especificar mais de um porta por protocolo, pode-se usar --dports ou --sports.
Exemplo de uso:
iptables –A FORWARD –s 192.168.0.0/24 –p tcp –m multiport --dports 110,25,80,443 –j ACCEPT
iptables –A FORWARD –p tcp –m state --state ESTABLISHED,RELATED –d 192.168.0.0/24 –j ACCEPT
Slide 18 : Módulo MAC: Usando para filtrar o MAC-ADDRESS de uma máquina. Pode ser utilizado dentro de uma mesma rede.
Exemplo de uso:
iptables –A FORWARD –s 192.168.0.10 –m mac --mac-source 00:00:FA:01:05:AC –j ACCEPT
Slide 19 : Módulo MAC: Usando para filtrar o MAC-ADDRESS de uma máquina. Pode ser utilizado dentro de uma mesma rede.
Exemplo de uso:
iptables –A FORWARD –s 192.168.0.10 –m mac --mac-source 00:00:FA:01:05:AC –j ACCEPT
Slide 20 : Módulo IPRANGE: Permite filtrar vários endereços IPs de uma única vez.
Exemplo de uso:
iptables –t mangle –A PREROUTING –p tcp –dport 22 –m iprange --src-range 192.168.10.1-192.168.10.4 –j TOS --set-tos 0x10
Slide 21 : Módulo QUOTA: Limita a quantidade de bytes ou pacotes por um regra, tomando a ação seguinte após regra não coincidir mais. Pode-se verificar os valores através do iptables –L –v . Exemplo de regra:
iptables –A FORWARD –s 192.168.0.10 –p tcp –m quota –quota 102400000 –j ACCEPT
iptables –A FORWARD –s 192.168.0.10 –p tcp –j REJECT
Slide 22 : Módulo TIME: Módulo não padrão, deverá ser compilado seguinte o how-to para patch-o-matic , no www.netfilter.org. Permite criação de regra por horários:
iptables –A FORWARD –s 192.168.0.10 –p tcp –m time --days Mon,Tue,Wed,Thu,Fri --timestart 8:30 --timestop 18:00 –j ACCEPT
iptables –A FORWARD –s 192.168.0.10 –p tcp –j REJECT
Slide 23 : Módulo layer7 : Utilizado para filtrar aplicações, na camada de aplicações, tais como msn msn-filetransfer, etc. Mais informações : http://sourceforge.net/projects/l7-filter
Uso do layer7:
iptables –A FORWARD –s 192.168.0.0/24 –m layer7 --l7proto msn-filetransfer –j DROP
Slide 24 : LABORÁTORIO: uso de módulos vistos.