![Soll ich einen Server auf OpenWrt dem WAN oder nur dem LAN mit Portweiterleitung vom WAN aussetzen?](https://rvso.com/image/1654783/Soll%20ich%20einen%20Server%20auf%20OpenWrt%20dem%20WAN%20oder%20nur%20dem%20LAN%20mit%20Portweiterleitung%20vom%20WAN%20aussetzen%3F.png)
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:
Liege ich richtig in der Annahme, dass dies die beiden Optionen sind, die ich in Betracht ziehen kann?
Was wären die Vor- und Nachteile auf beiden Seiten?
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.
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:
https://<router IP>
→Netzwerk (Menü links)→Firewall- Verkehrsregeln
- HINZUFÜGEN:
Name:Allow Forwarded Wireguard → Router
Protokoll:TCP UDP
Quellzone:wan
Zielzone:Any zone (forward)
Zielhafen:51820
Aktion:accept
SPEICHERN - HINZUFÜGEN:
Name:Allow Wireguard → Router (SSH)
Protokoll:TCP
Quellzone:vpn
Zielzone:Any zone (forward)
Zielhafen:60502
Aktion:accept
SPEICHERN
- HINZUFÜGEN:
- Portweiterleitungen
- 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 - 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
- HINZUFÜGEN:
- SPEICHERN & ANWENDEN