Good to Know Database

Raspbmc: SSH-Zugiff von externen IP-Adressen erlauben


Wenn Sie Ihren Raspberry Pi mit Raspbmc betreiben und übers Internet auf den SSH-Daemon zugreifen wollen, müssen Sie auf Ihrem Router das sogenannte Portforwarding für den TCP-Port 22 einrichten und die Firewall iptables von Raspbmc anpassen. Diese verbietet standardmäßig alle Zugriffe welche nicht aus dem eigenen lokalen Subnetzwerk erfolgen. In der folgenden Anleitung möchte ich Ihnen zeigen, wie Sie die Firewall so konfigurieren, dass Sie auch von einer externen IP-Adresse auf den SSH-Daemon zugreifen können.

Hinweis: Bevor Sie den SSH-Zugang von externen IP-Adressen erlauben, sollten Sie unbedingt das Standard-Passwort für den Benutzer pi ändern.

Nachdem Sie das Portforwarding auf Ihrem Router eingerichtet haben, können Sie mit dem folgenden Befehl unter Raspbmc eine neue Firewall-Regel erstellen, welche den Zugriff von externen IP-Adressen erlaubt.

pi@raspbmc:~$ sudo iptables -I INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Ob die neue Firewall-Regel erstellt wurde und welche sonstigen Regeln existieren können Sie mit dem folgenden Befehl überprüfen.

pi@raspbmc:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  192.168.10.0/24      anywhere
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Jetzt sollten Sie überprüfen ob Sie von einer externen IP-Adresse auf den SSH-Daemon zugreifen können. Funktioniert der Zugriff, müssen Sie die Firewall-Regel noch dauerhaft eintragen. Andernfalls können Sie nach dem nächsten Neustart keine Verbindung mehr aufbauen. Dazu öffnen Sie die Konfigurationsdatei /etc/network/if-up.d/secure-rmc mit einem Editor.

pi@raspbmc:~$ sudo vi /etc/network/if-up.d/secure-rmc

Am Ende der Datei sollten Sie den folgenden Abschnitt vorfinden.

if [ "$IFACE" != "lo" ]; then
    NETMASK=$(get_subnet $IFACE)
    iptables -A INPUT -s $NETMASK -i $IFACE -j ACCEPT
    iptables -A INPUT -i $IFACE -j DROP
fi

Fügen Sie wie im folgenden Listing zu sehen die bereits oben verwendete Firewall-Regel ein. Beachten Sie dabei, dass die Firewall-Regel vor der Drop-Regel stehen muss.

if [ "$IFACE" != "lo" ]; then
    NETMASK=$(get_subnet $IFACE)
    iptables -A INPUT -s $NETMASK -i $IFACE -j ACCEPT
    iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i $IFACE -j DROP
fi

Für einen abschließenden Test sollten Sie einen Neustart von Raspbmc durchführen und im Anschluss eine erneut SSH-Verbindung aufbauen.

pi@raspbmc:~$ sudo shutdown -r now


Dieser Eintrag wurde am 23.02.2013 erstellt und zuletzt am 06.04.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2108.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer