1 votes

Comment rendre un port privilégié non privilégié dans Redhat 5 ?

Donc j'ai une boîte RedHat 5 sur laquelle je veux exécuter une application que j'ai écrite qui met en œuvre SLP. SLP utilise le port 427 pour répondre aux requêtes de service. Ma compréhension est que les ports inférieurs à 1024 sont "privilégiés" et ne peuvent donc pas être liés par quelqu'un qui n'est pas root. Je ne peux pas exécuter cette application en tant que root car elle est lancée via tomcat.

Une solution créative que j'aime vraiment était simplement d'écrire une règle iptables pour router le port privilégié vers un port non privilégié. Dans mes tests de preuve de concept, cela fonctionne à merveille. Malheureusement, il serait grandement (et compréhensiblement) souhaité par les autorités que mon application ne nécessite pas de bidouiller iptables lors de l'installation.

J'ai entendu une rumeur et je ne trouve rien pour le vérifier qu'il y avait une sorte de commande ou de paramètre qui pouvait être défini pour rendre n'importe quel port que je veux non privilégié. Est-ce vrai? Si oui, comment cela se fait-il? Merci!

MISE À JOUR

Du coup, j'ai vu ce post sur Stack Overflow: https://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l Il semble qu'il ait utilisé quelque chose appelé les capacités. Le problème avec cela est qu'il semble nécessiter un noyau 2.6.24+, mais je n'ai accès qu'au noyau 2.6.18. Y a-t-il un moyen de définir des capacités sur une boîte 2.6.18?

3voto

cjc Points 24265

Vous demandez essentiellement la même chose que ceci :

https://stackoverflow.com/questions/5544713/starting-tomcat-on-port-80-on-centos-release-5-5-final

Alors, utilisez jsvc.

0voto

Jodie C Points 733

Une approche de pansement serait d'écouter sur un port non privilégié, puis de rediriger avec xinetd à partir du port privilégié.

$ grep bandaid /etc/services
bandaid         190/tcp                       # bandaid

$ cat /etc/xinetd.d/bandaid
service bandaid
{
    disable = no
    bind = 10.0.0.45
    socket_type = stream
    protocol = tcp
    wait = no
    user = nobody
    redirect = localhost 8888
}

C'est une idée horrible à mon avis, mais parfois vous n'avez pas d'autres options.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X