Kategorie: Cheat Sheets

  • Linux Terminal/CLI Cheat Sheet

    Verzeichnisinhalt anzeigenls <Pfad zum Verzeichnis(optional)>
    Verzeichnisinhalt als Liste anzeigenls -l <Pfad zum Verzeichnis(optional)>
    Verzeichnisinhalt als Liste anzeigen mit Menschenlesbaren Dateigrößenls -lh <Pfad zum Verzeichnis(optional)>
    Verzeichnis anlegenmkdir <Verzeichnisname>
    Längeren Verzeichnispfad anlegenmkdir -p <Längerer Pfad>
    Leeres Verzeichnis löschenrm -d <Verzeichnisname>
    Verzeichnis mit Inhalt löschenrm -df <Verzeichnisname>
    Symbolischen Link anlegenln -s <Dateipfad> <Symlink-Pfad>
    Neue leere Datei anlegen (wenn die Datei schon existiert wird der Änderungszeitstempel der Datei auf das aktuelle Datum und Uhrzeit gesetzt)touch <Name der neuen Datei>
    Ausgabe eines Programms einer Datei anhängen (Datei anlegen falls die Datei noch nicht existiert)Programm>> Datei
    Beispiel:
    echo „test“ >> /tmp/testfile.log
    Ausgabe eines Programms in neue Datei schreiben (Datei ersetzen falls diese schon existiert)Programm > Datei
    Beispiel:
    mysqldump > db_backup.sql
    Live Änderungen eines Verzeichnisses ansehen
    (kann mit CTRL+C abgebrochen werden)
    watch ls -lash
    Live Änderung der Uhrzeit ansehen
    (kann mit CTRL+C abgebrochen werden)
    watch date

  • MySQL Cheat Sheet

    Datenbank anlegenCREATE DATABASE <dbname>;
    Datenbank löschenDROP DATABASE <dbname>;
    Datenbank für weitere Kommandos auswählenUSE <dbname>;
    Benutzer anlegen mit PasswortCREATE USER ‚<username>’@'<hostname>‘ IDENTIFIED BY ‚<password>‘;
    Benutzer vollen Zugriff auf Datenbank gebenGRANT ALL PRIVILEGES ON <dbname>.* TO ‚<username>’@'<hostname>‘;
    Berechtigungen neuladenFLUSH PRIVILEGES;

    Vollständiges Anwendungsbeispiel

    Wir möchten eine Datenbank mit dem Namen „sampleproject“ und einen Benutzer mit dem Namen „sampleadmin“ und dem Passwort „SuperPassword123!“ anlegen. Der Hostname des Benutzers wird „127.0.0.1“ da es nicht möglich sein soll, sich mit diesem Benutzer von einem entfernten Rechner anzumelden. Somit kann sich dieser Benutzer nur anmelden, wenn der Zugriff vom selben Rechner stattfindet, auf dem auch der Datenbankserver installiert ist.

    Anschließend soll der Nutzer „sampleadmin“ vollen Zugriff auf die Datenbank „sampleproject“ erhalten.

    CREATE DATABASE sampleproject;
    
    CREATE USER 'sampleadmin'@'127.0.0.1' IDENTIFIED BY 'SuperPassword123!';
    
    GRANT ALL PRIVILEGES ON sampleproject.* TO 'sampleadmin'@'127.0.0.1';
    
    FLUSH PRIVILEGES;
    

    Wichtig ist, dass das .* hinter dem Datenbanknamen nicht vergessen wird. Dies besagt, dass die Berechtigungen auf alle bestehenden und künftig angelegten Tabellen vergeben werden.

  • UFW Cheat Sheet

    Hier eine Übersicht der wichtigsten UFW-Befehle

    Standardmäßig erstellt UFW alle Regeln für IPv4 und IPv6. Welche Befehle du brauchst zeigt dir dieses UFW Cheat Sheet.

    Stelle sicher dass du ufw enable als letztes ausführst, um zu verhindern dass du dich aussperrst!

    UFW unter Debian und Ubuntu installieren:sudo apt install ufw
    UFW Firewall aktivieren:sudo ufw enable
    UFW Status/Regeln anzeigen:sudo ufw status
    SSH erlauben:sudo ufw allow ssh
    Regel SSH erlauben entfernen:sudo ufw delete allow ssh
    HTTP erlauben:sudo ufw allow http
    Regel HTTP erlauben entfernen:sudo ufw delete allow http
    Erlauben von IP:sudo ufw allow from 10.1.8.7 proto tcp to any port 443
    Regel Erlauben von IP entfernen:sudo ufw delete allow from 10.1.8.7 proto tcp to any port 443
    Erlaub zu IP:sudo ufw allow in to 10.1.8.7 port 443 proto tcp
    Regel Erlauben zu IP löschensudo ufw delete allow in to 10.1.8.7 port 443 proto tcp
    UFW-Kommandos bestehender Regeln ansehensudo ufw show added

    Vollständiges Anwendungsbeispiel

    Wir haben nun einen Server im Internet mit nur einer einzigen öffentlichen IP-Adresse. Dieser ist über SSH erreichbar und soll über einen Webserver eine Website hosten.

    Zuerst installieren wir UFW mit

    sudo apt-get install ufw

    Anschließend stellen wir sicher das wir uns nicht aus SSH aussperren. Dieser Schritt sollte unter keinen Umständen übersprungen werden da der Server ansonsten nicht mehr administrierbar ist.

    sudo ufw allow ssh

    Nun können wir die Firewall aktivieren. Dabei wird der Webserver unerreichbar. Dies ändern wir aber gleich.

    sudo ufw enable

    Um den Webserver nun wieder aus dem Internet erreichbar zu machen müssen wir nur noch folgenden Befehl ausführen.

    sudo ufw allow http
    sudo ufw allow https

    Durch das hinzufügen beider Protokolle wird sichergestellt, dass auch Browser die Standardmäßig über http anfragen eine Antwort bekommen. In den meisten Fällen sollte der Webserver aber so konfiguriert werden, dass er von http zu https weiterleitet.

    Hier noch einmal das vollständige Script zum einfachen kopieren und einfügen.

    sudo apt-get install ufw
    sudo ufw allow ssh
    sudo ufw enable
    sudo ufw allow http
    sudo ufw allow https

    Anwendungsfälle

    Neben dem UFW Cheat Sheet möchte ich hier auch noch einige Anwendungsfälle nennen, für welche bestimmte Kommandos relevant werden können.

    Erlauben von überall zu einer IP-Adresse mittels UFW

    Das erlauben eingehender Anfragen zu einer bestimmten IP-Adresse kann nützlich sein, wenn der Server mehr als eine IP-Adresse besitzt. So kann es zum Beispiel sein, der Server eine Management-IP hat, worüber nur SSH erlaubt sein sollte und eine weitere sogenannte Failover-IP über welche bestimmte Dienste, wie beispielsweise ein Webserver, über das Internet erreichbar gemacht werden sollen.

    UFW Kommandos bestehender Regeln anzeigen lassen

    Über das Kommando sudo ufw show added ist es möglich sich die Kommandos anzeigen zu lassen mit welchen bestimmte Regeln erstellt wurden. Dies hat mehrere Vorteile. Zum einen kann man, sollte man eine ähnliche Regel benötigen einfach spicken, zum anderen kann man, sollte man eine Regel nicht mehr benötigen einfach den entsprechenden Regelsatz nehmen und zwischen dem „ufw“ und dem „allow“ einfach ein „delete“ einfügen.

    Das delete vor der Firewall-Definition ist in der Regel nämlich der Einzige unterschied zwischen hinzufügen oder löschen.