Inhaltsverzeichnis:

Bridge-Firewall mit OrangePi R1 - Gunook
Bridge-Firewall mit OrangePi R1 - Gunook

Video: Bridge-Firewall mit OrangePi R1 - Gunook

Video: Bridge-Firewall mit OrangePi R1 - Gunook
Video: Маршрутизатор на Orange Pi 2024, Juli
Anonim
Bridge-Firewall mit OrangePi R1
Bridge-Firewall mit OrangePi R1

Ich musste mir einen weiteren Orange Pi kaufen:) Das lag daran, dass mein SIP-Telefon mitten in der Nacht unter seltsamen Nummern anfing zu klingeln und mein VoIP-Provider vermutete, dass dies an Portscans lag. Ein weiterer Grund - ich hatte zu oft von gehackten Routern gehört und habe einen Router, den ich nicht verwalten darf (Altibox/Norwegen). Ich war auch neugierig, was in meinem Heimnetzwerk los war. Also beschloss ich, eine Bridge-Firewall einzurichten, die für das TCP/IP-Heimnetzwerk transparent ist. Ich habe es mit einem PC getestet, dann habe ich mich für OPi R1 entschieden - weniger Lärm & weniger Stromverbrauch. Wenn Sie eigene Gründe für eine solche Hardware-Firewall haben - das ist einfacher als Sie denken! Vergessen Sie nicht, einen Kühlkörper und eine anständige Micro-SD-Karte zu kaufen.

Schritt 1: Betriebssystem & Verkabelung

Betriebssystem & Verkabelung
Betriebssystem & Verkabelung

Ich habe Armbian installiert:

Wie Sie vielleicht bemerkt haben, habe ich einen USB-TTL-Konverter verwendet, um auf die serielle Konsole zuzugreifen, was nicht erforderlich war. Die Standard-Netzwerkkonfiguration geht von DHCP aus.

Einziger Kommentar zum Konverter - in vielen Tutorials wird keine VCC-Verbindung vorgeschlagen. Bei mir funktionierte es nur, wenn das Netzteil angeschlossen war (3,3 V ist der einzige quadratische Pin auf der Platine). Und es würde überhitzen, wenn es nicht an USB angeschlossen war, bevor die Stromversorgung eingeschaltet wurde. Ich denke, R1 hat die Pinbelegung, die mit OPi Zero kompatibel ist, ich habe Probleme, R1-Schaltpläne zu finden.

Nach dem Booten von Armbian, dem Ändern des Root-Passworts und einigen Updates/Upgrades fand ich zwei Schnittstellen ('ifconfig -a') - eth0 und enxc0742bfffc6e. Überprüfen Sie es, denn Sie werden sie jetzt brauchen - das Beste ist, dass Sie nur die Datei /etc/network/interfaces anpassen müssen, um Ihren R1 in eine Ethernet-Bridge zu verwandeln. Ich war verblüfft, dass Armbian einige vorkonfigurierte Versionen der Datei enthält, einschließlich interface.r1switch - klingt nach dem, was wir brauchen, aber es funktioniert nicht.

Eine weitere wichtige Sache war die richtige Identifizierung der Ethernet-Ports - enxc0742bfffc6e war derjenige in der Nähe der seriellen Pins.

Bevor Sie den R1 dazu bringen, den Kontakt zum Internet zu verlieren (OK, das könnte besser konfiguriert sein), installieren Sie einfach eine Sache:

sudo apt-get install iptables-persistent

Schritt 2: /etc/network/interfaces

Wenn Sie Ihr lokales Netzwerk auf eth0 umstellen, benötigen Sie die folgende Interface-Datei (Sie können jederzeit mit sudo cp Interfaces.default Interfaces zur Orig-Version zurückkehren; neu starten):

auto br0iface br0 inet handbuch

bridge_ports eth0 enxc0742bfffc6e

bridge_stp aus

bridge_fd 0

bridge_maxwait 0

bridge_maxage 0

Schritt 3: Iptables

Iptables
Iptables

Nach dem Neustart sollte Ihr R1 für das Netzwerk transparent sein und wie ein Kabelstecker funktionieren. Jetzt machen wir den bösen Jungs da draußen das Leben schwerer - konfigurieren Sie Firewall-Regeln (Hash-Linien sind Kommentare; passen Sie die Netzwerkadressen an Ihre DHCP-Konfiguration an!):

# alles flashen und Türen schließen

iptables -Fiptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

# aber erlauben Sie dem internen Netzwerk, nach draußen zu gehen

iptables -A INPUT -m physdev --physdev-is-bridged --physdev-in eth0 -s 192.168.10.0/24 -j ACCEPT

iptables -A FORWARD -m physdev --physdev-is-bridged --physdev-in eth0 -s 192.168.10.0/24 -j ACCEPT

# DHCP durch die Bridge gehen lassen

iptables -A INPUT -i br0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

iptables -A FORWARD -i br0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

# der gesamte etablierte Verkehr soll weitergeleitet werden

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT

# nur für lokalen Browser - Zugriff auf Überwachungstools wie darkstat

iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

#Spoofing blockieren

iptables -A FORWARD -m physdev --physdev-is-bridged --physdev-in enxc0742bfffc6e -s 192.168.10.0/24 -m limit --limit 5/min -j LOG --log-level 7 --log-prefix NETZFILTER

iptables -A FORWARD -m physdev --physdev-is-bridged --physdev-in enxc0742bfffc6e -s 192.168.10.0/24 -j REJECT

Schritt 4: Abschließende Überlegungen

Nach einer Woche - es funktioniert perfekt. Das einzige, was ich mir ausdenken (und hier einreichen) werde, ist die Netzwerküberwachung und der Zugriff über ssh. Ich wiederhole - das Ändern der Schnittstellendatei in den von mir angehängten Inhalt trennt das R1-Gerät vom IP-Netzwerk - nur seriell funktioniert.

6. Juni 2018: Überbrückung ist nicht so viel Arbeit, aber R1 strahlt viel Wärme ab, viel zu viel. Ein einfacher Kühlkörper wird sehr heiß - seltsam und ich mag es nicht. Vielleicht ist es ok, vielleicht hat jemand eine andere Lösung als ein Lüfter.

18.08.2018: 'armbianmonitor -m' zeigt 38 Grad Celsius an, was weit unter meiner persönlichen Wahrnehmung liegt. Ich habe eine deutliche Veränderung (nach unten) gespürt, als ich die Uhr etwas reduziert habe:

echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

Übrigens - ich habe es geschafft, mich mit meinem Heim-WLAN zu verbinden, aber R1 hat keine IP über DHCP erhalten, statische Zuweisungsdeos funktionieren auch nicht. Das war mein erster Versuch, eine andere als eine serielle Verwaltungsschnittstelle zu haben. Eine andere Idee ist, einem der Ethernet-Ports noch eine IP zuzuweisen. Ich werde in ein paar Monaten darauf zurückkommen.

Empfohlen: