Prof. Diogo Oliveira
Transcrição
Prof. Diogo Oliveira
Faculdade Senac Relatório Projeto integrador SI 5 Introdução O objetivo do projeto era o de implementar alguns serviços e dividi-los em dois servidores. Os serviços são HTTP, Banco de Dados, DNS, FTP e Correio Eletrônico. Assim foi feito, em um primeiro servidor temos o serviço HTTP e banco de dados funcionando, e em um segundo servidor temos o serviço de e-mail postfix configurado e funcionando junto ao servidor de FTP. Para atender à solicitação de duas disciplinas, Segurança de redes e transmissão de dados e tópicos avançados de SI, além de subir os serviços em perfeito funcionamento, era necessário implementar algum tipo de hardening em cada um doas serviços, qualquer configuração feita nos serviços que possam garantir, ou pelo menos reduzir o risco de ter a disponibilidade do nosso serviço, a autenticidade dos nossos usuários e dados e a integridade das informações que trafegam pelos nossos servidores, ou são armazenadas nele, portanto este documento se aplica as duas disciplinas(Segurança de redes e transmissão de dados e tópicos avançados de SI). A seguir neste documento, uma explicação e descrição de todos métodos escolhidos para implementar hardening em cada um dos serviços citados acima. Serviço de Ftp O Serviço escolhido para implementar o servidor FTP foi o proftpd, um serviço de FTP que foi projetado do zero, afim de prover maior segurança e desempenho. Como a maioria dos pacotes que fornecem o serviço de FTP, o proFTPD tem um arquivo de configuração que não se diferencia muito dos outros, porém eu particularmente achei a experiência de configuração, usabilidade e implementação de um nível de segurança melhor do que outros pacotes testados. Configuração Seu arquivo de configuração proftpd.conf encontra-se no diretório /etc/proftpd/, é válido informar que a distribuição utilizada no nosso servidor foi o ubuntu 12.04. Algumas configurações bastante relevantes para prover os princípios básicos de segurança de arquivos foram feitas no serviço, visando prover um serviço seguro. Os usuários que tem permissão para utilizarem nosso serviço de ftp possuem acesso somente ao seu diretório /home, evitando assim que o usuário tenha acesso às demais pastas que nas mãos de um usuário mal intencionado pode significar um ataque eminente aos nossos serviços. O simples fato de autenticação já garante aos nossos usuários do serviço FTP a confidencialidade de suas pastas e arquivos guardados no sistema de FTP, ou seja, somente o usuário que criou a pasta ou colocou os arquivos lá terá acesso aos mesmos. Uma opção no arquivo de configuração habilita a função chamada chroot, onde quando o usuário acessa o ftp, ele verá sua pasta /home, como o diretório raiz do sistema. Essa configuração também nos garante a integridade do nosso servidor e serviços, e a disponibilidade deles, pois não será possível a um usuário (a não ser que seja um root) visualizar as pastas e arquivos que estiverem abaixo de sua pasta home. Foram criados dois tipos de usuários. O primeiro tipo de usuário, possui acesso somente ao ftp, ou seja, esse primeiro grupo não possui acesso ao shell do servidor, não podem fazer um login ssh por exemplo. Assim evitamos que usuários que não necessitam acessar o servidor for o serviço de ftp, tenha brecha para desenvolver ou explorar alguma vulnerabilidade. Para os usuários que precisam de acesso ao shell, existe o segundo tipo de usuários, os que além de permissão para acessar o ftp, possuem permissão também para logarem no shell do servidor. Esse tipo de segregação é importante para evitar acessos indevidos ao servidor, e quanto mais limitarmos o acesso ao servidor ao necessário, melhor para garantir a integridade de nossos serviços, e a disponibilidade dos mesmos. Para implementar isso, além das configurações realizadas no arquivo de configuração do serviço, foram utilizados parâmetros no momento da criação do usuário, onde apontamos o seu shell para um local inválido. No arquivo de configuração, apenas autorizamos ao ftp reconhecer e aceitar usuários que não possuam um shell válido. Dentro do serviço FTP essas são as configurações mais vitais no que diz respeito a garantir o tripé básico da Segurança da Informação. Serviço de e-mail Para prover o serviço de e-mail foi escolhido o postifix, um software livre desenvolvido para prestar serviço de correio eletrônico. O software foi escolhido por ser amplamente utilizado, e porque foi o software estudado durante o quinto período do nosso curso. Configuração Não existe muitas configurações a se fazer no serviço no serviço propriamente dito. Para implementação de hardening no serviço de correio eletrônico, foram utilizados softwares a parte para garantir um nível de segurança no servidor de e-mail. Para isso assiciamos o serviço de e-mail ao antivírus clamav e ao analisador de conteúdo de e-mail Amavis. Quando o serviço de correio eletrônico recebe uma mensagem, antes de disponiza-la ao usuário destinatário, ele entrega ao Amavis para que o conteúdo da mensagem seja analisado. Caso alguma detecção de ameaça seja constatada, o Amavis envia a mensagem para o antivírus Clamav, este sim, o antivírus, tratará devidamente a mensagem conforme a sua configuração, lixeira, quarentena etc. Além desses dois softwares, foi utilizado também o Spamassassim, um software de detecção de spams. O objetivo dessa integração de softwares, e justamente prover uma camada extra de segurança a uma das brechas mais famosas de softwares maliciosos os e-mails. Abaixo é exemplificado todo o processo realizado para implementar o serviço de e-mail com hardening: Após instalar o postfix, e configura-lo, realizar os passos a seguir, que incluem download, instalação e configuração dos softwares que farão todo o trabalho de detecção e tratamento das mensagens. Instalando os pacotes apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop Configurar amavisd-new vim /etc/amavis/conf.d/15-content_filter_mode @bypass_virus_checks_maps = ( \%bypass_virus_checks, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \$bypass_spam_checks_re); \@bypass_virus_checks_acl, \@bypass_spam_checks_acl, Adicione o usuário clamav ao grupo amavis Gpasswd -a clamav amavis No arquivo /etc/amavis/conf.d/05-node_id Colocar o domínio do dns na variável myhostname Reinicie os serviços amavis e clamav-daemon /etc/init.d/amavis restart /etc/init.d/clamav-daemon restart Configure o arquivo /etc/clamav/freshclam.conf, configurando a linha como indicado abaixo NotifyClamd /etc/clamav/clamd.conf Reinicie o freshclam /etc/init.d/clamav-freshclam restart Configure o postfix para repassar mensagens que chegam ao amavisd-new postconf -e 'content_filter = amavis:[127.0.0.1]:10024' postconf -e 'receive_override_options = no_address_mappings' A seguir linhas a serem inseridas no arquivo /etc/postfix/master.cf Vim /etc/postfix/master.cf amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks #-o smtpd_bind_address=127.0.0.1 Reinicie o postfix /etc/init.d/postfix restart Verifique se o processo master está escutando as portas 25 e 10025, e se o processo amavisd-new está escutando na porta 10024 netstat -tap tcp 0 0 localhost.localdo:10024 *:* LISTEN 6886/amavisd (maste tcp 0 0 localhost.localdo:10025 *:* LISTEN 7268/master tcp6 0 0 *:smtp *:* LISTEN 7268/master Razor e Pyzor são ferramentas para melhorar o desempenho do spamassassin apt-get install razor pyzor Configure o spamassassin para utilizar essas ferramentas vim /etc/spamassassin/local.cf use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 use_razor2 1 razor_config /etc/razor/razor-agent.conf use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 Reinicie amavisd-new /etc/init.d/amavis restart Verifique os módulos carregados tail -f /var/log/mail.log telnet localhost 25 mail from: lucas rcpt to: data conteudo . Quit Para testar antivirus envie e-mail com a seguinte string no corpo da mensagem X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* Para testar antispam envie e-mail com a seguinte string no corpo da mensagem XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X Colocar swap no hd dd if=/dev/zero of=/root/swap bs=1024 count=1000000 du -sh /root/swap mkswap /root/swap swapon /root/swap Serviço de DNS O DNS ( Domain Name System - Sistema de Nomes de Domínios ) é um sistema de gerenciamento de nomes hierárquico e distribuído visando resolver nomes de domínios em endereços de rede (IP). O sistema de distribuição de nomes de domínio foi introduzido em 1984, e com ele, os nomes de hosts residentes em um banco de dados pode ser distribuído entre servidores múltiplos, diminuindo assim a carga em qualquer servidor que provê administração no sistema de nomeação de domínios. Ele baseia-se em nomes hierárquicos e permite a inscrição de vários dados digitados além do nome do host e seu IP. Em virtude do banco de dados de DNS ser distribuído, seu tamanho é ilimitado e o desempenho não degrada tanto quando se adiciona mais servidores nele. Este tipo de servidor usa como porta padrão a 53. Configuração Pensando na disponibilidade do servidor e resolução de nome, utilizamos o redirecionamento de DNS em servidores da web, através de sub domínios com a criação de Alias (A) com o endereço de IP do servidor. $TTL 1800 @ IN SOA NS1.DIGITALOCEAN.COM.hostmaster.projeto.samuel.si.( 1401402268 ; last update: 2014-05-29 22:24:28 UTC 3600 refresh 900 ; retry 1209600 expire 1800 ; ttl ) NS NS1.DIGITALOCEAN.COM. NS2.DIGITALOCEAN.COM. NS3.DIGITALOCEAN.COM. @ IN A 192.241.158.14 ; ; IN NS NS Assim dentro de servidores de apontamento de DNS, conseguimos utilizar dessa configuração para adicionar uma resolução de nome. Essa foi uma opção escolhida vizando garantir a integridade e disponibilidade de nossos serviços. Existem opções de chroot no serviço de DNS. O chroot consiste em um técnica de enjaulamento do serviço, ou seja, colocar o serviço para funcionar em ambiente totalmente limitado a uma estrutura de pastas e arquivos criadas em um ambiente enjaulado, de tal forma que para o serviço esxistam apenas aquele diretório e pastas. Assim sendo um atacante não teria acesso a pasta raiz do servidor que abriga o serviço de DNS, pois na visão do DNS a raiz seria uma pasta qualquer criada para ele funcionar. Serviço WEB O serviço escolhido para implementação do servidor web, foi o Apache 2. O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Desde então os desenvolvedores vêm trabalhando em melhorias de segurança e desempenho do serviço. Além de ter sido o software estudado em sala de aula, essa popularidade do servidor e o constante trabalho em novas versões e melhorias, esse foi o motivo de termos escolhido o apache 2. Para trabalhar o hardening envolvendo o servidor web, foi implementado uma autenticação utilizando HTTP, onde o usuário, ao tentar acessar a aplicação web terá que se autenticar no servidor http, antes mesmo de ter que se autenticar na aplicação. Esse controle de acesso visa garantir a integridade das informações gravadas na aplicação web, pois assim somente os usuários autorizados terão acesso às suas informações. Além disso Evitamos assim que usuários não autorizados tenham acesso aos formulários da aplicação web e consequentemente, mesmo que limitado, um acesso ao banco de dados, impedindo, ou dificultando um ataque de sql injection e garantindo a integridade dos dados guardados em nossos bancos de dados. Conclusão Ao fim desse relatório, e do projeto como um todo, ficou claro diversas formas de implementar camadas extras de segurança aos serviços e servidores, e principalmente a necessidade de se colocar em prática essas técnicas, sempre a fim de garantir os princípios básicos da Segurança da informação, a integridade dos dados que os usuários confiam aos nossos serviços, ou integridade dos próprios serviços e servidores, a disponibilidade de todos os serviços de acordo com a necessidade e plano de negócio de um possível cliente e a autenticidade das informações e de quem possui acessa a elas. É possível minimizar os riscos relacionados a segurança de redes servidores e serviços com configurações as vezes não muito complexas.
Documentos relacionados
FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da
-o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes
Leia maisVinícius Graciano Elias Servidor de E-mail - Postfix/Amavisd
acesso remoto. Caso contrário o usuário deverá transferir suas mensagens para sua máquina a fim de lê-las utilizando o seu cliente de e-mail (MUA). A transferência de mensagens recebidas entre o se...
Leia mais