Wlan0 Eth0 Bridgen NAT Server einrichten
Wlan0 Eth0 Bridgen NAT Server einrichten
Hallo Community,
ich habe ein Debian Root (HomeServer) Server zuhause stehen und möchte gerne die Wlan Karte mit der Lan karte bridgen So dass über Wlan das Internet Reinkommt und über Lan Verteilt wird. Ich habe schon gelesen das man die NAT Funktion benötigt. Allerdings weis ich nicht wie man sowas bewerkstelligt. Könnte jemand evtl. ein kleines Tutorial dazu machen welche befehle etc. mit der IP Verteilung kenne ich mich bereits aus.
Wlan mit Wlan Router Verbunden.
Lan mit Alten Router verbunden der als switch dient. DHCP ist aus.
ich habe ein Debian Root (HomeServer) Server zuhause stehen und möchte gerne die Wlan Karte mit der Lan karte bridgen So dass über Wlan das Internet Reinkommt und über Lan Verteilt wird. Ich habe schon gelesen das man die NAT Funktion benötigt. Allerdings weis ich nicht wie man sowas bewerkstelligt. Könnte jemand evtl. ein kleines Tutorial dazu machen welche befehle etc. mit der IP Verteilung kenne ich mich bereits aus.
Wlan mit Wlan Router Verbunden.
Lan mit Alten Router verbunden der als switch dient. DHCP ist aus.
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Hi,
ich habe gerade das gleiche Problem, daher wäre ich auch an einer funktionierenden Lösung interessiert.
Im Detail siehts bei mir so aus:
Kabel-Modem verteilt per DHCP eine IP an den dahinter hängenden Router, der dann als AP dient.
eth0 (192.168er-Netz zum Modem)
wlan0 (10.0.er-Netz) verteilt per hostapd und dnsmasq DHCP-IPs an die Clients
[WWW] -> [MODEM] DHCP -> eth0 [ROUTER] DHCP wlan0 -> [Clients]
Folgende Einstellungen in der /etc/network/interfaces führen dazu, dass ich mich per WLAN am Router anmelden kann und ins Internet komme:
Zusätzlich habe ich in /etc/sysctl.conf das IPv4-Forwarding aktiviert: net.ipv4.ip_forward=1
---
Da ich die Firewall-Einstellungen ausgliedern will habe ich mir folgendes Skript aus mehreren Anleitungen zusammengeschrieben, was nach Ausführung aber dazu führt, dass ich mich nicht mehr per WLAN anmelden kann.
Kann da ein Experte vielleicht drüberschauen und mir den Fehler mitteilen?
Im Log ist kein Fehler auszumachen. Wie gesagt, mit den Einstellungen in der ../interfaces funktioniert alles, aber mit dem ausgeführten iptables-Skript kann ich keine WLAN-Verbindung mehr aufbauen.
Wenn ich die Firewall zurücksetzen kann ich mich verbinden.
Danke im voraus
ich habe gerade das gleiche Problem, daher wäre ich auch an einer funktionierenden Lösung interessiert.
Im Detail siehts bei mir so aus:
Kabel-Modem verteilt per DHCP eine IP an den dahinter hängenden Router, der dann als AP dient.
eth0 (192.168er-Netz zum Modem)
wlan0 (10.0.er-Netz) verteilt per hostapd und dnsmasq DHCP-IPs an die Clients
[WWW] -> [MODEM] DHCP -> eth0 [ROUTER] DHCP wlan0 -> [Clients]
Folgende Einstellungen in der /etc/network/interfaces führen dazu, dass ich mich per WLAN am Router anmelden kann und ins Internet komme:
Code: Alles auswählen
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
# Firewall zurücksetzen, Tabellen leeren
up /sbin/iptables -F
up /sbin/iptables -X
up /sbin/iptables -t nat -F
# Kabelnetzwerk maskieren, Nat aktivieren
up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
up iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# hostapd und dnsmasq (neu) starten
up service hostapd restart
up service dnsmasq restart
Zusätzlich habe ich in /etc/sysctl.conf das IPv4-Forwarding aktiviert: net.ipv4.ip_forward=1
---
Da ich die Firewall-Einstellungen ausgliedern will habe ich mir folgendes Skript aus mehreren Anleitungen zusammengeschrieben, was nach Ausführung aber dazu führt, dass ich mich nicht mehr per WLAN anmelden kann.
Kann da ein Experte vielleicht drüberschauen und mir den Fehler mitteilen?
Code: Alles auswählen
#!/bin/bash
#firewall zurücksetzen
iptables -F
iptables -X
iptables -t nat -F
#Standard: Alles abweisen
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
#ungueltige Pakete abweisen
iptables -A INPUT -m state --state INVALID -j DROP
#auth-Service beantworten sonst kann es zu Performance-Problemen kommen
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
#Loopback-Traffic zulassen
iptables -A INPUT -i lo -j ACCEPT
#Pakete von bereits aufgebauten Verbindungen oder in Relation zu diesen stehen zulassen
iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
################################################################################
# Router Regeln #
################################################################################
#NAT, Anbinden des WLAN an das Internet
# "maskiere Pakete die den Router über eth0 verlassen"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Forwarding
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
################################################################################
#alle Pakete die bis hierher nicht zgelassen wurden abweisen
#TCP-Pakete mit einem TCP-Reset abweisen
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
#alle anderen Pakete hier abweisen
iptables -A INPUT -j REJECT
Wenn ich die Firewall zurücksetzen kann ich mich verbinden.
Danke im voraus
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Das taucht in deiner ifup-Sammlung oben nicht auf, default ist ACCEPT. Waere also ein moeglicher Kandidat. Wenn ein DHCPd auf der Kiste laeuft, wuerde er keine Anfragen sehen und je nach Doofheit des Clients hat man dann "kein WLAN" oder eine entsprechend aussagekraeftigere Fehlermeldung.NossiTron hat geschrieben:Code: Alles auswählen
iptables -t filter -P INPUT DROP
Zum Problem des TE: Bridge und NAT schliesst sich aus. Wenn der Server in der Mitte keine Spezialfunktionen uebernehmen soll, waere eine Bridge das simpelste, dazu sollte im wesentlichen eine /etc/network/interfaces mit
Code: Alles auswählen
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
![Debian](/pics/debianpackage.png)
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Danke für die Hilfe, aber das hat leider nichts gebracht.
Ich habe jetzt versucht die Anweisungen aus der ../interfaces in das externe Skript zu übertragen so dass ich jetzt folgende Konstellation habe:
interfaces
externes Skript, dass ich nach dem Neustart manuell ausgeführt habe:
Aber selbst dann funktioniert das Verbinden nicht mehr.
Irgendwie steh ich auf dem Schlauch.
EDIT:
Wenn ich den Neustart von hostapd und dnsmasq rausnehme, dann funktioniert es.
Aber mein eigenes Skript leider nicht.
Ich habe jetzt versucht die Anweisungen aus der ../interfaces in das externe Skript zu übertragen so dass ich jetzt folgende Konstellation habe:
interfaces
Code: Alles auswählen
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
Code: Alles auswählen
#!/bin/bash
IPT=/sbin/iptables
${IPT} -F
${IPT} -X
${IPT} -t nat -F
${IPT} -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
${IPT} -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
${IPT} -t nat -A POSTROUTING -o eth0 -j MASQUERADE
service hostapd restart
service dnsmasq restart
Irgendwie steh ich auf dem Schlauch.
EDIT:
Wenn ich den Neustart von hostapd und dnsmasq rausnehme, dann funktioniert es.
Aber mein eigenes Skript leider nicht.
Zuletzt geändert von NossiTron am 20.11.2014 09:46:48, insgesamt 1-mal geändert.
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Hallo!
Du solltest mit
nachschauen, was du da gebastelt hast.
Gruss, habakug
Du solltest mit
Code: Alles auswählen
# iptables -L -v
oder
# iptables -L -vv
Gruss, habakug
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
So folgender Stand:
interfaces
Neustart des Rechners -> manuelle Ausführung des folgenden Skriptes -> Verbindung kann aufgebaut werden und Internet funktioniert auch.
iptables -L -v
38099
iptables -L -vv
38100
Neustart des Rechners -> manuelle Ausführung des folgenden Skriptes -> Verbindung wird nicht aufgebaut.
iptables -L -v
38101
iptables -L -vv
38102
Ich glaube ich habe hier iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT die Netze vertauscht, denn das angegebene Netz gehört zu eth0, aber auch wenn ich das Netz -s 192.168.0.0/24 weglasse, funktioniert es nicht.
interfaces
Code: Alles auswählen
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
Code: Alles auswählen
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
![NoPaste-Eintrag](./ext/phpbbde/pastebin/styles/debianforumde/theme/images/icon_pastebin.gif)
iptables -L -vv
![NoPaste-Eintrag](./ext/phpbbde/pastebin/styles/debianforumde/theme/images/icon_pastebin.gif)
Neustart des Rechners -> manuelle Ausführung des folgenden Skriptes -> Verbindung wird nicht aufgebaut.
Code: Alles auswählen
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -j REJECT
![NoPaste-Eintrag](./ext/phpbbde/pastebin/styles/debianforumde/theme/images/icon_pastebin.gif)
iptables -L -vv
![NoPaste-Eintrag](./ext/phpbbde/pastebin/styles/debianforumde/theme/images/icon_pastebin.gif)
Ich glaube ich habe hier iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT die Netze vertauscht, denn das angegebene Netz gehört zu eth0, aber auch wenn ich das Netz -s 192.168.0.0/24 weglasse, funktioniert es nicht.
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
So, mit folgendem Skript funktioniert es:
Kann mir wer erklären warum die markierten (<<< ?????) Zeilen Probleme machen?
Speziell bei der letzen Zeile kann ich mir das nicht erklären.
Die beiden Zeilen stellen doch eigentlich nur sicher, dass alle nicht-akzeptierten Pakete verworfen werden oder?
Code: Alles auswählen
#!/bin/bash
IPT=/sbin/iptables
#firewall zurücksetzen
${IPT} -F
${IPT} -X
${IPT} -t nat -F
${IPT} -t nat -X
${IPT} -t mangle -F
${IPT} -t mangle -X
${IPT} -P INPUT ACCEPT
${IPT} -P FORWARD ACCEPT
${IPT} -P OUTPUT ACCEPT
#Standard: Alles abweisen
#iptables -t filter -P INPUT DROP <<< ?????
${IPT} -t filter -P OUTPUT ACCEPT
${IPT} -t filter -P FORWARD ACCEPT
#ungueltige Pakete abweisen
${IPT} -A INPUT -m state --state INVALID -j DROP
#Loopback-Traffic zulassen (z.Bsp. Apache <> MySql)
${IPT} -A INPUT -i lo -j ACCEPT
#Pakete von bereits aufgebauten Verbindungen oder in Relation zu diesen stehen zulassen
${IPT} -A INPUT -m state --state RELATED -j ACCEPT
${IPT} -A INPUT -m state --state ESTABLISHED -j ACCEPT
################################################################################
# Router Regeln #
################################################################################
#NAT, Anbinden des WLAN an das Internet
# maskiere Pakete die den Router über eth0 verlassen
${IPT} -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Forwarding
${IPT} -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
${IPT} -A FORWARD -i wlan0 -o eth0 -j ACCEPT
################################################################################
# hier individuelle Regeln um Pakete zuzulassen #
################################################################################
#SSH-Zugriff intern zulassen
${IPT} -A INPUT -p tcp --dport 22 -s 10.0.0.0/24 -j ACCEPT
#ICMP-Nachrichten intern zulassen
${IPT} -A INPUT -p icmp -s 10.0.0.0/24 -j ACCEPT
################################################################################
#alle Pakete die bis hierher nicht zugelassen wurden abweisen
#TCP-Pakete mit einem TCP-Reset abweisen
${IPT} -A INPUT -p tcp -j REJECT --reject-with tcp-reset
#alle anderen Pakete hier abweisen
#${IPT} -A INPUT -j REJECT <<< ?????
Speziell bei der letzen Zeile kann ich mir das nicht erklären.
Die beiden Zeilen stellen doch eigentlich nur sicher, dass alle nicht-akzeptierten Pakete verworfen werden oder?
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Zunächst mal Nasitroon Danke das du meine Frage mit deinem Problem störst was nicht weiter schlim ist aber ich sehe da nicht mehr durch wozu ist das Sript im 6. Beitrag? Bzw. wie wende ich es an? Als .sh oder .pl etc.
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
Hi,
ich wollte deine Frage nicht stören.. ich hatte es nur so verstanden dass dein Problem mit meinem identisch war.
Sorry dafür.
Das letzte Skript von mir wende ich wie folgt an:
Das Skript packe ich in eine .sh, dann chmod -x skript.sh, dann einmal starten.
Dadurch wird die Firewall mit den richtigen Regeln initiiert.
Wenn alles so funktioniert wie es soll, dann mache ich es wie folgt permanent.
1. Skript ausführen um die Regeln zu setzen
2. Regeln sichern: iptables-save > /etc/iptables.rules
3. Mit dem Hochfahren des Netzwerkstacks die Regeln setzen:
/etc/network/if-up.d/iptabels mit folgendem Inhalt erstellen:
und ausführbar machen.
Schritt 1 und 2 wiederholen wenn sich an den Regeln etwas ändert.
ich wollte deine Frage nicht stören.. ich hatte es nur so verstanden dass dein Problem mit meinem identisch war.
Sorry dafür.
Das letzte Skript von mir wende ich wie folgt an:
Das Skript packe ich in eine .sh, dann chmod -x skript.sh, dann einmal starten.
Dadurch wird die Firewall mit den richtigen Regeln initiiert.
Wenn alles so funktioniert wie es soll, dann mache ich es wie folgt permanent.
1. Skript ausführen um die Regeln zu setzen
2. Regeln sichern: iptables-save > /etc/iptables.rules
3. Mit dem Hochfahren des Netzwerkstacks die Regeln setzen:
/etc/network/if-up.d/iptabels mit folgendem Inhalt erstellen:
Code: Alles auswählen
#!/bin/bash
iptables-restore < /etc/iptables.rules
Schritt 1 und 2 wiederholen wenn sich an den Regeln etwas ändert.
Re: Wlan0 Eth0 Bridgen NAT Server einrichten
chmod +x.NossiTron hat geschrieben:Das Skript packe ich in eine .sh, dann chmod -x skript.sh
Oder stattdessenNossiTron hat geschrieben:2. Regeln sichern: iptables-save > /etc/iptables.rules
[...]
![Debian](/pics/debianpackage.png)
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier