GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un transfert de port distant sur le port 80 vers l'hôte local à l'aide de Setcap ?

J'aimerais accepter brièvement les connexions pour le développement lorsque je suis NAT, et j'essaie donc de le faire :

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

Ce qui échoue car j'essaie de lier un port trop bas :

Warning: remote port forwarding failed for listen port 80

J'ai donc découvert que je pouvais faire setcap 'cap_net_bind_service=+ep' /my/application pour lui permettre d'écouter les ports inférieurs à 1024. J'ai donc ceci dans ma crontab suders :

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

Mais ça ne me laisse toujours pas me lier au port 80. Qu'est-ce que je fais de mal ? Je vais juste utiliser nginx pour proxy vers 8080 ou iptables ou quelque chose à la place, mais je suis toujours curieux de savoir pourquoi ce que j'essayais de faire n'a pas fonctionné.

Réponse acceptée :

OpenSSH refusera catégoriquement de se lier aux ports privilégiés à moins que l'ID utilisateur de l'utilisateur connecté ne soit 0 (root). Les lignes de code pertinentes sont :

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.");

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

Si vous êtes curieux, pw est de type struct passwd * et sous Linux est défini dans /usr/include/pwd.h


Linux
  1. SSH vers un port autre que 22 :comment le faire (avec exemples)

  2. Comment configurer le tunnel SSH

  3. Comment trouver des fichiers en double sous Linux ? L'aide est ici avec la commande fdupes !

  4. Linux - Comment monter un système de fichiers distant en spécifiant un numéro de port ?

  5. Comment faire fonctionner Localhost avec un répertoire différent de l'index ?

Comment effectuer un traitement d'image par lots sur Linux Destop avec XnConvert

Comment configurer un pare-feu avec GUFW sous Linux

Comment configurer le joli nom d'hôte

Comment configurer un référentiel git avec Plesk

Comment changer le port SSH dans CentOS

Comment configurer le pare-feu UFW sous Linux