Je suis un utilisateur de longue date de Linux, mais je ne suis pas très au fait des derniers développements, notamment en ce qui concerne Ubuntu et l'administration des systèmes.
J'ai un très vieux PC que je veux utiliser pour un serveur de fichiers, un repo Mercurial, un serveur FTP et WWW, et quelques autres petites applications web internes à l'entreprise que j'ai réalisées avec Django. Auparavant, tout cela fonctionnait sur un ancien Fedora, sur un disque non crypté, et tout était lancé à partir de /etc/rc.local
.
J'ai mis un nouveau disque dur, et j'ai installé Ubuntu 18.04 LTS dessus. Je suis maintenant en train de restaurer les services, mais je veux aussi les améliorer.
Tout d'abord, je veux que les données importantes (base de données Django, fichiers du serveur de fichiers, ...) soient sur une partition cryptée. Cependant, d'après mon expérience du chiffrement de disque, quelque chose vous demande la phrase de passe au démarrage. Je veux éviter cela, puisque le serveur n'aura pas de moniteur ou de clavier attaché. Deuxièmement, je veux administrer les services d'une manière un peu plus officielle ("Ubuntian").
Idée actuelle
- avoir les données des services sur une partition chiffrée, qui n'est pas répertoriée dans
/etc/fstab
. - Au redémarrage, le serveur n'aura que sshd, mais les services ne seront pas démarrés et la partition ne sera pas montée.
- Je me connecterais en ssh à la machine, et j'exécuterais un script, qui monterait la partition (en me demandant la phrase de passe), et lancerait les services.
La machine est sur un UPS, je m'attends à exécuter la procédure ci-dessus rarement (quelques fois par an).
Question
L'idée actuelle est-elle bonne ? De meilleures façons de procéder ?
Si c'est bon, comment le mettre en œuvre ? Je peux certainement faire le "total DIY way" et écrire un énorme script avec les commandes luks, les commandes iptables pour ouvrir les ports, et invoquer les démons des services directement, mais je veux apprendre quelque chose de nouveau ici et le faire à la manière Ubuntu appropriée™ :).
Toute indication ou exemple de code/script sera apprécié.