Post on 28-Dec-2021
Segurança na Web Segurança na Web Capítulo 6: FirewallCapítulo 6: Firewall
Free Powerpoint TemplatesPage 1
Prof. Roberto Franciscatto4º Semestre - TSI - CAFW
Capítulo 6: FirewallCapítulo 6: Firewall
• Introdução
• Qual a função básica de um firewall?
Free Powerpoint TemplatesPage 2
Capítulo 6: FirewallCapítulo 6: Firewall
• Introdução
• Qual a função básica de um firewall?
• Bloquear acesso a portas que não estão em
Free Powerpoint TemplatesPage 3
• Bloquear acesso a portas que não estão em uso
• ou que não devem receber conexões por parte da internet
Capítulo 6: FirewallCapítulo 6: Firewall
• Quem precisa de um firewall?
• Se você planeja conectar-se a internet, precisa de um firewall...
Free Powerpoint TemplatesPage 4
Capítulo 6: FirewallCapítulo 6: Firewall
• Por que eu preciso de um firewall?
• Para proteger seu computador e sua rede, se for o caso...
Free Powerpoint TemplatesPage 5
• Existem atualmente inúmeras formas de ataque a um computador ou serviço específico
• Motivos para invadir seu computador ou sua rede não faltam...
Capítulo 6: FirewallCapítulo 6: Firewall
• Tenho qualquer coisa que valha a pena proteger?
• Existe sempre algo que seja necessário proteger em algum grau, exemplo:
Free Powerpoint TemplatesPage 6
• Responsabilidade vertical
• Dados perdidos
• Comprometer dados confidenciais
• Queda da rede
Capítulo 6: FirewallCapítulo 6: Firewall
• 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...
Free Powerpoint TemplatesPage 7
tráfego...
• Essencialmente:
• permitindo ou impedindo o tráfego baseado nestas regras
Capítulo 6: FirewallCapítulo 6: Firewall
• Ex.: um firewall em operação...
O tráfego é bloqueado porque ele não atingiu o critério especificado
Tráfego restrito
Tráfego permitido Para a internet
Bloqueado
Free Powerpoint TemplatesPage 8
Apenas o tráfego da internet queatinge um critério especificado tem permissão para passar
Tráfego permitido Para a internet
Tráfego desconhecido
Tráfego especificado permitidoAcesso a recursos especificos
Bloqueado
Permitido
Permitido
Capítulo 6: FirewallCapítulo 6: Firewall
• Visão geral operacional do firewall
• Regras comuns e características dos firewalls:
• Bloquear tráfego de rede recebido baseado na
Free Powerpoint TemplatesPage 9
• Bloquear tráfego de rede recebido baseado na origem ou destino
• Bloquear tráfego de rede enviado baseado na origem ou destino
• Bloquear tráfego de rede baseado no conteúdo
• Tornar disponíveis os recursos internos
Capítulo 6: FirewallCapítulo 6: Firewall
• Visão geral operacional do firewall
• Regras comuns e características dos firewalls (cont.):
Free Powerpoint TemplatesPage 10
• Permitir conexões à rede interna
• Relatar tráfego de rede a atividades do firewall
Capítulo 6: FirewallCapítulo 6: Firewall
• Revisão sobre TCP/IP
• Por que TCP/IP?
• Para formular boas regras de firewall, é necessário ter uma boa noção de:
Free Powerpoint TemplatesPage 11
uma boa noção de:
• endereços, portas e protocolos de rede
Capítulo 6: FirewallCapítulo 6: Firewall
• Revisão sobre TCP/IP
• Todos os dados transmitidos através da internet são agrupados em pacotes TCP
Free Powerpoint TemplatesPage 12
• que podem conter até 1460 bytes de dados
• Além dos dados, cada pacote inclui 40 bytes adicionais contendo:
• endereço IP de origem, endereço IP de destino, porta de origem, porta de destino, códigos de verificação, número do pacote, etc...
Capítulo 6: FirewallCapítulo 6: Firewall
• Revisão sobre TCP/IP
• No total tem-se:
• 20 bytes para os headers do protocolo TCP• 20 bytes para os headers do protocolo IP
Free Powerpoint TemplatesPage 13
• 20 bytes para os headers do protocolo IP
• totalizando assim, 40 bytes de headers por pacote.
• Dessa forma temos 1460 bytes de dados em um pacote de 1500 bytes, por exemplo.
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
Header IP Header TCP Conteúdo
Free Powerpoint TemplatesPage 14
Header IP Header TCP Conteúdo
Dados(até 1460 bytes)
Headers IP e TCP(40 bytes)
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
• Pode-se dizer que o IP (header IP) se encarrega do endereçamento e da entrega dos pacotes
Free Powerpoint TemplatesPage 15
• enquanto o TCP (header TCP) se encarrega da verificação de erros, numeração de portas e outras funções.
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
• Um arquivo de 15 KB, por exemplo, como seria transmitido na rede ?
Free Powerpoint TemplatesPage 16
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
• Um arquivo de 15 KB, por exemplo, como seria transmitido na rede ?
Free Powerpoint TemplatesPage 17
• Seria dividido em 11 pacotes
• Os 10 primeiros contendo 1460 bytes cada um e o último contendo os 760 bytes finais.
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
• É graças aos códigos de verificação e numeração de pacotes que arquivos grandes podem ser transmitidos de forma íntegra.
Free Powerpoint TemplatesPage 18
podem ser transmitidos de forma íntegra.
• Caso sejam corrompidos ou perdidos, basta retransmitir os pacotes extraviados ou danificados, quantas vezes for necessário.
Capítulo 6: FirewallCapítulo 6: Firewall
• Pacote TCP/IP
• Importante:
• O protocolo TCP/IP permite o uso de pacotes
Free Powerpoint TemplatesPage 19
• O protocolo TCP/IP permite o uso de pacotes com até 64 KB
• Porém o tamanho mais usado é de 1500 bytes, padrão para frames Ethernet.
Capítulo 6: FirewallCapítulo 6: Firewall
• Portas TCP
• Existem 65.536 portas TCP, numeradas de 0 a 65.535
Free Powerpoint TemplatesPage 20
• Cada porta porde ser usada por um programa ou serviço diferente, de forma que:
• em teoria poderiamos ter até 65536 serviços diferentes ativos, com um único endereço IP válido.
Capítulo 6: FirewallCapítulo 6: Firewall
• Portas TCP
• As portas TCP mais usadas vão de 0 à 1023, que são reservados a serviços mais conhecidos e utilizados
Free Powerpoint TemplatesPage 21
utilizados
• A porta 0 é reservada, por isso não entra na lista.
Capítulo 6: FirewallCapítulo 6: Firewall
• Portas TCP e UDP
• Além das 65.536 portas TCP, temos o mesmo número de portas UDP.
Free Powerpoint TemplatesPage 22
TCP = confiabilidade e confirmação
UDP = velocidade e simplicidade
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de transmissão TCP
• Mensagem de texto de 300 bytes via TCP
Estação: SYN (solicita a abertura da conexão)Servidor: SYN (confirma o recebim. e avisa que a porta está dispon.)
Free Powerpoint TemplatesPage 23
Servidor: SYN (confirma o recebim. e avisa que a porta está dispon.)Servidor: ACK (inicia conexão)Estação: ACK (confirma)Estação: DATA (é enviado o pacote com a mensagem de texto)Servidor: OK (a confirm., depois de verificar a integrid. do pacote)Estação: FYN (solicita o fechamento da conexão)Servidor: FYN (confirma)Estação: FYN (confirma que recebeu a confirmação)
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de transmissão UDP
• Streaming de vídeo e áudio via web
• situação onde o que vale é a velocidade e não a confiabilidade.
Free Powerpoint TemplatesPage 24
confiabilidade.
• Outra situação comum são os servidores de DNS
• ao acessar um site, a solicitação do endereço IP referente ao domínio do site e a resposta do servidor são enviadas via UDP, para ganhar tempo
Capítulo 6: FirewallCapítulo 6: Firewall
• TCP e UDP
• Ao configurar um firewall é necessário atenção quanto aos protocolos TCP e UDP
• DNS e SAMBA por exemplo, utilizam tanto os
Free Powerpoint TemplatesPage 25
• DNS e SAMBA por exemplo, utilizam tanto os protocolos TCP como UDP.
Capítulo 6: FirewallCapítulo 6: Firewall
• Portas mais usadas para serviços de internet
22 = SSH21 = FTP25 = SMTP53 TCP e 53 UDP = DNS
Free Powerpoint TemplatesPage 26
53 TCP e 53 UDP = DNS80 = HTTP110 = POP3143 = IMAP443 = HTTPS1194 UDP = OpenVPN5901 = VNC
Capítulo 6: FirewallCapítulo 6: Firewall
• TCP, UDP e ICMP
• Além do TCP e UDP temos ICMP (Internet Control Message Protocol) um protocolo de controle.
Free Powerpoint TemplatesPage 27
• Uso do protocolo ICMP:
• ping (echo request) usado para verificar se determinada máquina está online e medir a latência da conexão.
Capítulo 6: FirewallCapítulo 6: Firewall
• TCP, UDP e ICMP
• Outra função importante do ICMP é o controle do TTL (time to live) de cada pacote TCP ou UDP.
Free Powerpoint TemplatesPage 28
• O que acontece com um pacote caso ele não chegue até o destino ?
Capítulo 6: FirewallCapítulo 6: Firewall
• TCP, UDP e ICMP
• O que acontece com um pacote caso ele não chegue até o destino ?
Free Powerpoint TemplatesPage 29
• Existem duas possibilidades.
• A primeira é um roteador próximo perceber que a máquina está fora do ar e destruir o pacote
• A segunda é utilizar a TTL com valores que variam de 64 a 128 hops
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Escrever regras do firewall é como que aprender um novo dialeto...
Free Powerpoint TemplatesPage 30
• Imagine que ao escrever uma nova regra, você está explicando uma ideia, tente ser claro para que seja entendido...
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-A INPUT: especifica que a regra se aplica a pacotes
Free Powerpoint TemplatesPage 31
-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.
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-A FORWARD: este parâmetro é usado para
Free Powerpoint TemplatesPage 32
-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’.
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-p tcp: especifica que a regra se aplica a pacotes TCP
Free Powerpoint TemplatesPage 33
-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 !
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
• Caso seja preciso bloquear os três protocolos para
Free Powerpoint TemplatesPage 34
• 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
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
• É comum bloquear as portas 0 a 1023 UDP,
Free Powerpoint TemplatesPage 35
• É 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
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-p icmp: bloquear o pedido de pings
Free Powerpoint TemplatesPage 36
Ex.:
iptables –A INPUT –p icmp --icmp-type echo-request –j DROP
Capítulo 6: FirewallCapítulo 6: Firewall
• 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.
Free Powerpoint TemplatesPage 37
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
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-dport ou --destination-port: especifica uma porta.
Free Powerpoint TemplatesPage 38
• O uso mais comum para esta opção é para abrir portas de entrada e depois aplicar uma regra que feche as demais.
Capítulo 6: FirewallCapítulo 6: Firewall
• 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
Free Powerpoint TemplatesPage 39
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
Capítulo 6: FirewallCapítulo 6: Firewall
• 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
Free Powerpoint TemplatesPage 40
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
Capítulo 6: FirewallCapítulo 6: Firewall
• 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
Free Powerpoint TemplatesPage 41
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
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-j: é usado no final de cada regra, especificando uma ação, que pode ser:
Free Powerpoint TemplatesPage 42
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’
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
-j DROP: o DROP é mais enfático. O pacote é simplesmente descartado, sem aviso.
Free Powerpoint TemplatesPage 43
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.
Capítulo 6: FirewallCapítulo 6: Firewall
• 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
Free Powerpoint TemplatesPage 44
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
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
(continuação) -j LOG: as mensagens são gravados no arquivo ‘/var/log/messages’.
Free Powerpoint TemplatesPage 45
arquivo ‘/var/log/messages’.
• é possível ver as mensagens com o comando ‘dmesg’
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
Importante: alterar a ordem das regras altera o resultado.
Free Powerpoint TemplatesPage 46
resultado.
Ex.:
iptables –A INPUT –p tcp –j REJECT
iptables –A INPUT –p tcp --dport 22 –j REJECT
• Qual o problema nas regras acima ?
Capítulo 6: FirewallCapítulo 6: Firewall
• Entendendo as regras do firewall (Iptables)
• Parâmetros do Iptables:
Exemplo 2:
Free Powerpoint TemplatesPage 47
iptables –A INPUT –p tcp --dport 22 –j ACCEPT
iptables –A INPUT –p tcp --dport 22 –j LOG
• Qual o problema nas regras acima ?
Capítulo 6: FirewallCapítulo 6: Firewall
• Escrevendo um script de firewall (Iptables)
• Simplesmente acessar a internet como cliente, sem rodar nenhum servidor, nem compartilhar a conexão com outros micros
Free Powerpoint TemplatesPage 48
• Solução para proteção inicial:
#!/bin/sh
iptables –A INPUT –i lo –j ACCEPT
iptables –A INPUT –p tcp --syn –j DROP
Capítulo 6: FirewallCapítulo 6: Firewall
• Escrevendo um script de firewall (Iptables)
• A ideia aqui é que o micro possa acessar a internet sem ficar vulnerável a acessos externos.
• Estes dois comandos fazem isso da forma mais
Free Powerpoint TemplatesPage 49
• Estes dois comandos fazem isso da forma mais simples possível.
iptables –A INPUT –i lo –j ACCEPT
iptables –A INPUT –p tcp --syn –j DROP
Capítulo 6: FirewallCapítulo 6: Firewall
• Escrevendo um script de firewall (Iptables)
• Para desativar o firewall e voltar a aceitar conexões, use o comando ‘iptables – F’, que limpa as regras do Iptables:
Free Powerpoint TemplatesPage 50
Iptables:
# iptables -F
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de script de firewall completo (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:
Free Powerpoint TemplatesPage 51
# 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
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de script de firewall completo (Iptables)
(Continuação)
# Protege contra IP spoofing:echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
Free Powerpoint TemplatesPage 52
# 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
# 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
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de script de firewall completo (Iptables)
• Após incluir todas as regras do firewall, é necessário salvar e dar permissão de execução.
Free Powerpoint TemplatesPage 53
• Ex.:
# cd /etc/init.d/
# chmod +x firewall
Capítulo 6: FirewallCapítulo 6: Firewall
• Exemplo de script de firewall completo (Iptables)
• Comandos importantes
iptables –F: limpa a tabela principal do Iptables
Free Powerpoint TemplatesPage 54
iptables –t nat –F: limpa a tabela nat, que é usada por regras que compartilham a conexão e fazem forwarding de portas
iptables –L: este comando lista a configuração atual sem alterar nada
iptables –t nat –L: este comando lista a configuração de forwarding e compartilhamento
Capítulo 6: FirewallCapítulo 6: Firewall
• 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
Free Powerpoint TemplatesPage 55
• 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
Capítulo 6: FirewallCapítulo 6: Firewall
• 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.
Free Powerpoint TemplatesPage 56
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...
Capítulo 6: FirewallCapítulo 6: Firewall
• Forwarding de Portas
• Exemplo de Forwarding:
# Redireciona uma única porta para um micro da rede local
Free Powerpoint TemplatesPage 57
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
Capítulo 6: FirewallCapítulo 6: Firewall
• Forwarding de Portas
• É possível ainda indicar uma lista de portas (usando a opção –m multiport), como em:
# Redireciona um conjunto de portas
Free Powerpoint TemplatesPage 58
# 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
Capítulo 6: FirewallCapítulo 6: Firewall
• 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)
Free Powerpoint TemplatesPage 59
• 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• 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
Capítulo 6: FirewallCapítulo 6: Firewall
• Exercícios (2)
• Você deve detectar possíveis rootkits em seu servidor. Para isso faça os seguintes passos:
• Instale o software chkrootkit
Free Powerpoint TemplatesPage 60
• 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.