Criar uma Loja Virtual Grátis

Rating: 3.5/5 (236 votos)




ONLINE
1





Sites interessantes

Downloads

Artigos

 


Dicas de Boas práticas para Segurança em Linux

Dicas de Boas práticas para Segurança em Linux

Boas práticas de segurança básica em SO Linux

Por Eden Caldas :  www.linuxfacil.org

Aumentando a segurança do Linux

  1. Use senhas fortes, exemplo: no mínimo –> LETRA,LETRA,letra,letra,num,num,simb,simb ( 8 caracteres);
  1. Rode o mínimo de serviços possíveis:
    • Rode apenas os serviços necessários para realizar a tarefa desejada;
    • Para descobrir os serviços em execução digite: netstat –plantu;
    • Finalize os serviços usando /etc/init.d ou kill;
    • Desinstale-os usando seu gerenciador de pacotes da distribuição ou remova caso tenha sido instalado independentemente;
  2. Utilize uma distribuição destinada a grandes implementações (UBUNTU LTS, CENTOS, RED HAT, SUSE ENTERPRISE, DEBIAN, SLACKWARE, GENTOO);
  3. Mantenha essa distribuição sempre atualizada apt-get update && apt-get upgrade;
  4. Dimensione bem seus seguimentos de rede, separando-os fisicamente, usando DMZ e firewalls;
  5. Não faça quebra galhos. Ex ( “ Já que esse servidorzinho web em nossa LAN está funcionando tão bem, vamos torna-lo externo para facilitar o acesso de casa ” );
  6. Não confie cegamente no software, mesmo no linux! (ex: Colocar serviços web, dns, smtp, proxy no firewall confiando no iptables e na configuração de cada serviço);
  7. Não coloque suas aplicações na internet, e sim uma forma segura de acessar as aplicações. (ex: Não abra sua porta de banco de dados para um DBA remoto, forneça uma conexão ssh);
  8. Evite usar VPN que dá acesso em sua rede local. Faça-o somente quando não tiver alternativas e quando realmente for necessário;
  9. Cuidado com ex-funcionários! (desabilite ou delete as contas não utilizadas);
  10. Utilize firewall local;
  11. Faça LOG! (Habilite-o ou mantenha habilitado);
  12. Utilize IDS (Sistema de detecção de intrusosou também conhecido como Sistema de detecção de intrusão  em inglês: Intrusion detection system - IDS); 
  13. Utilize IPS (Intrusion Prevention System ou Sistema de Prevenção de Intrusão); 
  1. Blindando o SSH:
    • Editar o arquivo /etc/ssh/sshd_config
    • Use apenas versão 2 do protocolo ssh: “Protocol 2”

    • Não permita que o usuário root faça login: “PermitRootLogin no”
    • Seja explicito em quais usuários e grupos têm acesso:

“AllowUsers fulano sicrano beltrano”

“AllowGroups admin dba suporte”

16.Usando o Squid:

Instale-o no seguimento de rede que necessita do serviço de proxy;

    • Utilize “http_port ip:porta” no arquivo de configuração squid.conf, ex: http_port 192.168.0.254:3128
    • Utilize autenticação.
    • Faça as regras de acordo com as normas da empresa. Quando possível, evite exceções.
  1. Configure o Iptables ( firewall nativo do Linux):
    • Defina todas as regras padrão como DROP;
    • Evite spoof de endereços, informe sempre as interfaces que o tráfego precisará usar para passar. Ex: iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 3128 -j ACCEPT
    • Ficaria melhor desta forma: iptables -A INPUT -s 192.168.0.0/24 -i eth1 -p tcp –dport 3128 -j ACCEPT
    • Utilize a tarefa LOG do iptables (assim ragistra-se os bloqueios e liberações ocorridos);
  2. Adicionando Segurança no Postfix e Dovecot:
    • MTA – Mail Transfer Agent. Envia mensagens. Implementado pelo SMTP. Neste caso o Postfix.
    • MDA – Mail Delivery Agent. Recebe a mensagem do MTA e entrega no mailbox do usuário. Exemplos, Procmail, maildrop, dovecot lda. (Configuração opcional);
    • MUA – Mail User Agent. Programa cliente de e-mail usado para se conectar em servidores smtp, pop, imap para envio e recebimento de mensagens.
    • Dicas de segurança:
      • Não anuncie a versão do POSTFIX;
      • Preferencialmente não utilize nomes triviais para seus servidores de e-mail. Ex: mail, mx, correio, email.
  • Use autenticação, criptografia, e restrinja redes que podem usar seu servidor.
  • Cheque listas negras para impedir spam de entrar no MUA de seus usuários.
  • Não permita que a rede local tenha acesso à porta 25 TCP na internet. Evite exceções.
  • Cheque o DNS reverso do smtps que fazem conexão com seu servidor.
  • Use greylist (lista cinza)
  • Lembre-se que o servidor passará igualmente por todas esses filtros quando tentar entregar mensagens na internet, então configure-o corretamente.
  1. Lembre-se que o servidor de e-mail e DNS estão interligados.
  2. Configure seu DNS corretamente, fechando o máximo possível.
  3. Seu servidor smtp precisa ter registros MX, A, PTR no DNS.
  1. Cheque a configuração de sua zona na internet utilizando DNS Reports na internet.
  1. DNS com BIND9:
    1. Entenda que DNS local e DNS externo têm propósitos diferentes.
      1. O DNS externo visa responder ao mundo consultas DNS a respeito de sua zona de internet. (ex: linuxfacil.org, especializa.com.br)
      2. O DNS local visa responder à sua rede local consultas a respeito de hosts em sua rede local e possívelmente hosts na internet. (ex: lab3-01, lab3-02, www.uol.com.br, www.google.com)
    2. Por padrão o BIND9 já é um resolvedor de consultar recursivas, ou seja, ele não tem nenhuma zona sua configurada e vai perguntar aos DNS raiz sobre toda consulta que seu computador fizer (ex: quem é www no domínio google.com ?)
    3. É interessante então, que esse servidor fique no mesmo seguimento de rede da LAN. Caso seu proxy tenha recurso disponível, ali seria um bom local para coloca-lo.
    4. Para restringir acesso ao DNS em apenas alguma rede, faça o seguinte: No arquivo /etc/bind/named.conf.options, faça:
      1. allow-query { endereço }; allow-recursion{ endereço };
      2. A primeira linha define os endereços que podem consultar o DNS
  • A segunda define mesma coisa apenas para consultar recursivas
  1. Endereço pode ser um endereço ip de host ou de rede separados por ponto e vírgula. Ex: allow-transfer { 192.168.2.7; 192.168.22.0/24;};
  1. Transferências de zona também são perigosas, assim qualquer host pode fazer download do arquivo de zona e saber a informação de nome/ip de toda a rede do qual o DNS conhece.
  2. Na rede local isso não oferece problemas graves porém na internet isso não é desejável.
  3. Um DNS externo, deve, na maioria dos casos, responder consultas apenas sobre sua zona, não responder consultar recursivas nem oferecer sua lista completa de hosts para qualquer um.
  4. No arquivo /etc/bind/named.conf.options:

allow-recursion { 127.0.0.1; };

allow-recursion { 127.0.0.1; 192.168.0.0/24; };

allow-transfer { none; };

allow-transfer { 172.16.0.33; };

A primeira linha permite consultas recursivas apenas feitas pelo próprio servidor DNS. A segunda permite a rede local também fazer o mesmo. A terceira, desabilita a transferência de zonas. A quarta libera a transferência para um DNS slave no IP informado.

  1. É possível também configurar o DNS para fazer consultas recursivas encaminhando para um outro DNS, evitando assim ter que ir perguntar para um Servidor DNS raiz. No arquivo /etc/bind/named.conf.options:

forwarders { 8.8.8.8; 8.8.4.4; };

forward ( first );

forward (only );

A primeira linha informa os IPs dos servidores DNS que serão consultados. A segunda define que nosso servidor DNS vai encaminhar a consulta primeiro, caso não obtenha resposta, vai tentar ele mesmo resolver com os servidores raiz. A terceira define para apenas fazer o encaminhamento da consulta e pronto, não tentar mais nada.

  1. Aumentando a segurança do Apache2:
    1. Esconder a versão do apache
    2. Habilitar criptografia em certos sites.
    3. Restringir sites a certos IPs
    4. Restringir sites com senhas geradas pelo comando htpasswd
    5. Importante: Instale pelo repositório o apache / php / mysql e tudo mais que vá se integrar ao apache.
    6. Mais importante ainda: A programação dos sites que serão hospedados também deve utilizar boas práticas! Exemplo (ex: De nada adianta a segurança do servidor se o site em php permite SQL Injection, ou se o site programado requer, para funcionar, permissão 777 nos diretórios);
    7. Removendo o anúncio de versão do apache e seus módulos suportados: No arquivo /etc/apache2/conf.d/security, trocar para as seguintes opções:

ServerSignature Off

ServerTokens Prod

  1. Para descobrir a versão de um servidor apache, use telnet na porta 80: telnet servidor 80 HEAD / HTTP/1.0
  2. Proteja com senha alguns diretórios: htpasswd -c /etc/apache2/ .htpasswd fulano
  3. Entre no diretório onde quer proteger com senha e crie o arquivo .htaccess com o conteúdo: AuthUserFile /etc/apache2/.htpasswd AuthType Basic AuthName "Site Protegido por senha" Require valid-user
  4. Caso precise proteger apenas uma página: AuthUserFile /full/path/to/.htpasswd AuthType Basic AuthName &quot;Página Protegida por senha&quot; <Files &quot;mypage.html&quot;> Require valid-user </Files>
  5. Restringindo por endereço de rede:

No arquivo de configuração do site:

Order Deny,Allow Deny from all Allow from 176.16.0.0/16

Ou por IP de host:

Order Deny,Allow Deny from all Allow from 127.0.0.1

  1. Adicionar o suporte a https no debian/ubuntu é mais fácil, pois os arquivos de configuração já estão todos prontos, basta habilitar o módulo e o site padrão: a2enmod ssl a2ensite default-ssl /etc/init.d/apache2 reload
  2. Pronto, agora seus usuarios já podem acessar por exemplo, seu webmail, por uma conexão criptografada. Lembrando que o certificado usado é o padrão do debian / ubuntu, que apresentará aquela mensagem no navegador informando que “o certificado não pôde ser reconhecido”.