Protegendo um novo servidor Ubuntu [fechado]

Respostas:

25

Não consigo pensar em nenhum ajuste específico do Ubuntu, mas aqui estão alguns que se aplicam a todas as distribuições:

  1. Desinstale todos os pacotes desnecessários
  2. Usar autenticação apenas de chave pública no SSH
  3. Desativar logins raiz via SSH (não se aplica ao Ubuntu)
  4. Use as configurações de produção para PHP (recomendado php.ini)
  5. Configure o MySQL para usar apenas soquetes

É claro que esta lista não está completa e você nunca estará completamente seguro, mas abrange todas as façanhas que já vi na vida real.

Além disso, as explorações que eu vi quase sempre foram relacionadas a código de usuário não seguro, não a configuração não segura. As configurações padrão em distribuições mínimas de servidores tendem a ser bastante seguras.

Can Berk Güder
fonte
1
Altere a porta para serviços como MySQL (inútil se configurá-lo para usar apenas sockets), FTP (embora, se você estiver seguro, não use FTP), SSH e todos os tipos.
21711 Josh Hunt
3
"Desinstale todos os pacotes desnecessários". ESTÁ BEM. Isso é bastante vago. Quais pacotes 'desnecessários'?
Lucas
2
@ Lucas: Tudo o que você não está usando é desnecessário. Serviços de execução mais específicos, dos quais você não precisa colocar máquinas em risco desnecessário.
11119 Andrioid
@ Lucas: cat / etc / services deve lhe dar algumas idéias.
Jesurum
17

Uma coisa rápida que eu faço desde o início é instalar o DenyHosts . Ele examinará regularmente o arquivo / var / log / secure, procurando logons com falha e, após algumas falhas, bloqueie o IP. Defino-o para bloquear após o primeiro não usuário, na segunda tentativa de root e após algumas tentativas para usuários reais (no caso de você errar, mas você deve usar uma chave pública SSH para fazer login).

Alister Bulman
fonte
3
como você link para a página inicial sourceforge - denyhosts também está disponível no repositório (universo) via "sudo aptitude install denyhosts"
Olaf
bom ponto @olaf. A maioria dos servidores em que o instalei era RHEL, onde também está no repositório do DAG.
Alister Bulman
+1 Para denyhosts
wimvds
2
O DenyHosts parece apenas detectar e bloquear ataques de força bruta ssh. Uma escolha melhor seria fail2ban (também está disponível nos repositórios), que monitora uma variedade de coisas, incluindo os logs do apache, entre outras coisas. Confira o wiki da comunidade em help.ubuntu.com/community/Fail2ban
jeshurun
10

O Ubuntu é baseado no Debian e eu achei o Manual de Segurança do Debian muito útil nas distribuições baseadas no Debian, guiando-o completamente pelo seu sistema e verificando todas as partes. É basicamente uma resposta muito, muito abrangente para sua pergunta.

Mike McQuaid
fonte
você tem um link para isto?
Chama
1
Desculpe, pensei que o link estava no post. Está em: debian.org/doc/manuals/securing-debian-howto
Mike McQuaid
5

Normalmente, instalo o RKHunter, que verifica rootkits e faz verificações de integridade de vários binários importantes do sistema. Está no repositório padrão e será executado diariamente a partir do cron. Não é perfeito, em termos de segurança, mas é um item de baixo esforço a ser adicionado e fornece uma certa proteção.

Tim Howland
fonte
4

Instale a verificação de log, mas ajuste-a para nunca receber mensagens de eventos regulares, caso contrário, você terá o hábito de ignorar os e-mails.

Verifique quais processos estão escutando usando o netstat e verifique se não está executando nada que não precise ser executado. Muitos daemons podem ser configurados apenas para escutar no IP interno (ou localhost) em vez de em todas as interfaces.

Mikeage
fonte
3

Faça o que pode sugerir ...

Nmap o host e desabilite todos os serviços não essenciais. Use iptables, se necessário.

Jauder Ho
fonte
2
Em qualquer servidor acessível pela Internet, o iptables é sempre necessário. ;-)
Christopher Cashell
3

Se você estiver perto da Internet com o servidor, instale um sistema de detecção de intrusões como o snort.

Timo Geusch
fonte
3

Use partições separadas para vários diretórios como /tmpou /vare monte-as com nosuid, nodeve noexecse possível.

Cristian Ciupitu
fonte
3

Algumas sugestões de firewall.

Aprenda a usar um firewall e os conceitos de travar corretamente uma caixa. Alterar portas padrão é em grande parte uma coisa inútil; aplicação adequada e configuração de firewall são muito mais importantes.

Ambos estão nos repositórios Ubuntu:

FireHOL

tem documentação fantástica e muito fácil de aprender sintaxe. Consegui configurar um gateway / firewall em vinte minutos. A única razão pela qual me afastei disso é que ele não parece ser mantido (última versão há 2 anos). Não significa que não funciona, mas ...

Ferm

é outro. Sintaxe mais semelhante a iptables, mas mesmo conceito. Mais comunidade mantida que o FireHOL, mas demora mais para ser atendida.

Shorewall

é o que eu uso atualmente. Sua documentação é extensa e seu formato de configuração é tabular. Levei cerca de uma hora e meia para entender todos os arquivos necessários (6) para obter uma configuração de firewall / gateway funcionando. É bem poderoso. DICA: As páginas de manual dos diferentes arquivos de configuração são REALMENTE úteis!

Todos esses carregam configurações de firewall de um arquivo de configuração. Muito eficaz, mais fácil de usar do que o iptables, e (na minha opinião) mais fácil de usar e gerenciar do que o ufw.

De outros:

  • Segundo as recomendações para o uso da chave SSH.

  • Configure um IDS.

  • Aprenda sobre o AppArmor. Ele restringe o acesso a arquivos executáveis ​​apenas a diretórios e arquivos especificados. Semelhante ao SELinux no mundo do RHEL. Está instalado e ativado com 'perfis' pré-configurados para muitos programas bem usados.

Luke não tem nome
fonte
2

Além de outras sugestões, mencionarei três que são óbvias, mas que talvez valham a pena mencionar por serem completas:

  1. Se você acha que não precisa de um firewall, pense novamente. O ufw é simples, mas projetado para o Ubuntu e baseado em iptables
  2. Atualize os pacotes: no mínimo, aplique todos os patches de segurança
  3. Documente o que você fez para proteger o servidor e por quê. Inclua a configuração de processos (automatizados) para monitorar logs, testar a configuração e relatar as atualizações de segurança necessárias.
mas
fonte