![¿Debo exponer un servidor en OpenWrt a WAN o sólo a LAN con reenvío de puertos desde WAN?](https://rvso.com/image/1654783/%C2%BFDebo%20exponer%20un%20servidor%20en%20OpenWrt%20a%20WAN%20o%20s%C3%B3lo%20a%20LAN%20con%20reenv%C3%ADo%20de%20puertos%20desde%20WAN%3F.png)
Si instalé un servidor en una computadora detrás de un enrutador y quisiera permitir la conexión desde Internet, tendría que hacer dos cosas: una, abrir el firewall en la máquina del servidor para permitir la conexión entrante; y dos, configurar una regla de reenvío de puertos en el enrutador para que la conexión pueda pasar de WAN a LAN (específicamente a la máquina servidor).
Pero, ¿qué debo hacer si la máquina servidor en cuestión es el enrutador que se ejecuta en OpenWrt?
Puedo pensar en dos opciones.
Opción A. Trate el enrutador como cualquier otra computadora en la LAN. Después de instalar el servidor en el enrutador, abra el firewall para permitir la conexión entrante desde la LAN al servidor. (Creo que esto se hace en LuCI > Red > Firewall > Reglas de tráfico). Luego, configure una regla de reenvío de puertos de WAN a LAN (específicamente el servidor). (LuCI > Red > Firewall > Reenvío de puertos).
Opción B. Utilice la pestaña Reglas de tráfico de LuCI para abrir el firewall para la conexión desde WAN directamente al servidor.
Las preguntas son:
¿Tengo razón al pensar que estas son las dos opciones que puedo considerar?
¿Cuáles serían los pros y los contras de cada lado?
¿Cuál es la práctica estándar?
El servidor en cuestión puede ser un servidor VPN (por ejemplo, Wireguard) u OpenSSH, que puedo instalar en lugar de Dropbear. Pero surgiría la misma pregunta si instalara un servidor de transmisión A/V en OpenWrt (suponiendo que sea posible). En otras palabras, quiero que esta pregunta siga siendo genérica sobre las dos opciones anteriores en lugar de limitarse a un software en particular (Wireguard, etc.).
Soy nuevo tanto en OpenWrt como en Linux. No sabía que existía OpenWrt hasta hace unos días. Es posible que la opción A sea una locura (algo que nadie hace nunca) y que a mi cerebro solo se le ocurrió porque nunca antes había visto algo como OpenWrt y solo puede pensar en términos de "enrutador normal".
En realidad, eso me hace pensar que la opción A puede tener esta ventaja. De hecho, ya he reenviado puertos antes, pero el firewall de Linux es nuevo para mí. Así que podría concentrarme en las reglas de tráfico, y sería mejor si el error ocurriera solo en LAN.
Por favor avise. Gracias.
APÉNDICE
Estas son capturas de pantalla de LuCI que ilustran la opción A (izquierda) y B (derecha). El panel izquierdo supone que el puerto 12000 se ha abierto a la LAN (ya sea por política predeterminada o por regla de tráfico específica). 192.168.1.1. es la dirección IP de LAN del enrutador.
Respuesta1
(Aunque no es evidente en algunos navegadores, cada ruta de archivo es un enlace)
Para SSH, la práctica estándar es especificar unADNTregla [reenvío de puerto] a la red interna en la que reside; mientras que para el servidor VPN, crearías una regla para permitir el acceso WAN a su puerto de servidor:
- Contenido 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
: (Personalizado)# ##::[[--- 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>
→Red (menú de la izquierda)→Cortafuegos- Normas de tráfico
- AGREGAR:
Nombre:Allow Forwarded Wireguard → Router
Protocolo:TCP UDP
Zona de origen:wan
Zona de Destino:Any zone (forward)
Puerto de destino:51820
Acción:accept
AHORRAR - AGREGAR:
Nombre:Allow Wireguard → Router (SSH)
Protocolo:TCP
Zona de origen:vpn
Zona de Destino:Any zone (forward)
Puerto de destino:60502
Acción:accept
AHORRAR
- AGREGAR:
- Puerto hacia adelante
- AGREGAR:
Nombre:Allow Redirect WAN → LAN (SSH)
Protocolo:TCP
Zona de origen:wan
Puerto externo:60501
Zona de Destino:lan
Dirección IP interna:192.168.1.1
Puerto interno:22
Acción:accept
AHORRAR - AGREGAR:
Nombre:Allow Redirect VPN → LAN (SSH)
Protocolo:TCP
Zona de origen:vpn
Puerto externo:60502
Zona de Destino:lan
Dirección IP interna:192.168.1.1
Puerto interno:22
Acción:accept
AHORRAR
- AGREGAR:
- GUARDAR Y APLICAR