Endurecendo um servidor doméstico

5

Estou pensando em criar um servidor web modesto usando algum hardware antigo e Ubuntu 12.04 ou Debian 6. Estou ciente de que, ao expor uma máquina em minha LAN para o mundo externo, fico vulnerável a violações e ataques de segurança. Sendo assim, e como não tenho quase nenhuma experiência em proteger computadores usando Linux, gostaria de pedir algumas recomendações sobre o que devo fazer para proteger esse servidor da Web, especialmente porque há outros computadores em minha LAN doméstica que contêm informações confidenciais ( sobre contas de home-banking e tal). Muito obrigado.

    
por NetStudent 27.05.2012 / 15:41

1 resposta

5

Primeiro, você provavelmente está ciente disso, mas se tiver um IP dinâmico, precisará de um DNS dinâmico como o DynDNS ou o DNSexit .

Na parte de segurança, acho que usar iptables (ou uma GUI de firewall como firestarter se você preferir) abre somente a porta 80 para conexão de entrada é suficiente para um servidor doméstico se você não precisar abrir a porta ssh (porta 22) ou ftp (21) e você não instalará um servidor de e-mail.

Se o seu site tiver uma página de login ou se você precisar abrir ssh, ftp ou smtp, recomendo pelo menos instalar algo como fail2ban para banir IPs que tentam conexões sem sucesso, para que não tentem sempre.

Uma coisa importante a notar é que você deve dar uma olhada nos seus registros, para ficar de olho neles com facilidade. logwatch (deve estar em seus repositórios padrão no Debian e no Ubuntu) para alertá-lo por e-mail diariamente ou semanalmente. Você aprenderá rapidamente a descobrir o que está errado lendo-os com frequência.

Se você precisar se conectar de fora para administrar o servidor, use uma VPN e de qualquer maneira, mantenha o SO sempre atualizado!

Atualização: Para o SSH e o sftp, acho que o fail2ban + apenas as chaves ssh (ou chaves + senha, mas não apenas a senha) é o mínimo que você precisa (e não permite acesso root).

Se as máquinas que você usa para se conectar tiverem IP fixo, abra o firewall apenas para esses IPs de entrada.

Uma VPN criptografada (eu uso openvpn ) ajuda muito a proteger seu acesso também.
Dê uma olhada aqui para o tutorial oficial 'rápido' , em 15-30 minutos você terá um servidor VPN funcional para um cliente - um servidor. Para uma melhor configuração com autenticação de certificado de cliente e uma CA (sua CA gratuita ) você terá que levar mais alguns minutos: D

Se seus sites exigem MySQL ou por qualquer outro motivo você precisa administrar o MySQL (ou outro banco de dados) da Internet, se você não usa uma VPN, use um túnel ssh para se conectar a uma porta local em sua máquina e o túnel criptografa a conexão com o servidor para que você não precise abrir a porta do banco de dados, veja os argumentos -L e -D em man ssh .
Eu não instalaria o phpmyadmin para ouvir em um IP público, pois isso abre seu banco de dados para o mundo. Se você precisar eu posso colocar um script de exemplo para um túnel aqui.

    
por 27.05.2012 / 15:55