Alors que je m’apprêtais à installer un serveur MariaDB en suivant la procédure standard, j’ai été confronté à une erreur lors de l’ajout de la clé APT :
1 2 3 4 5 6 7 |
$ apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.Uf7q8z5opm --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com ?: keyserver.ubuntu.com: Connection refused gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused gpg: no valid OpenPGP data found. gpg: Total number processed: 0 |
Pourtant, j’ai déjà lancé cette commande des dizaines de fois, sur un environnement identique, sans jamais n’avoir eu aucun problème !
En cause : le pare-feu
En effet, par défaut, le serveur de clé est appelé sur le port 11371 !
Hors, jusqu’à présent, j’installais les services avant de paramétrer le pare-feu du serveur : ça passé donc sans sourciller !
Solutions
On peut régler le problème de 2 façons différentes :
- Ajouter une règle au pare-feu
- Accéder au serveur sur le port 80
Ajouter une règle au pare-feu
1 |
$ iptables -A OUTPUT -p tcp --dport 11371 -j ACCEPT |
Attention : dans ce cas la règle est ajoutée à la fin de toutes les règles déjà existantes.
Si la dernière règle rejette déjà tout ce qui n’est pas spécifier avant, cette nouvelle règle sera simplement ignorée.
Lister les règles existantes en affichant les numéros de ligne :
1 |
$ iptables -nL --line-numbers |
Repérer une règle du style :
1 |
17 LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 |
ou encore
1 |
18 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable |
et on ajoute la nouvelle règle avant ces règles :
1 |
$ iptables -I OUTPUT 17 -p tcp --dport 11371 -j ACCEPT |
Quelques explications s’imposent :
Précédemment nous avions utilisé le paramètre
-A , qui veut dire « APPEND » : donc ajouter aux règles existantes.
Dans le dernier cas, nous avons utiliser le paramètre
-I , qui veut dire « INSERT ». On a spécifier après l’action « OUTPUT » le numéro de la ligne où nous désirions insérer notre règle. Cela n’écrase pas la règle existante sur la ligne en question mais décale toutes les règles suivantes.
Accéder au serveur sur le port 80
Si l’on ne veut pas toucher au pare-feu, on peut se contenter d’accéder au serveur de clé en http (donc sur le port 80) en le spécifiant dans la ligne de commande :
1 |
$ apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db |
Notez que keyserver.ubuntu.com est devenu hkp://keyserver.ubuntu.com:80
Voilà !