Güncelleme 2017:
CAP_NET_BIND_SERVICE veya özel bir çekirdekten çok daha iyi.
Joshua'nın muhteşem (= ne yaptığını bilmiyorsan tavsiye edilmez) için bir çekirdek olarak tavsiye:
İlk olarak buraya gönderdim .
Basit. Normal veya eski bir çekirdeğe sahip değilsiniz.
Başkaları tarafından işaret edildiği gibi, iptables bir limanı iletebilir.
Başkaları tarafından da belirtildiği gibi, CAP_NET_BIND_SERVICE işi de yapabilir.
Tabii ki programınızı bir komut dosyasından başlatırsanız CAP_NET_BIND_SERVICE başarısız olur, kabuk yorumlayıcısının kapağını anlamsız olarak ayarlamazsanız, hizmetinizi kök olarak da çalıştırabilirsiniz ...
örneğin Java için, uygulamanız gerekir JAVA JVM'ye
sudo /sbin/setcap 'cap_net_bind_service=ep' /usr/lib/jvm/java-8-openjdk/jre/bin/java
Açıkçası, bu, herhangi bir Java programının sistem bağlantı noktalarını bağlayabileceği anlamına gelir.
Mono / .NET için Dito.
Ayrıca xinetd'in en iyi fikir olmadığından da eminim.
Ancak her iki yöntem de hack olduğundan, neden sadece kısıtlamayı kaldırarak sınırı kaldırmıyorsunuz?
Kimse normal bir çekirdeği çalıştırmanız gerektiğini söylemedi, böylece sadece kendi çekirdeğinizi çalıştırabilirsiniz.
En son çekirdeğin (veya şu anda sahip olduğunuz) için kaynağı indirmeniz yeterlidir. Daha sonra şuraya gidersiniz:
/usr/src/linux-<version_number>/include/net/sock.h:
Orada bu çizgiye bakıyorsun
/* Sockets 0-1023 can't be bound to unless you are superuser */
#define PROT_SOCK 1024
ve olarak değiştir
#define PROT_SOCK 0
güvensiz bir ssh durumu yaşamak istemiyorsanız, bunu şu şekilde değiştirirsiniz: #define PROT_SOCK 24
Genellikle, ihtiyacınız olan en düşük ayarı kullanırdım, örneğin http için 79 veya 25 numaralı bağlantı noktasında SMTP kullanırken 24.
Hepsi bu kadar.
Çekirdeği derleyin ve yükleyin.
Yeniden Başlatma.
Tamamlandı - bu aptal sınır GONE'dir ve bu da komut dosyaları için de çalışır.
Bir çekirdeği şöyle derlersiniz:
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 ..
Özetle, güvenli kalmak istiyorsanız iptables kullanın, bu kısıtlamanın sizi bir daha asla rahatsız etmediğinden emin olmak istiyorsanız çekirdeği derleyin.