Raspbian Warnung: Kernel lacks cgroups or memory controller not available, not starting cgroups

Nach der Installation des Raspbian Betriebssystems (Version vom 2015-02-16) auf dem Raspberry Pi, erscheint bei jedem Start folgende Warnung in der Konsole.

[warn] Kernel lacks cgroups or memory controller not available, not starting cgroups

Grundsätzlich kann diese Warnung ignoriert werden. Wenn man sie trotzdem loshaben möchte, kann dies durch eine Anpassung an der Datei /boot/cmdline.txt erreicht werden. Über die Datei cmdline.txt können Parameter definiert werden, die beim Bootvorgang an den Linux Kernel übergeben werden.
Achtung: Es besteht natürlich bei solchen Änderungen immer die Gefahr, dass etwas beschädigt werden kann!!

1. Datei „/boot/cmdline.txt“ mit den notwendigen Rechten im Texteditor öffnen

 sudo nano /boot/cmdline.txt

2. Folgenden Eintrag

 cgroup_enable=memory

vor diesen einfügen

 elevator=deadline

Beispiel wie der Inhalt nach der Anpassung aussehen kann.

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 cgroup_enable=memory elevator=deadline rootwait

3. Datei abspeichern. Unter nano geht das durch STRG + X, Y und Enter

4. System (ohne Warnung) neu starten

sudo reboot

WLAN über Konsolen-Befehl oder Shell-Script aktivieren/deaktivieren (Toggle Wi-Fi Connection Command/Script)

Viele verwenden ein Notebook um flexibel an unterschiedlichen Orten arbeiten zu können. Viele kennen dabei das Problem: Manchmal muss man auf das WLAN ausweichen, da es keinen Internetanschluss direkt über das Netzwerkkabel am aktuellen Arbeitsplatz gibt. Hat man aber das Glück und nutzt für längere Zeit keine WLAN Verbindung, kann es sinnvoll sein das WLAN komplett zu deaktivieren. Dies macht sich z. B. deutlich bei der Akkulaufzeit bemerkbar.

Da ich kein Freund von Symbolen in der Mac OS Menüleiste bin, müsste ich jedes Mal den Umweg über Systemeinstellungen > Netzwerk nehmen, um das WLAN zu aktivieren oder zu deaktivieren. Da mir dies auf Dauer zu umständlich wurde, habe ich nachfolgende Lösungen gefunden.

Terminal-Befehl

Durch folgenden kleinen Befehl, kann direkt über das Terminal die Wi-Fi Verbindung aktiviert bzw. deaktiviert werden.

networksetup -getairportpower en0 | grep "On" && networksetup -setairportpower en0 off || networksetup -setairportpower en0 on

Vorraussetzung ist natürlich, dass das Wi-Fi Interface unter „en0“ zu erreichen ist.
Dies kann aber einfach durch folgenden Befehl geprüft bzw. herausgefunden werden.
Falls nicht, müssen im Script die Werte „en0“ angepasst werden.

networksetup -listnetworkserviceorder

Shell-Script

Um nicht jedes Mal den komplizierten Terminal-Befehl eintippen zu müssen, habe ich eine kleines Shell-Script erstellt, dass genau wie der Terminal-Befehl die Wi-Fi Verbindung aktiviert bzw. deaktiviert.
Hier muss man sich keine Gedanken um das richtige Interface machen, da dies dynamisch ausgelesen wird.

„ToggleWIFI.sh“ Datei herunterladen

Das Script kann einfach über den Befehl „./toggleWIFI.sh“ gestartet werden. Evtl. muss die Datei vor dem ersten Ausführung mit dem Befehl „chmod +x toggleWIFI.sh“ ausführbar gemacht werden.

Command-Datei

Für alle die z. B. direkt über den Finder die Wi-Fi Verbindung aktivieren oder deaktivieren möchten, können auch die bereitgestellte Command-Datei verwenden. Diese kann unter Mac OS X bequem durch einen Doppelklick mit der linken Maustaste ausgeführt werden.

„toggleWIFI.command“ Datei herunterladen

Serverdienste wie SSH mit Fail2Ban auf dem Raspberry Pi absichern

Mit Fail2Ban steht ein in Python geschriebenes Intrusion Prevention System (Framework zur Vorbeugung gegen Einbrüche) zur Verfügung, welches verschiedene Serverdienste gegen unbefugten Zugriff absichern kann. Fail2Ban analysiert Log-Dateien, die von Anwendungen und das Betriebssystem erzeugen werden. Erkennt Fail2Ban durch bestimmte Muster einen unberechtigten Zugriff, so kann die IP des Angreifers für einen gewissen Zeitraum gesperrt werden. Dadurch kann das Fluten des Servers mit bösartigen Verbindungsversuchen verhindert werden.

Um Fail2Ban zu installieren und einzurichten, müssen folgende Schritte ausgeführt werden

1. Zuerst muss sich ein Benutzer an das System (direkt oder per SSH) einloggen. Es wird ein Benutzer benötigt, der Admin-Rechte besitzt oder sich die Berechtigung durch den sudo Befehl geben kann.

2. Über das Paketmanagement-System kann Fail2Ban leicht mit folgendem Befehl installiert werden.

sudo apt-get install fail2ban

3. Jetzt sollte Fail2Ban noch eingerichtet werden. Die Datei mit der Standardkonfiguration findet man normalerweiße unter „/etc/fail2ban/jail.conf“. Diese Datei sollte aber nicht angepasst werden, da diese bei einem Update überschrieben werden kann. Um dies zu vermeiden, wird eine eigene „lokale“ Konfigurationsdatei angelegt.
Dazu muss einfach folgender Befehl ausgeführt werden.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

4. Nun kann die Konfigurationsdatei mit einem Texteditor geöffnet und angepasst werden.

sudo nano /etc/fail2ban/jail.local

Konfiguration
Die Standardkonfiguration enthält bereits einige Regeln, die sogenannten Jails. Diese enthalten Filter, die durch reguläre Ausdrücke definiert werden. Diese können selbstverständlich noch erweitert werden.

Es ist zu empfehlen, dass beim Parameter „ignoreip“ die IP-Adresse des eigenen Computers oder die des internen Netzwerkes eingetragen wird. Somit wird verhindert, dass man von Fail2Ban versehentlich ausgesperrt wird.
Beispiel:

ignoreip = 127.0.0.1/8 192.168.1.0/24 206.156.25.46

5. Damit die Anpassungen an der Konfiguration übernommen werden, muss Fail2Ban mit folgendem Befehl neu gestartet werden.

sudo /etc/init.d/fail2ban restart

Log-Dateien

Die Log-Datei für Fail2Ban kann z. B. mit diesem Befehl angezeigt werden.

sudo tail -f /var/log/fail2ban.log

Wurde für einen bestimmten Jail (z. B. für SSH) eine Logdatei definiert, so kann diese mit diesem Befehl angezeigt werden.

sudo cat /var/log/auth.log | more

SSH Port unter XBian ändern

Vor allem dann, wenn der Raspberry Pi über SSH aus dem Internet erreibar ist, sollte der standardmäßig eingestellte SSH Port 22 auf einen anderen Port umgestellt werden. Da viele der Loginattacken über SSH auf den Standard-Port 22 erfolgen, ist das Umstellen eine einfache und effektive Methode zum Schutz. Gültige Werte sind Portnummern im Bereich von 1-65535. Es ist aber ratsam eine größere Portnummer zu verwenden. Dies erschwert das Eindringen durch Portscanner zusätzlich, da es bei einen Portscan realtiv lange dauert, bis der eingestellte Port gescannt wird.

Hinweis
Zu beachten ist auch, dass keine standardisierten Ports oder Ports die andere Dienste benötigen, eingestellt werden. Eine Liste von standardisierten TCP/UDP-Ports findet man unter:
http://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports

Anleitung: SSH Portnummer unter XBian ändern

1. Zuerst muss sich ein Benutzer an das System (direkt oder per SSH) einloggen. Es wird ein Benutzer benötigt, der Admin-Rechte besitzt oder sich die Berechtigung durch den sudo Befehl geben kann

2. Datei /etc/services mit einem Texteditor öffnen (z. B. nano oder vi)

sudo nano /etc/services

3. Bei folgende Zeilen mit den gewünschten Port anpassen

ssh        22/tcp                # SSH Remote Login Protocol
ssh        22/udp 

z. B. ändern auf

ssh        62340/tcp             # SSH Remote Login Protocol
ssh        62340/udp  

4. Datei abspeichern. Unter nano geht das durch STRG + X, Y und Enter

5. Unter XBian ist es notwendig einen kompletten Neustart des Systems durchzuführen, da hier sshd über inetd (/etc/inetd.conf) gestartet wird

sudo reboot

SSH Port ändern – Raspbian (Linux/Debian) etc..

Vor allem dann, wenn der Raspberry Pi über SSH aus dem Internet erreibar ist, sollte der standardmäßig eingestellte SSH Port 22 auf einen anderen Port umgestellt werden. Da viele der Loginattacken über SSH auf den Standard-Port 22 erfolgen, ist das Umstellen eine einfache und effektive Methode zum Schutz. Gültige Werte sind Portnummern im Bereich von 1-65535. Es s ist aber ratsam eine größere Portnummer zu verwenden. Dies erschwert das Eindringen durch Portscanner zusätzlich, da es bei einen Portscan realtiv lange dauert, bis der eingestellte Port gescannt wird.

Hinweis
Zu beachten ist auch, dass keine standardisierten Ports oder Ports die andere Dienste benötigen, eingestellt werden. Eine Liste von standardisierten TCP/UDP-Ports findet man unter:
http://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports

Anleitung: SSH Portnummer unter Raspbian ändern

1. Zuerst muss sich ein Benutzer an das System (direkt oder per SSH) einloggen. Es wird ein Benutzer benötigt, der Admin-Rechte besitzt oder sich die Berechtigung durch den sudo Befehl geben kann

2. Datei /etc/ssh/sshd_config mit einem Texteditor öffnen (z. B. nano oder vi)

sudo nano /etc/ssh/sshd_config

3. Folgende Zeile „Port 22“ durch den gewünschten Port anpassen

Port 22  

z. B. ändern auf

Port 62340  

4. Datei abspeichern. Unter nano geht das durch STRG + X, Y und Enter

5. Jetzt muss nur noch der SSH Dienst neu gestartet werden.

sudo /etc/init.d/ssh restart

5. Um zu prüfen ob alles korrekt eingestellt ist, kann durch folgenden Befehl ausgegeben werden, ob auf dem neuen Port gelauscht wird.

netstat -tnl | grep 31460