Schlagwort: debian

  • LXC-Container mit zwei+ IP-Adressen in verschiedenen Netzwerken

    Mit mehrere Netzwerkgeräten kann man einem LXC-Container mehrere IP-Adressen in unterschiedlichen Netzen zuweisen.

    Dazu erstellt man in der LXC-Container-Konfiguration (z.B.: /var/lib/lxc/beispiel-kontainer/config) zwei (oder mehr) Blöcke mit entsprechenden Netzwerk-Einstellungen.

    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = br0
    lxc.network.name = eth0
    lxc.network.hwaddr = 00:16:3e:1d:3f:2b
    lxc.network.ipv4 = 123.122.121.120/32
    lxc.network.ipv4.gateway = 188.187.186.185
    
    
    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = lxcbr0
    lxc.network.name = eth1
    lxc.network.hwaddr = 00:16:3e:1d:4f:1b
    lxc.network.ipv4 = 10.0.0.10
    

    In diesem Beispiel hat der Host die IP-Adresse 188.187.186.185 und der Container die private 10.0.0.10 und öffentliche 123.122.121.120 IP-Adresse. Da Host-IP und die öffentliche IP-Adresse des Containers in unterschiedlichen Netzwerken liegen muss man beim Host eine entsprechende Route eintragen.

    Hier der entsprechende Auszug aus /etc/network/interfaces des Hosts:

    iface br0 inet static
            bridge_ports eth0
            bridge_stp off
            bridge_fd 0
            bridge_maxwait 0
            address 188.187.186.185
            broadcast 188.187.186.255
            gateway 188.187.186.1    
            up route add -host  123.122.121.120/32 dev br0
    

    Nun kann der Container neu gestartet werden. Ohne Konfiguration innerhalb des Containers kennt dieser nun 2 neue Netzwerkgeräte, IP-Adressen und die entsprechenden Routen:

    $ route -n
    Kernel-IP-Routentabelle
    Ziel                         Router                      Genmask                   Flags  Metric Ref    Use Iface
    0.0.0.0                   188.187.186.185    0.0.0.0                   UG            0       0        0 eth0
    10.0.0.0                 0.0.0.0                    255.0.0.0               U              0       0        0 eth1
    188.187.186.185   0.0.0.0                    255.255.255.255   UH            0       0        0 eth0
    
  • Bash Prompt mit zufälligen Farben

    Bildschirmfoto von »2016-06-21 00-08-29«

    Wer mit vielen Containern oder Rechnern arbeitet verliert schnell den Überblick darüber in welcher Shell man sich gerade befindet. Aus diesem Grund habe ich mich entschieden die Farben meines Prompts zufällig generieren zu lassen, damit ich schnell merke in welcher Shell ich mich befinde.

    Dazu habe ich bei jedem Container drei Zeilen in die ~/.bashrc der root Nutzer eingetragen:

    r_col1=$(( $RANDOM * 6 / 32767 +1 ))
    r_col2=$(( $RANDOM * 6 / 32767 +1 ))
    PS1='\[$debian_chroot\]\[\e[3$(echo "$r_col1")m\]\u\[\033[0m\]@\[\e[3$(echo "$r_col2")m\]\h\[\033[0m\]:\w\$ '
    

    Die ersten beiden Zeilen generieren jeweils einen Zufallswert zwischen 1 und 6. Dann werden diese als Farb-Codes in den Prompt eingesetzt:

    \e[3$(echo $r_col1)m\u
    

    Dieser Teil fügt mit \e[34m einen zufälligen Farbcode hinzu (31 – 36). Darauf folgt der Benutzername mit \u. Das selbe dann nochmal in anderer Farbe für den Hostname (\h).

    Durch die Kombination von Benutzername und Hostname gibt es insgesamt 36 Farbkombinationen. Wer Rot als Farbe ausschließen möchte kann aus dem +1 einfach ein +2 machen.

    Das kann man bestimmt auch etwas eleganter umsetzen. In diesem Sinne: Verbesserungsvorschläge willkommen.

  • Passwort-Recovery bei einem Headless RaspberryPi

    Hat man seinen RaspberryPi länger nicht benutzt, oder will SD-Karten mit alten Installationen nutzen kann es sein dass man das Passwort vergessen hat.

    Da der RaspberryPi headless läuft kann man nicht einfach einen Bildschirm und Tastatur anschließen und via init=/bin/bash in eine Shell starten. Zumindest ist das in meinem Fall so.

    Deshalb nimmt man sich einfach die SD-Karte und öffnet die Passwort-Datei /etc/shadow dort kann man nun folgendes tun:

    1. Den Passwort-Hash ersetzen
    2. Den Passwort-Hash entfernen

    Bei der ersten Methode braucht es zuerst einen neuen Hash den man einsetzen kann. Bei Debian und ebenso Raspbian wird der SHA-512 Hashing-Algorithmus verwendet.

    In der /etc/shadow steht in der zweiten Spalte der Passwort-Hash, die Spalten werden hier mit : getrennt:

    root:$6$X1FoOoKgi4PZR[…]
    

    Fängt der Hash mit $6 an dann handelt es sich um SHA-512. Um nun einen neuen Hash zu generieren nutzt man folgenden Befehl:

    mkpasswd -m sha-512 
    

    Dann wird man nach dem Passwort gefragt und es wird ein Hash erstellt. Diesen kann man dann in die Passwort-Datei kopieren.

    Man kann aber auch ganz einfach den Hash ganz entfernen, dann braucht es überhaupt kein Passwort mehr. Danach sollte man beim einloggen mit passwd zur Sicherheit jedoch ein neues Passwort vergeben.

  • GRUB auf allen RAID-Festplatten installieren (Debian & Derivate)

    Installiert man ein RAID möchte man im Zweifelsfall von jeder Festplatte booten können. Deshalb sollte GRUB auf allen Festplatten installiert sein. Der Installer von Debian installiert GRUB standardmäßig jedoch nur auf einer Festplatte.

    Die einfachste Methode GRUB auf allen Festplatten eines RAIDs zu installieren ist über den folgenden Befehl:

    dpkg-reconfigure grub-pc
    

    Dort kann man nun die Festplatten auswählen auf denen GRUB installiert wird. Ändert man die Konfiguration von GRUB wird die Änderung automatisch auf alle Festplatten übertragen.

    grub-raid