servidores aula 6 firewall e proxy
TRANSCRIPT
Prof.: Roberto Franciscatto
Projeto e Instalação de Servidores
Servidores Linux – Aula 6 – Firewall e Proxy
Introdução
1 – Firewall e Proxy
FIREWALL
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
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
• 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
• 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
• 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...
• 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.
• 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’.
• 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 !
• 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
• 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
• 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
• 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
• 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.
• 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
• 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
• 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
• 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’
• 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.
• 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
• 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’
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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...
• 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
• 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
• 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
• 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
• 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...
• 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.
Proxy
1 – Firewall e Proxy
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.
Introdução
1 – Firewall e Proxy
• Proxy
• Serviços providos por um proxy:
• Cache• Cache• Proxy transparente• Proxy aberto• Proxy Anônimo
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
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
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
Introdução
1 – Firewall e Proxy
• Filtragem de pacotesvia ACL – Access Control
• Implementando• Implementandoum servidor proxycom o Squid
• Ex.: permissões
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)
Introdução
1 – Firewall e Proxy
• Filtragem de pacotes via ACL – Access Control
• E se a regra ficar muito grande ?
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
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
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...
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)
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
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...
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...)
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
Dúvidas, sugestões ouquestionamentos