A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 1 IPTABLES Teórico e Prático.

Apresentações semelhantes


Apresentação em tema: "Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 1 IPTABLES Teórico e Prático."— Transcrição da apresentação:

1 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 1 IPTABLES Teórico e Prático

2 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Firewall em Linux 2  Netfilter é um modulo que fornece ao sistema operacional Linux as funções de firewall, NAT e log de utilização de rede de computadores;  Iptables é o nome da ferramenta do espaço do usuário que permite a criação de regras de firewall e NATs;  Apesar de, tecnicamente, o iptables ser apenas uma ferramenta que controla o módulo netfilter, o nome “iptables” é frequentemente utilizado como referência ao conjunto completo de funcionalidades do netfilter.

3 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 3 Modelo Padrão de Sistema Operacional

4 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Firewall Linux Cararacterísticas 4  Especificação de portas/endereço de origem/destino;  Suporte aos protocolos TCP/UDP;  Suporte a interfaces de origem/destino;  Manipula serviços de proxy;  Tratamento de tráfego dividido em chains/cadeias (para melhor controle do tráfego que entra/sai da máquina e tráfego redirecionado;  Muito rápido, estável e seguro.

5 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Firewall Linux Cararacterísticas 5  Suporte a módulos externos para ampliar funcionalidades do firewall;  Suporte a especificação de tipo de serviço para priorizar o tráfego de determinados tipos de pacotes;  Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formados.

6 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Por onde passa um pacote (Linux) 6  O iptables, presente no Linux a partir do kernel 2.4, usa o conceito de "ganchos" do netfilter, permitindo avaliar um datagrama em alguns pontos dentro do kernel.

7 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Por onde passa um pacote (Linux) 7

8 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Ganchos (chain) do netfilter 8

9 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Tabelas do Netfilter 9  Filter Deve conter apenas regras que determinam se um pacote deve ser aceito ou não.  NAT Serve para realizar operações de tradução sobre IP e/ou porta, tanto de origem como de destino.  Mangle Serve para realizar alterações no pacote, como por exemplo, no TOS, TTL, etc..

10 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Tabela Filter 10 A tabela filter possui três conjuntos de regras, ou seja, três listas sendo que cada uma delas está associada a um gancho (chain):  INPUT: nesta fila de regras, somente os pacotes direcionados ao Endereço IP da máquina atual serão avaliados por eventuais regras existentes nesta tabela. iptables -t filter -A INPUT [regra]  OUTPUT: nesta fila de regras, somente os pacotes originados por processos locais da máquina serão avaliados. iptables -t filter -A OUTPUT [regra]  FORWARD: nesta fila de regras, somente os pacotes que estão sendo repassados por esta máquina serão avaliados. Obs: não são para ela e nem originados por ela. iptables -t filter -A FORWARD [regra]

11 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Tabela Filter 11

12 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Ações da tabela Filter 12 Cada regra pode realizar uma determinada ação ao pacote (representado graficamente por -j), sendo que na filter as seguintes ações são possíveis:  REJECT: o pacote, uma vez que casou com a regra, é rejeitado. Demais regras existentes são ignoradas e o pacote definitivamente já teve seu destino selado: será descartado. Se for usado REJECT o remetente do pacote será avisado com uma mensagem de erro, normalmente um ICMP de "porta inatingível".  DROP: o DROP tem o mesmo efeito do REJECT e a mesma aplicação, com a diferença de que não é retornado nenhuma mensagem de erro ao remetente (ele não saberá o que aconteceu com o pacote).

13 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Ações da tabela Filter 13 Cada regra pode realizar uma determinada ação ao pacote (representado graficamente por -j), sendo que na filter as seguintes ações são possíveis:  ACCEPT: Aceita um pacote, deixando que ele siga o seu percurso. O ACCEPT, como os anteriores, causa o término de teste nesta tabela, ou seja, o pacote já foi aceito e não será mais testado por nenhuma outra regra posterior nesta tabela (mas ainda poderá ser testado por outra tabela, como pela mangle ou nat)  LOG: realiza um log deste pacote no sistema (geralmente no /var/log/syslog ou messages). Ao contrário das demais ações (DROP, ACCEPT e REJECT), ao aplicar um log no pacote o mesmo ainda continua sendo testado pelas regras seguintes da fila atual. Uma ação do tipo LOG não causa o término do teste. Caso seja do interesse do usuário ele pode configurar uma mensagem de log que aparecerá nos logs facilitando a análise.

14 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Topologia de Exemplo 14

15 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Formas de habilitar o roteamento (IP Forward - Linux) 15 Configuração provisória:  # sysctl -w net.ipv4.ip_forward=1  # echo 1 > /proc/sys/net/ipv4/ip_forward Configuração permanente:  /etc/sysctl.conf: net.ipv4.ip_forward = 1 sysctl -p /etc/sysctl.conf (Ativar configuração sem reiniciar)  /etc/rc.local echo 1 > /proc/sys/net/ipv4/ip_forward

16 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplos de regras – tabela filter 16 Liberar qualquer tráfego para interface de loopback no firewall. # iptables –t filter –A INPUT –i lo –j ACCEPT # iptables –t filter –A OUTPUT –o lo –j ACCEPT Estabeleça a política DROP (restritiva) para as chains INPUT e FORWARD da tabela filter. # iptables –t filter –P INPUT DROP # iptables –t filter –P FORWARD DROP Fazer LOG e bloquear o acesso a qualquer site que contenha a palavra “games”. # iptables –t filter –I FORWARD -o eth2 –p tcp --dport 80 -m string --algo bm --string “games”– j LOG # iptables –t filter –I FORWARD -o eth2 –p tcp --dport 80 -m string --algo bm --string “games”– j DROP

17 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplos de regras – tabela filter 17 Bloquear acesso para qualquer usuário ao site www.jogosonline.com.br,www.jogosonline.com.br exceto para seu chefe, que possui o endereço IP 10.1.1.100. # iptables –t filter –I FORWARD -o eth2 –s 10.1.1.100 –d www.jogosonline.com.br –p tcp --dport 80 -j ACCEPTwww.jogosonline.com.br # iptables –t filter –I FORWARD -o eth2 –s 10.1.1.0/24 –d www.jogosonline.com.br –p tcp --dport 80 -j DROPwww.jogosonline.com.br Permitir que o firewall receba pacotes do tipo ICMP echo-request (ping), porém, limite a 5 pacotes por segundo. # iptables –t filter –I INPUT -p icmp --icmp-type –echo-request –m limit --limit 5/s -j ACCEPT Permitir que tanto a rede interna como a DMZ possam realizar consultas ao DNS externo, bem como, receber os resultados das mesmas. # iptables –t filter –I FORWARD -o eth2 –p udp --dport 53 -j ACCEPT # iptables –t filter –I FORWARD -i eth2 –p udp --sport 53 -j ACCEPT

18 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplos de regras – tabela filter 18 Permitir o tráfego TCP destinado à máquina 192.168.1.100 (DMZ) na porta 80, vindo de qualquer rede (Interna ou Externa). # iptables –t filter –I FORWARD -d 192.168.1.100 –p tcp --dport 80 -j ACCEPT Faça com que a máquina 192.168.1.100 consiga responder os pacotes TCP recebidos na porta 80 corretamente. # iptables –t filter –I FORWARD -s 192.168.1.100 –p tcp --sport 80 -j ACCEPT http://www.guiafoca.org/cgs/guia/avancado/ch-fw-iptables.html http://www.netfilter.org/documentation/index.html#documentation-howto http://www.vivaolinux.com.br/artigo/Estrutura-do-Iptables

19 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Tabela NAT 19 A tabela nat possui três conjuntos de regras, ou seja, três listas sendo que cada uma delas está associada a um gancho (chain): PREROUTING: Nesta lista irão as regras que serão aplicados aos para pacotes que acabaram de entrar por uma das interfaces de rede, não importando qual será o destino dos mesmos, se para um processo local ou para ser roteado (forward). Deve-se ter em mente que a etapa de roteamento é quem decidirá qual o caminho que o pacote irá tomar, inclusive decidindo se o mesmo será repassado ou entregue a um processo local. Para realizar o roteamento são considerados parâmetros de destino, como o IP, para saber se é desta máquina ou se deve ser repassado, e porta, se for local para decidir para qual processo.

20 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Tabela NAT 20 A tabela nat possui três conjuntos de regras, ou seja, três listas sendo que cada uma delas está associada a um gancho (chain): POSTROUTING: Nesta lista irão as regras com poder de alterar um pacote após o roteamento. É a última etapa antes do pacote deixar a interface de rede em direção ao "mundo". OUTPUT: Observe que alterações de destino, como porta ou IP, só podem ser realizados no gancho PREROUTING. Infelizmente, porém, existe um problema aí, pois observe que pacotes gerados por processos locais não passam por este gancho. Para evitar que pacotes gerados localmente fossem condenados a não ter meios de alterar parâmetros de destino, o nat também atua no gancho OUTPUT. As regras do nat OUTPUT tem o mesmo propósito e a mesma sintaxe das do gancho PREROUTING, com a única diferença de operar pacotes originados por processos locais.

21 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Acões possíveis na tabela NAT 21 As ações (alvos –j) que podem ser executadas nesta tabela são: PREROUTING: DNAT, REDIRECT, LOG e DROP POSTROUTING: SNAT, MASQUERADE, LOG e DROP OUTPUT: DNAT, REDIRECT, LOG e DROP

22 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Topologia de exemplo 22

23 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplos de uso da tabela NAT 23 Possibilite que usuários da rede interna possam acessar o serviço WWW, tanto na porta (TCP) 80 como na 443. Não esqueça de realizar NAT já que os usuários internos não possuem um endereço IP válido. # iptables –t filter –A FORWARD –i eth0 –o eth2 –p tcp --dport 80 –j ACCEPT # iptables –t filter –A FORWARD –i eth0 –o eth2 –p tcp --dport 443 –j ACCEPT # iptables –t filter –A FORWARD –i eth2 –o eth0 –p tcp --sport 80 –j ACCEPT # iptables –t filter –A FORWARD –i eth2 –o eth0 –p tcp --sport 443 –j ACCEPT # iptables –t nat –A POSTROUTING –s 10.1.1.0/24 -o eth2 –j MASQUERADE

24 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplos de uso da tabela NAT 24 Redirecione pacotes TCP destinados ao IP 200.20.5.1 porta 80, para a máquina 192.168.1.100 que está localizado na DMZ. # iptables –t nat –A PREROUTING –i eth2 –d 200.20.5.1 –p tcp --dport 80 –j DNAT --to 192.168.1.100

25 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Outros exemplos de uso da tabela NAT 25 iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to :80 iptables -t nat -A PREROUTING -i eth0 -p tcp -s 10.1.5.4 -d 172.16.0.2 --dport 8080 -j DNAT –to 172.16.0.1:80 iptables -t nat -A POSTROUTING -p tcp -s 10.1.0.4 -j SNAT --to 10.1.0.1 iptables -t nat -A OUTPUT -p tcp -d IPDOMEUSERVIDOR --dport 22 -j DNAT --to :2215 iptables -t nat -I OUTPUT -p tcp --dport 90 -j DNAT --to :80

26 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplo – Proxy transparente A porta de um proxy http é, tipicamente, 3128. Em uma rede que possui proxy e que os clientes precisam utilizá-lo, cada navegador precisaria estar configurado para usar o proxy do IP X na porta 3128. Contudo a técnica de proxy transparente permite que não se faça esta configuração. Cada navegador "pensa" que acessa a Internet na porta 80, porém, quando o pacote passa pelo roteador, uma regra de iptables troca o ip destino pelo ip do proxy e a porta destino por 3128: iptables -t nat -A PREROUTING -p tcp -s 10.1.0.0/24 --dport 80 -j DNAT --to 10.1.0.1:3128

27 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Exemplo – Proxy transparente Sempre que o origem for 10.1.0.0/24 (clientes que devem passar pelo proxy) e a porta de destino por 80, não importando o ip de destino, o pacote será enviado para 10.1.0.1 (ip do proxy) na porta 3128. Aí ele cai no proxy querendo ou não. Se o serviço de proxy está executando na própria máquina onde se encontra o firewall, o seguinte comando tem o mesmo efeito: iptables -t nat -A PREROUTING -p tcp -s 10.1.0.0/24 --dport 80 -j REDIRECT --to-port 3128

28 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Salvar a configuração realizada Existem diversas forma de gravar as configurações que foram feitas no iptables, para caso o sistema seja reinicializado as configurações não sejam perdidas. Veremos algumas:  Inserir as regras em um script, bash por exemplo. E chamar este script na inicialização do sistema. 1.Para isso deve ser criado um arquivo que terá as regras de firewall, por exemplo. firewall.sh. 2.Deve ser dado as permissões necessárias para execução. # chown root.root firewall.sh #chmod 750 firewall.sh 3.Definir como script de inicialização. # mv firewall.sh /etc/init.d/ # update-rc.d firewall.sh defaults

29 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes  Uma outra maneira de inicializar o script: 1.Criar um arquivo que terá as regras de firewall, por exemplo. firewall.sh. 2.Deve ser dado as permissões necessárias para execução. # chown root.root firewall.sh #chmod 750 firewall.sh 3.Definir como script de inicialização. i.Editar o arquivo /etc/rc.local ii.Adicionar uma linha para realizar a chamada ao script firewall.sh # /etc/regras_firewall/firewall.sh

30 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Salvar a configuração realizada Podemos salvar a configuração atual (em memória) do iptables para um arquivo, com o seguinte comando: #iptables-save > firewall.sh Para restaurar (tornar ativa) a configuração podemos utilizar o seguinte comando: #iptables-restore < firewall.sh

31 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Proxy (Firewall de Aplicação) SQUID

32 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Proxy  É usado como intermediários entre os PCs de uma rede e a Internet;  O servidor precisa que as requisições passam por ele;  Pode ser transparente;  Evita desperdício de recursos da rede;  Possibilita realizar cache;  Possibilita a geração de relatórios;  O proxy cria uma nova conexão para cada cliente.

33 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Proxy-Squid (Configuração no Linux Ubuntu)  Instalar o proxy squid. # apt-get update # apt-get install squid3  Renomear o arquivo squid.conf e criar um novo arquivo sem configuração. # service squid3 stop # cd /etc/squid3 # mv squid.conf squid.conf.original #gedit squid.conf

34 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Configurar cache  Renomear o arquivo squid.conf e criar um novo arquivo sem configuração. # service squid stop # cd /etc/squid3 # mv squid.conf squid.conf.original #gedit squid.conf

35 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Configurar porta do proxy http_port 3128  Nome do servidor Visible_hostname Proxy_Teste  Mensagens de erro em português error_directory /usr/share/squid3/errors/pt-br

36 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Configuração básica de cache cache_mem 512MB maximum_object_size_in_memory 128 KB maximum_object_size 1024 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid3 1000 16 256

37 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Logs de acesso cache_log /var/log/squid3/cache.logaccess_log daemon:/var/log/squid3/access.log squid  ACL Padrão acl SSL_ports port 443 563 873 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 873 acl purge method PURGE acl CONNECT method CONNECT

38 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Permissões e bloqueio padrão http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports

39 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Requerer autenticação auth_param basic realm Servidor_Proxy (Digite Usuario | Senha) auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/usuarios.txt acl autenticados proxy_auth REQUIRED  Criar usuários #htpasswd usuarios.txt usuario01 #htpasswd usuarios.txt usuario02

40 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Bloqueio de sites por url acl sites_proibidos url_regex -i "/etc/squid3/sites_proibidos.txt“ http_access deny sites_proibidos  Permitir alguns sites em horário de almoço acl horario_almoço time MTWHFAS 12:00-14:00 acl sites_proibidos1 dstdomain "/etc/squid3/redes_sociais.txt“ http_access allow sites_proibidos1 horario_almoço autenticados http_access deny sites_proibidos1  Bloqueio de downloads por extensão acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3 http_access deny downloads_proibidos

41 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Squid.conf  Permitir usuário autenticados acessar sites que não foram bloqueados: http_access allow autenticados  Permissão de rede local e servidor acl redelocal src 192.168.10.0/24 http_access allow localhost http_access allow redelocal  Padrões e definiçoes de cache refresh_pattern ^ftp:144020%10080 refresh_pattern.020%4320  Bloqueio de usuários que não fazem parte da rede http_access deny all

42 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes ACLs (Access Control List)  São regras para navegação via proxy.  As ACLs são lidas na ordem em que aparecem e pode ser combinadas.  Definindo ACL acl NOME_DA_ACL TIPO_DA_ACL parâmetro Ou acl NOME_DA_ACL TIPO_DA_ACL "/caminho/completo/regra.conf"  Todas as ACLs são tratadas com case-sensitive para definir como case-insensitive utilize a opção –i logo após o tipo da ACL> Fonte: http://www.dicas-l.com.br/arquivo/conhecendo_as_acls_mais_utilizadas_no_squid.php#.VFabU_nF8Yl

43 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Principais ACLs  src – trata o IP ou uma faixa de endereços IP com que o cliente chega no proxy. acl ESTACAO_DIRETOR src 192.168.1.100/255.255.255.255  dst – trata o IP de destino da navegação. acl IP_INTEGRAL dst 200.175.44.1/255.255.255.255  dstdomain – trata o domínio de destino da navegação. acl SITE_INTEGRAL dstdomain.integral.inf.br Fonte: http://www.dicas-l.com.br/arquivo/conhecendo_as_acls_mais_utilizadas_no_squid.php#.VFabU_nF8Yl

44 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Principais ACLs  time – trata um determinado momento baseado em dia da semana e hora. acl HORARIO_ALMOCO time MTWHF 12:00-13:30 Fonte: http://www.dicas-l.com.br/arquivo/conhecendo_as_acls_mais_utilizadas_no_squid.php#.VFabU_nF8Yl

45 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Principais ACLs  url_regex (expressão regular na URL) – permite utilizar expressões regulares na avaliação das URLs. acl EXTENSAO_PROIBIDA url_regex ?i \.exe$  port – trata a porta de destino da navegação. acl SITE_8080 port 8080  Proxy_auth – trata o login com que o cliente se autentica no proxy. Requer configuração de autenticação. acl DIRETOR proxy_auth joao Fonte: http://www.dicas-l.com.br/arquivo/conhecendo_as_acls_mais_utilizadas_no_squid.php#.VFabU_nF8Yl

46 Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes Regras das ACLs  http_access – permite ou nega acessos baseados nas ACLs pré definidas. É utilizado seguido de allow ou deny. Se a ACL for precedida de um ponto de exclamação significa que será a negação da ACL. As regras são lidas na ordem em que aparecem. # acesso liberado para o diretor baseado em login http_access allow DIRETOR # acesso liberado ao site da integral exceto no horário do almoço http_access allow SITE_INTEGRAL !HORARIO_ALMOCO # extensão proibida baseado em expressão regular http_access deny EXTENSAO_PROIBIDA Após qualquer modificação no arquivo de configuração do SQUID faz-se necessário digitar o comando: # squid3 -k reconfigure Fonte: http://www.dicas-l.com.br/arquivo/conhecendo_as_acls_mais_utilizadas_no_squid.php#.VFabU_nF8Yl


Carregar ppt "Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 1 IPTABLES Teórico e Prático."

Apresentações semelhantes


Anúncios Google