TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

In diesem Artikel werde ich versuchen, Schritt für Schritt den Prozess der Installation eines Testservers für ein großartiges Projekt zu beschreiben Freeacs in einen voll funktionsfähigen Zustand bringen und praktische Techniken für die Arbeit mit Mikrotik zeigen: Konfiguration über Parameter, Skriptausführung, Aktualisierung, Installation zusätzlicher Module usw.

Der Zweck des Artikels besteht darin, Kollegen dazu zu bringen, die Verwaltung von Netzwerkgeräten mit schrecklichen Rechen und Krücken in Form von selbstgeschriebenen Skripten, Dude, Ansible usw. zu verweigern. Und bei dieser Gelegenheit ein Feuerwerk und Massenjubel auszulösen Quadrate.

0. Wahl

Warum Freeacs und nicht Genie-ACs erwähnt werden mikrotik-wikiWie lebendiger?
Weil es spanische Veröffentlichungen zu Genie-ACs mit Mikrotik gibt. Hier sind sie pdf и Video von der Mutter des letzten Jahres. Auto-Cartoons auf Folien sind cool, aber ich würde gerne wegkommen von dem Konzept, Skripte zu schreiben, Skripte auszuführen, Skripte auszuführen …

1. Freeacs-Installation

Wir werden in Centos7 installieren, und da die Geräte viele Daten übertragen und ACS aktiv mit der Datenbank arbeitet, werden wir nicht ressourcengierig sein. Für komfortables Arbeiten wählen wir 2 CPU-Kerne, 4 GB RAM und 16 GB schnellen Speicher SSD RAID10. Ich werde Freeacs im Proxmox VE lxc-Container installieren, und Sie können mit jedem für Sie geeigneten Tool arbeiten.
Vergessen Sie nicht, mit ACS die richtige Uhrzeit an der Maschine einzustellen.

Da es sich bei dem System um ein Testsystem handelt, sollten wir nicht schlau sein und einfach das freundlicherweise bereitgestellte Installationsskript so verwenden, wie es ist.

wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh

Sobald das Skript abgeschlossen ist, können Sie über die IP des Computers mit den Anmeldeinformationen admin/freeacs sofort auf die Weboberfläche zugreifen

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS
Hier ist so eine schöne minimalistische Benutzeroberfläche und wie cool und schnell alles geworden ist

2. Ersteinrichtung von Freeacs

Die grundlegende Steuerungseinheit für ACS ist die Einheit oder CPE (Customer Premises Equipment). Und was wir am wichtigsten sind, um Einheiten zu verwalten, ist ihr Einheitentyp, d. h. ein Hardwaremodell, das einen Satz konfigurierbarer Parameter für eine Einheit und ihre Software definiert. Aber bis wir wissen, wie man einen neuen Einheitentyp richtig erhält, wäre es am besten, die Einheit selbst danach zu fragen, indem man den Entdeckungsmodus aktiviert.

In der Produktion ist dieser Modus absolut unmöglich zu verwenden, aber wir müssen den Motor so schnell wie möglich starten und uns die Fähigkeiten des Systems ansehen. Alle Grundeinstellungen werden in /opt/freeacs-* gespeichert. Deshalb öffnen wir

 vi /opt/freeacs-tr069/config/application-config.conf 

, wir finden

discovery.mode = false

und wechseln zu

discovery.mode = true

Darüber hinaus möchten wir die maximale Dateigröße erhöhen, mit der Nginx und MySQL arbeiten. Fügen Sie für MySQL die Zeile zu /etc/my.cnf hinzu

max_allowed_packet=32M

und für Nginx zu /etc/nginx/nginx.conf hinzufügen

client_max_body_size 32m;

zum http-Bereich. Andernfalls können wir mit Firmware von nicht mehr als 1 Mio. arbeiten.

Wir starten neu und sind bereit, mit Geräten zu arbeiten.

Und in der Rolle des Geräts (CPE) werden wir ein Workaholic-Baby bekommen hAP AC lite.

Vor einer Testverbindung empfiehlt es sich, das CPE manuell auf die minimale Arbeitskonfiguration zu konfigurieren, damit die Parameter, die Sie in Zukunft konfigurieren möchten, nicht leer sind. Für einen Router können Sie mindestens einen DHCP-Client auf Ether1 aktivieren, das tr-069client-Paket installieren und Passwörter festlegen.

3. Mikrotik anschließen

Es ist wünschenswert, alle Geräte mit einer gültigen Seriennummer als Login zu verbinden. Dann wird Ihnen in den Protokollen alles klar sein. Jemand rät zur Verwendung von WAN MAC – glauben Sie es nicht. Jemand verwendet für alle ein gemeinsames Login/Pass-Paar – umgehen Sie es.

Öffnen des tr-069-Protokolls zur Überwachung von „Verhandlungen“

tail -f /var/log/freeacs-tr069/tr069-conversation.log

Winbox öffnen, Menüpunkt TR-069.
AC-URL: http://10.110.0.109/tr069/prov (durch Ihre IP ersetzen)
Benutzername: 9249094C26CB (Seriennummer vom System>Routerboard kopieren)
Passwort: 123456 (nicht für die Entdeckung erforderlich, aber notwendig)
Wir ändern das periodische Informationsintervall nicht. Wir werden diese Einstellung über unser ACS vornehmen

Unten sind die Einstellungen für die Remote-Initialisierung der Verbindung aufgeführt, aber ich konnte mikrotik nicht im Handumdrehen dazu bringen, damit zu arbeiten. Obwohl die Remote-Anfrage mit Telefonen sofort funktioniert. Muss es herausfinden.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Nach Betätigung des Apply-Buttons werden im Terminal Daten ausgetauscht und im Freeacs-Webinterface sehen Sie unseren Router mit dem automatisch erstellten Unit Type „hAPaclite“.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Der Router ist verbunden. Sie können sich den automatisch generierten Einheitentyp ansehen. Wir öffnen Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Was nicht da ist! Bis zu 928 Parameter (ich habe die Shell ausspioniert). Viel oder wenig – wir werden es später herausfinden, aber jetzt werfen wir nur einen kurzen Blick darauf. Das ist es, was „Einheitstyp“ bedeutet. Dies ist eine Liste unterstützter Optionen mit Schlüsseln, aber keinen Werten. Die Werte werden in den folgenden Ebenen festgelegt: Profile und Einheiten.

4. Konfigurieren Sie Mikrotik

Es ist Zeit zum Herunterladen Anleitung zur Weboberfläche Dieser Reiseführer von 2011 ist wie eine Flasche guten, gereiften Weins. Lasst es uns öffnen und atmen lassen.

Und wir selbst klicken im Webinterface auf den Stift neben unserem Gerät und gehen in den Gerätekonfigurationsmodus. Es sieht aus wie das:

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Lassen Sie uns kurz analysieren, was auf dieser Seite interessant ist:

Einheitenkonfigurationsblock

  • Profil: Dies ist das Profil innerhalb des Einheitentyps. Die Hierarchie ist wie folgt: UnitType > Profile > Unit. Das heißt, wir können beispielsweise Profile erstellen hAPaclite > hotspot и hAPaclite > branch, aber innerhalb des Gerätemodells

Blockbereitstellung mit Knöpfen
Hinweise weisen darauf hin, dass alle Schaltflächen im Bereitstellungsblock die Konfiguration sofort über die ConnectionRequestURL anwenden können. Aber wie ich oben sagte, funktioniert dies nicht. Nachdem Sie die Tasten gedrückt haben, müssen Sie den tr-069-Client auf Mikrotik neu starten, um die Bereitstellung manuell zu starten.

  • Freq/Spread: Wie oft pro Woche soll die Konfiguration ± % bereitgestellt werden, um die Belastung des Servers und der Kommunikationskanäle zu reduzieren. Standardmäßig kostet es 7/20, d. h. jeden Tag ± 20 % und geben Sie in Sekunden an, wie es ist. Bisher macht es keinen Sinn, die Lieferhäufigkeit zu ändern, weil. Es kommt zu zusätzlichem Rauschen in den Protokollen und nicht immer erwarteten Einstellungen

Bereitstellungsverlaufsblock (letzte 48 Stunden)

  • Vom Aussehen her ähnelt die Geschichte einer Geschichte, aber wenn Sie auf den Titel klicken, gelangen Sie zu einem praktischen Datenbanksuchtool mit regulärem Ausdruck und Extras

Parameterblock

Der größte und wichtigste Block, in dem tatsächlich die Parameter für diese Einheit eingestellt und gelesen werden. Jetzt sehen wir nur noch die wichtigsten Systemparameter, ohne die ACS mit dem Gerät nicht arbeiten kann. Aber wir erinnern uns, dass wir sie im Einheitentyp haben – 928. Sehen wir uns alle Werte an und entscheiden, womit Mikrotik isst.

4.1 Auslesen der Parameter

Klicken Sie im Block „Bereitstellung“ auf die Schaltfläche „Alles lesen“. Der Block hat eine rote Aufschrift. Auf der rechten Seite erscheint eine Spalte CPE-Wert (aktuell).. ProvisioningMode wurde in den Systemeinstellungen auf READALL geändert.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Und… außer einer Meldung in System.X_FREEACS-COM.IM.Message wird nichts passieren Kick failed at....

Starten Sie den TR-069-Client neu oder starten Sie den Router neu und aktualisieren Sie die Browserseite so lange, bis Sie die Parameter in den fröhlichen grauen Kästchen auf der rechten Seite sehen
Falls jemand einen Schluck vom altbewährten trinken möchte, wird dieser Modus im Handbuch als 10.2 Inspektionsmodus beschrieben. Es lässt sich einschalten und funktioniert etwas anders, aber das Wesentliche ist durchaus beschrieben

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Der READALL-Modus schaltet sich nach 15 Minuten ab und wir werden versuchen herauszufinden, was hier nützlich ist und was im laufenden Betrieb korrigiert werden kann, während wir uns in diesem Modus befinden.

Sie können IP-Adressen ändern, Schnittstellen aktivieren/deaktivieren, Firewall-Regeln, die mit Kommentaren versehen sind (ansonsten ein komplettes Durcheinander), WLAN und so weiter.

Das heißt, es ist noch nicht möglich, Mikrotik nur mit TR-069-Tools sinnvoll zu konfigurieren. Man kann aber sehr gut überwachen. Es stehen Statistiken zu Schnittstellen und deren Status, freiem Speicher usw. zur Verfügung.

4.2 Bereitstellung von Parametern

Versuchen wir nun, die Parameter über tr-069 auf „natürliche“ Weise an den Router zu liefern. Das erste Opfer wird Device.DeviceInfo.X_MIKROTIK_SystemIdentity sein. Wir finden es in den Parametern der Einheit All. Wie Sie sehen, ist es nicht festgelegt. Das bedeutet, dass jede Einheit selbst eine beliebige Identität haben kann. Genug davon, das zu ertragen!
Wir stechen in die Spalte „Erstellen“ ein Häkchen, legen den Namen „Mr.White“ fest und klicken auf die Schaltfläche „Parameter aktualisieren“. Was als nächstes passieren wird, haben Sie bereits erraten. Bei der nächsten Kommunikationssitzung mit der Zentrale muss der Router seine Identität ändern.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Aber das reicht uns nicht. Es ist gut, einen Parameter wie „Identität“ immer zur Hand zu haben, wenn man nach der richtigen Einheit sucht. Wir stöbern im Namen des Parameters und setzen dort die Kontrollkästchen Anzeige (D) und Durchsuchbar (S). Der Parameterschlüssel wird in RWSD geändert (denken Sie daran, dass Namen und Schlüssel auf der höchsten Einheitentypebene festgelegt werden).

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Der Wert wird nun nicht nur in der allgemeinen Suchliste angezeigt, sondern ist auch für die Suche verfügbar Support > Search > Advanced form

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Wir leiten die Bereitstellung ein und schauen uns die Identität an. Hallo Mr.White! Jetzt können Sie Ihre Identität nicht mehr selbst ändern, während tr-069client ausgeführt wird

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

4.3 Skripte ausführen

Da wir herausgefunden haben, dass es ohne sie nicht geht, wollen wir sie erfüllen.

Bevor wir jedoch mit der Arbeit mit Dateien beginnen, müssen wir die Anweisung korrigieren public.url im Ordner /opt/freeacs-tr069/config/application-config.conf
Immerhin haben wir noch eine Testkonfiguration mit einem Skript installiert. Nicht vergessen?

# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}

Starten Sie das ACS neu und gehen Sie direkt zu Files & Scripts.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Aber was jetzt bei uns eröffnet wird, gehört zum Unit Type, d.h. global an alle hAP ac lite-Router, sei es ein Branch-Router, Hotspot oder Capsman. Ein so hohes Niveau benötigen wir noch nicht, daher sollten Sie vor der Arbeit mit Skripten und Dateien ein Profil erstellen. Sie können es selbst als „Position“ des Geräts bezeichnen.

Machen wir unser Baby zu einem Zeitserver. Anständige Position mit einem separaten Softwarepaket und einer kleinen Anzahl von Parametern. Lass uns gehen Easy Provisioning > Profile > Create Profile und erstellen Sie ein Profil im Einheitentyp:hAPaclite Zeitserver. Wir hatten keine Parameter im Standardprofil, daher gibt es nichts zu kopieren Parameter kopieren von: „nicht kopieren…“

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Hier gibt es noch überhaupt keine Parameter, aber es wird möglich sein, diejenigen einzustellen, die wir später auf unseren aus hAPaclite geformten Zeitservern sehen wollen. Zum Beispiel die allgemeinen Adressen von NTP-Servern.
Gehen wir zur Gerätekonfiguration und verschieben sie in das Zeitserverprofil

Endlich gehen wir zu Files & Scripts, erstellen Sie Skripte, und hier warten erstaunlich praktische Brötchen auf uns.

Um ein Skript auf einer Einheit auszuführen, müssen wir eine Auswahl treffen Typ:TR069_SCRIPT а Name und Vorname и Zielname muss die Erweiterung .alter haben
Gleichzeitig können Sie bei Skripten im Gegensatz zu Software entweder eine fertige Datei hochladen oder sie einfach vor Ort schreiben/bearbeiten Content. Versuchen wir, genau dort zu schreiben.

Und damit Sie das Ergebnis sofort sehen können, fügen Sie den VLAN-Router zu Ether1 hinzu

/interface vlan
add interface=ether1 name=vlan1 vlan-id=1

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Wir fahren, wir drücken Hochladen und fertig. Unser Drehbuch vlan1.alter in den Startlöchern warten.

Also, lasst uns gehen? Nein. Wir müssen auch eine Gruppe für unser Profil hinzufügen. Gruppen sind nicht in der Gerätehierarchie enthalten, werden jedoch für die Suche nach Einheiten in UnitType oder Profile benötigt und sind für die Skriptausführung über Advanced Provisioning erforderlich. Normalerweise sind Gruppen Standorten zugeordnet und haben eine verschachtelte Struktur. Lasst uns eine Russland-Gruppe gründen.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Stellen Sie sich vor, wir hätten unsere Suche von „Alle Weltzeitserver auf hAPaclite“ auf „Alle russischen Zeitserver auf hAPaclite“ eingegrenzt. Es gibt immer noch eine riesige Menge an allem Interessanten in Gruppen, aber wir haben keine Zeit. Kommen wir zu den Drehbüchern.

Advanced Provisioning > Job > Create Job

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Da wir uns im erweiterten Modus befinden, können Sie hier schließlich eine Reihe verschiedener Bedingungen für den Start der Aufgabe, Fehlerverhalten, Wiederholungen und Timeouts festlegen. Ich empfehle, dies alles in den Handbüchern zu lesen oder es später bei der Implementierung in der Produktion zu besprechen. Lassen Sie uns vorerst einfach n1 auf Stoppregeln setzen, damit die Aufgabe stoppt, sobald sie in unserer ersten Einheit abgeschlossen ist.

Wir füllen das Notwendige aus und es bleibt nur noch der Start!

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Drücken Sie START und warten Sie. Jetzt läuft der Zähler der Geräte, die durch das unzureichend debuggte Skript getötet wurden, zügig! Nein, natürlich. Solche Aufgaben werden für eine lange Zeit erledigt, und das ist ihr Unterschied zu Skripten, Ansible usw. Einheiten selbst beantragen Aufgaben nach einem Zeitplan oder sobald sie im Netzwerk erscheinen. ACS verfolgt, welche Einheiten bereits Aufgaben erhalten haben und wie diese beendet wurden, und schreibt dies in die Parameter der Einheit. Es gibt 1 Einheit in unserer Gruppe, und wenn es 1001 wären, würde der Administrator diese Aufgabe starten und angeln gehen

Aufleuchten. Starten Sie den Router bereits neu oder starten Sie den TR-069-Client neu. Alles sollte reibungslos verlaufen und Mr.White bekommt ein neues VLAN. Und unsere Stop-Regel-Aufgabe wechselt in den Status PAUSED. Das heißt, es kann immer noch neu gestartet oder geändert werden. Wenn Sie auf FERTIG klicken, wird die Aufgabe ins Archiv abgeschrieben

4.4 Aktualisieren der Software

Dies ist ein sehr wichtiger Punkt, da die Mikrotik-Firmware modular aufgebaut ist, das Hinzufügen von Modulen jedoch nichts an der gesamten Firmware-Version des Geräts ändert. Unser ACS ist normal und daran nicht gewöhnt.
Jetzt machen wir es im Quick & Dirty-Stil und pushen das NTP-Modul gleich in die allgemeine Firmware, aber sobald die Version auf dem Gerät aktualisiert ist, können wir auf die gleiche Weise kein weiteres Modul mehr hinzufügen .
In der Produktion ist es besser, auf einen solchen Trick zu verzichten und Module, die für Unit Type optional sind, nur mit Skripten zu installieren.

Als Erstes müssen wir also Softwarepakete mit den erforderlichen Versionen und Architekturen vorbereiten und sie auf einen verfügbaren Webserver stellen. Für den Test wird jeder gehen, der unseren Mr.White erreichen kann, und für die Produktion ist es besser, einen automatisch aktualisierenden Spiegel der erforderlichen Software zu erstellen, dessen Veröffentlichung im Internet nicht beängstigend ist
Wichtig! Vergessen Sie nicht, bei Updates immer das tr-069client-Paket einzubinden!

Wie sich herausstellte, ist die Länge des Pfades zu den Paketen sehr wichtig! Wenn ich versuche, so etwas wie zu verwenden http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npkMikrotik stellte eine zyklische Verbindung mit der Ressource her und sendete wiederholt TRANSFERCOMPLETE-Protokolle an tr-069. Und ich habe einige Nervenzellen verschwendet, um herauszufinden, was los war. Deshalb legen wir es bis zur Klärung in die Wurzel

Wir sollten also drei NPK-Dateien über http verfügbar haben. Ich habe es so hinbekommen

http://192.168.0.241/routeros-mipsbe-6.45.6.npk
http://192.168.0.241/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
http://192.168.0.241/routeros/stable/mipsbe/tr069-client-6.45.6-mipsbe.npk

Nun muss dies in eine XML-Datei mit FileType = „1 Firmware Upgrade Image“ formatiert werden, die wir an Mikrotik weiterleiten. Der Name sei ros.xml

Wir machen nach den Anweisungen von mikrotik-wiki:

<upgrade version="1" type="links">
    <config />
    <links>
        <link>
            <url>http://192.168.0.241/routeros-mipsbe-6.45.6.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/ntp-6.45.6-mipsbe.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk</url>
        </link>
    </links>
</upgrade>

Ein Mangel ist offensichtlich Username/Password um auf den Download-Server zuzugreifen. Sie können entweder versuchen, es wie in Abschnitt A.3.2.8 des tr-069-Protokolls einzugeben:

<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>

Oder fragen Sie direkt die Mikrotik-Beamten nach der maximalen Pfadlänge zu *.npk

Wir gehen zum Bekannten Files & Scripts, und erstellen Sie dort eine SOFTWARE-Datei mit Name:ros.xml, Zielname:ros.xml und Version:6.45.6
Aufmerksamkeit! Die Version muss hier genau in dem Format angegeben werden, in dem sie auf dem Gerät angezeigt wird und im Parameter übergeben wird System.X_FREEACS-COM.Device.SoftwareVersion.

Wir wählen unsere xm-Datei zum Laden aus und fertig.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Jetzt haben wir viele Möglichkeiten, das Gerät zu aktualisieren. Über den Assistenten im Hauptmenü, über „Erweiterte Bereitstellung“ und Aufgaben mit dem Typ „SOFTWARE“ oder gehen Sie einfach zur Gerätekonfiguration und klicken Sie auf „Upgrade“. Wählen wir den einfachsten Weg, sonst quillt der Artikel auf.

TR-069 bei Mikrotik. Testen von Freeacs als Autokonfigurationsserver für RouterOS

Wir drücken den Knopf, leiten die Bereitstellung ein und fertig. Das Testprogramm ist abgeschlossen. Jetzt können wir mehr mit Mikrotik machen.

5. Заключение

Als ich mit dem Schreiben begann, wollte ich zunächst den Anschluss eines IP-Telefons beschreiben und anhand seines Beispiels erklären, wie cool es sein kann, wenn tr-069 einfach und mühelos funktioniert. Aber als ich dann weiterkam und mich mit den Materialien beschäftigte, dachte ich, dass für diejenigen, die den Mikrotik angeschlossen haben, kein Telefon für das Selbststudium unheimlich sein würde.

Im Prinzip können Freeacs, die wir getestet haben, bereits in der Produktion verwendet werden, aber dafür müssen Sie Sicherheit und SSL konfigurieren, Sie müssen Microtics für die automatische Konfiguration nach dem Zurücksetzen konfigurieren, Sie müssen das korrekte Hinzufügen von Unit Type debuggen und zerlegen Arbeit von Webservices und Fusion Shell und vieles mehr. Versuchen, erfinden und schreiben Sie eine Fortsetzung!

Vielen Dank an alle für Ihre Aufmerksamkeit! Über Korrekturen und Kommentare freue ich mich!

Liste der verwendeten Materialien und nützlichen Links:

Ein Forenthread, auf den ich gestoßen bin, als ich begann, nach dem Thema zu suchen
TR-069 CPE WAN Management Protocol Amendment-6
Freeacs-Wiki
Parameter tr-069 in Mikrotik und ihre Entsprechung zu Terminalbefehlen

Source: habr.com