Ik wil SSH naar mijn Raspberry Pi kunnen sturen vanaf een extern IP-adres. Op dit moment werkt dit niet vanwege de firewall van raspbmc. Hoe kan ik deze firewall uitschakelen?
Ik wil SSH naar mijn Raspberry Pi kunnen sturen vanaf een extern IP-adres. Op dit moment werkt dit niet vanwege de firewall van raspbmc. Hoe kan ik deze firewall uitschakelen?
Helemaal bovenaan de raspmc-startpagina staat:
De firewall die we in de release hebben toegevoegd, kan nu worden in- en uitgeschakeld via Raspbmc-instellingen.
Ze beweren ergens anders dat de firewall iptables is en het systeem op debian is gebaseerd, dus als je Instellingen niet kunt vinden of het werkt niet, kijk dan in de lijst die wordt geretourneerd door service --status-all
voor "iptables". Als het er is, om het te stoppen:
service iptables stop
Als je het permanent wilt uitschakelen, gebruik dan:
update-rc.d iptables disable
Je hoeft het niet volledig uit te schakelen. U moet de regels vinden en deze wijzigen. Er zou een bestand in / etc kunnen staan met de naam "iptables.rules". Optioneel kunt u een bestand maken van de huidige geladen regels met:
iptables-save > iptables-rules.txt
Bewerk nu dat bestand en voeg toe bijna bovenaan , maar na de eerste paar regels die beginnen met : INPUT
, : FORWARD
, : OUTPUT
:
-A INPUT -p tcp --dport 22 -m conntrack --ctstate NIEUW -j ACCEPT
Vervolgens iptables-restore < iptables -rules.txt
. Dit opent de sshd-poort. Natuurlijk, als de firewall het echt blokkeerde, draait raspmc waarschijnlijk ook niet standaard de sshd-server, dus:
service ssh start
automatisch starten bij opstarten:
update-rc.d ssh enable
Als je het regelsbestand dat iptables gebruikt niet kon vinden, dan moet dat iptables-restore
commando met je bestand toevoegen aan het einde van /etc/rc.local
.
Als je de bovengenoemde firewallregel een beetje sterker wilt maken, voeg dan een subnetmasker toe dat de bron-ips beperkt tot je (W) LAN, zoals:
-A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -m conntrack --ctstate NIEUW -j ACCEPTEREN
Goldilocks-oplossing werkte niet voor mij.
Maar hier is mijn oplossing:
Ik heb deze regel toegevoegd aan het einde van de / etc / network / if- up.d / secure-rmc
:
sudo / sbin / iptables --flush
Vervang aan het einde van het bestand /etc/network/if-up.d/secure-rmc de volgende twee regels:
iptables -A INPUT -s $ NETMASK -i $ IFACE -j ACCEPTiptables -A INPUT -i $ IFACE -j DROP
met:
iptables -A INPUT -i $ IFACE -j ACCEPT
Dit is waar de regels vandaan komen. U kunt ze desgewenst aanpassen aan uw behoeften in plaats van de firewall volledig uit te schakelen.
De firewall in linux wordt geïmplementeerd via iptables.
Je kunt je huidige set regels bekijken met het commando:
iptables -L -n
U kunt regels toevoegen of regels verwijderen, maar wanneer u opnieuw opstart, worden de iptables-regels altijd gereset.
Daarom is er een bestand dat raspbmc bij elke keer opstarten uitvoert:
/etc/network/if-up.d/secure-rmc
Bewerk het met nano:
sudo nano /etc/network/if-up.d/secure-rmc
Helemaal aan het einde van het bestand zou je inderdaad de drop-line kunnen verwijderen, of als je bepaalde poorten wilt openen , je zou dat ook kunnen doen door regels toe te voegen.
Dit is bijvoorbeeld mijn bestand, het heeft een paar open poorten:
if ["$ IFACE"! = " lo "]; dan NETMASK = $ (get_subnet $ IFACE) if [$ {# NETMASK} -eq 0]; dan logger -t secure-rmc "netmask niet gevonden" 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 ACCEPT iptables -A INPUT -p tcp --dport 8888 -j ACCEPT iptables -A INPUT -i $ IFACE -j DROPfi
Als je gewoon wilt hebben geen blokkeerregels, verwijder de laatste drop-regel en verwijder het $ netmask van de eerste acceptatieregel.
Je zou dit moeten hebben:
if ["$ IFACE"! = "lo"]; dan NETMASK = $ (get_subnet $ IFACE) if [$ {# NETMASK} -eq 0]; dan logger -t secure-rmc "netmask niet gevonden" exit 1 fi iptables -A INPUT -i $ IFACE -j ACCEPTfi