Frage:
Wie kann ich die Firewall von raspbmc für den SSH-Zugriff deaktivieren?
Exeleration-G
2013-03-08 16:40:24 UTC
view on stackexchange narkive permalink

Ich möchte von einer externen IP-Adresse aus SSH in meinen Raspberry Pi einbinden können. Im Moment funktioniert dies aufgrund der Firewall von raspbmc nicht. Wie kann ich diese Firewall deaktivieren?

Vier antworten:
#1
+5
goldilocks
2013-03-08 18:50:09 UTC
view on stackexchange narkive permalink

Ganz oben auf der raspmc-Homepage steht:

Die in der Version hinzugefügte Firewall kann jetzt über die Raspbmc-Einstellungen aktiviert und deaktiviert werden.

Sie behaupten an anderer Stelle, die Firewall sei iptables und das System sei debianbasiert. Wenn Sie also keine Einstellungen finden oder es nicht funktioniert, sehen Sie sich die Liste an, die vom service --status-all code zurückgegeben wird > für "iptables". Wenn es vorhanden ist, um es zu stoppen:

  service iptables stop  

Wenn Sie es dauerhaft deaktivieren möchten, verwenden Sie:

  update-rc.d iptables disable  

Sie müssen es jedoch nicht vollständig deaktivieren. Sie müssen herausfinden, wo sich die Regeln befinden, und sie ändern. In / etc könnte sich eine Datei mit dem Namen "iptables.rules" befinden. Optional können Sie eine Datei aus den aktuell geladenen Regeln erstellen mit:

  iptables-save > iptables-rules.txt  

Bearbeiten Sie nun diese Datei und fügen Sie sie hinzu in der Nähe der Oberseite , aber nach den ersten Zeilen, die mit beginnen: INPUT , : FORWARD , : OUTPUT :

  -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT  

Dann iptables-restore < iptables -rules.txt . Dadurch wird der sshd-Port geöffnet. Wenn die Firewall sie wirklich blockiert hat, wird der sshd-Server vermutlich auch nicht standardmäßig von raspmc ausgeführt.

  service ssh start  

To Starten Sie automatisch beim Booten:

  update-rc.d ssh enable  

Wenn Sie die von iptables verwendete Regeldatei nicht finden konnten, werden Sie Sie müssen den Befehl iptables-restore mithilfe Ihrer Datei am Ende von /etc/rc.local hinzufügen.

Wenn Sie die oben genannte Firewall-Regel etwas verschärfen möchten, fügen Sie eine Subnetzmaske hinzu, die die Quell-IPs auf Ihr (W) LAN beschränkt, z. B.:

  -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT  
#2
+2
lopez.mikhael
2013-05-28 23:20:36 UTC
view on stackexchange narkive permalink

Goldilocks-Lösung hat bei mir nicht funktioniert.

Aber hier ist meine Lösung:

Ich habe diese Zeile am Ende von / etc / network / if- hinzugefügt. up.d / secure-rmc :

  sudo / sbin / iptables --flush  
Es stimmt, ich habe es als gelöst markiert, bevor ich es tatsächlich bestätigt habe. Es hat mich jedoch auf eine mögliche Lösung hingewiesen: nur das Entfernen von "iptables".
Dies funktionierte gut für mich, obwohl `service --status-all` angab, dass iptables nicht einmal ausgeführt wird. Danke für die Lösung!
#3
+1
JesseC
2014-04-10 08:49:44 UTC
view on stackexchange narkive permalink

Ersetzen Sie am Ende der Datei /etc/network/if-up.d/secure-rmc die folgenden zwei Zeilen:

  iptables -A INPUT -s $ NETMASK -i $ IFACE -j ACCEPTiptables -A INPUT -i $ IFACE -j DROP  

mit:

  iptables -A INPUT -i $ IFACE -j ACCEPT  

Hierher kommen die Regeln. Sie können sie an Ihre Bedürfnisse anpassen, anstatt die Firewall vollständig zu deaktivieren.

#4
+1
Elias
2014-04-10 11:02:42 UTC
view on stackexchange narkive permalink

Die Firewall unter Linux wird über iptables implementiert.

Sie können Ihre aktuellen Regeln mit dem folgenden Befehl anzeigen:

  iptables -L -n  

Sie können Regeln hinzufügen oder Regeln löschen. Beim Neustart werden die iptables-Regeln jedoch immer zurückgesetzt.

Aus diesem Grund gibt es eine Datei, die raspbmc bei jedem Start ausführt:

  / etc/network/if-up.d/secure-rmc  

Bearbeiten Sie es mit nano:

  sudo nano /etc/network/if-up.d/secure-rmc 

Am Ende der Datei können Sie tatsächlich die Drop-Line entfernen oder bestimmte Ports öffnen Sie können dies auch durch Hinzufügen von Zeilen tun.

Dies ist beispielsweise meine Datei, in der einige Ports geöffnet sind:

  if ["$ IFACE"! = " lo "]; dann NETMASK = $ (get_subnet $ IFACE) wenn [$ {# NETMASK} -eq 0]; dann logger -t secure-rmc "Netzmaske nicht gefunden" exit 1 fi iptables -A INPUT -s $ NETMASK -i $ IFACE -j ACCEPT iptables -A INPUT -p tcp --dport 5050 -j ACCEPT iptables -A INPUT -p tcp --dport 9091 -j ACptPT iptables -A INPUT -p tcp --dport 8888 -j ACCEPT iptables -A INPUT -i $ IFACE -j DROPfi  

Wenn Sie nur möchten Keine Blockierungsregeln, entfernen Sie die letzte Ablagezeile und entfernen Sie die $ netmask aus der ersten Akzeptanzzeile.

Sie sollten Folgendes haben:

  if ["$ IFACE"! = "lo"]; dann NETMASK = $ (get_subnet $ IFACE) wenn [$ {# NETMASK} -eq 0]; dann logger -t secure-rmc "Netzmaske nicht gefunden" beendet 1 fi iptables -A INPUT -i $ IFACE -j ACCEPTfi  


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...