Umgebungsvariablen
Variablen, die CLI und Agent lesen - für die unbeaufsichtigte Registrierung, zum Verlagern der Dateien des Agenten und zum Nachstellen von Fehlern.
Jede Variable beginnt mit SX_. Es gibt zwei Arten, die von verschiedenen Prozessen gelesen werden, und welcher Prozess eine Variable liest, entscheidet, wo Sie sie setzen müssen - genau dort liegt der häufigste Irrtum. Einzelheiten stehen im Hinweis zur Rangfolge am Ende dieser Seite.
- Optionsvariablen enthalten den Wert einer Kommandozeilenoption:
SX_und der Optionsname in Großbuchstaben, mit Unterstrichen statt Bindestrichen; aus--enrollment-keywird soSX_ENROLLMENT_KEY. Der Befehl, den Sie ausführen, liest sie; setzen Sie sie also für diesen Befehl. - Agentenvariablen ändern das Verhalten des Agenten selbst. Nur der Agent liest sie; sie müssen also in der Umgebung seines Systemdienstes stehen.
Optionsvariablen
| Variable | Gelesen von | Zweck |
|---|---|---|
SX_ENROLLMENT_KEY | start, enroll | Der Registrierungsschlüssel, wie --enrollment-key. Anders als die Option erscheint er nicht in der Prozessliste |
SX_ENROLLMENT_KEY_FILE | start, enroll | Eine Datei mit dem Schlüssel, wie --enrollment-key-file |
SX_HOSTNAME | start, enroll | Der Name, unter dem das Gerät erscheint, wie --hostname |
SX_LOG_LEVEL | die meisten Befehle und der Agent | Die Protokollstufe, wie --log-level. In der Umgebung des Dienstes legt sie die Protokollstufe des Agenten fest |
SX_ und jede Option von start | nur start | Zum Beispiel SX_DISABLE_DNS=true. Wie die Optionen wirken sie nur, wenn start auf einem getrennten Gerät läuft: Auf einem verbundenen Gerät ändert start nichts. Um dort eine Einstellung zu ändern, verwenden Sie sxaccess stop && SX_DISABLE_DNS=true sxaccess start. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bis start fertig ist. In einer Sitzung über sxaccess shell klappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung. SX_PROFILE ist eine Ausnahme: Wie bei --profile verbindet start das Gerät dann mit dieser Identität neu, auch wenn es bereits verbunden ist. SX_TENANT=<Organisations-ID> wirkt nur bei der Registrierung des Geräts. enroll liest keine davon; SX_NO_BROWSER, SX_PROFILE und SX_TENANT bewirken dort also nichts |
SX_MANAGEMENT_URL | start, enroll | Der Management-Dienst. Seine Adresse ist eingebaut: Setzen Sie diese Variable nur, wenn der Support Sie darum bittet |
Agentenvariablen
Nur der Agent liest diese Variablen. Eine solche Variable in Ihrer Shell oder vor einem sxaccess-Befehl bewirkt also nichts: Setzen Sie sie wie unten gezeigt in der Umgebung des Dienstes. Die meisten dienen dazu, einen Fehler nachzustellen oder einen ungewöhnlichen Host zu betreiben, und sind nicht für die dauerhafte Konfiguration gedacht.
| Variable | Wirkung |
|---|---|
SX_STATE_ROOT | Der Ordner für Schlüssel, Identitäten und Zustand des Agenten, standardmäßig /var/lib/sxaccess. Die Schlüssel des Geräts liegen dort: Zeigt die Variable auf einen leeren Ordner, erzeugt der Agent neue, und die nächste Anmeldung legt ein neues Gerät an |
SX_DNS_STATE_PATH | Eine feste Datei, gemeinsam für alle Identitäten, für die Aufzeichnung der Systemänderungen, die der Agent nach einem Absturz rückgängig macht: DNS, Routen, Firewall-Regeln und die Netzauswahl. Siehe Was der Agent gespeichert hat |
SX_RESOLV_RECOVERY_PATH | Linux. Wo der Agent eine Kopie von resolv.conf ablegt, um sie nach einem unsauberen Herunterfahren wiederherzustellen; standardmäßig resolv.conf im Zustandsordner |
SX_RELAY_ONLY | Mit true bleibt jede Verbindung zu einem anderen Gerät auf dem Relay und wechselt nie auf einen direkten Pfad. Verwenden Sie die Variable, um einen Relay-Pfad gezielt nachzustellen |
SX_USERSPACE_STACK | Mit true betreibt der Agent den Tunnel in seinem eigenen Netzwerkstack, ohne Tunnel-Schnittstelle, und lässt Routen und DNS des Systems unberührt. Programme auf der Maschine erreichen Ihr Netzwerk dann über den SOCKS5-Proxy des Agenten |
SX_SOCKS_PORT | Der Port dieses SOCKS5-Proxys, standardmäßig 1080. Er lauscht auf allen Schnittstellen der Maschine; SX_USERSPACE_NO_SOCKS=true schaltet den Proxy ab. Nur mit SX_USERSPACE_STACK=true |
SX_LOG_LAYOUT | json oder syslog ändert das Format der Logzeilen des Agenten; alles andere ergibt einfachen Text |
SX_LOG_FILE_MB | Die Größe in MB, ab der der Agent eine neue Logdatei beginnt, standardmäßig 15. Er behält bis zu zehn ältere Dateien, komprimiert und höchstens 30 Tage lang |
SX_DISABLE_PROFILES | Mit true sind Änderungen an Identitäten auf dieser Maschine abgeschaltet: Der Agent lehnt es ab, Identitäten anzulegen, zu entfernen oder zu wechseln und die Einstellungen zu speichern, die start übergibt |
sudo sxaccess agent reconfigure --service-env SX_RELAY_ONLY=true,SX_LOG_FILE_MB=50sudo sxaccess agent reconfigureSX_ENROLLMENT_KEY='A6160...' sxaccess startRangfolge und wo eine Variable gesetzt werden muss
Eine Umgebungsvariable überschreibt die Kommandozeilenoption, nicht umgekehrt. Ein Befehl liest seine Optionen und überschreibt sie danach mit jeder passenden SX_-Variablen - eine Variable, die noch in einer Shell-Startdatei oder Unit-Datei steht, hat also stillschweigend Vorrang vor der Option, die Sie gerade eingegeben haben.
Ebenso wichtig ist, welcher Prozess die Variable liest. start liest die Variablen der globalen Optionen und seiner eigenen Optionen. enroll, info, stop und die übrigen Befehle, die mit dem Agenten kommunizieren, lesen nur die der globalen Optionen, und die Befehle unter sxaccess tenant lesen gar keine. Der Agent liest die Variablen der globalen Optionen und die oben genannten Agentenvariablen, und zwar aus der Umgebung seines Systemdienstes, nicht aus der Ihrer Shell.
Um dem Agenten eine Umgebung zu geben, führen Sie sudo sxaccess agent reconfigure --service-env mit jeder Variablen aus, die er haben soll, wie oben gezeigt. Der Befehl registriert den Dienst neu und startet einen laufenden Agenten neu; danach müssen Sie nichts weiter neu starten. Jeder Aufruf ersetzt die ganze Umgebung: Ein späteres agent reconfigure ohne --service-env verwirft alle zuvor gesetzten Variablen. agent install akzeptiert dieselbe Option, funktioniert aber nur auf einer Maschine, auf der der Dienst noch nicht installiert ist.

