Soll ich einen Server auf OpenWrt dem WAN oder nur dem LAN mit Portweiterleitung vom WAN aussetzen?

Soll ich einen Server auf OpenWrt dem WAN oder nur dem LAN mit Portweiterleitung vom WAN aussetzen?

Wenn ich einen Server auf einem Computer hinter einem Router installierte und eine Verbindung zu diesem Server aus dem Internet zulassen wollte, müsste ich zwei Dinge tun: Erstens die Firewall auf dem Server-Rechner öffnen, um die eingehende Verbindung zuzulassen; und zweitens eine Regel zur Portweiterleitung auf dem Router einrichten, damit die Verbindung vom WAN zum LAN (speziell zum Server-Rechner) gehen kann.

Aber was soll ich tun, wenn es sich bei dem betreffenden Servercomputer um den Router selbst handelt, der auf OpenWrt läuft?

Mir fallen zwei Möglichkeiten ein.

Option A. Behandeln Sie den Router wie jeden anderen Computer im LAN. Öffnen Sie nach der Installation des Servers auf dem Router die Firewall, um eingehende Verbindungen aus dem LAN zum Server zuzulassen. (Ich glaube, das geschieht unter LuCI > Netzwerk > Firewall > Verkehrsregeln.) Richten Sie dann eine Portweiterleitungsregel vom WAN zum LAN (insbesondere zum Server) ein. (LuCI > Netzwerk > Firewall > Portweiterleitungen.)

Option B. Verwenden Sie die Registerkarte „Verkehrsregeln“ von LuCI, um die Firewall für eine direkte Verbindung vom WAN zum Server zu öffnen.

Die Fragen sind:

  1. Liege ich richtig in der Annahme, dass dies die beiden Optionen sind, die ich in Betracht ziehen kann?

  2. Was wären die Vor- und Nachteile auf beiden Seiten?

  3. Was ist die gängige Vorgehensweise?

Der betreffende Server könnte ein VPN-Server (z. B. Wireguard) oder OpenSSH sein, das ich anstelle von Dropbear installieren könnte. Die gleiche Frage würde sich jedoch stellen, wenn Sie einen A/V-Stream-Server auf OpenWrt installiert hätten (sofern dies möglich ist). Mit anderen Worten, ich möchte, dass diese Frage allgemein zu den beiden oben genannten Optionen bleibt und nicht auf eine bestimmte Software (Wireguard usw.) beschränkt ist.

Ich bin neu bei OpenWrt und Linux. Ich wusste bis vor ein paar Tagen nicht, dass OpenWrt existiert. Es ist möglich, dass Option A verrückt ist (was niemand jemals tut) und dass mein Gehirn sie sich nur ausgedacht hat, weil es noch nie etwas wie OpenWrt gesehen hat und nur in „normalen Router“-Begriffen denken kann.

Das lässt mich eigentlich glauben, dass Option A diesen Vorteil haben könnte. Ich habe tatsächlich schon einmal Portweiterleitung gemacht, aber die Linux-Firewall ist neu für mich. Ich werde also vielleicht mehr Traffic Rules verwenden und es wäre besser, wenn das Durcheinander nur im LAN passiert.

Bitte beraten Sie mich. Danke.

NACHTRAG

Dies sind LuCI-Screenshots, die Option A (links) und B (rechts) veranschaulichen. Der linke Bereich geht davon aus, dass Port 12000 für das LAN geöffnet wurde (entweder durch Standardrichtlinie oder bestimmte Verkehrsregel). 192.168.1.1. ist die LAN-IP-Adresse des Routers.

Bildbeschreibung hier eingeben

Antwort1

(Obwohl es in manchen Browsern nicht sichtbar ist, ist jeder Dateipfad ein Link)

Für SSH ist die Standardpraxis die Angabe einesDNATRegel [Portweiterleitung] auf das interne Netzwerk, in dem es sich befindet. Für den VPN-Server hingegen würden Sie eine Regel erstellen, die WAN-Zugriff auf seinen Server-Port erlaubt:

  • Wireguard Wiki
  • SSH:
    • /etc/config/firewall:
      #
      
          ##::[[---  OpenWrt WAN Firewall Config  ---]]::##
      
      #===========================================================
                    ##----- NAT Redirects -----##
      #===========================================================
      
      # SSH #
      #-----------------------------------------------------------
      config redirect
          option  target          'DNAT'
          option  proto           'tcp'
          option  src             'wan'
          option  src_dport       60501
          option  dest            'lan'
          option  dest_ip         192.168.1.1
          option  dest_port       22
          option  name            'Allow Redirect WAN → LAN (SSH)'
      
      config redirect
          option  target          'DNAT'
          option  proto           'tcp'
          option  src             'vpn'
          option  src_dport       60502
          option  dest            'lan'
          option  dest_ip         192.168.1.1
          option  dest_port       22
          option  name            'Allow Redirect Wireguard → LAN (SSH)'
      
      #===========================================================
                        ##----- VPN Zones -----##
      #===========================================================
      
      # Wireguard #
      #-----------------------------------------------------------
      config zone
          option  name            'vpn'
          option  network         'vpn'
          option  input           'ACCEPT'
          option  forward         'ACCEPT'
          option  output          'ACCEPT'
          option  log             1
      
      # Rules:
      #-----------------------------------------------------------
      config rule
          option  target          'ACCEPT'
          option  proto           'tcp udp'
          option  src             'wan'
          option  dest            '*'
          option  dest_port       51820
          option  name            'Allow Forwarded Wireguard → Router'
      
      config rule
          option  target          'ACCEPT'
          option  proto           'tcp'
          option  src             'vpn'
          option  dest            '*'
          option  dest_port       60502
          option  name            'Allow Wireguard → Router (SSH)'
      

    • /etc/config/dropbear:
      #
      
            ##::[[---  OpenWrt DropBear Config  ---]]::##
      
      #===========================================================
                       ##----- Default -----##
      #===========================================================
      
      # Server #
      #-----------------------------------------------------------
      config dropbear
          option  enable            1
          option  Interface         'lan'
          option  PasswordAuth      'off'
          option  RootPasswordAuth  'off'
          option  IdleTimeout       0
          option  Port              22
          option  RootLogin         1
          option  SSHKeepAlive      300
          option  verbose           1
      

    • /etc/ssh/sshd_config: (Individuell)
      #
      
          ##::[[---  OpenWrt OpenSSH SSHd Config  ---]]::##
      
      #===========================================================
                    ##----- Global Options -----##
      #===========================================================
      
        # Please verify, as all algorithms may not supported:
      
          # Ciphers:                  # HostKey & KeyTypes
            ## ssh -Q cipher            ## ssh -Q key
      
          # Kex [Key Exchange]        # MAC [Message Authentication Code]
            ## ssh -Q kex               ## ssh -Q mac
      
      
      # Connection #
      #-----------------------------------------------------------
      AddressFamily                     = inet
      ListenAddress                     = 192.168.1.1:22
      
      
      # Encryption #
      #-----------------------------------------------------------
      AuthorizedKeysFile                = /root/.ssh/authorized_keys
      
      HostKey                           = /etc/ssh/ssh_host_ed25519_key
      HostKey                           = /etc/ssh/ssh_host_rsa_key
      
      
      # Authentication #
      #-----------------------------------------------------------
      AllowUsers                        = root
      AllowGroups                       = root
      
      ChallengeResponseAuthentication   = no
      PasswordAuthentication            = no
      PermitEmptyPasswords              = no
      
      StrictModes                       = yes
      PubkeyAuthentication              = yes
      
      LoginGraceTime                    = 30
      
      MaxAuthTries                      = 3
      MaxSessions                       = 10
      MaxStartups                       = 3:30:10
      
      PermitRootLogin                   = prohibit-password
      
      
      # Reliability #
      #-----------------------------------------------------------
      ClientAliveCountMax               = 3
      ClientAliveInterval               = 600
      
      TCPKeepAlive                      = yes
      
      UseDNS                            = yes
      
      
      # Security #
      #-----------------------------------------------------------
      AllowAgentForwarding              = yes
      AllowTcpForwarding                = yes
      
      GatewayPorts                      = clientspecified
      PermitTunnel                      = yes
      
      Subsystem   sftp                  = /usr/lib/sftp-server
      
      RekeyLimit                        = 500M 60m
      
      
      # Logging #
      #-----------------------------------------------------------
      SyslogFacility                    = AUTH
      LogLevel                          = VERBOSE
      
      PidFile                           = /tmp/run/sshd.pid
      
      
      # Ciphers and ReKeying #
      #-----------------------------------------------------------
      FingerprintHash                   = sha256
      
      Ciphers                           = [email protected],[email protected],aes128-ctr,aes128-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc,[email protected]
      
      HostKeyAlgorithms                 = ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
      
      HostbasedAcceptedKeyTypes         = ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
      
      KexAlgorithms                     = [email protected],curve25519-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
      
      MACs                              = [email protected],[email protected],hmac-sha2-256,hmac-sha2-512
      
      PubkeyAcceptedKeyTypes            = ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
      

  • LuCI:
    1. https://<router IP>Netzwerk (Menü links)Firewall
    2. Verkehrsregeln
      1. HINZUFÜGEN:
        Name: Allow Forwarded Wireguard → Router
        Protokoll: TCP UDP
        Quellzone: wan
        Zielzone: Any zone (forward)
        Zielhafen: 51820
        Aktion: accept
        SPEICHERN
      2. HINZUFÜGEN:
        Name: Allow Wireguard → Router (SSH)
        Protokoll: TCP
        Quellzone: vpn
        Zielzone: Any zone (forward)
        Zielhafen: 60502
        Aktion: accept
        SPEICHERN

    3. Portweiterleitungen
      1. HINZUFÜGEN:
        Name: Allow Redirect WAN → LAN (SSH)
        Protokoll: TCP
        Quellzone: wan
        Externer Port: 60501
        Zielzone: lan
        Interne IP-Adresse: 192.168.1.1
        Interner Port: 22
        Aktion: accept
        SPEICHERN
      2. HINZUFÜGEN:
        Name: Allow Redirect VPN → LAN (SSH)
        Protokoll: TCP
        Quellzone: vpn
        Externer Port: 60502
        Zielzone: lan
        Interne IP-Adresse: 192.168.1.1
        Interner Port: 22
        Aktion: accept
        SPEICHERN

    4. SPEICHERN & ANWENDEN

verwandte Informationen