Utente regolare che utilizza porte inferiori a 1024

C'è un modo su Linux (Centos se questo è importnte) per consentire agli utenti normali di utilizzare porte inferiori a 1024? (aprire l'ascolto TCP di ascolto su quella port)

Attualmente mi rendo conto che solo la root ha i privilegi per utilizzare quelle porte.

  • Porti inferiori a 1024
  • Aggiunta di una directory a $ PATH in CentOS?
  • 6 Solutions collect form web for “Utente regolare che utilizza porte inferiori a 1024”

    Non su CentOS 3/4/5 (mancanza di funzionalità del filesystem):

    È ansible impostare la capacità CAP_NET_BIND_SERVICE al programma che deve aprire questa port. Root imposta la capacità sull'eseguibile, quindi qualsiasi utente può eseguire l'eseguibile, sarà in grado di utilizzare le porte <1024.

    Per impostare la funzionalità sull'eseguibile:

    setcap cap_net_bind_service=+ep /path/to/program 

    IIRC questo non è ansible, o se non è raccomandato per ragioni di sicurezza.

    Ma se si desidera che gli utenti possano ascoltare in una port specifica è ansible utilizzare sempre un forwarder TCP come regole rinetd o iptables per redirect le connessioni a quella port a una persona in grado di ascoltare e impostare il loro servizio per ascoltare quella port più alta .

    Ad esempio la linea

     aa.bb.cc.dd 80 127.0.0.1 8000 

    nella configuration di rinetd inoltrerebbe le connessioni alla port 80 sull'indirizzo aa.bb.cc.dd a localhost port 8000 che un utente non privilegiato può ascoltare. Una regola iptables equivalente sarebbe qualcosa di simile

     /sbin/iptables -t nat -A PREROUTING -p tcp -d aa.bb.cc.dd --dport 80 -j DNAT --to 127.0.0.1:8000 

    In entrambi i casi si ottiene un controllo granulometrico molto più fine di consentire ad each utente di ascoltare in qualsiasi port.

    L'approccio iptables ha il vantaggio che l'applicazione di ascolto vedrà l'indirizzo IP del client chiamante (con il metodo rinetd vedrebbe tutte le connessioni provenienti dall'host locale). Il metodo iptables consentirebbe anche UDP e TCP.

    È ansible creare un wrapper che esegue SUID e rilascia i privilegi dopo l'apertura della port.

    autenticare le rocce.

    le funzionalità sono grandi cose, ma necessita di configurare correttamente alcune versioni del kernel. alcuni programmi, come il sole java, non con capabilieis. authbind funziona in tutte le versioni linux.

    authbind, tuttavia, support solo IPv4.

    Sono totalmente fuori dal context, o mi manca qualcosa di fondamentale? http://smarden.org/runit/chpst.8.html & http://cr.yp.to/daemontools/setuidgid.html

    http://isptools.sourceforge.net/suid-wrap.html

    Questo farà tutto il lavoro per te.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.