firewalls usando linux. 1 ipchainsipchains sucessor do ipfwadmsucessor do ipfwadm presente no linux...

22
Firewalls usando Firewalls usando Linux Linux

Upload: filipe-carreira

Post on 07-Apr-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

Firewalls usando LinuxFirewalls usando Linux

Page 2: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

2

IPChainsIPChains

• Sucessor do Sucessor do ipfwadmipfwadm• Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir do kernel 2.1.102• Estável e seguroEstável e seguro• Não faz Não faz statefull packet inspectionstatefull packet inspection

Page 3: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

3

IPChainsIPChains

• Listas de regras (chains)Listas de regras (chains)• Cada lista tem uma política defaultCada lista tem uma política default

– ACCEPT– REJECT– DENY

• Listas podem ser criadas para melhor organizar as Listas podem ser criadas para melhor organizar as regrasregras

• Cada regra tem um dos seguintes alvosCada regra tem um dos seguintes alvos– ACCEPT, REJECT, DENY– MASQ

Page 4: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

4

IPChainsIPChains

• Como os pacotes passam pelos filtros...Como os pacotes passam pelos filtros...

RINPUT FORWARD OUTPUT

Processos Locais

IF IF

Page 5: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

5

IPChainsIPChains

• ReferênciasReferências– Firewall and Proxy Server HOWTO– Linux IPCHAINS-HOWTO– Linux IP Masquerade HOWTO– todos podem ser encontrados em http://www.linuxdoc.org

Page 6: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

6

NetFilterNetFilter

• Sucessor do IPChainsSucessor do IPChains• Presente no Linux a partir do kernel série 2.4.xPresente no Linux a partir do kernel série 2.4.x

– compatível com ipchains e ipfwadm

• Statefull Packet InspectionStatefull Packet Inspection• Tabelas (tables)Tabelas (tables)• Listas (chains) de RegrasListas (chains) de Regras

Page 7: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

7

NetFilterNetFilter

• NetFilter FrameworkNetFilter Framework

RPRE_ROUTING FORWARD POST_ROUTING

Processos Locais

LOCAL INPUT LOCAL OUTPUT

IF IF

Page 8: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

8

NetFilterNetFilter

• Filter TableFilter Table

• Filtragem de pacotes de acordo com regrasFiltragem de pacotes de acordo com regras

• Ação típica: DROP, ACCEPT, REJECT, LOGAção típica: DROP, ACCEPT, REJECT, LOG

Page 9: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

9

NetFilterNetFilter

• Filter TableFilter Table

RPRE_ROUTING FORWARD POST_ROUTING IF IF

Processos Locais

INPUT OUTPUT

Page 10: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

10

NetFilterNetFilter

• NAT TableNAT Table

• DNAT: redirecionar o acesso para um host internoDNAT: redirecionar o acesso para um host interno

• SNAT: redirecionar o acesso de hosts internos para SNAT: redirecionar o acesso de hosts internos para o firewallo firewall

• MASQUERADE: como SNAT, mas mais flexível, MASQUERADE: como SNAT, mas mais flexível, operando com IPs dinâmicosoperando com IPs dinâmicos

Page 11: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

11

NetFilterNetFilter• NAT TableNAT Table

– Source NAT (S-NAT): Masquerading– Destination NAT (D-NAT): balanceamento, transparent

proxy

D-NAT

D-NAT

S-NATRPREROUTING FORWARD POSTROUTINGIF IF

Processos Locais

LOCAL INPUT OUTPUT

Page 12: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

12

NetFilterNetFilter

• Mangle TableMangle Table

• Não deve ser usada para filtragem ou NATNão deve ser usada para filtragem ou NAT

• Uso: manipulação de camposUso: manipulação de campos

• Exemplo típico: alteração de TTL e TOSExemplo típico: alteração de TTL e TOS

Page 13: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

13

NetFilterNetFilter

• Mangle TableMangle Table

RPREROUTING FORWARD POST_ROUTINGIF IF

Processos Locais

LOCAL INPUT OUTPUT

Page 14: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

14

NetFilterNetFilter

RNAT

PREROUTING

IFIF

Processos Locais

MANGLEPREROUTING

FILTERINPUT

MANGLEINPUT

MANGLEOUTPUT

NATOUTPUT

FILTEROUTPUT

MANGLEPOSTROUTING

NATPOSTROUTING

FILTERFORWARD

MANGLEFORWARD

Page 15: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

15

NetFilterNetFilter

• Estados de uma conexãoEstados de uma conexão

• New: o primeiro pacote de uma conexãoNew: o primeiro pacote de uma conexão

• Established: tráfego de uma conexão nos dois sentidosEstablished: tráfego de uma conexão nos dois sentidos

• Related: tráfego relacionado a uma outra conexão já Related: tráfego relacionado a uma outra conexão já estabelecida (established)estabelecida (established)

• Invalid: tráfego não identificado ou não pertencente a Invalid: tráfego não identificado ou não pertencente a nenhum outro estadonenhum outro estado

Page 16: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

16

NetFilterNetFilter

• Formato básico de uma regraFormato básico de uma regra

iptables [-t table] command [match] [target/jump]iptables [-t table] command [match] [target/jump]

table: mangle, filter, nattable: mangle, filter, nat

command: append (A), delete (D), replace (R), insert (I), command: append (A), delete (D), replace (R), insert (I), list (L), flush (F), policy (P), etclist (L), flush (F), policy (P), etc

match: genérico, TCP, UDP, ICMP, especialmatch: genérico, TCP, UDP, ICMP, especial

target/jump: o que fazer/para onde desviartarget/jump: o que fazer/para onde desviar

Page 17: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

17

NetFilterNetFilter

• MatchesMatches-p tcp-p tcp protocolo = tcpprotocolo = tcp-s 192.168.10.0/24-s 192.168.10.0/24 ip de origem = 192.168.10.xip de origem = 192.168.10.x-d !192.168.0.1-d !192.168.0.1 ip de destino distinto de 192.168.0.1ip de destino distinto de 192.168.0.1-i eth0-i eth0 interface de entrada = eth0interface de entrada = eth0-o eth1-o eth1 interface de saída = eth1interface de saída = eth1-p tcp --sport 22:80-p tcp --sport 22:80 porta de origem entre 22 e 80porta de origem entre 22 e 80-p tcp --dport 1024:-p tcp --dport 1024: porta de destino de 1024 a 65535porta de destino de 1024 a 65535-p tcp --tcp-flags SYN,FIN,ACK SYN-p tcp --tcp-flags SYN,FIN,ACK SYN

testa por syn=1, fin=0 e ack=0testa por syn=1, fin=0 e ack=0-p tcp --syn-p tcp --syn testa por syn=1, rst=0, e ack=0testa por syn=1, rst=0, e ack=0-p udp -dport 53-p udp -dport 53 porta de destino 53porta de destino 53

Page 18: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

18

NetFilterNetFilter

• MatchesMatches

-p icmp --icmp-type 8-p icmp --icmp-type 8-m limit --limit 3/hour-m limit --limit 3/hour-m mac --mac-source 00:00:00:00:00:01-p tcp -m multiport --source-port 22,53,80,110-p tcp -m multiport --port 22,53,80,110-m owner --uid-owner 500-m state --state RELATED,ESTABLISHED-p tcp -m tos --tos 0x16-m ttl --ttl 60

Page 19: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

19

NetFilterNetFilter

• targetstargets

iptables -A INPUT -p tcp -j tcp_packetsiptables -A INPUT -p tcp -j tcp_packetsdesvia o processamento para a cadeia tcp_packetsdesvia o processamento para a cadeia tcp_packets

iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTaceita pacotes tcp para a porta 80aceita pacotes tcp para a porta 80

iptables -A INPUT -p tcp --dport 23 -j DROPiptables -A INPUT -p tcp --dport 23 -j DROPdescarta pacotes tcp para a porta 23descarta pacotes tcp para a porta 23

Page 20: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

20

NetFilterNetFilter

• targetstargetsiptables -t nat -A PREROUTING -p tcp -d 15.45.23.67iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1---dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10192.168.1.10

iptables -A FORWARD -p tcp -j LOG --log-tcp-optionsiptables -A FORWARD -p tcp -j LOG --log-tcp-options

iptables -t nat -A POSTROUTING -p TCP -j iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000MASQUERADE --to-ports 1024-31000

iptables -t nat -A PREROUTING -p tcp --dport 80 -j iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080REDIRECT --to-ports 8080

Page 21: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

21

NetFilterNetFilter

• targetstargets

iptables -A FORWARD -p TCP --dport 22 -j REJECT iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset--reject-with tcp-reset

iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000--to-source 194.236.50.155-194.236.50.160:1024-32000

iptables -t mangle -A PREROUTING -i eth0 -j TTL iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1--ttl-inc 1

Page 22: Firewalls usando Linux. 1 IPChainsIPChains Sucessor do ipfwadmSucessor do ipfwadm Presente no Linux a partir do kernel 2.1.102Presente no Linux a partir

22

NetFilterNetFilter

• Exemplo: rc.firewall.txtExemplo: rc.firewall.txt

• Onde buscar mais informações (HOW-TOs)Onde buscar mais informações (HOW-TOs)– http://www.netfilter.org