Projeto e Instalação de Servidores
Servidores Linux – Aula 6 – Firewall e Proxy
Prof.: Roberto Franciscatto
1 – Firewall e Proxy
Introdução
FIREWALL
1 – Firewall e Proxy
Introdução
Firewall
• Tem o objetivo de proteger um computador ou uma rede
de computadores, seguindo regras estabelecidas
1 – Firewall e Proxy
Introdução
O que faz um Firewall ?
• Um firewall examina o tráfego enquanto ele entra em uma
das suas interfaces e aplica regras ao tráfego...
• Essencialmente:
• permitindo ou impedindo o tráfego baseado nestas
regras
1 – Firewall e Proxy
Introdução
• Portas mais usadas para serviços de internet
22 = SSH
21 = FTP
25 = SMTP
53 TCP e 53 UDP = DNS
80 = HTTP
110 = POP3
143 = IMAP
443 = HTTPS
1194 UDP = OpenVPN
5901 = VNC
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• IPTABLES
• Serviço de firewall nativo do linux
• Possui uma grande variedade de recursos
• Baseia-se no conceito de regras de entrada e saida
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Escrever regras do firewall é como que aprender um novo
dialeto...
• Imagine que ao escrever uma nova regra, você está
explicando uma ideia, tente ser claro para que seja
entendido...
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-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.
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-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’.
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-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 !
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
• 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
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
• É 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
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-p icmp: bloquear o pedido de pings
• Ex.:
iptables –A INPUT –p icmp --icmp-type echo-request –j
DROP
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-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
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
--dport ou --destination-port: especifica uma porta.
• O uso mais comum para esta opção é para
abrir portas de entrada e depois aplicar uma regra
que feche as demais.
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-d (destiny): destinado ao endereço IP ou domínio citado.
Bastante utilizado para bloquear o acesso a determinados
sites a partir dos micros da rede local.
Ex.:
iptables –A FORWARD –d dominio.com –j REJECT
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-m mac --mac-source 00:11:D8:76:59:2E: esta é a regra
que permite especificar endereços MAC dentro das regras
do Iptables.
Ex.:
iptables –A INPUT --dport 22 –m mac --mac-source
00:11:D8:76:59:2E –j ACCEPT
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
--syn: cria uma regra válida apenas para novas conexões,
não impedindo que o outro micro responda a conexões
iniciadas pelo servidor, como em:
Ex.:
iptables –A INPUT –p tcp --syn –j DROP
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-j: é usado no final de cada regra, especificando uma ação,
que pode ser:
-j ACCEPT: aceita o pacote. Ele é encaminhado ao destino
sem passar pelas demais regras.
-j REJECT: rejeita educadamente o pacote, enviando um
pacote de resposta ao emissor.
Ex.: ‘connect to host 192.168.1.1 port 22: Connection refused’
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-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 estas
regras principalmente em regras muito visadas, como a
SSH.
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
(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
1 – Firewall e Proxy
Implementando Firewall com IPTABLES
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
(continuação) -j LOG: as mensagens são gravados no
arquivo ‘/var/log/messages’.
• é possível ver as mensagens com o comando
‘dmesg’
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• 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
# 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Entendendo as regras do firewall (Iptables)
(Continuação)
# 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Entendendo as regras do firewall (Iptables)
(Continuação)
# 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Entendendo as regras do firewall (Iptables)
(Continuação)
# 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Entendendo as regras do firewall (Iptables)
(Continuação)
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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• 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:
# iptables -F
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Forwarding de Portas
• Ao compartilhar uma conexão via NAT, apenas o servidor
recebe conexões vindas da internet.
• 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Forwarding de Portas
Exemplo:
• 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...
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Forwarding de Portas
Exemplo de Forwarding:
# 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
1 – Firewall e Proxy
Escrevendo um script completo (IPTABLES)
• Forwarding de Portas
É possível ainda indicar uma lista de portas
(usando a opção –m multiport), como em:
# 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
1 – Firewall e Proxy
EXERCÍCIOS
• Exercícios
• Construa um firewall básico para uso em um servidor
web, contendo as seguintes regras:
• 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
1 – Firewall e Proxy
EXERCÍCIOS
• Exercícios (cont.)
• Construa um firewall básico para uso em um servidor
web, contendo as seguintes regras:
• 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
1 – Firewall e Proxy
EXERCÍCIOS
• Exercícios (cont.)
• Teste de um cliente linux se as regras estão funcionando
• Utilize o site (https://www.grc.com/x/ne.dll?rh1dkyd2) para
verificar o que seu firewall está protegendo...
1 – Firewall e Proxy
EXERCÍCIOS
• Exercícios (2)
• Você deve detectar possíveis rootkits em seu servidor.
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.
1 – Firewall e Proxy
Proxy
PROXY
1 – Firewall e Proxy
Introdução
• Proxy
• O Proxy é um servidor que atende a requisições
repassando 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, ou
outro recurso disponível em outro servidor.
1 – Firewall e Proxy
Introdução
• Proxy
• Serviços providos por um proxy:
• Cache
• Proxy transparente
• Proxy aberto
• Proxy Anônimo
1 – Firewall e Proxy
Squid
• Filtragem de pacotes via ACL – Access Control
• ACL => Lista de Controle de Acesso
• Solução de Proxy para Linux => Squid
1 – Firewall e Proxy
Squid
• 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
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• Arquivo /etc/squid/squid.conf contendo as seguintes
linhas:
http_port 3128
visible_hostname servidor
acl all src 0.0.0.0/0.0.0.0
http_access allow all
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes
via ACL – Access Control
• Implementando
um servidor proxy
com o Squid
• Ex.: permissões
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• Bloqueando por dominios ou palavras
• Bloqueando por dominios ou palavras (com ou sem
www)
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• E se a regra ficar muito grande ?
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• É possível nestes casos criar um arquivo externo,
inserir os dominios, linha-a-linha e posteriormente fazer
uma ‘chamada’ a este arquivo
• Ex.:
• Problema:
• Cada novo endereço descoberto deve ser inserido
na lista
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• Solução:
• O Sarg pode ajudar bastante
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• É possível também inverter a regra, de forma que eu possa
bloquear tudo e ir liberando acesso a determinados sites
• Ex.:
• Nos proxys mais atuais tem-se o bloqueio de dominios
associado aos respectivos Ips, evitando assim que o usuario
digite diretamente o IP de um site...
1 – Firewall e Proxy
Introdução
• 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)
1 – Firewall e Proxy
Introdução
• Filtragem de pacotes via ACL – Access Control
• Bloqueando por palavras (incluidas na URL de acesso)
• Criar um arquivo texto com as palavras a serem
bloqueadas
• orkut, xxx, sexo, teens...
• Adicionar a regra contendo a localização do arquivo
1 – Firewall e Proxy
Introdução
• 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 cada
mensagem de forma personalizada...
1 – Firewall e Proxy
EXERCÍCIOS
• Instalar o squid
• Efetuar os seguintes bloqueios:
• 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...)
1 – Firewall e Proxy
EXERCÍCIOS (2)
• Ainda no squid...
• Configure uma cache de paginas e arquivos
• 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 ou
questionamentos
???
[email protected]
Download

1 – Firewall e Proxy