Nécromancie.
Facile. Avec un noyau normal ou ancien, ce n'est pas le cas.
Comme l'ont souligné d'autres personnes, iptables peut transférer un port.
Comme d'autres l'ont également souligné, CAP_NET_BIND_SERVICE peut également faire le travail.
Bien sûr, CAP_NET_BIND_SERVICE échouera si vous lancez votre programme à partir d'un script. Sauf si vous définissez une limite sur l'interpréteur de shell, ce qui ne sert à rien, vous pourriez aussi bien exécuter votre service en tant que root ...
par exemple pour Java, vous devez l'appliquer à la JVM JAVA
sudo /sbin/setcap 'cap_net_bind_service=ep' /usr/lib/jvm/java-8-openjdk/jre/bin/java
Cela signifie évidemment que tout programme Java peut lier des ports système.
Dito pour mono / .NET.
Je suis également convaincu que xinetd n'est pas la meilleure des idées.
Mais puisque les deux méthodes sont des bidouilles, pourquoi ne pas simplement lever la limite en levant la restriction?
Personne n'a dit que vous devez exécuter un noyau normal, vous pouvez donc utiliser le vôtre.
Vous venez de télécharger le code source du dernier noyau (ou du même logiciel que vous avez actuellement). Ensuite, vous allez à:
/usr/src/linux-<version_number>/include/net/sock.h:
Là vous cherchez cette ligne
/* Sockets 0-1023 can't be bound to unless you are superuser */
#define PROT_SOCK 1024
et le changer en
#define PROT_SOCK 0
si vous ne voulez pas avoir une situation ssh non sécurisée, vous la changez en ceci: #define PROT_SOCK 24
En règle générale, j'utiliserais le paramètre le plus bas dont vous avez besoin, par exemple 79 pour http ou 24 lorsque vous utilisez SMTP sur le port 25.
C'est déjà tout.
Compilez le noyau et installez-le.
Redémarrer.
Terminé - cette limite stupide est GONE, et cela fonctionne également pour les scripts.
Voici comment vous compilez un noyau:
https://help.ubuntu.com/community/Kernel/Compile
# You can get the kernel-source via package linux-source, no manual download required
apt-get install linux-source fakeroot
mkdir ~/src
cd ~/src
tar xjvf /usr/src/linux-source-<version>.tar.bz2
cd linux-source-<version>
# Apply the changes to PROT_SOCK define in /include/net/sock.h
# Copy the kernel config file you are currently using
cp -vi /boot/config-`uname -r` .config
# Install ncurses libary, if you want to run menuconfig
apt-get install libncurses5 libncurses5-dev
# Run menuconfig (optional)
make menuconfig
# Define the number of threads you wanna use when compiling (should be <number CPU cores> - 1), e.g. for quad-core
export CONCURRENCY_LEVEL=3
# Now compile the custom kernel
fakeroot make-kpkg --initrd --append-to-version=custom kernel-image kernel-headers
# And wait a long long time
cd ..
En bref, utilisez iptables si vous voulez rester en sécurité, compilez le noyau si vous voulez être sûr que cette restriction ne vous dérange plus.