SBC Router HostAP, iptables, nat, Routing und Co... brauche Hilfe

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

SBC Router HostAP, iptables, nat, Routing und Co... brauche Hilfe

Beitrag von dmant » 17.03.2020 22:23:09

Hallo,

ich erstelle mir derzeit einen Router bzw. Access Point aus einem SBC.

Ich hoffe ich das ich später noch etwas ähnliches wie pihole auch für Debian finde.

Mein Ziel ist es am Ende einige Dinge zu loggen und/oder einzustellen.

Ziel 1:

Internet <=> eth0 <=> SBC <=> dhcp server <=> wlan0 & 1

Zunächst habe ich einen SBC mit Debian Minimal installiert.

Per Kabel habe ich eth0 mit der FritzBox verbunden und wie folgt konfiguriert:

Code: Alles auswählen

auto eth0
  iface eth0 inet static
  address 192.168.178.2
  netmask 255.255.255.0
  gateway 192.168.178.1
  dns-servers 192.168.178.1
Dazu habe ich zwei WLAN USB Sticks wie folgt konfiguriert:

Code: Alles auswählen

allow-hotplug wlan1
  iface wlan1 inet static
  address 20.10.0.1
  netmask 255.255.255.0

allow-hotplug wlan0
  iface wlan0 inet static
  address 20.10.0.2
  netmask 255.255.255.0
Danach habe ich dnsmasq und hostapd installiert und konfiguriert

hostapd.conf

Code: Alles auswählen

interface=wlan0
#driver=nl80211
ssid=TESTAP
hw_mode=g
channel=3
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
country_code=DE
#ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
#macaddr_acl=0
#ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=TESTSECRET

hostapd1.conf

Code: Alles auswählen

interface=wlan1
#driver=nl80211
ssid=TESTAP
hw_mode=g
channel=3
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
country_code=DE
#ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
#macaddr_acl=0
#ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=TESTSECRET
und die dnsmasq.conf

Code: Alles auswählen

interface=wlan0, wlan1
no-dhcp-interface=eth0
dhcp-range=20.10.0.100,20.10.0.200,255.255.255.0,168h
dhcp-option=option:dns-server,20.10.0.1
dhcp-option=3,20.10.0.1
Wenn ich nun den SBC starte, hat dieser die feste IP

192.168.178.2

und ich kann ihn anpingen und per ssh connecten. wlan0 und 1 ist ebenfalls ist AP eingerichtet und ich kann mit mit dem WLAN verbinden und die Clients bekommen eine IP Adresse zugewiesen. Jedoch hatten die Clients keinen Internetzugriff.

Ich habe die IPv4 weiterleitung aktiviert und mittels

Code: Alles auswählen

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
haben die Clients nun auch Internet... also dachte ich...

Da ich beide APs immer gemeinsam laufen hatte und.. an meinem System alles klappte musste ich nun feststellen das nur die Clients Internetzugriff haben die über wlan1 verbunden sind, jedoch nicht die die über wlan0 verbunden sind.

Die Clients lassen sich untereinander anpingen, jedoch haben die die über wlan1 Connecteten Clients Internet.

Weiss jemand wie ich das beheben kann und woran das liegen könnte?

Hier noch ein paar infos:

Code: Alles auswählen


route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
20.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 wlan1
20.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

Code: Alles auswählen

ifconfig -a

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.2  netmask 255.255.255.0  broadcast 192.168.178.255
        inet6 fe80::ba27:ebff:fed6:c353  prefixlen 64  scopeid 0x20<link>
        inet6 2003:cb:5f2d:1600:ba27:ebff:fed6:c353  prefixlen 64  scopeid 0x0<global>
        ether b8:27:eb:d6:c3:53  txqueuelen 1000  (Ethernet)
        RX packets 221515  bytes 285278347 (272.0 MiB)
        RX errors 0  dropped 6290  overruns 0  frame 0
        TX packets 138066  bytes 17186877 (16.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 422  bytes 40137 (39.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 422  bytes 40137 (39.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 20.10.0.2  netmask 255.255.255.0  broadcast 20.10.0.255
        inet6 fe80::abe:acff:fe03:2af5  prefixlen 64  scopeid 0x20<link>
        ether 08:be:ac:03:2a:f5  txqueuelen 1000  (Ethernet)
        RX packets 580  bytes 57355 (56.0 KiB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 321  bytes 48968 (47.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 20.10.0.1  netmask 255.255.255.0  broadcast 20.10.0.255
        inet6 fe80::ba27:ebff:fe83:9606  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:83:96:06  txqueuelen 1000  (Ethernet)
        RX packets 136785  bytes 15026226 (14.3 MiB)
        RX errors 0  dropped 3  overruns 0  frame 0
        TX packets 211678  bytes 289605628 (276.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: SBC Router HostAP, iptables, nat, Routing und Co... brauche Hilfe

Beitrag von bluestar » 18.03.2020 09:14:07

Mir schon klar das die Geräte über wlan0 keinen Internetzugang haben, denen gibst du die IP 20.10.0.1 als Default Gateway im DNSMASQ, korrekt wäre jedoch die IP des Interfaces wlan0 (20.10.0.2).

Verbesserungsvorschläge:
* nimm korrekte private IP Adressen (RFC1918)
* richte für jedes WLAN-Device ein eigenes Subnetz ein (10.0.0.0/24 und 10.0.1.0/24), direkt mit zwei dnsmasq Instanzen.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: SBC Router HostAP, iptables, nat, Routing und Co... brauche Hilfe

Beitrag von dmant » 18.03.2020 14:06:49

Ok,

also ich habe gestern noch gelesen und probiert und bin dann zu der Lösung gekommen.

Ich habe eine Brücke erstellt

Code: Alles auswählen

auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet static
  address 192.168.178.2
  netmask 255.255.255.0
  gateway 192.168.178.1
  dns-servers 192.168.178.1

auto br0
iface br0 inet static
	address 20.10.0.1
	broadcast 20.10.0.255
	netmask 255.255.255.0
	bridge_ports wlan0 wlan1
	bridge_stp off
        bridge_waitport 0
        bridge_fd 0
und den dnsmasq auf das interface br0 gesetzt.

Dann habe ich in den hostapd configs

Code: Alles auswählen

bridge=br0
hinzugefügt..

und schon klappt es :)

So nun geht es beim Traffic loggen und Trafficshaper weiter gehen.

Dazu habe ich mir ein script gebaut

installiptables.sh

Code: Alles auswählen

#!/bin/bash

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE

INET_IFACE=eth0

iptables -N INET_OUT
iptables -N INET_IN

iptables -A FORWARD -j INET_IN
iptables -A FORWARD -j INET_OUT

iptables -A INPUT -j INET_IN
iptables -A OUTPUT -j INET_OUT

### create a new set of chains ###
iptables -N INET_IN_PORT
iptables -N INET_OUT_PORT

### ATTACH them (USE FORWARD for gateway systems) ###
iptables -A INPUT -j INET_IN_PORT
iptables -A OUTPUT -j INET_OUT_PORT

### Set up rules for INPUT ###
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 80
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 443
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 25
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 143
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 53
iptables -A INET_IN_PORT -i ${INET_IFACE} -p udp --dport 53
iptables -A INET_IN_PORT -i ${INET_IFACE} -p tcp --dport 22

### Set up rules for OUTPUT ###
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 80
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 443
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 25
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 143
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 53
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p udp --sport 53
iptables -A INET_OUT_PORT -o ${INET_IFACE} -p tcp --sport 22

iptables -N INET_IN_PROTOCOL
iptables -N INET_OUT_PROTOCOL
### ATTACH them (USE FORWARD for gateway systems) ###
iptables -A INPUT -j INET_IN_PROTOCOL
iptables -A OUTPUT -j INET_OUT_PROTOCOL
### Match tcp, udp and icmp ###
iptables -A INET_IN_PROTOCOL -i ${INET_IFACE} -m tcp -p tcp
iptables -A INET_IN_PROTOCOL -i ${INET_IFACE} -m udp -p udp
iptables -A INET_OUT_PROTOCOL -o ${INET_IFACE} -m tcp -p tcp
iptables -A INET_OUT_PROTOCOL -o ${INET_IFACE} -m udp -p udp
Das ganze loggt mir schon einmal den Traffic.. aber irgendwie nicht so ganz wie von mir gewünscht.

Also ich würde gerne loggen

Internettraffic komplett

Internettraffic der einzelnen Clients

Lokalertraffic der Clients

Danach kann es dann weiter an die Bandbreitenbegrenzung gehen.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: SBC Router HostAP, iptables, nat, Routing und Co... brauche Hilfe

Beitrag von bluestar » 18.03.2020 17:46:09

Schau dir mal Debianipfm an.

Antworten