Dicas para assumir o controle de um servidor de produção (UNIX)

10

Após meses de negligência, chamas por email e batalhas de gerenciamento, nosso administrador de sistema atual foi acionado e entregue "as credenciais do servidor" para mim. Essas credenciais consistem em uma senha root e nada mais: sem procedimentos, sem documentação, sem dicas, nada.

Minha pergunta é: supondo que ele tenha deixado as armadilhas para trás, como eu normalmente tomo conta dos servidores com o menor tempo de inatividade possível?

Aqui estão os detalhes:

  • um servidor de produção localizado em um farm de servidores no porão; ubuntu server 9.x provavelmente, com patches grsec (boatos que ouvi da última vez que pedi ao administrador)
  • um servidor interno que contém toda a documentação interna, repositório de arquivos, wikis, etc. Novamente, servidor ubuntu, com alguns anos de idade.

Suponha que os dois servidores estejam corrigidos e atualizados, portanto, prefiro não tentar invadir meu caminho, a menos que haja uma boa razão (isto é, que possa ser explicada à gerência superior).

O servidor de produção possui alguns sites hospedados (padrão apache-php-mysql), um servidor LDAP, um conjunto / servidor de e-mail ZIMBRA e, tanto quanto eu posso dizer, algumas estações de trabalho de vmware em execução. Não faço ideia do que está acontecendo lá. Provavelmente um é o mestre LDAP, mas esse é um palpite.

O servidor interno possui um wiki / cms interno, um escravo LDAP que replica as credenciais do servidor de produção, mais algumas estações de trabalho vmware e backups em execução.

Eu poderia simplesmente ir ao administrador do farm de servidores, apontar para o servidor, dizer a eles ' sudodesligue o servidor, por favor', fazer login no modo de usuário único e seguir o meu caminho. O mesmo para o servidor interno. Ainda assim, isso significaria tempo de inatividade, transtorno da gerência, o velho administrador de sistemas me revirando dizendo 'vê? você não pode fazer o meu trabalho 'e outros incômodos, e o mais importante é que eu teria que perder potencialmente algumas semanas de tempo não remunerado.

No outro extremo do espectro, eu poderia fazer login como root e inch através do servidor para tentar entender o que está acontecendo. Com todos os riscos de provocar surpresas deixados para trás.

Estou procurando uma solução no meio: tente manter tudo funcionando como está, enquanto entenda o que está acontecendo e como, e o mais importante, evitando acionar qualquer armadilha deixada para trás .

Quais são as suas sugestões?

Até agora, pensei em 'praticar' com o servidor interno, desconectar a rede, reiniciar com um CD ao vivo, despejar o sistema de arquivos raiz em uma unidade USB e carregá-lo em uma máquina virtual isolada e desconectada para entender a maneira antiga do sysadmin de pensando (a-la 'conheça seu inimigo'). Poderia fazer o mesmo feito com o servidor de produção, mas um despejo completo faria alguém perceber. Talvez eu possa simplesmente fazer login como root, verificar o crontab, verificar o .profile quanto a quaisquer comandos iniciados, despejar o lastlog e o que vier à mente.

E é por isso que estou aqui. Qualquer dica, por menor que seja, seria muito apreciada.

O tempo também é um problema: pode haver gatilhos acontecendo em algumas horas ou em algumas semanas. Parece um daqueles filmes ruins de Hollywood, não é?

Lorenzog
fonte
5
Por que o administrador do sistema foi demitido? Parece uma situação sem vitória. Se você não tiver certeza do que fazer e do que está exatamente nos servidores, isso não terminará bem.
Cstamas
@cstamas, o sysadmin foi acionado porque, para cada solicitação que fizemos (por exemplo, adicionar usuário à lista de discussão ou criar um alias de e-mail etc.), o tempo gasto foi uma variável aleatória entre t = 1 dia e t = 2 meses ( inclusive). E ele nunca admitiu isso. Além de vários outros comportamentos ruins que não vou detalhar aqui.
Lorenzog
@lorenzog agora faz sentido. Parece que não será uma tarefa fácil. Já existem ótimas respostas. Boa sorte!
Cstamas
1
@ serverhorror: não, eles simplesmente o contrataram antes de eu ingressar nesta empresa, e agora ele acabou não sendo bom o suficiente. Como eu o conhecia de antes, eu tinha a tarefa de "lidar com ele". Cuidado com suas suposições.
Lorenzog
1
@lorenzog: Isso não é sobre você. O ponto é que ele realmente é culpa gestores (quem quer que seja) de que a situação da infra-estrutura em situação irregular poderia mesmo acontecer - como eu disse: sem ofensa apenas observação (concedido uma observação subjetiva)
Martin M.

Respostas:

12

Como já foi dito, isso parece uma situação muito frouxa.

(Começando no final)

  • Implantação completamente nova

Claro que você não pode simplesmente derrubar os servidores e deixar o instalador fazer a mágica.

Processo Geral

  • Obter orçamento para um servidor de backup (backup como no armazenamento dos dados)
  • crie instantâneos dos dados e coloque-os lá antes de fazer qualquer coisa
  • Faça isso assinado pela gerência!
  • Reúna uma lista de requisitos (é necessário o wiki, quem está usando as instâncias do VMWare, ...)
    • Da Administração e
    • Dos usuários
  • Faça isso assinado pela gerência!
  • Encerre os serviços não listados por uma semana (um serviço de cada vez - o iptables pode ser seu amigo se você quiser apenas desligar os serviços externos, mas suspeitar que ele ainda possa ser usado em um aplicativo no mesmo host)
    • Nenhuma reação? -> backup final, remova do servidor
    • Reação? -> Converse com os usuários do serviço
    • Reúna novos requisitos e Geet assinados pela gerência!
  • todos os serviços não listados para baixo por um mês e nenhuma reação? -> rm -rf $service(soa duro, mas o que quero dizer é encerrar o serviço)
  • obter orçamento para um servidor sobressalente
  • migrar um serviço de cada vez para o sobressalente
  • assine isso pela gerência!
  • desligar o servidor migrado (desligar)
  • descubra mais pessoas gritando com você -> sim, você acabou de encontrar as sobras
  • reunir novos requisitos
  • reinicie e migre serviços
  • repita as últimas 4 etapas até que não haja mais pessoas após a sua por um mês
  • reimplantar o servidor (e assiná-lo pela gerência!)
  • enxágüe e repita todo o processo.
    • o servidor reimplementado é seu novo sobressalente

O que você ganhou?

  • Inventário de todos os serviços (para você e gerenciamento)
  • Documentação (afinal você precisa escrever algo para o gerenciamento, por que não fazê-lo corretamente e criar algo para você e para o gerenciamento)

Estive lá feito isso, não é nada divertido :(

Por que você precisa assiná- lo pela gerência ?

  • Tornar os problemas visíveis
  • Certifique-se de não ser demitido
  • Oportunidade de explicar riscos
    • Tudo bem se eles não quiserem que você faça isso, mas, afinal, a decisão é deles, depois de receberem informações suficientes para julgar se o investimento vale a pena.

Ah, e apresente o plano geral a eles antes de começar , com algumas estimativas sobre o que acontecerá no pior e no melhor caso.

Ele vai custar muito tempo, independentemente de reafectação, se você não tem documentação. Não há necessidade de pensar em backdoors, IMHO, se você não tiver documentação, uma migração contínua é a única maneira de alcançar um estado sadio que agregue valor à empresa.

Martin M.
fonte
Essa é uma perspectiva muito boa. Obrigado. Certamente seguirei seus conselhos sobre: ​​fazer com que as coisas sejam encerradas no gerenciamento e fazer uma reimplantação lenta dos servidores. Vai doer, mas soa como o melhor curso razoável de ações.
Lorenzog
Por documentação adequada sugiro o seguinte: serverfault.com/questions/25404/... (ver também o tema geral) funciona muito bem (pelo menos para mim)
Martin M.
4

Você tem motivos para acreditar que o administrador anterior deixou algo ruim para trás ou apenas assiste a muitos filmes?

Não estou pedindo para ser ridículo, estou tentando ter uma idéia de que tipo de ameaça você acha que existe e qual é a probabilidade dela. Se você acha que as chances são realmente muito altas de que algum tipo de problema sério possa realmente existir, sugiro tratá-lo como se fosse uma invasão de rede bem-sucedida .

De qualquer forma, seus chefes não querem a interrupção do tempo de inatividade enquanto você lida com isso - qual é a atitude deles em relação ao tempo de inatividade planejado para arrumar os sistemas versus o tempo de inatividade não planejado se houver uma falha no sistema (seja uma falha real ou uma administrador desonesto) e se a atitude deles for realista versus sua avaliação da probabilidade de você realmente ter um problema aqui.

Tudo o que você faz, considere o seguinte:

Tire uma imagem dos sistemas agora mesmo . Antes de fazer qualquer outra coisa. Na verdade, pegue duas e coloque uma de lado e não a toque novamente até saber o que está acontecendo com o seu sistema; este é o seu registro de como estava o sistema quando você o assumiu.

Restaure o "segundo" conjunto de imagens para algumas máquinas virtuais e use-as para verificar o que está acontecendo. Se você estiver preocupado com o fato de as coisas serem acionadas após uma determinada data, defina a data um ano ou mais na máquina virtual.

Rob Moir
fonte
Tenho motivos para suspeitar que possa haver algo à espreita, pois não nos separamos da melhor maneira possível. O administrador de sistema anterior era um bom amigo, éramos colegas de quarto durante a faculdade e eu "ensinei" muitos dos truques que ele mais tarde usou para se tornar um administrador de sistema, enquanto eu seguia o caminho do desenvolvimento de software e gerenciamento de projetos. Como há sentimentos pessoais envolvidos (ele me acusou de ter conseguido demiti-lo), não posso esperar um comportamento razoável. Tome-o como um relacionamento pai / filho, onde o filho quer provar sua bondade ao pai, até certo ponto.
Lorenzog
4

Primeiro de tudo, se você vai investir tempo extra nisso, aconselho que você seja realmente pago por isso. Parece que você aceitou horas extras não remuneradas como fato, a julgar pelas suas palavras - não deve ser assim, na minha opinião, e especialmente quando você está em perigo devido à culpa de outra pessoa (seja gerenciamento, o administrador de sistema antigo ou provavelmente uma combinação de ambos).

Desative os servidores e inicie no modo de usuário único (init = / bin / sh ou 1 no grub) para verificar os comandos que são executados no login do root. O tempo de inatividade é necessário aqui, deixe claro para a gerência que não há escolha, mas algum tempo de inatividade, se eles querem ter certeza de que conseguirão manter seus dados.

Depois, examine todos os cronjobs, mesmo que pareçam legítimos. Também faça backups completos o mais rápido possível - mesmo que isso signifique tempo de inatividade. Você pode transformar seus backups completos em VMs em execução, se desejar.

Então, se você conseguir colocar em mãos novos servidores ou VMs capazes, eu migraria os serviços para ambientes novos e limpos, um por um. Você pode fazer isso em várias etapas, para minimizar o tempo de inatividade percebido. Você obterá um profundo conhecimento necessário dos serviços, enquanto restaura sua confiança nos sistemas básicos.

Enquanto isso, você pode verificar rootkits usando ferramentas como chkrootkit . Execute o nessus nos servidores para procurar falhas de segurança que o administrador antigo possa usar.

Edit: Acho que não lidei com a parte "graciosa" da sua pergunta o melhor que pude. A primeira etapa (entrar no modo de usuário único para verificar traps de logon) provavelmente pode ser ignorada - o antigo administrador de sistemas, fornecendo a senha root e configurando o logon para fazer um, rm -rf /seria praticamente o mesmo que excluir todos os arquivos, então provavelmente não faz sentido fazer isso. Conforme a parte do backup: tente usar uma rsyncsolução baseada para que você possa fazer a maior parte do backup inicial online e minimizar o tempo de inatividade.

Eduardo Ivanec
fonte
0

Investirei tempo aprendendo quais aplicativos são executados nesses servidores. Depois de saber o que é o que a qualquer momento, você pode instalar um novo servidor. Caso você ache que pode haver algum backdoor, será uma boa ideia Iniciar o modo único ou ter algum firewall entre os servidores e a rede externa.

silviud
fonte
0

Você está ficando paranóico com segurança. Não há necessidade de ficar paranóico. (b'cos você fala sobre armadilhas). Percorra a lista de softwares instalados. Veja o que o serviço está executando (netstat, ps, etc), consulte tarefas cron. Desabilite a conta de usuário administrador anterior do sistema sem excluir a conta (facilmente, apontando o shell para nologin). Veja através dos arquivos de log. Eu acho que com essas etapas e pelo seu conhecimento das necessidades da empresa, das quais você pode adivinhar o uso dos servidores, acho que você deve conseguir mantê-las sem grandes mudanças.

Bagavadhar
fonte
1
Concordo que não se trata de segurança em primeiro lugar (caso contrário, eles não deveriam ter contratado o antigo administrador). Mas é sobre quanto valor se pode adicionar. Eu discordo completamente de todo o resto. Simplesmente não há maneira sã sem algum tipo de inventário para gerenciar as coisas. O usuário chegará e atingirá você depois de algum tempo, porque algo que você nunca ouviu antes parou de funcionar. Afinal, existe bastante infraestrutura por trás de cada serviço visível do usuário. E não há nem mesmo a documentação sobre esses serviços ...
Martin M.