O que todo administrador de sistemas deve saber antes de administrar um servidor público?

10

Semelhante a esta pergunta no Stack Overflow, o que um administrador de sistema que está acostumado a situações particulares do tipo intranet deve saber antes de ser o administrador de um site público?

Podem ser coisas relacionadas à segurança, como "não deixe em telnetaberto" ou coisas práticas como fazer o balanceamento de carga para um site de alto tráfego.

Zifre
fonte

Respostas:

12
  • Todo aplicativo, todo binário, todo pacote que existe no servidor é um passivo. Inscreva-se no princípio 'mínimo bit'; se não estiver instalado, não poderá ser comprometido.

  • Implemente a detecção de intrusões, como Tripwire ou similar, e faça a varredura com frequência.

  • Invista em um firewall de hardware e abra apenas as portas necessárias para o seu aplicativo. Não permita que suas portas de administração (ssh, rdp etc.) sejam publicamente visíveis; restrinja-os a endereços IP de gerenciamento aprovados.

  • Faça backups das configurações de firewall / switch / roteador no momento da entrada em produção. Se um desses dispositivos estiver comprometido, é significativamente mais rápido recuperar-se limpando o cérebro do dispositivo e recarregando a configuração do que executar uma auditoria linha por linha da configuração quando o tempo está passando.

  • n mapeie seu ambiente de fora frequentemente para garantir que nenhuma porta nova seja aberta.

  • Nunca confie na internet; verifique se o que você está servindo até a rede é o mais seguro possível (execute validação e higienização de entrada no servidor para interromper ataques de injeção de SQL, por exemplo).

  • Mantenha o controle de seus patches.

  • Se você estiver comprometido, reconstrua a partir do zero com a mídia recém-baixada. Você não pode mais confiar que seus backups estão seguros e também não ficou comprometido (embora o tripwire possa ajudar com isso) por algo que não seja dados inertes e não executáveis.

Greg Work
fonte
1
+1 para fazer backup da configuração e limpeza. Além disso, quando possível, tente obter os dados armazenados "em outro lugar", de maneira a permitir que a limpeza ocorra e ainda não comprometa a integridade do servidor.
Avery Payne
4

Uma ferramenta que achei útil para o fortalecimento da rede é o nessus

Basicamente, você o configura em um servidor externo e tenta atacar sua rede com uma grande quantidade de explorações conhecidas. Você pode configurá-lo para o modo de segurança (onde nenhum dos ataques deve travar o servidor), ou se você tiver certeza de que está com todos os patches corrigidos, ou pode se dar ao luxo de reiniciar seus servidores, se necessário, para o modo não seguro .

Em seguida, ele fornecerá um relatório graduado muito completo para cada máquina que puder ver de quais vulnerabilidades / fraquezas encontra e classificá-las quanto à gravidade - e até recomendar ações a serem tomadas para solucionar os problemas.

Brent
fonte
3

Eles devem saber como o sistema de backup e recuperação de desastres está funcionando e como o sistema será recuperado quando / se for comprometido.

Zoredache
fonte
1
Pode parecer bobagem, mas, na verdade, executar uma restauração do sistema a partir de backups uma ou duas vezes por ano é inestimável para apontar pontos fracos no seu procedimento (ou em um sistema totalmente quebrado) que, de outra forma, seriam detectados até uma situação de emergência, quando todos os olhos estão atentos você
Brent
3

Isso é um pouco contraditório, mas em termos de segurança, não diferencio entre um servidor interno e um servidor externo. Cedo ou tarde, alguém cometerá um erro em um firewall, o gerenciamento insistirá em que um servidor seja exposto por causa de um cliente importante, Betty na contabilidade de alguma forma obterá um cliente VPN na máquina doméstica infectada, etc.

Dito isto, as camadas são suas amigas e você deve colocar na lista negra por padrão.

Camadas - você deve ter várias camadas de segurança. Por exemplo, um firewall de hardware e um firewall de software. Teoricamente, eles servem ao mesmo objetivo, mas ter várias camadas protege contra erros e atenua as conseqüências de uma única camada ser explorada.

Outro aspecto das camadas é o "caseiro", que é essencialmente várias DMZs. Em algum momento, você precisa ter algum nível de confiança entre suas máquinas e as pessoas que acessam suas contas. Se você pode restringir esses pontos de interação, pode controlar rigidamente o tipo de tráfego em que confia a qualquer momento. Por exemplo, se você separar os servidores de interface / aplicativo dos servidores de banco de dados, reduz o nível de confiança. Se seus servidores de aplicativos ficarem comprometidos, esses invasores ganharão uma posição mínima em sua infraestrutura (ou seja, para continuar o ataque e tentar explorar seus outros servidores, eles só terão esses pontos de confiança estabelecidos).

Em relação à lista negra, por padrão, você deve basicamente encerrar tudo e exigir justificativa (mesmo que seja apenas por você) para cada porta que abrir, nome de usuário que permita acesso, aplicativo que instalar etc.

jj33
fonte
Já ouvi falar (e usei) de camadas de defesa como uma estratégia, mas nunca uma ótima idéia. +1
Avery Payne
3

Em sistemas com QUALQUER interface pública, garanta que seus usuários tenham senhas seguras implementando uma política de senha segura e testando o arquivo de senhas com um utilitário de quebra de senha como john the ripper

Você pode se proteger ainda mais contra ataques de adivinhação de senha de força bruta, bloqueando endereços IP após várias tentativas fracassadas. Uma boa ferramenta para isso (no linux) é fail2ban

Brent
fonte
1

Seu switch pode ser invadido e alguém pode mexer nos dados. Se você não possui o switch, configure uma VPN, pois a restrição de acesso por firewall por IP pode não ser suficiente.

Não deixe nenhuma porta aberta, exceto aquelas que você deseja que usuários e hackers acessem. Digitalize seus próprios servidores de outro site todos os meses.

Não deixe a porta padrão do ssh aberta para hackers.

Paweł Polewicz
fonte