J'ai essayé d'ajouter automatiquement des règles UFW pour autoriser l'accès SSH lors d'une installation de 16.04 lors de l'utilisation d'un fichier prédéfini. Cependant, aucune des méthodes documentées n'ouvre le port 22 après le premier démarrage.
Plus précisément, j'ai essayé des variantes des lignes suivantes:
ufw ufw/enable boolean true
ufw ufw/allow_custom_ports string 22/tcp
ufw ufw/allow_known_ports string 22/tcp
ufw ufw/allow_known_ports string SSH
Mais aucun ne semblait faire de différence. De plus, mes tentatives pour ajouter la règle dans la section post-installation ont échoué car le module du noyau iptables n'est pas chargé, ce qui entraîne une erreur.
Est-ce possible d'accomplir dans le fichier prédéfini? Ou dois-je simplement abandonner et activer le pare-feu au démarrage avec un hack?
J'essaie également de faire fonctionner cela depuis un certain temps. Rien ne semble fonctionner. Jusqu'à ce que j'abandonne finalement et que je le corrige avec une solution de contournement rc.local simple:
d-i preseed/late_command string \
mv /target/etc/rc.local /target/etc/rc.local.orig; \
echo '#!/bin/sh -e' > /target/etc/rc.local; \
echo '/usr/sbin/ufw allow ssh' >> /target/etc/rc.local; \
echo 'mv -f /etc/rc.local.orig /etc/rc.local' >> /target/etc/rc.local; \
echo 'test -x /etc/rc.local && /etc/rc.local' >> /target/etc/rc.local; \
echo 'exit 0' >> /target/etc/rc.local; \
chmod +x /target/etc/rc.local
Fondamentalement, j'ai fait un script rc.local personnalisé qui exécute ufw allow ssh
au premier démarrage, qui se détruira ensuite en renommant le script rc.local d'origine à l'emplacement d'origine. Cela semble fonctionner.