O encaminhamento remoto de porta funciona em TCP/1194, mas não em TCP/443, mesmo que a porta 443 no servidor não esteja sendo usada

O encaminhamento remoto de porta funciona em TCP/1194, mas não em TCP/443, mesmo que a porta 443 no servidor não esteja sendo usada

Estou tendo um problema estranho.

Criei um novo Linode para atuar como ponto final de tunelamento.

Consegui encaminhar remotamente a porta 1194 com sucesso, então agora as conexões para linode-server@1194 foram bem-sucedidas para a porta 1194 da minha máquina e posso me conectar à minha VPN conectando-me à porta 1194 no meu servidor linode.

O comando abaixo é o que eu usei (aquele que funciona):

ssh -N -R 1194:localhost:1194 [email protected]

Agora quero encaminhar a porta 443 também. Eu tentei isso:

ssh -N -R 443:192.168.1.122:443 [email protected]

Meu servidor local está escutando 192.168.1.122 propositalmente (não localhost).

No entanto, o comando acima não consegue abrir a porta 443 no servidor. Recebo o erro abaixo:

Aviso: falha no encaminhamento de porta remota para a porta de escuta 443

Então verifiquei no meu servidor linode se alguma coisa está rodando na porta 443. Nada é:

user@linode-server:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1194            0.0.0.0:*               LISTEN      7438/sshd: user       
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      411/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2377/sshd: /usr/sbi 
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1513/master         
tcp6       0      0 :::1194                 :::*                    LISTEN      7438/sshd: user       
tcp6       0      0 :::22                   :::*                    LISTEN      2377/sshd: /usr/sbi 
tcp6       0      0 :::25                   :::*                    LISTEN      1513/master         
udp        0      0 127.0.0.53:53           0.0.0.0:*                           411/systemd-resolve 
user@linode-server:~$ 

Não há firewall de software no servidor. E o firewall da nuvem Linode foi desligado, ainda não consigo fazer isso.

Não tenho absolutamente nenhuma ideia de por que o encaminhamento 443 não está funcionando.

PS - a autenticação do usuário está funcionando bem durante a criação do túnel.

Não tenho certeza se isso vai ajudar, mas meu sshd_config fica assim:

user@linode-server:~$ cat /etc/ssh/sshd_config | grep -v "^#" | grep -v "^$"
Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
GatewayPorts yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem   sftp    /usr/lib/openssh/sftp-server
user@linode-server:~$

E para esclarecer, não há nada em/etc/ssh/sshd_config.d/

Formulário de registro detalhado sshd no servidor linode:

...
Aug 14 09:00:32 connect sshd[9499]: Postponed publickey for pi from *HIDDEN: My home public IP* port 49180 ssh2 [preauth]
Aug 14 09:00:32 connect sshd[9499]: Accepted key RSA *HIDDEN* found at /home/pi/.ssh/authorized_keys:1
Aug 14 09:00:32 connect sshd[9499]: Accepted publickey for pi from *HIDDEN: My home public IP* port 49180 ssh2: RSA *HIDDEN* 
Aug 14 09:00:32 connect sshd[9499]: pam_unix(sshd:session): session opened for user pi by (uid=0)
Aug 14 09:00:32 connect systemd-logind[578]: New session 157 of user pi.
Aug 14 09:00:32 connect sshd[9499]: User child is on pid 9579
Aug 14 09:00:32 connect sshd[9579]: bind [0.0.0.0]:443: Permission denied
Aug 14 09:00:32 connect sshd[9579]: error: bind [::]:443: Permission denied
Aug 14 09:00:32 connect sshd[9579]: error: channel_setup_fwd_listener_tcpip: cannot listen to port: 443
...

Por que a permissão é negada? O comando de encaminhamento remoto que usei acima usa o mesmo usuário (tanto para o túnel bem-sucedido quanto para o túnel com falha).

Acabei de encontraraquipode ser porque 443 é uma porta privilegiada. Agora não quero usar o usuário root para habilitar o encaminhamento remoto em 443. Bloqueei o servidor linode e não consigo fazer login como root (e não quero permitir o login root). De acordo com o link acima, posso usar o setcap, no servidor linode, mas como faço isso, já que o comando de abertura do túnel é realmente executado no meu local. Quais são minhas alternativas? Eu sei que talvez usar uma porta mais alta no servidor linode funcione, mas não quero fazer isso. Eu realmente gostaria que fosse a porta 443, então não preciso me lembrar da porta.

Responder1

No servidor local, iniciou o encaminhamento de porta remota a partir da porta 8080 (porta não privilegiada)

ssh -N -R 8080:192.168.1.122:443 [email protected]

No servidor linode, instalei uma ferramenta chamada socate usei o comando abaixo para encaminhar localmente de 8080 para 443 no servidor linode e funciona agora :)

sudo socat TCP-LISTEN:443,fork TCP:0.0.0.0:8080

Responder2

O problema é que nada está escutando na porta 443. É necessário que haja um processo escutando na porta 443 para que você possa fazer conexões com a porta 443. Se você olhar seu netstat, verá que atualmente tem um processo escutando na porta 1194, e é por isso que as conexões com a porta 1194 são bem-sucedidas. Você precisa alterar esse processo para escutar na porta 443.

tcp        0      0 0.0.0.0:1194            0.0.0.0:*               LISTEN      7438/sshd: pi

informação relacionada