Kategorie: Ubuntu

  • finden und löschen von leeren Ordnern

    find . -type d -empty -delete

  • Gateway löschen und setzen mit „route“

    Löschen des Standard Gateways
    route del default gw 192.168.1.1

    Setzen des Standard Gateways für das Interface eth0
    route add default gw 192.168.2.1 eth0

  • VPN Einrichten

    Installation des OpenVPN-Servers

    Installation der verfügbaren Updates sowie der benötigten Pakete

    1. Zunächst ist es wichtig, das Debian-System auf den aktuellsten Stand zu bringen, indem Sie mit dem folgenden Befehlen alle verfügbaren Updates aus dem Repository installieren:

    # apt-get update
    # apt-get upgrade
    2. Im nächsten Schritt können Sie OpenVPN ebenfalls aus dem Repository installieren.

    # apt-get install openvpn
    Beispiel-Konfiguration übernehmen und anpassen

    1. Für einen OpenVPN-Server ist es empfehlenswert, dass Sie die Beispielkonfiguration von OpenVPN als Basis für Ihre Konfiguration verwenden. Sie können diese mit den folgenden Befehlen kopieren:

    # cd /usr/share/doc/openvpn/examples/sample-config-files/
    # cp server.conf.gz /etc/openvpn/
    2. Da die Beispielkonfigurationsdatei noch als gepacktes Gzip-Archiv vorliegt, ist es erforderlich, diese Datei zu entpacken:

    # cd /etc/openvpn/
    # gunzip server.conf.gz
    Easy-RSA-Zertifkatsskripte kopieren

    1. Um die Zertifikate einfach erstellen und verwalten zu können, ist es erforderlich, die Key-Management-Skripte nach /etc/openvpn/easy-rsa2 zu kopieren.

    # cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 easy-rsa2
    2. In den nächsten Schritten werden die erstellten Zertifikate und Keys im Ordner „keys“ abgespeichert, dieser existiert zum jetzigen Zeitpunkt jedoch noch nicht.

    Daher können Sie den Ordner „keys“ einfach mit dem folgenden Befehl erstellen:

    # cd /etc/openvpn/easy-rsa2
    # mkdir keys
    3. Zudem ist es notwendig, dass die OpenSSL-Konfigurationsdatei openssl.cnf besteht. Hierfür können Sie die bereits vorhandene Datei openssl-1.0.0.cnf kopieren:

    # cp openssl-1.0.0.cnf openssl.cnf
    Easy-RSA-Parameter anpassen

    1. Die Parameter für Easy-RSA sind in der Datei /etc/openvpn/easy-rsa2/vars hinterlegt und werden anschließend in Ihre aktuellen Umgebungsvariablen übernommen.

    Um diese Datei zu bearbeiten, können Sie einen beliebigen Texteditor wie z.B. vim oder nano verwenden.

    # vim vars
    2. Nun ist es erforderlich, dass Sie die folgenden Zeilen in der Datei vars für Ihre Zwecke anpassen.

    export KEY_COUNTRY=“US“
    export KEY_PROVINCE=“CA“
    export KEY_CITY=“SanFrancisco“
    export KEY_ORG=“Fort-Funston“
    export KEY_EMAIL=“me@myhost.mydomain“
    Beispielsweise wäre es möglich, folgende Einstellungen zu hinterlegen:

    export KEY_COUNTRY=“DE“
    export KEY_PROVINCE=“BY“
    export KEY_CITY=“Ismaning“
    export KEY_ORG=“JiffyBox VPN“
    export KEY_EMAIL=“ihre@e-mail-adresse“
    3. Mit dem folgenden Befehl können Sie die in der Datei „vars“ hinterlegten Variablen in Ihre aktuellen Umgebungsvariablen aufnehmen. Dies ist unter anderem erforderlich, damit diese Einstellungen als Standardwerte beim Erstellen der Zertifikate verwendet werden können.

    # source ./vars
    Zertifikate erstellen

    CA erstellen

    Bevor Sie nun die Zertifikate für den OpenVPN-Server sowie die Clients erstellen können, ist es notwendig, das CA-Zertifikat zum Signieren der Server- und Clientzertifikate zu erstellen. Dies können Sie mit den folgenden Befehlen durchführen.

    Hierbei können Sie die im vorigen Schritt konfigurierten Parameter in den eckigen Klammern einfach übernehmen, indem Sie die Eingabetaste betätigen.

    # ./clean-all
    # ./build-ca
    Generating a 1024 bit RSA private key
    …………………….++++++
    …..++++++
    writing new private key to ‚ca.key‘
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‚.‘, the field will be left blank.
    —–
    Country Name (2 letter code) [DE]:
    State or Province Name (full name) [BY]:
    Locality Name (eg, city) [Ismaning]:
    Organization Name (eg, company) [JiffyBox VPN]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server’s hostname) [changeme]:
    Name [changeme]:
    Email Address [ihre@e-mail-adresse]:
    Serverzertifikat erstellen

    Das Zertifikat für den OpenVPN-Server können Sie einfach mit dem folgenden Befehl ausführen. Hierbei ist es jedoch wichtig, dass der „Common Name“ dem Hostnamen des OpenVPN-Servers entspricht.

    Bitte bestätigen Sie am Ende zweimal mit y, dass Sie das neu erstellte Serverzertifikat signieren möchten.

    # ./build-key-server j12345.servers.jiffybox.net
    Generating a 1024 bit RSA private key
    …++++++
    ……..++++++
    writing new private key to ‚j58613.servers.jiffybox.net.key‘
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‚.‘, the field will be left blank.
    —–
    Country Name (2 letter code) [DE]:
    State or Province Name (full name) [BY]:
    Locality Name (eg, city) [Ismaning]:
    Organization Name (eg, company) [JiffyBox VPN]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server’s hostname) [j12345.servers.jiffybox.net]:
    Name [changeme]:JiffyBox VPN-Server
    Email Address [ihre@e-mail-adresse]:

    Please enter the following ‚extra‘ attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa2/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName :PRINTABLE:’DE‘
    stateOrProvinceName :PRINTABLE:’BY‘
    localityName :PRINTABLE:’Ismaning‘
    organizationName :PRINTABLE:’JiffyBox VPN‘
    organizationalUnitName:PRINTABLE:’changeme‘
    commonName :PRINTABLE:’j12345.servers.jiffybox.net.‘
    name :PRINTABLE:’JiffyBox VPN-Server‘
    emailAddress :IA5STRING:’ihre@e-mail-adresse‘
    Certificate is to be certified until Aug 14 10:41:34 2023 GMT (3650 days)
    Sign the certificate? [y/n]:y

    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    Client-Zertifikat erstellen

    Die Erstellung der Client-Zertifikate entspricht in etwa der Erstellung des Serverzertifikats, hierbei verwenden Sie jedoch bitte das Skript „build-key“.

    Auch hier ist es wichtig, dass der „Common Name“ dem Hostnamen des OpenVPN-Clients entspricht. Bitte bestätigen Sie am Ende ebenfalls zweimal mit y, dass das gerade erstellte Client-Zertifikat signiert werden soll.

    Diesen Schritt können Sie für jeden Client, der sich mit einem Zertifikat anmelden soll, wiederholen.

    # ./build-key client1.domain.tld
    Generating a 1024 bit RSA private key
    ……++++++
    …….++++++
    writing new private key to ‚client1.domain.tld.key‘
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‚.‘, the field will be left blank.
    —–
    Country Name (2 letter code) [DE]:
    State or Province Name (full name) [BY]:
    Locality Name (eg, city) [Ismaning]:
    Organization Name (eg, company) [JiffyBox VPN]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server’s hostname) [client1.domain.tld]:
    Name [changeme]:
    Email Address [ihre@e-mail-adresse]:

    Please enter the following ‚extra‘ attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa2/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName :PRINTABLE:’DE‘
    stateOrProvinceName :PRINTABLE:’BY‘
    localityName :PRINTABLE:’Ismaning‘
    organizationName :PRINTABLE:’JiffyBox VPN‘
    organizationalUnitName:PRINTABLE:’changeme‘
    commonName :PRINTABLE:’client1.domain.tld‘
    name :PRINTABLE:’changeme‘
    emailAddress :IA5STRING:’ihre@e-mail-adresse‘
    Certificate is to be certified until Aug 14 12:52:31 2023 GMT (3650 days)
    Sign the certificate? [y/n]:y

    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    Client-Zertifikat erstellen (mit Passwort)

    Die Erstellung der Clientzerfitikate entspricht in etwa der Erstellung des Serverzertifikats, hierbei verwenden Sie jedoch bitte das Skript build-key-pass.

    Das Erstellen eines Zertifikates mit Passwortschutz ist vor allem bei mobilen Computern empfehlenswert, sodass bei einem Verlust des Geräts immer noch das Passwort benötigt wird, um in das VPN-Netzwerk zu gelangen.

    Auch hier sollte der „Common Name“ dem Hostnamen des OpenVPN-Clients entsprechen. Bitte bestätigen Sie am Ende ebenfalls zweimal mit y, dass das gerade erstellte Clientzertifikat signiert werden soll.

    Diesen Schritt können Sie für jeden Client, der sich mit einem Zertifikat und zusätzlich mit einem Passwort anmelden soll, wiederholen.

    # ./build-key-pass windows-client.local
    Generating a 1024 bit RSA private key
    ..++++++
    …….++++++
    writing new private key to ‚windows-client.local.key‘
    Enter PEM pass phrase:
    Verifying – Enter PEM pass phrase:
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‚.‘, the field will be left blank.
    —–
    Country Name (2 letter code) [DE]:
    State or Province Name (full name) [BY]:
    Locality Name (eg, city) [Ismaning]:
    Organization Name (eg, company) [JiffyBox VPN]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server’s hostname) [windows-client.local]:
    Name [changeme]:
    Email Address [mail@host.domain]:

    Please enter the following ‚extra‘ attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa2/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName :PRINTABLE:’DE‘
    stateOrProvinceName :PRINTABLE:’BY‘
    localityName :PRINTABLE:’Ismaning‘
    organizationName :PRINTABLE:’JiffyBox VPN‘
    organizationalUnitName:PRINTABLE:’changeme‘
    commonName :PRINTABLE:’windows-client.local‘
    name :PRINTABLE:’changeme‘
    emailAddress :IA5STRING:’mail@host.domain‘
    Certificate is to be certified until Aug 18 09:55:41 2023 GMT (3650 days)
    Sign the certificate? [y/n]:y

    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    Diffie-Hellman-Parameter auf dem Server erstellen

    Um beim Aufbauen der Verbindung die Schlüssel sicher über eine potentiell unsichere Verbindung (durch das Internet) zu übertragen, werden die Diffie-Hellmann-Parameter benötigt.

    Diese können Sie mit dem folgenden Befehl erstellen:

    # ./build-dh
    Generating DH parameters, 1024 bit long safe prime, generator 2
    This is going to take a long time
    ……………………+……….+………………………+……………………………+……….++*++*++*
    OpenVPN-Configdatei anpassen

    1. Zum Abschluss ist es wichtig, dass Sie die in einem der vorigen Schritte kopierte OpenVPN-Beispielkonfigurationsdatei anpassen, dies können Sie beispielsweise mit vim oder einem anderen Texteditor durchführen:

    # vim /etc/openvpn/server.conf
    2. Als nächstes können Sie die folgenden Einträge entsprechend an Ihre Einsatzwecke anpassen:

    ca ca.crt
    cert server.crt
    key server.key # This file should be kept secret

    dh dh1024.pem

    server 10.8.0.0 255.255.255.0
    ;user nobody
    ;group nogroup
    Nach der Bearbeitung könnten diese Einträge beispielsweise wie folgt aussehen. Um Probleme mit den Zertifikaten zu vermeiden, wurden in diesem Beispiel die absoluten Pfade zu den Zertifkaten verwendet:

    ca /etc/openvpn/easy-rsa2/keys/ca.crt
    cert /etc/openvpn/easy-rsa2/keys/j12345.servers.jiffybox.net.crt
    key /etc/openvpn/easy-rsa2/keys/j12345.servers.jiffybox.net.key
    dh /etc/openvpn/easy-rsa2/keys/dh1024.pem

    server 172.16.0.0 255.255.255.0

    user nobody
    group nogroup
    OpenVPN-Service starten

    1. Da die Einrichtung des OpenVPN-Servers erfolgreich abgeschlossen wurde, können Sie Ihren OpenVPN-Server nun mit dem folgenden Befehl starten:

    # service openvpn start
    2. Es sollte nun im Syslog (/var/log/syslog) folgende Meldung erscheinen, welche Ihnen anzeigt, dass der OpenVPN-Server erfolgreich gestartet wurde und nun aktiv ist:

    Aug 16 15:48:22 localhost ovpn-server[5839]: Initialization Sequence Completed
    3. Weiterhin können Sie mit dem Befehl ifconfig überprüfen, ob nun ein weiteres Interface tun0 angelegt wurde, das durch den OpenVPN-Dienst bereitgestellt wird:

    tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    inet addr:172.16.0.1 P-t-P:172.16.0.2 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:100
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Installation und Einrichtung des OpenVPN-Clients auf einem Windows-System

    Nachfolgend wird beschrieben, wie man sich mit dem Windows-OpenVPN-Client mit einem OpenVPN-Server verbinden kann.

    Download des OpenVPN-Clients

    Bitte laden Sie sich zunächst die aktuellste Version des OpenVPN-Clients von der Webseite des OpenVPN-Projekts herunter und installieren Sie diesen:

    http://openvpn.net/index.php/open-source/downloads.html

    Sollten Sie ein 64 Bit Windows-Betriebssystem verwenden, so ist es erforderlich, dass Sie die 64-Bit-Version des OpenVPN-Clients herunterladen und installieren.

    Übertragen der Zertifikate vom Server

    Für den Betrieb des OpenVPN-Clients ist es notwendig, dass das CA-Zertifikat, das Client-Zertifikat und der Client-Key vom OpenVPN-Server übertragen werden.

    Übertragen der Zertifkatsdateien

    Die benötigten Dateien liegen auf dem OpenVPN-Server in folgendem Pfad:

    /etc/openvpn/easy-rsa2/keys
    Folgende Dateien müssen aus diesem Verzeichnis auf den Windows-OpenVPN-Client in das Verzeichnis C:\Program Files\OpenVPN\config übertragen werden:

    ca.crt
    .crt
    .key

    Bitte ersetzen Sie hierbei jeweils durch den von Ihnen verwendeten Hostnamen des OpenVPN-Client-Systems.

    Übertragen der Clientkonfiguration

    1. Sie können die Beispielkonfigurationsdatei vom OpenVPN-Server auf Ihren Windows-Client übertragen und dort entsprechend anpassen. Sie finden diese Datei unter folgendem Pfad auf dem OpenVPN-Server: /usr/share/doc/openvpn/examples/sample-config-files/client.conf.

    Bitte speichern Sie diese Datei ebenfalls im Verzeichnis C:\Program Files\OpenVPN\config ab. Bitte beachten Sie jedoch, dass die Dateiendung „.ovpn“ lauten muss, da der OpenVPN-Client diese sonst nicht erkennt (Beispieldateiname: client.ovpn)

    2. Folgende Zeilen müssten ggf. noch angepasst werden, damit die OpenVPN-Verbindung funktioniert:

    remote my-server-1 1194

    cert client.crt
    key client.key
    Diese könnten dann nach der Bearbeitung beispielsweise so aussehen:

    remote ip.ip.ip.ip 94

    cert windows-client.local.crt
    key windows-client.local.key
    3. Nun sollte der Ordner C:\Program Files\OpenVPN\config folgende Dateien beinhalten:

    ca.crt
    .crt
    .key
    client.ovpn
    Starten des Clients

    1. Rufen Sie nun über das Windows-Startmenü die OpenVPN GUI auf, sodass im Infobereich der Taskleiste das OpenVPN-Logo erscheint.

    2. Klicken Sie auf dieses Logo mit der rechten Maustate und wählen Sie die Schaltfläche „Verbinden“:

    3. Sollten Sie ein Zertifikat mit Passwort verwenden, so erscheint nun eine Passwortabfrage, bei der Sie nach dem Passwort gefragt werden. Geben Sie in dieses Eingabefeld das von Ihnen gewählt Passwort ein.

    4. Nach der Eingabe des Passworts wird die Verbindung aufgebaut, sodass sich Ihr Windows-System in Ihrem OpenVPN-System befindet.

    Einrichtung eines OpenVPN-Clients auf einem Debian- oder einem Ubuntu-System

    Installation der verfügbaren Updates sowie der benötigten Pakete

    Auch auf dem Client-System ist es wichtig, die aktuellsten Updates sowie das OpenVPN-Paket aus dem Repository zu installieren. Dies können Sie mit den folgenden Befehlen einfach durchführen:

    # apt-get update
    # apt-get upgrade
    # apt-get install openvpn
    Beispiel-Konfiguration übernehmen und anpassen

    Für das Client-System ist es empfehlenswert, dass Sie die Beispiel-Client-Konfigurationsdatei verwenden, da Sie diese mit nur wenigen Änderungen als Konfigurationsdatei übernehmen können.

    1. Mit den folgenden Befehlen können Sie diese Datei in das Verzeichnis /etc/openvpn kopieren:

    # cd /etc/openvpn
    # cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
    2. Öffnen Sie nun diese Datei mit einem Texteditor, wie z.B. vim:

    # vim client.conf
    3. Bitte ersetzen Sie nun den Hostnamen in der folgenden Zeile in der Datei client.conf durch die IP bzw. den Hostnamen Ihrer JiffyBox:

    remote j54321.servers.jiffybox.net 1194
    Übertragen der Zertifikate vom Server

    Da auch der Linux-Client das CA-Zertifikat sowie das Client-Zertifikat benötigt, können Sie diese mittels scp von Ihrem OpenVPN-Server mit den folgenden Befehlen kopieren. Auch hier ist es erforderlich, den Hostnamen bzw. die IP Ihrer JiffyBox entsprechend anzupassen:

    # scp root@j12345.servers.jiffybox.net:/etc/openvpn/easy-rsa2/keys/ca.crt .
    # scp root@j12345.servers.jiffybox.net:/etc/openvpn/easy-rsa2/keys/client1.domain.tld.crt client.crt
    # scp root@j12345.servers.jiffybox.net:/etc/openvpn/easy-rsa2/keys/client1.domain.tld.key client.key
    OpenVPN-Service starten

    Abschließend können Sie mit folgendem Befehl den OpenVPN-Client starten, sodass sich auch der Linux-Client in Ihrem OpenVPN-Netzwerk befindet:

    # service openvpn start

  • Automatisch Bilder beschneiden

    mogrify -crop 1280×720+0+120 +repage bilder*

    -crop = beschneiden
    1280×720 = der Bildausschnitt
    +0+120 = die Ausschnittsverschiebung

    zum Beispiel (ORIGINAL) 1280×960 (ERGEBNISS) 1280×720

    in Worten schneide einen Bildausschnitt von 1280×720 aus dem Bild der um 120 vom oberen Rand und 0 vom linken Rand verschoben ist aus.

    +repage = Entferne den entstandenen Rand

  • Volltextsuche unter Linux

    find . -type f -exec grep -qi "suchwort" {} \; -print

    find = Suchprogramm
    . = das Verzeichnis
    -type f = durchsucht nur Type File
    grep  = Sucht nach einem bestimmten Suchwort

  • Einige Bilder in ein animiertes Gif konvertieren

    convert -delay 1 -loop 0 -layers OptimizeFrame -colors 51 image*.jpg filename.gif

  • Löschen von Backupdateien „backupdatei~“

    find /pfad/zum/verzeichnis -name "*~" -delete