Per què un peer de WireGuard esborrat torna després d'un reinici
Dos estats contenen la llista de peers: la interfície en execució i allò que l'escriu a l'arrencada. Elimina'l de tots dos i comprova SaveConfig abans d'editar res.
La identitat desapareix de la interfície en execució i el canvi sembla fet. Després que el servei es reinicia, torna, cosa que sembla que WireGuard ignora l'ordre. El que va passar en realitat és més simple: la configuració d'arrencada encara conté el peer.
Dos estats contenen aquesta llista. La revocació només és real quan tots dos la perden.
Què canvia realment wg set
L'ordre wg set wg0 peer <public-key> remove edita la interfície en execució dins del nucli. No escriu res al disc. El fitxer de configuració, el perfil de NetworkManager o l'estat desat del router queden intactes. Això és el disseny, no un error.
Aquesta separació és deliberada, perquè l'eina no té ni idea de qui posseeix la interfície. Una ordre en temps d'execució ha de ser segura d'executar contra una interfície gestionada per una altra cosa. No pot endevinar on viu la còpia duradora. La conseqüència és fàcil d'enunciar: una eliminació en temps d'execució és temporal per construcció.
Així, el peer torna al següent reinici, i torna amb els seus prefixos permesos originals. Tot el que hi passava per encaminament també es recrea. Una identitat suposadament revocada pot, per tant, arribar a les seves destinacions anteriors després d'una recàrrega. Res a la sortida en temps d'execució no va avisar ningú.
Troba l'escriptor abans d'editar un fitxer
La interfície té un propietari. Pot ser wg-quick llegint un fitxer, NetworkManager aplicant un perfil, la configuració d'interfície del mateix router, o un entrypoint de contenidor que recrea la interfície en arrencar. Editar un fitxer que el propietari no llegeix mai no produeix cap canvi persistent.
Comença per la interfície en execució i identifica les claus públiques, ja que els noms i les adreces són identificadors més febles que la mateixa clau. Després compara aquesta llista amb la configuració desada que el propietari llegeix realment.
wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard
Una interfície activa la llista de peers de la qual i el contingut del fitxer no coincideixen és tot el diagnòstic. La configuració desada guanya a l'arrencada, i l'estat en temps d'execució perd. Compara'ls abans de canviar cap dels dos.
La trampa de SaveConfig
wg-quick afegeix un detall que atrapa qui edita fitxers a mà. Amb SaveConfig activat, el seu comportament documentat d'aturada escriu l'estat actual en temps d'execució a sobre del fitxer de configuració.
Això inverteix la direcció habitual de la persistència. Elimines un peer del fitxer, després el servei s'atura. L'estat en execució s'escriu a sobre de la teva edició i restaura el peer que acabes d'esborrar.
Per tant, l'ordre importa: edita el fitxer amb la interfície aturada, o desactiva SaveConfig abans de fer l'edició, després torna a aixecar la interfície i confirma què s'ha carregat. Una edició manual feta amb la interfície aixecada és una cursa amb l'escriptura d'aturada.
Canvia tots dos estats i després recarrega
En temps d'execució, elimina el peer per clau. A la configuració desada, elimina el mateix bloc mitjançant l'operació suportada del propietari en lloc d'editar-hi al voltant.
Després revisa què portava el peer. Una xarxa encaminada que pertanyia a la identitat revocada s'ha de reassignar deliberadament o eliminar, no heretar silenciosament pel següent peer que s'editi.
Mantén obert un camí de recuperació si la passarel·la també porta el teu accés administratiu. Un reinici que elimina el peer equivocat és una caiguda autoinfligida. El mateix s'aplica a un reinici que elimina la ruta equivocada.
Com es veu una prova superada
Recarrega o reinicia el servei i torna a llegir la llista de peers. La clau antiga ha d'estar absent, i els peers que volies conservar han de continuar presents i funcionant.
wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers
Quan la situació ho permeti, confirma que la identitat antiga ja no arriba als seus recursos anteriors. Un llistat d'interfície net abans d'un reinici és mitja prova. L'altra meitat és què pot fer encara la identitat després.
Si un gestor continua restaurant el peer, deixa de repetir l'eliminació de baix nivell. Corregeix l'inventari que aquell escriptor llegeix, perquè fins aleshores cada reinici és una altra invitació perquè la identitat reaparegui.