Re: HOSTALIASES ne fonctionne pas sur debian?
Le 13/09/19 à 15h46, Marc Chantreux <mc@unistra.fr> a écrit :
> > Pour ssh ou mosh, je configurerais plutôt des fichiers spécifiques (par
> > exemple sous ~/.ssh)
>
> précisément: je me plante régulièrement parceque ssh, scp, rsync, git et
> toutes ces commandes qui sous-traitent à ssh marchent bien mais qu'à
> l'inverse, curl, firefox, tcptraceroute et autres ne fonctionnent pas.
Pour ce besoin, j'utilise mon résolveur local (unbound), avec
- la liste `host ip` dans un /etc/unbound/hosts.list
- un /root/bin/refresh_unbound_local_zone.sh qui génère
un /etc/unbound/unbound.conf.d/local.conf et recharge unbound si la
nouvelle conf n'a pas de pb de syntaxe (sinon il remet l'ancienne)
Dans mon cas c'est pour gérer du *.lan.domain.tld (qui n'existe
pas dans les dns publics), avec dans le resolv.conf un
search lan.domain.tld
=> L'utilisateur n'a pas besoin de connaître le suffixe lan.domain.tld,
s'il veut joindre le host toto ça ira chercher dans unbound toto.lan.domain.tld
Ça donne dans ce local.conf
server:
# pour qu'il accepte de donner des ip privées dans les réponses
private-domain: "lan.domain.tld"
# notre domaine fictif statique
local-zone: "lan.domain.tld." static
# la liste d'après /etc/unbound/hosts.list
local-data: "xx.lan.domain.tld. IN A 192.168.x.y"
local-data-ptr: "192.168.x.y xx.lan.domain.tld"
Je suis sûr que tu n'a pas besoin de moi pour écrire la transformation
liste => conf, mais si ça peut servir à d'autres voici mon script.
Dsl c'est du bash, mais zsh doit digérer ça sans pb ;-)
#!/bin/bash
# pour générer la liste d'après la conf c'est
# sed -nre 's/.*local-data:.*"([^\.]+)\.[^0-9]*([0-9\.]+)".*/\1 \2/p' /etc/unbound/unbound.conf.d/local.conf
set -u
SRC=/etc/unbound/hosts.list
DST=/etc/unbound/unbound.conf.d/local.conf
BAK=/etc/unbound/local.bak
BAKO=/etc/unbound/local.ko
DOM=lan.domain.tld
OK=0
KO=1
confirm=yes
[ "${1-}" == "-y" ] && confirm=no
[ ! -f $SRC ] && echo "$SRC n'existe pas, abandon">&2 && exit $KO
if [ "$confirm" == "yes" ]; then
echo "Ce script va écraser la conf locale (statique) d'unbound pour $DOM (avec les $(egrep -c '^[a-z]' $SRC) hosts de $SRC)"
echo "Continuer [o/N] ?"
read rep
[ "$rep" != "o" ] && echo "Abandon" && exit $OK
fi
# backup conf actuelle
cp -af $DST $BAK
cat <<EOF > $DST
# fichier généré automatiquement d'après $0
server:
# pour qu'il accepte de donner des ip privées dans les réponses
private-domain: "lan.domain.tld"
# notre domaine fictif statique
local-zone: "lan.domain.tld." static
# la liste d'après $SRC
EOF
awk '/^[a-z]/ {
printf(" local-data: \"%s.'$DOM'. IN A %s\"\n", $1, $2)
printf(" local-data-ptr: \"%s %s.'$DOM'\"\n", $2, $1)
}' < $SRC >> $DST
if unbound-checkconf
then
if [ "$confirm" == "yes" ]; then
echo "Conf OK, recharger unbound [o/N] ?"
read rep
[ "$rep" != "o" ] && echo "Sortie sans rechargement, unbound UTILISE TOUJOURS l'ancienne configuration" && exit $OK
fi
unbound-control reload
else
echo "Conf KO (cf le résultat généré dans $BAKO), on remet l'ancienne"
cp -af $DST $BAKO
cp -af $BAK $DST
fi
--
Daniel
À une table, le nombre 13 n'est à craindre
que si il n'y a à manger pour 12.
Grimod de la Reynière
Reply to: