54
Prof.: Roberto Franciscatto Projeto e Instalação de Servidores Servidores Linux – Aula 6 – Firewall e Proxy

Servidores Aula 6 Firewall e Proxy

Embed Size (px)

Citation preview

Page 1: Servidores Aula 6 Firewall e Proxy

Prof.: Roberto Franciscatto

Projeto e Instalação de Servidores

Servidores Linux – Aula 6 – Firewall e Proxy

Page 2: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

FIREWALL

Page 3: Servidores Aula 6 Firewall e Proxy

Firewall

• Tem o objetivo de proteger um computador ou uma redede computadores, seguindo regras estabelecidas

Introdução

1 – Firewall e Proxy

de computadores, seguindo regras estabelecidas

Page 4: Servidores Aula 6 Firewall e Proxy

O que faz um Firewall ?

• Um firewall examina o tráfego enquanto ele entra em umadas suas interfaces e aplica regras ao tráfego...

Introdução

1 – Firewall e Proxy

das suas interfaces e aplica regras ao tráfego...

• Essencialmente:

• permitindo ou impedindo o tráfego baseado nestasregras

Page 5: Servidores Aula 6 Firewall e Proxy

• Portas mais usadas para serviços de internet

22 = SSH21 = FTP

Introdução

1 – Firewall e Proxy

21 = FTP25 = SMTP53 TCP e 53 UDP = DNS80 = HTTP110 = POP3143 = IMAP443 = HTTPS1194 UDP = OpenVPN5901 = VNC

Page 6: Servidores Aula 6 Firewall e Proxy

• IPTABLES

• Serviço de firewall nativo do linux

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

• Possui uma grande variedade de recursos

• Baseia-se no conceito de regras de entrada e saida

Page 7: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Escrever regras do firewall é como que aprender um novo dialeto...

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

dialeto...

• Imagine que ao escrever uma nova regra, você está explicando uma ideia, tente ser claro para que seja entendido...

Page 8: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-A INPUT: especifica que a regra se aplica a pacotes de entrada, ou seja, pacotes recebidos pelo servidor, em qualquer interface

-A OUTPUT: a regra se aplica a pacotes de saída, transmitidos pelo próprio servidor.

Page 9: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-A FORWARD: este parâmetro é usado para compartilhar a conexão com a internet, permitindo que os micros da rede local acessem através do servidor.

• Os pacotes dos outros micros, encaminhados pelo servidor, são tratados como ‘FORWARD’, diferente dos pacotes transmitidos pelo próprio servidor, que são tratados como ‘OUTPUT’.

Page 10: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-p tcp: especifica que a regra se aplica a pacotes TCP-p udp: especifica que a regra se aplica a pacotes UDP

• Ex.: iptables –A INPUT –p udp --dport 53 –j ACCEPT

• Importante: é necessário sempre especificar o protocolo, caso contrário, ERRO !

Page 11: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

• Caso seja preciso bloquear os três protocolos para um determinado endereço, pode-se usar:

iptables –A INPUT –p ALL –s 88.191.79.206 –j DROP

Page 12: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

• É comum bloquear as portas 0 a 1023 UDP, autorizando apenas as portas que devem ficar abertas como:

iptables –A INPUT –p udp --dport 53 –j ACCEPT

iptables –A INPUT –p udp --dport 0:1023 –j DROP

Page 13: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-p icmp: bloquear o pedido de pings

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-p icmp: bloquear o pedido de pings

• Ex.:

iptables –A INPUT –p icmp --icmp-type echo-request –j DROP

Page 14: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-i eth0: a opção ‘-i’ permite definir a interface onde os

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-i eth0: a opção ‘-i’ permite definir a interface onde os pacotes devem ser recebidos ou enviados.

Exemplos:

iptables –A INPUT –p tcp –j REJECT

iptables –A INPUT –i eth2 –p tcp –j REJECT

iptables –A INPUT –i eth0 –p tcp --dport 22 –j ACCEPT

Page 15: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

--dport ou --destination-port: especifica uma porta.

• O uso mais comum para esta opção é paraabrir portas de entrada e depois aplicar uma regraque feche as demais.

Page 16: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-d (destiny): destinado ao endereço IP ou domínio citado.Bastante utilizado para bloquear o acesso a determinadossites a partir dos micros da rede local.

Ex.:

iptables –A FORWARD –d dominio.com –j REJECT

Page 17: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-m mac --mac-source 00:11:D8:76:59:2E: esta é a regra

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-m mac --mac-source 00:11:D8:76:59:2E: esta é a regraque permite especificar endereços MAC dentro das regrasdo Iptables.

Ex.:

iptables –A INPUT --dport 22 –m mac --mac-source00:11:D8:76:59:2E –j ACCEPT

Page 18: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

--syn: cria uma regra válida apenas para novas conexões,

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

--syn: cria uma regra válida apenas para novas conexões,não impedindo que o outro micro responda a conexõesiniciadas pelo servidor, como em:

Ex.:

iptables –A INPUT –p tcp --syn –j DROP

Page 19: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j: é usado no final de cada regra, especificando uma ação,

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-j: é usado no final de cada regra, especificando uma ação,que pode ser:

-j ACCEPT: aceita o pacote. Ele é encaminhado ao destinosem passar pelas demais regras.

-j REJECT: rejeita educadamente o pacote, enviando umpacote de resposta ao emissor.

Ex.: ‘connect to host 192.168.1.1 port 22: Connection refused’

Page 20: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j DROP: o DROP é mais enfático. O pacote é

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

-j DROP: o DROP é mais enfático. O pacote é simplesmente descartado, sem aviso.

• O emissor fica um longo tempo esperando, até que eventualmente recebe um erro de time-out.

-j LOG: permite logar conexões. É interessante usar estasregras principalmente em regras muito visadas, como aSSH.

Page 21: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

(continuação) -j LOG: para ativar o log, é necessário duplicar a regra que abre a porta, usando a opção ‘-j LOG’ na primeira e ‘-j ACCEPT’ na segunda, como em:

iptables –A INPUT –p tcp --dport 22 –j LOG

iptables –A INPUT –p tcp --dport 22 –j ACCEPT

Page 22: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Implementando Firewall com IPTABLES

1 – Firewall e Proxy

(continuação) -j LOG: as mensagens são gravados no arquivo ‘/var/log/messages’.

• é possível ver as mensagens com o comando ‘dmesg’

Page 23: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

# Abre para a faixa de endereços da rede local:iptables –A INPUT –s 192.168.1.0/255.255.255.0 –j ACCEPT

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Faz a mesma coisa, só que especificando a interface:iptables –A INPUT –i eth0 –j ACCEPT

# Abre uma porta:iptables –A INPUT –p tcp --dport 22 -j ACCEPT

# Ignora pings:iptables –A INPUT –p icmp-type echo-request -j DROP

Page 24: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

(Continuação)

# Protege contra IP spoofing:

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Protege contra IP spoofing:echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Descarta pacotes mal formados, protegendo contra ataques diversos:iptables –A INPUT –m state --state INVALID –j DROP

# Abre para a interface de loopback:iptables –A INPUT –i lo –j ACCEPT

Page 25: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

(Continuação)

# Protege contra IP spoofing:

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Protege contra IP spoofing:echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Descarta pacotes mal formados, protegendo contra ataques diversos:iptables –A INPUT –m state --state INVALID –j DROP

# Abre para a interface de loopback:iptables –A INPUT –i lo –j ACCEPT

Page 26: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

(Continuação)

# Impede a abertura de novas conexões, bloqueando acesso

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Impede a abertura de novas conexões, bloqueando acesso # externo ao servidor, com exceção das regras anteriores:

iptables –A INPUT –p tcp --syn –j DROP

Page 27: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

(Continuação)

Após incluir todas as regras do firewall, é necessário salvar e

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

Após incluir todas as regras do firewall, é necessário salvar e dar permissão de execução.

Ex.:

# cd /etc/init.d/

# chmod +x firewall

Page 28: Servidores Aula 6 Firewall e Proxy

• Entendendo as regras do firewall (Iptables)

Para desativar o firewall e voltar a aceitar conexões, use o comando ‘iptables – F’, que limpa as regras do Iptables:

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# iptables -F

Page 29: Servidores Aula 6 Firewall e Proxy

• Forwarding de Portas

• Ao compartilhar uma conexão via NAT, apenas o servidor recebe conexões vindas da internet.

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

• Os micros da rede local acessam através do servidor e recebem apenas pacotes de resposta.

• Entretanto existem casos em que você realmente deseja que alguns dos hosts fique diretamente acessível a internet

Page 30: Servidores Aula 6 Firewall e Proxy

• Forwarding de Portas

Exemplo:

• Um servidor web, escutando na porta 80 do micro

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

• Um servidor web, escutando na porta 80 do micro 192.168.1.3 da rede local, fique disponível na internet.

• A única forma de fazer isso é o servidor ‘passar a bola’ para este micro

• A limitação é que continua existindo uma única porta 80, uma única porta 22, etc...

Page 31: Servidores Aula 6 Firewall e Proxy

• Forwarding de Portas

Exemplo de Forwarding:

# Redireciona uma única porta para um micro da rede local

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Redireciona uma única porta para um micro da rede local

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables –t nat –A PREROUTING –p tcp –i eth1 --dport 22 –j DNAT --to 192.168.1.10

iptables –t nat –A POSTROUTING –d 192.168.1.10 –j SNAT --to 192.168.1.1

Page 32: Servidores Aula 6 Firewall e Proxy

• Forwarding de Portas

É possível ainda indicar uma lista de portas (usando a opção –m multiport), como em:

Escrevendo um script completo (IPTABLES)

1 – Firewall e Proxy

# Redireciona um conjunto de portas

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables –t nat –A PREROUTING –p tcp –i eth1 –m multiport --dport 21,22,80 –j DNAT --to-dest 192.168.1.10

iptables –t nat –A POSTROUTING –d 192.168.1.10 –j SNAT --to 192.168.1.1

Page 33: Servidores Aula 6 Firewall e Proxy

• Exercícios

• Construa um firewall básico para uso em um servidor web, contendo as seguintes regras:

EXERCÍCIOS

1 – Firewall e Proxy

• Abrir para a interface de loopback

• Bloqueie um determinado IP (hosts específicos)

• Abra as portas referentes aos seguintes serviços usados:

• SSH, DNS, HTTP, HTTPS

• Bloqueie as conexões nas demais portas

Page 34: Servidores Aula 6 Firewall e Proxy

• Exercícios (cont.)

• Construa um firewall básico para uso em um servidor web, contendo as seguintes regras:

EXERCÍCIOS

1 – Firewall e Proxy

• Garanta que o firewall permitira pacotes de conexões já iniciadas

• Bloqueie as portas UDP de 0 a 1023

• Crie este script na forma de um arquivo executável

• Adicione este arquivo na inicialização do Linux

Page 35: Servidores Aula 6 Firewall e Proxy

• Exercícios (cont.)

• Teste de um cliente linux se as regras estão funcionando

EXERCÍCIOS

1 – Firewall e Proxy

• Utilize o site (https://www.grc.com/x/ne.dll?rh1dkyd2) para verificar o que seu firewall está protegendo...

Page 36: Servidores Aula 6 Firewall e Proxy

• Exercícios (2)

• Você deve detectar possíveis rootkits em seu servidor. Para isso faça os seguintes passos:

EXERCÍCIOS

1 – Firewall e Proxy

Para isso faça os seguintes passos:

• Instale o software chkrootkit

• Execute o software

• Armazene os resultados em um arquivo teste

• Faça a análise dos resultados e explique o que o software encontrou.

Page 37: Servidores Aula 6 Firewall e Proxy

Proxy

1 – Firewall e Proxy

PROXY

Page 38: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Proxy

• O Proxy é um servidor que atende a requisiçõesrepassando os dados do cliente à frente:

• um usuário (cliente) conecta-se a um servidor proxy,requisitando algum serviço:

• como um arquivo, conexão, página web, ououtro recurso disponível em outro servidor.

Page 39: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Proxy

• Serviços providos por um proxy:

• Cache• Cache• Proxy transparente• Proxy aberto• Proxy Anônimo

Page 40: Servidores Aula 6 Firewall e Proxy

Squid

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• ACL => Lista de Controle de Acesso

• Solução de Proxy para Linux => Squid• Solução de Proxy para Linux => Squid

Page 41: Servidores Aula 6 Firewall e Proxy

Squid

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Implementando um servidor proxy com o Squid

• Para colocar em funcionamento:

# apt-get install squid

# mv /etc/squid/squid.conf /etc/squid/squid.conf.orig

Page 42: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Arquivo /etc/squid/squid.conf contendo as seguinteslinhas:linhas:

http_port 3128visible_hostname servidoracl all src 0.0.0.0/0.0.0.0http_access allow all

Page 43: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotesvia ACL – Access Control

• Implementando• Implementandoum servidor proxycom o Squid

• Ex.: permissões

Page 44: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Bloqueando por dominios ou palavras

• Bloqueando por dominios ou palavras (com ou semwww)

Page 45: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• E se a regra ficar muito grande ?

Page 46: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• É possível nestes casos criar um arquivo externo,inserir os dominios, linha-a-linha e posteriormente fazeruma ‘chamada’ a este arquivouma ‘chamada’ a este arquivo

• Ex.:

• Problema:

• Cada novo endereço descoberto deve ser inseridona lista

Page 47: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Solução:

O Sarg pode ajudar bastante• O Sarg pode ajudar bastante

Page 48: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• É possível também inverter a regra, de forma que eu possabloquear tudo e ir liberando acesso a determinados sites

• Ex.:

• Nos proxys mais atuais tem-se o bloqueio de dominiosassociado aos respectivos Ips, evitando assim que o usuariodigite diretamente o IP de um site...

Page 49: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• É possível bloquear também por endereços IP

• Descobrir o endereço IP associado a um dominio:

# host (dominio)

Page 50: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Bloqueando por palavras (incluidas na URL de acesso)

• Criar um arquivo texto com as palavras a serembloqueadas

• orkut, xxx, sexo, teens...

• Adicionar a regra contendo a localização do arquivo

Page 51: Servidores Aula 6 Firewall e Proxy

Introdução

1 – Firewall e Proxy

• Filtragem de pacotes via ACL – Access Control

• Mensagens de erro

• Adicionar a seguinte linha no squid

"error_directory/usr/share/squid/errors/Portuguese/ "

• É possivel alterar os arquivos HTML de cadamensagem de forma personalizada...

Page 52: Servidores Aula 6 Firewall e Proxy

EXERCÍCIOS

1 – Firewall e Proxy

• Instalar o squid

• Efetuar os seguintes bloqueios:

• lista de palavras inapropriadas (criar arquivo)• lista de palavras inapropriadas (criar arquivo)

• lista de sites bloqueados pela instituição (criar arquivo)

• bloquear acesso durante o período da aula do prof.Roberto

• bloquear acesso a arquivos com a extensão (avi, exe,mp3, mov, wmv, etc...)

Page 53: Servidores Aula 6 Firewall e Proxy

EXERCÍCIOS (2)

1 – Firewall e Proxy

• Ainda no squid...

• Configure uma cache de paginas e arquivos• Tanto cache de RAM como de HD• Tanto cache de RAM como de HD

• Proxy com autenticação• Instalar pacote apache2-utils• Cadastrar 5 usuarios diferentes

• Instalar o Sarg• Gerar os relatorios e monitorar acessos

Page 54: Servidores Aula 6 Firewall e Proxy

Dúvidas, sugestões ouquestionamentos

[email protected]