Kein Zugriff auf Apache über WLAN, wenn Raspi keine LAN Verbindung hat

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo zusammen,


    ich möchte für eine motorisierte Kamera, die mit einem Raspi gesteuert wird, eine Weboberfläche für die Bedienung zur Verfügung stellen, die auf einem Smartphone aufrufbar sein soll.

    Das Raspi selber hat im Einsatz kein Internet, also auch kein angeschlossenes LAN-Kabel.

    Über dieses Tutorial: https://www.elektronik-kompend…/raspberry-pi/2002171.htm habe ich erfolgreich einen Accesspoint zum laufen gebracht. D.h. ich kann mich mit dem Smartphone mit dem Accesspoint des Raspis verbinden.


    Wenn ich ein LAN Kabel am Raspi angeschlossen habe und es in mein lokales Netz kommt, kann ich über die IP des WLAN-Accesspoints auf meinen Apache zugreifen, ist das LAN Kabel nicht drin, wird die Seite nicht geöffnet. (Die Verbindung steht aber, es wird dem Smartphone eine IP zugewiesen und eine gute Verbindung angegeben.)

    (Um beim Apache Probleme auszuschließen hab ich da nur eine index.htm mit "Hallo Welt"...)


    Stecke ich dann das LAN Kabel rein, öffnet sich nach ein paar Sekunden auch wieder die Seite...


    Da die ganze Geschichte mobil sein soll, wäre das LAN-Kabel recht störend... :S



    Hat jemand eine Idee?

  • Wenn ich ein LAN Kabel am Raspi angeschlossen habe und es in mein lokales Netz kommt, kann ich über die IP des WLAN-Accesspoints auf meinen Apache zugreifen, ist das LAN Kabel nicht drin, wird die Seite nicht geöffnet. (Die Verbindung steht aber, es wird dem Smartphone eine IP zugewiesen und eine gute Verbindung angegeben.)

    Was genau meinst Du mit "am Raspi angeschlossen"? Nur am Raspi oder eine Kabelverbindung zwischen deinem Raspi und dem Router oder einem anderen Gerät?

    Hast Du mit dem Smartphone auch ssh- oder telnet-Zugang zu deinem PI (AP)?

    Wenn ja, dann poste mit und ohne LAN-Kabel, vom PI die Ausgaben von:

    Code
    ip a
    arp -a
    ip r
    sudo netstat -tulpena

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • "Wenn ich ein LAN Kabel am Raspi..." damit meine ich, dass das Raspi via LAN in mein Netzwerk kommt, sowie über die Fritz!Box ins Internet:


    Raspi mit LAN-Verbindung zum lokalen Netzwerk, Router und damit Internet



    Zugriff via ssh vom Handy aufs Raspi: ja
    Zugriff auf Website vom Handy auf Raspi (Apache): ja


    ip a

    arp -a

    Code
    thor.ilu (192.168.5.120) at d4:5d:64:45:d9:01 [ether] on eth0
    HUAWEI_P30_Pro-fa625da903 (192.168.4.237) at 02:af:c7:df:b6:9a [ether] on wlan0
    fritz.box (192.168.5.1) at c8:0e:14:e6:c4:a8 [ether] on eth0
    pi.hole (192.168.5.23) at b8:27:eb:22:9f:32 [ether] on eth0
    kyocera.ilu (192.168.5.45) at 00:17:c8:9a:09:db [ether] on eth0
    laserjet.ilu (192.168.5.46) at a0:d3:c1:e8:aa:33 [ether] on eth0

    ip r

    Code
    default via 192.168.5.1 dev eth0 proto dhcp src 192.168.5.252 metric 202
    192.168.4.0/24 dev wlan0 proto dhcp scope link src 192.168.4.1 metric 303
    192.168.5.0/24 dev eth0 proto dhcp scope link src 192.168.5.252 metric 202

    sudo netstat -tulpena



    Raspi ohne LAN-Verbindung, kein lokales Netzwerk, etc.

    Zugriff via ssh vom Handy aufs Raspi: nein
    Zugriff auf Website vom Handy auf Raspi (Apache): nein

    (Die Befehle unten hab ich direkt auf dem Raspi ausgeführt.)


    ip a

    arp -a

    Code
    HUAWEI_P30_Pro-fa625da903 (192.168.4.237) at 02:af:c7:df:b6:9a [ether] on wlan0

    ip r

    Code
    192.168.4.0/24 dev wlan0 proto dhcp scope link src 192.168.4.1 metric 303 

    sudo netstat -tulpena

  • Mach mal in diesem Fall, vom PI einen Ping auf die IP vom Handy:

    Code
    ping -c 3 192.168.4.237

    und vom Handy einen Ping auf die IP des PI:

    Code
    ping -c 3 192.168.4.1

    und einen TCP-Port-scan auf den lauschenden Port 22 des PI:

    Code
    nc -zv 192.168.4.1 22

    (oder gleichwertig).

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • ping -c 3 192.168.4.237

    Code
    PING 192.168.4.237 (192.168.4.237) 56(84) bytes of data.
    64 bytes from 192.168.4.237: icmp_seq=1 ttl=64 time=84.6 ms
    64 bytes from 192.168.4.237: icmp_seq=2 ttl=64 time=7.69 ms
    64 bytes from 192.168.4.237: icmp_seq=3 ttl=64 time=99.5 ms
    
    --- 192.168.4.237 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 7.694/63.924/99.485/40.222 ms


    und vom Handy einen Ping auf die IP des PI


    und einen TCP-Port-scan auf den lauschenden Port 22 des PI

    ...ich nehme an, auch vom Handy aus auf den PI? Ich hab da jetzt auch mit der App gemacht:

    ...ich habe noch mal mit LAN-Kabel versucht und da findet er Port 22.

  • und vom Handy einen Ping auf die IP des PI

    D. h. der Ping vom Handy zum PI funktioniert auch ohne LAN-Kabel, ... und warum soll dann der Zugang zum Port 22 des PI nicht funktionieren?

    Starte mal ohne LAN-Kabel, auf deinem PI:

    Code
    sudo tcpdump -c 20 -vvveni wlan0 port 22

    und mach jetzt den Portscan vom Handy. Wie ist nach dem Portscan vom Handy, auf deinem PI die Ausgabe von tcpdump?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Das ist ja eben komisch...


    sudo tcpdump -c 20 -vvveni wlan0 port 22

    Code
    tcpdump: listening on wlan0, link-type EN10MB (Ethernet), snapshot length 262144 bytes


    ...da passiert nichts beim Portscan. Danach Kabel angeschlossen und noch mal Portscan - danach war die Hölle los:


    sudo tcpdump -c 20 -vvveni wlan0 port 22

  • Danach Kabel angeschlossen und noch mal Portscan - danach war die Hölle los:

    OK, dann konfiguriere auf deinem PI:

    Code
    sudo sysctl -w net.ipv4.conf.eth0.arp_filter=1
    sudo sysctl -w net.ipv4.conf.eth0.rp_filter=1
    sudo sysctl -w net.ipv4.conf.wlan0.arp_filter=1
    sudo sysctl -w net.ipv4.conf.wlan0.rp_filter=1
    sudo iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADE
    sudo iptables -t nat -I POSTROUTING 2 -o wlan0 -j MASQUERADE

    und teste danach erneut, ohne LAN-Kabel bzw. mit tcpdump auf dem PI und dem Portscan vom Handy.


    EDIT:


    Konfiguriere zusätzlich auf deinem PI auch:

    Code
    sudo sysctl -w net.ipv4.ip_nonlocal_bind=1

    und führe danach bzw. vor dem erneuten testen:

    Code
    sudo systemctl restart ssh

    aus.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Leider ist das Ergebnis das gleiche wie eben.

    Ohne Kabel tut sich beim Portscan nichts - mit Kabel kommen die Einträge... :-/

  • Mein diffuses Bauchgefühl sagt mir folgendes: Der Apache hört nur auf die LAN-IP. Wenn kein LAN verfügbar ist, gibt es keine LAN-IP = keinen Apache. Die Ports sind beim eingesteckten Kabel nur deshalb ansprechbar, weil sie in Wirklichkeit auf die LAN-IP weitergeleitet werden (und sich nur als WLAN-IP ausgeben).


    ...vielleicht helfen diese halbgaren Gedanken weiter...

  • Ohne Kabel tut sich beim Portscan nichts - mit Kabel kommen die Einträge...

    OK, dann poste ohne LAN-Kabel, die Ausgaben von:

    Code
    sudo sshd -t
    cat /etc/ssh/sshd_config

    und weise ohne LAN-Kabel, dem eth0-Interface _manuell_ eine IPv4-Adresse zu. Z. B.:

    Code
    sudo ifconfig eth0 inet 192.168.7.7 netmask 255.255.255.0 broadcast 192.168.7.255 up

    Schau vor dem Test auf deinem PI nach, ob das eth0-Interface (ohne Kabel) jetzt diese IP hat:

    Code
    ip a

    und wenn ja, den Portscan-test machen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Der Apache hört nur auf die LAN-IP.

    Nein, das stimmt nicht. Und wir machen den Test mit dem sshd und der lauscht auf allen IPs/NICs:

    Code
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          14642      651/sshd: /usr/sbin 

    (siehe oben in der Ausgabe von netstat -tulpena).


    EDIT:


    Der Ping (icmp, Layer 3/Network-Layer) funktioniert ohne LAN-Kabel und der Portscan (TCP, Layer 4/Transport Layer) funktioniert nicht ohne LAN-Kabel.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Edited 2 times, last by rpi444 ().

  • ...ohne LAN-Kabel, die Ausgaben von:

    Die IP hab ich zugewiesen und wird auch erfolgreich eth0 zugeordnet.

    Das Ergebnis vom Portscan bleibt wieder gleich...

  • ...ohne LAN-Kabel, die Ausgaben von:

    Die IP hab ich zugewiesen und wird auch erfolgreich eth0 zugeordnet.

    Das Ergebnis vom Portscan bleibt wieder gleich...

    Am sshd liegt es nicht.

    Teste mal mit LAN-Kabel und sniffe auf dem PI, mit tcpdump am eth0-Interface, um zu sehen ob evtl. Traffic via eth0 geht:

    Code
    sudo tcpdump -c 20 -vvveni eth0 port 22 or host 192.168.4.237

    Poste auch die Ausgaben von:

    Code
    sudo iptables -nvx -L
    sudo iptables -nvx -L -t nat

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Ähm... gleichzeitig geht das mit Kabel nicht. Wenn ich auf dem PI den Befehl absetze, läuft der durch und gibt das aus:

    Der Portscan vom Handy:


    Code
    pi@ilucam2:~ $ sudo iptables -nvx -L
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
        pkts      bytes target     prot opt in     out     source               destination
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
        pkts      bytes target     prot opt in     out     source               destination
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
        pkts      bytes target     prot opt in     out     source               destination

    ...auf alle Fälle schon mal vielen Dank, für die ganze Arbeit, die du dir machst!!!

  • Ähm... gleichzeitig geht das mit Kabel nicht. Wenn ich auf dem PI den Befehl absetze, läuft der durch und gibt das aus:

    Code
    pi@ilucam2:~ $ sudo tcpdump -c 20 -vvveni eth0 port 22 or host 192.168.4.237
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    16:25:23.691281 dc:a6:32:19:10:6f > d4:5d:64:45:d9:01, ethertype IPv4 (0x0800), length 102: (tos 0x10, ttl 64, id 52458, offset 0, flags [DF], proto TCP (6), length 88)
        192.168.5.252.22 > 192.168.5.120.51229: Flags [P.], cksum 0x8d0f (incorrect -> 0x18a6), seq 2262442465:2262442513, ack 3337375590, win 501, length 48

    ...

    Dann versuch mit LAN-Kabel und mit dem Filter:

    Code
    sudo tcpdump -c 20 -vvveni eth0 port 22 and not host 192.168.5.120

    EDIT:


    Was ist:

    Code
    thor.ilu (192.168.5.120)

    für ein Gerät, in deiner Konstellation?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • thor.ilu ist der PC, vor dem ich sitze - normalerweise arbeite ich mit ssh auf dem PI und nicht direkt darauf.

    Der Port-Scan zeigt wieder die ganzen offenen Ports, aber beim tcpdump tut sich gar nichts.

    (Die Website vom PI ist auf dem Handy erreichbar.)

  • Der Port-Scan zeigt wieder die ganzen offenen Ports, aber beim tcpdump tut sich gar nichts.

    D. h. der Traffic geht nicht über eth0.

    Aber warum braucht eth0 eine (Kabel-)Verbindung zum Router, damit z. B. der lauschende TCP-Port 22 via wlan0-Interface (mit einer IP-Adresse aus einem anderen Subnetz) erreicht werden kann? Ping (icmp) geht auch ohne eth0.


    EDIT:


    Hast Du evtl. einen Switch, zwischen der FritzBox und deinem PI?


    EDIT 2:


    BTW: Warum hast Du lt. deinem Beitrag #15 zwei MASQUERADE-Regeln für das eth0-Interface und keine M-Regel für das wlan0-Interface, obwohl ich im Beitrag #8:

    Code
    sudo iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADE
    sudo iptables -t nat -I POSTROUTING 2 -o wlan0 -j MASQUERADE

    gepostet habe?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Edited 2 times, last by rpi444 ().

  • Wegen dem Switch - ja, der ist dazwischen (s. Abb. bei Pos #3).

    Bzgl. Masquerade-Regeln - die stellen sich wohl um. Ich habe die Schritte noch mal wiederholt (mit Kabel über SSH auf dem PI):

    ...Kabel gezogen, dann auf dem PI:

    Code
    sudo tcpdump -c 20 -vvveni eth0 port 22 and not host 192.168.5.120

    Mit dem Handy mit dem AcessPoint des PIs verbunden und Portscan auf 192.168.4.1:
    nix...

    Auf dem PI:

    ...es gibt jetzt die 2 alten und die eben neuen Masquerade-Einstellungen.

    Kabel wieder reingesteckt...
    sudo reboot


    und das gleiche noch mal

    ...die WLAN Einstellung ist wieder weg... ?(

  • Kabel wieder reingesteckt...
    sudo reboot


    und das gleiche noch mal

    ...die WLAN Einstellung ist wieder weg...

    Die Konfigurationen die Du manuell machst sind nicht persistent, d. h. nach einem reboot sind sie weg.

    Musst Du diesen reboot überhaupt machen?

    Teste mal auch ohne switch (d. h. direkt zwischen PI und FritzBox). Wie unterbrichst Du die LAN-Verbindung zwischen PI und FritzBox?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden