Estou instalando um servidor Debian conectado diretamente à Internet. Obviamente, quero torná-lo o mais seguro possível. Gostaria que vocês adicionassem suas idéias para protegê-lo e quais programas você usa para isso.
Quero que parte desta pergunta cubra o que você usa como firewall? Apenas o iptables é configurado manualmente ou você usa algum tipo de software para ajudá-lo? Qual o melhor caminho? Bloquear tudo e permitir apenas o que é necessário? Existem talvez bons tutoriais para iniciantes neste tópico?
Você muda sua porta SSH? Você usa software como o Fail2Ban para evitar ataques de força bruta?
Respostas:
Obrigatório:
Dependendo do nível de paranóia adicionalmente:
integrit
para verificar se algumas partes do sistema de arquivos não foram modificadas [com a soma de verificação mantida fora da máquina], por exemplo, Tripwire/etc/passwd
adicionar novos usuários é um pouco mais difícil-m state --satete ESTABLISHED
cuida de permitir o fluxo de pacotes desde que você use uma única sessão SSH]Coisas que eu não faço, mas faz sentido:
fonte
Apenas uma observação sobre o firewall da sua máquina ...
amap
, enmap
's-A
opção. Dito isso, você pode (e provavelmente deveria, se estiver preocupado) modificar seus serviços para se esconder de olhares indiscretos, por exemplo, o seguinte informa ao invasor a versão exata doOpenSSH
que você está executando, e então pode procurar explorações para essa versão exata. Se você esconder essas coisas, estará dificultando para elas.Resumindo, você nunca conseguirá fazer algo 100% seguro - o que não é possível -, portanto, o objetivo é torná-lo o mais seguro possível - se houver muito esforço para interromper o sistema, é bom o suficiente e mais lamer o script-kiddies passará para o próximo sistema.
iptables
é o caminho a seguir para qualquer sistema Linux - mas configure-o você mesmo.Nunca use nenhum "software de segurança" que não seja baseado em padrões abertos - eles estão fadados a serem mal escritos e serão invadidos (não é uma questão de "se", mas "quando"). O código-fonte aberto e os protocolos abertos são abertos ao escrutínio público e convergem para se tornar um produto maduro e confiável; O software de código fechado confia principalmente na autoconfiança dos autores de quão grande / seguro é um produto que eles pensam que é - isto é, um pequeno número de olhos versus um mundo cheio de olhos.
Espero que ajude :)
fonte
use denyhosts (ou similar)
escreva seu próprio script iptbles (assim você controla exatamente o que permitir e pode eliminar todo o resto)
forçar o uso de comunicações seguras SSL / TLS e garantir certificados válidos, não expirados e assinados
fonte
Começa aqui:
http://www.debian.org/doc/manuals/securing-debian-howto/
fonte
Como ponto de partida geral, sigo as referências / guias do Center for Internet Security , que são compilações abrangentes das melhores práticas de segurança. Não parece que o benchmark Debian tenha sido atualizado há algum tempo, mas uma visão geral das etapas é:
Existem muitos recursos em todas essas várias configurações, incluindo os comandos e arquivos de configuração específicos a serem implementados no sistema nos benchmarks do CISecurity.
fonte
Eu sugeriria não conectar uma máquina diretamente à Internet. Coloque algum tipo de firewall entre a máquina e a Internet. Isso permite que você faça monitoramento de segurança e rede sem sobrecarregar o servidor. Pessoalmente, acho que a segmentação de rede e função frequentemente simplifica a solução de problemas da rede, embora, ocasionalmente, a complexidade adicional torne a análise mais difícil.
A política de firewall mais segura, mas mais irritante de gerenciar, é negar tudo e permitir explicitamente apenas o tráfego que você deve permitir. Isso é irritante, porque é necessário atualizar com freqüência a política de firewall, pois a rede precisa mudar.
Eu também sugeriria o uso de algum tipo de firewall de interface no servidor - a defesa em profundidade é a chave. O uso de portas não padrão para serviços relacionados à administração não prejudica. fail2ban está bem. Responda às perguntas mais específicas sobre aplicativos de segurança no Serverfault para encontrar mais idéias.
A segurança é como a piada sobre os dois caminhantes e o urso - embora nunca se possa alcançar uma segurança perfeita, é útil ser um alvo mais difícil do que os outros caras.
fonte
Algumas pessoas apontaram para o Manual de Segurança do Debian . Isso deve ser perfeitamente adequado para tudo, exceto requisitos militares.
Muitas pessoas pensam que ser ridiculamente paranóico é legal ou profissional ou algo assim. É não , é apenas irritante para outros administradores e outright repressivo para seus usuários. A maioria das coisas que você verá recomendadas são apenas trabalhos falsos para se sentirem úteis para o administrador paranóico, mas não realmente úteis, pois a violação de segurança real provavelmente será causada por um sistema não suficientemente atualizado e / ou por uma fonte interna.
Dito isto, considero um dos meus princípios não confiar em nada na rede local, mais do que em qualquer coisa da Internet. Portanto, eu configuro tudo para exigir autenticação, mesmo na rede local. Criptografo e autentico todo o tráfego entre todos os computadores usando IPsec.
Estou no processo de conversão para criptografia de disco completo para todos os meus servidores.
Eu instalo apenas os serviços que eu uso. Eu não tenho um firewall; Eu configuro os serviços necessários para exigir autenticação ou limitá-los (pela própria configuração do programa ou pelos TCP-wrappers) a determinados IPs. A única coisa que eu preciso bloquear usando o iptables foi
memcached
, pois ele não tinha arquivo de configuração e não utilizava TCP-wrappers.Uso boas senhas geradas aleatoriamente para minhas contas e confio no meu servidor SSH (e em todos os outros serviços) para manter aqueles que não sabem a senha.
fail2ban
é apenas para aqueles com espaço limitado para arquivos de log, IMO. (Você deve ter senhas boas o suficiente para poder confiar nelas.)fonte
Veja este bom manual em www.debian.org/doc/manuals/securing-debian-howto/
Pessoalmente, mudo a porta ssh e uso fail2ban + denyhosts. E bloqueio tudo o que não é necessário. Quanto mais você bloqueia, menos se preocupa.
fonte