[gelöst] ssh-Verbindung zu externem Server

  • Ich habe gerade noch was probiert. Innerhalb meines Heimnetzes geht der Pi400. Ich kann alle Geräte sehen und mich mit ihnen verbinden. Es scheint aber so, als ob der Router den Pi400 nicht ins internet läßt. Ich kann weder meinen vServer noch einen beliebeigen anderen Server anpingen.

    Code
    ssh -vvv <user>@<server>

    gibt folgendes aus:

    Es scheint offenbar mit dem Router zu tun zu haben. Ich werde mir mal noch einen zweiten PI 4B zum Testen besorgen. Das ist ohnehin der Zweck des ganzen, bei einem Hardwaredefekt einfach den Pi austauschen zu können. Falls das auch nicht geht, werde ich mir als nächstes den Router vornehmen. Das wird dann sicher aber eine Weile dauern, falls mir nicht noch was anderes einfällt.
    Also erst mal vielen Dank für Eure Antworten.

  • Es scheint aber so, als ob der Router den Pi400 nicht ins internet läßt. Ich kann weder meinen vServer noch einen beliebeigen anderen Server anpingen.

    Wie sind auf dem PI400, die Ausgaben von:

    Code
    ip n s
    ip r
    ip a
    nc -zvn 1.1.1.1 53
    nc -zvn 49.13.175.17 22

    ?

    EDIT:

    Ich werde mir mal noch einen zweiten PI 4B zum Testen besorgen. Das ist ohnehin der Zweck des ganzen, bei einem Hardwaredefekt einfach den Pi austauschen zu können. Falls das auch nicht geht, ...

    Das geht schon. Du musst nur die MAC-Adresse spoofen (... in der "/boot/cmdline.txt" oder gleichwertig). Z. B.:

    Code
    :~ $ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1472 qdisc mq state UP mode DEFAULT group default qlen 5000
        link/ether b8:27:eb:62:3c:ae brd ff:ff:ff:ff:ff:ff permaddr dc:a6:32:46:a1:0e
    Code
    smsc95xx.macaddr=B8:27:EB:62:3C:AE

    Dann bekommt der Router von deinem tauschen, nichts mit.

    Wi-Fi_Signal_Strength  txpower
    iptables chains order scheme iptables-diagram
    nftables-diagram

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.5 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p10 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server, botamusique, ample

    Edited 3 times, last by rpi444 (September 2, 2024 at 11:41 PM).

  • Es scheint aber so, als ob der Router den Pi400 nicht ins internet läßt.

    Du hast möglicherweise in der Fritzbox den Zugang ins Internet für den RPi 400 gesperrt. Ich bekomme ähnliche Fehlermeldung wenn ich in meiner FB unter Internet - Filter - Kindersicherung für einen meiner Raspis den Internetzugang sperre, und anschliessend versuche mit ssh -v moi@externer-server zu verbinden. Ich habe da zwar keinen SSH-Zugang, aber ohne Kindersicherung bekomme ich auch eine ganz andere Fehlermeldung (und Timeout).

  • klaus_d September 3, 2024 at 9:16 AM

    Changed the title of the thread from “ssh-Verbindung zu externem Server” to “[gelöst] ssh-Verbindung zu externem Server”.
  • Wie macht man das denn?

    Es gibt (zusätzlich) mehrere Möglichkeiten. U. a. auch mit:

    Code
    apt show macchanger

    oder

    Code
    :~ $ cat /etc/systemd/network/00-mylanif.link
    [Match]
    MACAddress=<permanente-MAC-Adresse>
    
    [Link]
    Name=eth0
    MACAddress=<gespoofte-MAC-Adresse>

    oder (wenn das Interface down ist):

    Code
    sudo ip link set dev eth0 address <gespoofte-MAC-Adresse>

    oder (wenn NIC down):

    Code
    sudo ifconfig eth0 hw ether <gespoofte-MAC-Adresse>

    oder

    ... ...

  • Das geht schon. Du musst nur die MAC-Adresse spoofen (... in der "/boot/cmdline.txt" oder gleichwertig). Z. B.:

    smsc95xx.macaddr=B8:27:EB:62:3C:AE

    Das am Ende oder Anfang der /boot/cmdline.txt (unter Buster) oder am Ende von /boot/firmware/cmdline.txt (unter Bookworm) bewirkt bei mir gar nichts. Beides RPi 4. Muss da noch etwas anderes beachtet werden?

    sudo ip link set dev eth0 address <gespoofte-MAC-Adresse>

    Das geht, ist dann aber erst im laufenden Betrieb.

  • Das am Ende oder Anfang der /boot/cmdline.txt (unter Buster) oder am Ende von /boot/firmware/cmdline.txt (unter Bookworm) bewirkt bei mir gar nichts.

    Nicht am Anfang oder Ende der Datei "cmdline.txt". Diese Datei besteht aus einer einzigen Zeile. Mach den Eintrag am Ende dieser Zeile.

    EDIT:

    BTW: Ist eth0 auf deinem PI der Interfacename für den integrierten Ethernet-Adapter? Denn nur mit dem funktioniert es in der cmdline.txt.

    Wi-Fi_Signal_Strength  txpower
    iptables chains order scheme iptables-diagram
    nftables-diagram

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.5 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p10 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server, botamusique, ample

    Edited once, last by rpi444 (September 5, 2024 at 9:05 AM).

  • Nicht am Anfang oder Ende der Datei "cmdline.txt". Diese Datei besteht aus einer einzigen Zeile. Mach den Eintrag am Ende dieser Zeile.

    EDIT:

    BTW: Ist eth0 auf deinem PI der Interfacename für den integrierten Ethernet-Adapter? Denn nur mit dem funktioniert es in der cmdline.txt.

    War schlecht ausgedrückt, ich hatte es am Anfang und Ende der einzigen Zeile (was dann auch Anfang und Ende der Datei ist). Daher die Frage, ob noch weiteres zu beachten ist. Kein Zeilenumbruch nach der Zeile erlaubt zum Beispiel?

    Und ich habe nur den integrierten Ethernet-Adapter.

  • Daher die Frage, ob noch weiteres zu beachten ist. Kein Zeilenumbruch nach der Zeile erlaubt zum Beispiel?

    Zeilenumbruch ist erlaubt:

    Code
    cat -E /boot/cmdline.txt
    ... cgroup_enable=cpuset,memory cgroup_memory=1$

    Sonst ist nichts zu beachten.

    EDIT:

    Evtl. auch mit systemd-networkd probieren. Benutzt Du DHCP für das zuweisen der IP-Adresse?

    EDIT 2:

    Hinweis: Ich hatte in der Vergangenheit von meinem Internetprovider eine zusätzliche feste/statische externe/öffentliche IPv4-Adresse, die ich an einem LAN-Port der FritzBox benutzen konnte _wenn_ das Lan-Interface eine bestimmte (beim Internetprovider hinterlegte) MAC-Adresse beim _Booten_ hatte. Bei meinen PIs konnte das _wirksame_ spoofen der MAC-Adresse vom eth0-Interface, nur via cmdline.txt-Datei erfolgen. Alle anderen Methoden haben fehlgeschlagen, weil das spoofen _zu spät_ erfolgte und dem DHCP-Server beim Internetprovider, immer die tatsächliche MAC-Adresse (statt der gespooften) gezeigt worden ist.

    Wi-Fi_Signal_Strength  txpower
    iptables chains order scheme iptables-diagram
    nftables-diagram

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.5 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p10 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server, botamusique, ample

    Edited 4 times, last by rpi444 (September 5, 2024 at 12:00 PM).

  • Sonst ist nichts zu beachten.

    EDIT:

    Evtl. auch mit systemd-networkd probieren. Benutzt Du DHCP für das zuweisen der IP-Adresse?

    Unter Buster ja. Unter Bookworm ist die Verbindung im NetworkManager eingestellt, IPv4 steht auf method=auto. Der Eintrag in der cmdline.txt bleibt bei beiden wirkungslos. Ich habe testweise bei beiden das WLAN abgestellt, ohne Änderung.

    systemd-networkd ist überall disabled:

    Bash
    pi@pineapplepi:~ $ systemctl status systemd-networkd
    ● systemd-networkd.service - Network Service
       Loaded: loaded (/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:systemd-networkd.service(8)
    pi@pineapplepi:~ $ cat -E /boot/cmdline.txt 
    console=serial0,115200 console=tty1 root=PARTUUID=397ae271-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles smsc95xx.macaddr=B8:27:EB:62:3C:AE$
    pi@pineapplepi:~ $ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether dc:a6:32:89:xx:xx brd ff:ff:ff:ff:ff:ff
  • Der Eintrag in der cmdline.txt bleibt bei beiden wirkungslos. ...

    Bash
    pi@pineapplepi:~ $ cat -E /boot/cmdline.txt 
    console=serial0,115200 console=tty1 root=PARTUUID=397ae271-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles smsc95xx.macaddr=B8:27:EB:62:3C:AE$

    Entferne den Eintrag in der cmdline.txt und teste mal mit:

    Code
    force_mac_address=b8:26:eb:63:3c:ae

    in der Datei "/boot/config.txt".

  • Code
    pi@pineapplepi:~ $ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether b8:26:eb:63:3c:ae brd ff:ff:ff:ff:ff:ff

    Sieht gut aus.

    Mit/nach dieser Art der Änderung der MAC-Adresse, wird nicht mehr unterschieden zwischen geänderter und permanenter MAC-Adresse. Z. B. mit der cmdline.txt:

    Code
    :~ $ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1472 qdisc mq state UP mode DEFAULT group default qlen 5000
        link/ether b8:27:eb:62:3c:ae brd ff:ff:ff:ff:ff:ff permaddr dc:a6:32:46:a1:0e

    Wie ist jetzt die Ausgabe von:

    Code
    dmesg | grep -i b8:26:eb:63:3c:ae

    ?

  • Mit/nach dieser Art der Änderung der MAC-Adresse, wird nicht mehr unterschieden zwischen geänderter und permanenter MAC-Adresse. Z. B. mit der cmdline.txt:

    Interessant.

    Wie ist jetzt die Ausgabe von:

    Code
    dmesg | grep -i b8:26:eb:63:3c:ae

    ?

    Code
    pi@pineapplepi:~ $ dmesg | grep -i b8:26:eb:63:3c:ae
    [    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:26:EB:63:3C:AE vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=397ae271-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

    Zum Vergleich mit der unwirksamen per cmdline.txt auf Bookberry, da ist smsc95xx.macaddr= am Ende (ich hatte zusätzlich eine andere Adresse probiert):

    Code
    moi@bookberry:~ $ dmesg |grep -i 00:11:22:33:44:55
    [    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0  vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=5b576c95-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=DE vc4.force_hotplug=1 smsc95xx.macaddr=00:11:22:33:44:55
  • Code
    pi@pineapplepi:~ $ dmesg | grep -i b8:26:eb:63:3c:ae
    [    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:26:EB:63:3C:AE vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=397ae271-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

    D. h. es ist noch immer die (alte) Kernel-Option "smsc95xx.macaddr=" zuständig bzw. wirksam, nur die Konfiguration erfolgt jetzt in der config.txt, mit der Option "force_mac_address=".

  • D. h. es ist noch immer die (alte) Kernel-Option "smsc95xx.macaddr=" zuständig bzw. wirksam, nur die Konfiguration erfolgt jetzt in der config.txt, mit der Option "force_mac_address=".

    Die Option funktioniert auch unter Bookworm. Eine andere Möglichkeit ist das EEPROM, das ist auch dokumentiert.

    Code
    moi@bookberry:~ $ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether dc:a6:32:01:36:c2 brd ff:ff:ff:ff:ff:ff
    moi@bookberry:~ $ rpi-eeprom-config |grep -i mac
    # MAC_ADDRESS=00:11:22:33:44:55
    MAC_ADDRESS=dc:a6:32:01:36:c2
    moi@bookberry:~ $ dmesg | grep -i dc:a6:32
    [    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0  smsc95xx.macaddr=DC:A6:32:01:36:C2 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=5b576c95-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=DE vc4.force_hotplug=1
    moi@bookberry:~ $ 

    Die im EEPROM gesetzte MAC kann mit force_mac_address= wieder überschrieben werden.

    Edit: Zur Vergabe der MACs siehe auch https://pip.raspberrypi.com/categories/685…C-addresses.pdf .

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!