<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>debian | Self-Hosted!</title><link>https://blog.brumarino.com/tags/debian/</link><description>Post novo no “Rack” de segunda a sexta, às 7AM. Proxmox, rede, backup, UPS, IA e tudo o que tenho estudado.</description><language>pt-BR</language><managingEditor>Bruno Marino</managingEditor><image><url>https://blog.brumarino.com/brand/icon-144.png</url><title>debian | Self-Hosted!</title><link>https://blog.brumarino.com/tags/debian/</link><width>144</width><height>144</height></image><webfeeds:icon>https://blog.brumarino.com/brand/icon-192.png</webfeeds:icon><webfeeds:logo>https://blog.brumarino.com/brand/symbol.svg</webfeeds:logo><webfeeds:accentColor>2B3036</webfeeds:accentColor><lastBuildDate>Tue, 03 Nov 2026 07:00:00 -0300</lastBuildDate><atom:link href="https://blog.brumarino.com/tags/debian/index.xml" rel="self" type="application/rss+xml"/><item><title>unattended-upgrades nos containers: segurança no automático</title><link>https://blog.brumarino.com/unattended-upgrades-containers-debian/</link><pubDate>Tue, 03 Nov 2026 07:00:00 -0300</pubDate><guid>https://blog.brumarino.com/unattended-upgrades-containers-debian/</guid><category>Backup e segurança</category><description>Como ligar o unattended-upgrades nos containers Debian do Proxmox: o que ele instala, a configuração, como testar e por que não uso no host do Proxmox.</description><content:encoded><![CDATA[<p>Quase tudo no meu homelab roda em containers LXC, como contei no post <a href="/proxmox-lxc-ou-vm/">LXC ou VM no Proxmox</a>. São vários containers, cada um com o seu serviço, e cada um precisa receber as correções de segurança. Entrar em um por um para rodar <code>apt upgrade</code> é o tipo de tarefa que a gente esquece.</p>
<p>O Debian tem uma ferramenta própria para isso: o <strong>unattended-upgrades</strong>. Neste post explico o que ele faz, como configurar num container Debian e onde eu <strong>não</strong> usaria.</p>
<h2 id="o-que-ele-faz">O que ele faz <a class="anchor" href="#o-que-ele-faz" aria-label="Link para esta seção">#</a></h2>
<p>O unattended-upgrades instala atualizações sozinho, sem ninguém digitar nada. Pela wiki do Debian, a configuração padrão <strong>instala as atualizações de segurança, mas não novidades</strong>. Na prática, ele corrige falhas sem mudar versões de programas de uma hora para outra.</p>
<p>O arquivo de configuração padrão libera estas origens:</p>
<ul>
<li>o repositório principal do Debian da sua versão;</li>
<li>o repositório de segurança (<code>Debian-Security</code>).</li>
</ul>
<p>Repositórios de terceiros ficam de fora, a menos que você adicione.</p>
<h2 id="já-está-instalado">Já está instalado? <a class="anchor" href="#j%c3%a1-est%c3%a1-instalado" aria-label="Link para esta seção">#</a></h2>
<p>Antes de instalar, vale conferir. Dependendo do template usado para criar o container, o pacote pode já estar lá:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt list --installed unattended-upgrades
</span></span></code></pre></div><p>Se aparecer na lista, falta só confirmar que está ligado, com o <code>dpkg-reconfigure</code> do próximo passo. Se não aparecer, instale.</p>
<h2 id="instalando-num-container">Instalando num container <a class="anchor" href="#instalando-num-container" aria-label="Link para esta seção">#</a></h2>
<p>Dentro do container, como root:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt update
</span></span><span class="line"><span class="cl">apt install unattended-upgrades apt-listchanges
</span></span><span class="line"><span class="cl">dpkg-reconfigure unattended-upgrades
</span></span></code></pre></div><p>O último comando pergunta se você quer baixar e instalar as atualizações estáveis automaticamente. A wiki do Debian recomenda responder <strong>sim</strong>.</p>
<p>Quem dispara a rotina são os timers do próprio apt. Para conferir quando rodam:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">systemctl list-timers <span class="s1">&#39;apt-daily*&#39;</span>
</span></span></code></pre></div><h2 id="ajustando-a-configuração">Ajustando a configuração <a class="anchor" href="#ajustando-a-configura%c3%a7%c3%a3o" aria-label="Link para esta seção">#</a></h2>
<p>A wiki do Debian recomenda não editar o arquivo original. Copie para um arquivo seu e edite a cópia:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/52unattended-upgrades-local
</span></span></code></pre></div><p>As opções que mais importam num homelab:</p>
<ul>
<li><strong><code>Unattended-Upgrade::Origins-Pattern</code>:</strong> de onde vêm as atualizações. Descomente uma linha para incluir mais uma origem.</li>
<li><strong><code>Unattended-Upgrade::Mail</code>:</strong> o e-mail que recebe o relatório. Vem vazio, então nada é enviado. A wiki avisa que precisa de um servidor de e-mail local configurado no container.</li>
<li><strong><code>Unattended-Upgrade::Automatic-Reboot</code>:</strong> reinicia sozinho quando uma atualização pede. Vem como <code>false</code>.</li>
<li><strong><code>Unattended-Upgrade::Remove-Unused-Dependencies</code>:</strong> remove dependências que sobraram. Também vem como <code>false</code>.</li>
</ul>
<p>Num container LXC, o reinício automático pesa menos do que numa VM ou num servidor físico. Containers usam o <strong>kernel do host</strong>, como diz a documentação do Proxmox. Atualização de kernel dentro do container não existe: quem atualiza o kernel é o host.</p>
<h2 id="testando">Testando <a class="anchor" href="#testando" aria-label="Link para esta seção">#</a></h2>
<p>Para ver o que ele faria, com a saída detalhada:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">unattended-upgrade -d
</span></span></code></pre></div><p>Os registros ficam em:</p>
<ul>
<li><code>/var/log/unattended-upgrades/</code>, com o que a ferramenta decidiu e instalou;</li>
<li><code>/var/log/dpkg.log</code>, com cada pacote instalado.</li>
</ul>
<aside class="alert alert--tip">
  <p class="alert__title">Dica</p>
  <p>Antes de ligar em todos os containers, ligue em um só, de um serviço que você pode deixar fora do ar por alguns minutos. Acompanhe os logs por uma ou duas semanas.</p>
</aside><h2 id="um-checklist-por-container">Um checklist por container <a class="anchor" href="#um-checklist-por-container" aria-label="Link para esta seção">#</a></h2>
<p>Para não esquecer nenhum, este é o roteiro que eu seguiria em cada container:</p>
<ol>
<li><strong>O container está no backup da noite?</strong> Se não, resolva isso primeiro.</li>
<li><strong>O app vem do apt?</strong> Se vem de script, binário ou imagem Docker, a atualização automática não alcança o app, só o sistema.</li>
<li><strong>Dá para ficar alguns minutos fora do ar?</strong> Uma atualização pode reiniciar o serviço. Para o DNS da casa, por exemplo, isso significa internet parada para todo mundo.</li>
<li><strong>Instalar, rodar o <code>unattended-upgrade -d</code> e ler a saída.</strong></li>
<li><strong>Olhar os logs na semana seguinte</strong> para ver o que foi instalado.</li>
</ol>
<p>Quem cuida do DNS sabe: quando ele cai, a família percebe antes de você. Conto como o meu funciona no post sobre o <a href="/technitium-dns-homelab/">Technitium DNS</a>.</p>
<h2 id="onde-eu-não-usaria">Onde eu não usaria <a class="anchor" href="#onde-eu-n%c3%a3o-usaria" aria-label="Link para esta seção">#</a></h2>
<p><strong>No host Proxmox.</strong> A documentação do Proxmox orienta atualizar o host com <code>apt full-upgrade</code>, não com <code>apt upgrade</code>. O motivo: o Proxmox é uma distribuição contínua sobre o Debian, e o <code>upgrade</code> não remove pacotes para resolver dependências, o que pode deixar o sistema atualizado pela metade. Atualização do host eu faço olhando, e com backup antes.</p>
<p><strong>Em app com versão fixa.</strong> Se um container roda um app que quebra com atualização de biblioteca, a atualização automática vira um risco. Aí prefiro atualizar à mão, depois de ler as notas da versão.</p>
<p><strong>Em app instalado fora do apt.</strong> O unattended-upgrades só cuida dos pacotes do apt. App instalado por script, binário baixado ou imagem Docker tem que ser atualizado do jeito dele.</p>
<h2 id="e-se-uma-atualização-quebrar-algo">E se uma atualização quebrar algo <a class="anchor" href="#e-se-uma-atualiza%c3%a7%c3%a3o-quebrar-algo" aria-label="Link para esta seção">#</a></h2>
<p>É para isso que serve o backup da noite. Aqui, o vzdump salva todos os containers às 21h, e eu já restaurei containers por ele sem problema. Conto a rotina no post sobre <a href="/backup-proxmox-vzdump/">backup com vzdump</a>.</p>
<aside class="alert alert--warning">
  <p class="alert__title">Atenção</p>
  <p>Atualização automática sem backup é aposta. Antes de ligar o unattended-upgrades, confirme que o container entra no backup e que você sabe restaurá-lo.</p>
</aside><h2 id="resumindo">Resumindo <a class="anchor" href="#resumindo" aria-label="Link para esta seção">#</a></h2>
<ul>
<li><strong>unattended-upgrades</strong> instala só as atualizações de segurança por padrão, sem trocar versões.</li>
<li><strong>Configuração</strong> numa cópia: <code>52unattended-upgrades-local</code>.</li>
<li><strong>E-mail e reinício automático</strong> vêm desligados. O e-mail precisa de servidor de e-mail local.</li>
<li><strong>Containers LXC</strong> usam o kernel do host, então reiniciar o container quase nunca é preciso.</li>
<li><strong>No host Proxmox, não:</strong> lá é <code>apt full-upgrade</code>, olhando.</li>
<li><strong>Backup antes</strong> de qualquer automação.</li>
</ul>
<p>Correção de segurança que fica parada esperando eu lembrar é falha aberta. Automatizar a parte chata deixa o meu tempo para o que precisa de atenção.</p>
]]></content:encoded></item></channel></rss>