GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie richte ich mit Hilfe von Setcap eine Remote-Port-Weiterleitung auf Port 80 zum Localhost ein?

Wenn ich NATed bin, würde ich gerne kurz Verbindungen zur Entwicklung annehmen, und deshalb versuche ich Folgendes:

$ ssh [email protected] -R 80:localhost:80

Was fehlschlägt, da ich versuche, einen Port zu binden, der zu niedrig ist:

Warning: remote port forwarding failed for listen port 80

Also habe ich entdeckt, dass ich setcap 'cap_net_bind_service=+ep' /my/application ausführen kann damit es Ports unter 1024 abhören kann. Also habe ich das in meiner suders crontab:

@reboot setcap 'cap_net_bind_service=+ep' /usr/sbin/sshd

Aber es lässt mich immer noch nicht an Port 80 binden. Was mache ich falsch? Ich werde stattdessen einfach nginx als Proxy für 8080 oder iptables oder so verwenden, aber ich bin immer noch neugierig, warum das, was ich versucht habe, nicht funktioniert hat.

Akzeptierte Antwort:

OpenSSH weigert sich rundweg, sich an privilegierte Ports zu binden, es sei denn, die Benutzer-ID des angemeldeten Benutzers ist 0 (Root). Die relevanten Codezeilen sind:

if (!options.allow_tcp_forwarding ||
    no_port_forwarding_flag ||
    (!want_reply && listen_port == 0) ||
    (listen_port != 0 && listen_port < IPPORT_RESERVED &&
    pw->pw_uid != 0)) {
        success = 0;
        packet_send_debug("Server has disabled port forwarding.");

Quelle:http://www.openssh.com/cgi-bin/cvsweb/src/usr.bin/ssh/serverloop.c?annotate=1.162 Zeilen 1092-1098

Wenn Sie neugierig sind, pw ist vom Typ struct passwd * und unter Linux ist in /usr/include/pwd.h definiert


Linux
  1. SSH zu einem anderen Port als 22:So geht's (mit Beispielen)

  2. So richten Sie SSH-Tunneling ein

  3. Wie finde ich doppelte Dateien in Linux? Hilfe ist hier mit dem fdupes-Befehl!

  4. Linux – Wie wird ein Remote-Dateisystem mit Angabe einer Portnummer gemountet?

  5. Wie ändere ich den Standardport von Remote Desktop (vnc)?

So führen Sie eine Batch-Bildverarbeitung auf dem Linux-Destop mit XnConvert durch

So richten Sie eine Firewall mit GUFW unter Linux ein

So richten Sie den Pretty Hostnamen ein

So richten Sie ein Git-Repository mit Plesk ein

So ändern Sie den SSH-Port in CentOS

So richten Sie die UFW-Firewall unter Linux ein