Não há nada de especial em corrigir o Ubuntu vs. Windows, RHEL, CentOS, SuSE, debian, etc.
O estado de espírito básico em que você precisa estar ao projetar seu procedimento de correção é assumir que algo irá quebrar.
Algumas das diretrizes básicas que costumo usar ao projetar uma configuração de patch são:
- Sempre use um sistema local para centralizar internamente na sua rede onde os patches estão instalados
Isso pode incluir o uso do WSUS ou espelhos <your_os_here>
em uma máquina interna de gerenciamento de patches. Preferível, que pode consultar centralmente e informar o status dos patches instalados em suas máquinas individuais.
- Pré-prepare as instalações - quando possível - nas máquinas.
Quando possível, quando os patches são lançados, o servidor central os copia para as máquinas individuais. Isso é realmente uma economia de tempo, para que você não precise esperar o download e a instalação, basta iniciar a instalação durante a janela do patch.
- Obtenha uma janela de interrupção para instalar os patches, talvez seja necessário reiniciar e algo provavelmente irá quebrar. Verifique se as partes interessadas para esses sistemas estão cientes de que há patches sendo implantados. Esteja preparado para o "isso" não funciona.
De acordo com minha teoria básica de que os patches quebram as coisas, verifique se você tem uma janela de interrupção para aplicar patches por tempo suficiente para solucionar problemas críticos e, possivelmente, reverter o patch. Você não precisa necessariamente ter pessoas sentadas lá testando após os patches. Pessoalmente, confio muito nos meus sistemas de monitoramento para me informar que tudo está funcionando no nível mínimo possível. Mas também esteja preparado para pequenos problemas incômodos a serem chamados quando as pessoas começarem a trabalhar. Você deve sempre ter alguém programado para estar lá pronto para atender o telefone - preferencialmente não o cara que estava acordado até as três da manhã remendando as caixas.
- automatizar o máximo possível
Como tudo o mais em TI, script, script e depois script um pouco mais. Faça o script do download do pacote, o início da instalação, o espelho. Basicamente, você deseja transformar janelas de correção em uma tarefa de babá que só precisa de um humano lá, caso as coisas quebrem.
- Tenha várias janelas por mês
Isso permite que você não conserte alguns servidores se, por qualquer motivo, não puderem ser consertados na "noite marcada". Se você não puder executá-los na noite 1, exija que eles sejam gratuitos na noite 2. Também permite manter o número de servidores corrigidos ao mesmo tempo.
O mais importante é acompanhar os patches! Caso contrário, você terá que fazer janelas de correção de mais de 10 horas apenas para voltar ao ponto em que é pego. Introduzindo ainda mais pontos em que as coisas podem dar errado e tornando mais difícil encontrar qual patch causou e causou problemas.
A outra parte desse problema é que acompanhar os patches é uma coisa boa, mas os patches são lançados quase diariamente. Quantas interrupções programadas são necessárias se houver um novo patch de segurança disponível todos os dias?
A correção de um servidor uma vez por mês ou a cada dois meses é - IMHO - uma meta muito viável e aceitável. Mais do que isso, e bem, você estará constantemente aplicando patches nos servidores, muito menos e começa a entrar em situações nas quais possui centenas de patches que precisam ser aplicados por servidor.
Até quantas janelas você precisa por mês? Isso depende do seu ambiente. Quantos servidores você tem? Qual é o tempo necessário para os seus servidores?
Ambientes menores 9x5 provavelmente podem sair com uma janela de correção por mês. Grandes lojas 24x7 podem precisar de duas. Um tamanho muito grande de 24x7x365 pode precisar de uma janela sem interrupção a cada semana para que um conjunto diferente de servidores seja corrigido a cada semana.
Encontre uma frequência que funcione para você e seu ambiente.
Uma coisa a ter em mente é que 100% atualizado é uma meta impossível de alcançar - não deixe seu departamento de segurança dizer o contrário. Faça o seu melhor, não fique muito para trás.
Coisas para fazer:
Coisas a evitar:
fonte
Outro ponto que vale a pena destacar: se você está acostumado ao Windows, ficará surpreso que a maioria das atualizações do Linux não exige tempo de inatividade ou reinicialização. Alguns o fazem, como atualizações do kernel. Porém, as atualizações que exigem reinicialização ou tempo de inatividade geralmente são sinalizadas como tal e podem ser tratadas em um agendamento separado.
fonte
checkrestart
é muito útil para determinar quais processos foram atualizados, mas ainda precisam ser interrompidos e reiniciados para obter o novo código.Todas as nossas máquinas Ubuntu executam versões LTS.
Apenas instalamos automaticamente todas as atualizações - com certeza não é uma "prática recomendada", mas somos uma loja relativamente pequena e não temos um ambiente de teste / desenvolvimento / produção para cada serviço. As atualizações do LTS são geralmente bem testadas e minimamente invasivas.
A atualização para uma nova versão é obviamente um pouco mais envolvida.
fonte
Lidamos com as atualizações da seguinte maneira para os sistemas ubuntu LTS:
O próximo passo lógico para nós é eliminar as informações da sessão na memória, para que possamos simplesmente reimplementar a infraestrutura todos os dias ou mesmo várias vezes ao dia sem impactar os clientes e eliminar o passo (2).
Essa abordagem é de baixa manutenção e evita completamente as janelas de manutenção.
fonte
Uma coisa que eu recomendo é lidar com reversões de pacotes. Veja Transações e Reversão com o Debian para uma sugestão de como fazê-lo, pois às vezes você precisa de uma solução rápida para uma atualização que quebra algo.
fonte