Uma instalação endurecida, de ponta a ponta¶
As páginas desta seção são organizadas por assunto, que é a forma certa para consultar e a errada para instalar pela primeira vez. Esta página é o outro eixo: a ordem, num host endurecido com systemd e sem container, e os poucos lugares em que fazer a coisa certa na hora errada equivale a não fazer.
Ela não repete comando nenhum. Cada fase diz para que serve, o que precisa estar verdadeiro antes dela, e qual página tem as instruções. Onde uma fase carrega uma armadilha, a armadilha está aqui, porque ela mora na sequência e não em nenhuma página isolada.
Decida três coisas antes¶
Elas mudam fases seguintes, e descobri-las tarde costuma significar recomeçar.
Como cada superfície é alcançada. A interna fica na VPN ou rede restrita da consultoria, o portal vai para o cliente. Isso decide dois hostnames, dois certificados, e se algum dos nomes resolve publicamente. Ver TLS e proxy reverso.
Se o volume de dados é cifrado. Se for, muda a ordem de duas fases adiante, e o método de desbloqueio decide se o host consegue bootar sem ninguém. Ver Endurecimento do host.
Instalação nova ou migração. Uma migração carrega uma chave mestra que já existe, e o momento de colocá-la no lugar é a única coisa que não dá para corrigir depois. Ver Mudar de host.
1. O host¶
Plataforma, pacotes, e o Python de que o sidecar precisa. Pré-requisitos e plataformas.
2. As identidades¶
São quatro: peart, peart-portal, peart-render, e o grupo peart-work, que não tem usuário. Os
usuários e grupos.
Elas vêm antes de qualquer coisa ser criada em disco, porque a árvore de diretórios nasce com dono delas
e o install -d não consegue nomear um usuário que ainda não existe.
O peart também é membro de peart-portal. As duas superfícies abrem o mesmo banco, e os arquivos
-wal e -shm ao lado dele são criados por quem abrir primeiro, caindo no grupo do diretório. Sem essa
filiação a instalação funciona até o primeiro reboot em que o portal calhar de subir antes.
3. Os binários e o sidecar¶
Instalação direta para o peart e o peart-portal, e depois o sidecar de
renderização, que é Python num ambiente
virtual próprio, e não um terceiro binário.
4. O volume cifrado, se houver¶
Antes da árvore de diretórios, não depois. Uma árvore criada enquanto o ponto de montagem ainda é um diretório vazio no sistema de arquivos raiz some embaixo do volume no instante em que ele monta, e o sintoma é dado que estava lá um minuto atrás. Endurecimento do host trata do desbloqueio pela rede e do que ele custa; Se o diretório de dados está num volume separado trata do que as units fazem a respeito.
5. A árvore de diretórios e a configuração¶
Dono e modos, e depois o arquivo de configuração em si.
O /etc/peart é gravável pelo peart de propósito: numa instalação nova o PEART cria a chave mestra ali
no primeiro boot, e um diretório que o serviço só consegue ler faz esse primeiro boot falhar.
6. Só em migração: a chave mestra¶
Depois de o volume estar montado, e antes do primeiro boot. Mudar de host tem as duas metades e a razão de cada uma morder: uma chave escrita antes da montagem cai no sistema de arquivos raiz e desaparece; um primeiro boot sem chave gera uma nova, e a partir daí a evidência e os backups que você trouxe não podem mais ser lidos.
7. Os segredos¶
Fora do config.yaml e dentro dos arquivos de ambiente, que o systemd lê como root. O que vai em cada
arquivo de ambiente.
8. As units¶
Rodar como serviço. Habilite o socket do sidecar, não o serviço dele: o sidecar roda sem rede própria e só é alcançável porque a unit de socket abre a porta no namespace do host e entrega o descritor. Habilitar o serviço no lugar produz um sidecar que sobe, parece saudável, e não pode ser alcançado.
9. Primeiro boot, e então o arquivo do banco¶
Suba os serviços, rode a migração, e só então ajuste dono e modo do arquivo do banco: ele nasce com a umask do processo, e o portal precisa escrevê-lo. O arquivo do banco.
Os arquivos -wal e -shm tiram o modo do banco, então consertar o banco é o conserto inteiro, e
consertar os companheiros não é.
10. TLS, um terminador por superfície¶
TLS e proxy reverso. O tls: true da configuração é o que torna o cookie de sessão Secure e
envia HSTS; nenhum cabeçalho encaminhado é lido, então um proxy terminando TLS com tls: false atrás é
um rebaixamento silencioso.
11. Verifique, e saiba o que cada conferência provou¶
O que cada conferência de ponta a ponta prova. Faça as quatro: elas falham por motivos diferentes, e passar numa não diz nada sobre as outras. Se algo falhar de um jeito que cheire a sandbox, Quando a causa é uma diretiva de endurecimento é indexada pela linha de log.
12. Exporte a chave, e prove o backup¶
Diretório de dados e backups. A chave mestra não está no backup, por desenho, então um backup sem chave guardada à parte não restaura nada legível. Faça isso antes do primeiro trabalho de verdade, não depois.
O que você não deveria ter precisado fazer¶
Nada nesta sequência pede para afrouxar diretiva do systemd. Se você se pegar escrevendo um drop-in para alguma coisa funcionar, isso é defeito a relatar e não contorno a guardar, e Endurecimento do host declara a postura em que o produto é suportado.