web-dev-qa-db-fra.com

Ajout de règles ufw lors d'une installation prédéfinie

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?

2
zymhan

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.

3
thejhh