Na sequência da recente heartbleed vulnerabilidade do OpenSSL, eu gostaria de manter minhas máquinas EC2 atualizados em uma base regular. A abordagem ingênua seria definir um trabalho cron de hora em hora para atualizações de segurança ( sudo apt-get update && sudo unattended-upgrade
).
Existe algum risco de fazer isso? Existe um mecanismo de atualização recomendado para máquinas EC2?
fonte
Temos usado
unattended-upgrades
de 2015 a 2020 sem problemas. Temos uma pequena configuração (no DigitalOcean) com:nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
Com base no bom desempenho passado, fazer atualizações dessa maneira parece mais seguro do que não fazê-lo. Mas isso não é necessariamente uma garantia para o futuro!
Pode não ser uma boa ideia
apache
, com base nos relatórios de outros usuários e na minha experiência anterior deapache
atualizações. [Veja acima e aqui ]Com
unattended-upgrades
, a intervenção manual ainda será necessária quando a versão se aproximar da EOL .(Além da pergunta: na minha experiência com TWiki, WordPress e Jenkins, manter esses aplicativos atualizados é realmente uma preocupação maior do que o próprio sistema operacional, embora, é claro, devêssemos realmente fazer as duas coisas. Para ter tranqüilidade, você pode colocar aplicativos voltados para a Internet em sandbox como processos não raiz em execução em um contêiner do Docker.)
Mas como você perguntou sobre as melhores práticas , a abordagem principal recomendada na documentação da AWS é:
Isso pode ser feito como parte de uma estratégia de implantação azul esverdeado . A vantagem aqui é que você pode executar testes no seu novo servidor antes de mudar o tráfego. Se seus testes forem completos, em teoria suas atualizações poderão ser totalmente automatizadas, verificadas antes de serem lançadas e sem tempo de inatividade.
Outras vantagens:
Os testes podem fornecer um aviso avançado se a atenção humana for necessária (ao contrário
unattended-upgrades
, quando os avisos vierem dos usuários apenas quando o problema estiver ativo!)Se o seu sistema ficar comprometido ou você decidir mudar de provedor, essa abordagem deverá facilitar a implantação de uma nova implantação. Sua estratégia de implantação é com script, em vez de memória antiga.
Mas é claro que há mais configuração necessária para essa abordagem do que simplesmente instalar
unattended-upgrades
e mais complexidade; portanto, ainda há espaço para erros.A AWS também menciona a execução do "Update Stack dependencies command", que parece ser sua maneira oficial de fazer algo semelhante
unattended-upgrades
. Parece que pode ser acionado a partir da interface de Instâncias, mas não tenho certeza se pode ser automatizado.fonte