Pegando as peças depois de perder o administrador do Linux [fechado]

8

Então, nosso administrador Linux deixou o nosso projeto e, de repente, eu (o codificador da web com conhecimento básico de linux / servidor) sou responsável pelo nosso servidor dedicado (Ubuntu Server) executando principalmente um site (apache / mysql / php) e correio (Postfix). Nosso administrador não era realmente um administrador profissional do Linux, mas um cara com conhecimentos básicos de Linux que descobriu as coisas à medida que avançava. Portanto, espero configurações descoladas, serviços inseguros etc.

Minhas perguntas são:

  1. Como executo uma "auditoria" do servidor para descobrir seu estado atual, para garantir que as coisas estejam configuradas corretamente, que não haja contas de usuário desnecessárias, que não estamos executando serviços desnecessários etc.

  2. Não tenho certeza sobre como fazer backup de nosso site de produção. Além dos arquivos CMS e do banco de dados reais, existem configurações apache, bancos de dados de correio e muito mais que precisam de backup. Alguma sugestão sobre como automatizar isso?

  3. Quais são as tarefas diárias mais importantes de um administrador linux que eu absolutamente tenho que executar? Enorme pergunta, eu sei.


fonte
O que você quer dizer com configuração "descolada"? Quando minha geração usou a palavra, significava que algo estava bom.
John Gardeniers

Respostas:

11

Uau. Onde começar.

Isto é o que eu faria, mas espero que outros entrem com mais / melhores sugestões.

Primeiro não entre em pânico. Eu estou assumindo que você agora é raiz. Atualmente, você é a ameaça mais perigosa para o servidor, pois tem muito poder e não tem muita idéia do que fazer com ele.

Anote quais serviços o servidor deve estar executando. Você sabe que apache, mysql e postfix são necessários. Eu acho que você pode ter um servidor ftp lá e você pode fazer o ssh, então você precisa executar o sshd. Anote quais serviços estão instalados. A maneira mais rápida de descobrir é provavelmente listando /etc/init.d/*. Você precisa descobrir o que está sendo executado. Não sei qual é o equivalente ao chkconfig do Red Hat, mas falhar em um ps -ef alternativo listará quais processos estão em execução no momento. Descubra também se um firewall está instalado (como o iptables) e como ele está configurado.

Em seguida, obtenha uma lista de todos os cronjobs executados. Você provavelmente não precisa se preocupar muito com o que eles fazem imediatamente, mas deve ter uma idéia geral do que o servidor está fazendo em momentos diferentes.

Mais uma vez eu escreveria tudo isso.

Agora anote quem deve ter acesso ao servidor e quem pode ter acesso root. Obtenha uma lista de usuários que possuem contas em / etc / passwd.

Faça algo semelhante ao acesso ao FTP e outros serviços, se relevantes, como o Subversion ou conexões remotas MySQL.

Agora você sabe um pouco mais sobre o que seu servidor está fazendo e quem pode acessá-lo. Verifique os arquivos de log em / var / log, especialmente em / var / log / messages e gaste algum tempo procurando por erros.

Verifique se há atualizações pendentes usando o apt-get update && apt-get upgrade

Quando solicitado a atualizar, escolha não por enquanto.

Até agora você não deveria ter feito alterações.

Agora você precisa revisar as informações coletadas e decidir o que (se houver) precisa ser corrigido. As prioridades são tentadas de cracking em /var/log/auth.log, encerrando serviços desnecessários e reforçando o firewall.

Faça cópias de todos os arquivos antes de editá-los e teste as alterações com frequência, para que você possa voltar facilmente se algo quebrar.

Backups

Você precisará decidir o que precisa ser copiado. Os candidatos óbvios são bancos de dados, / home / etc / / var / log / / var / spool / cron / / var / www / e quaisquer scripts personalizados chamados pelo crontabs. Em seguida, a maioria das pessoas escreve um shell script para fazer backup localmente e, em seguida, usa algo como rsync para copiar os arquivos para outra unidade USB da máquina.

As tarefas do dia a dia incluem a verificação dos arquivos de log em busca de problemas (confira o logwatch para ajudá-lo), a execução de atualizações de segurança, a verificação de backups e a configuração avançada de monitoramento como MRTG e Nagios para, eventualmente, levar o trabalho pesado de ser um administrador .

Eu não me preocuparia muito. Pode parecer assustador, mas é porque você está pedindo tudo de uma só vez. O servidor provavelmente está bem, fique de olho nos logs e aplique as atualizações à medida que forem lançadas, planeje o que você quer fazer e trabalhe para isso, dê pequenos passos e tente se divertir.

Richard Holloway
fonte
3
Antes de fazer qualquer outra coisa, eu imaginava e / ou P2V esse otário.
Orangutech
+1 para obter um instantâneo atual. Coloque o servidor no SSH ou no rsync, no mínimo.
Gerald Combs
11
Ao pegar quais serviços estão instalados, execute também "dpkg -l> ~ / installed_software". Isto escreverá uma lista dos pacotes que foram instalados via apt-get em um arquivo chamado "installed_software" em seu diretório pessoal. Verifique se há serviços em execução que não foram instalados via apt-get. O administrador antigo pode não ter instalado os servidores via apt-get, e esses serviços deverão ser atualizados por outros meios que não "apt-get upgrade". Alguém poderia pensar que isso seria raro, mas não é.
Dru
Outra sugestão adequada seria colocar os arquivos de configuração sob alguma forma de controle de versão. Então, ao fazer ajustes ou mudar as coisas para se adequar ao seu modo de pensar, você pode acompanhar essas mudanças e ver exatamente onde você errou. Ou talvez você tenha sorte, mas ainda é um bom conselho.
OldTroll
Tudo isso é um ótimo conselho. Além do acima, eu executaria o netstat -tanp e / ou -anp para mostrar detalhes sobre conexões ativas e de escuta e seus processos associados.
Nedm
5

Algumas coisas para você começar:

  1. procure alguém que já tenha feito essa auditoria - ou pelo menos tenha algum conhecimento sobre as armadilhas comuns da manutenção de um servidor. Sério - vale a pena.

  2. Faça o backup da melhor maneira possível e tente reconstruir um servidor sobressalente - pode ser uma instância virtual em algum lugar - até ter certeza de que a) você fez backup de todas as coisas importantes eb) conseguiu reconstruir o servidor sobressalente de seu backup no menor tempo que desejar. Para adicionar karma: troque o servidor de produção atual com o servidor sobressalente. Desde que você não tenha demonstrado que pode reconstruir a partir do backup, aja como se não tivesse nenhum.

  3. Atualize, leia os avisos de segurança, fique de olho nos arquivos de log e automatize tudo isso assim que souber o que procurar.

Olaf
fonte
3
+1 por encontrar alguém que sabe o que está fazendo. Será mais barato a longo prazo.
David Mackintosh
11
+ 1 para o mesmo, mas eu iria ainda mais longe e sugeriria que alguém comprovadamente mais experiente garantisse que todo o sistema estivesse em um estado apropriado. Um sistema ativo não é um lugar para se aprender praticamente do zero.
John Gardeniers
totalmente de acordo, mas como o sistema já está ativo, acho que não há como contornar o aprendizado em um sistema ativo.
Olaf
1

Para controlar com mais facilidade os arquivos de log, considere instalar (ou ativar ... Não sei se o ubuntu tem isso na instalação padrão) LOGWATCH. É muito bom fornecer um resumo enviado por email todos os dias. Geralmente ele pega algumas coisas estranhas que um olhar @ configs pode não descobrir.


fonte
1

Se você valoriza seu servidor e seus dados, obtenha ajuda. Peça a alguém para auditar.

Se você não sabe como é "certo", pode ser difícil identificar onde algo está "errado" (ou, como você diz, "descolado"). Uma vez que alguém o servidor esteja em bom estado conhecido.

Usar algo como o VMWare Converter para criar uma VM de teste do servidor é uma GRANDE idéia, você deve examinar isso.

Em seguida, você pode bisbilhotar na VM de preparo (cópia do servidor) e tentar fazer tudo o que for solicitado a fazer no servidor de preparo da VM primeiro antes do servidor de Produção.

JamesBarnett
fonte
0

Depois de fazer o que Richard Holloway diz; faça uma varredura em rede do sistema para verificar quais serviços estão sendo fornecidos pelo servidor e verifique os dados que você possui até o momento. É possível fazer coisas realmente interessantes com o linux que são difíceis de encontrar apenas olhando para os logs.

Sugiro usar o Zenmap de outro sistema na mesma rede e obter as autorizações necessárias primeiro de seus chefes. O Zenmap é simples de instalar, possui / possui uma GUI e não tenta explorar nada encontrado.

Dru
fonte