यह मानक व्यवहार है कि गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं को विशेषाधिकार प्राप्त बंदरगाहों (1024 से नीचे पोर्ट संख्या) को बांधने की अनुमति नहीं है। इसलिए एक ऐसा अनुप्रयोग जो उदाहरण के लिए 80 पोर्ट पर बाँधना चाहेगा, उसे इस पोर्ट को बाँधने के लिए विशेषाधिकार प्राप्त करना होगा (आमतौर पर रूट के रूप में चलाने का मतलब है)।
एक सामान्य दृष्टिकोण विशेषाधिकार प्राप्त उपयोगकर्ता के साथ एक छोटी "श्रोता" प्रक्रिया को चलाना है जो कनेक्शन को स्वीकार करता है और फिर अनुरोध को संभालने के लिए एक गैर-विशेषाधिकार प्राप्त प्रक्रिया को जन्म देता है। अनुरोध प्रसंस्करण के लिए ड्रॉपिंग विशेषाधिकार सुरक्षा कारण के लिए किया जाता है। यदि कोई ऐसी प्रक्रिया का उपयोग करने में सक्षम है जो अनुरोध को संभालती है, तो आमतौर पर यह घुसपैठिए को प्रसंस्करण प्रक्रिया के समान विशेषाधिकार का उपयोग करके आदेशों को निष्पादित करने की अनुमति देता है। इसलिए विशेषाधिकार प्राप्त प्रक्रिया का उपयोग करके पूरे अनुरोध को संभालना बुरा होगा।
हालाँकि कई अनुप्रयोगों के लिए आजकल गैर-रूट के रूप में चलना आम है; लेकिन निश्चित रूप से ऐसी प्रक्रियाएं विशेषाधिकार प्राप्त बंदरगाहों से मानक विन्यास में नहीं बंध सकती हैं। तो टॉमकैट या जेबॉस जैसे सर्वर 8080 जैसे उच्च-बंदरगाहों को बांधते थे, इसलिए उन्हें विशेषाधिकार प्राप्त श्रोता की आवश्यकता नहीं थी।
यदि आप इंटरनेट पर इस तरह की प्रक्रिया का खुलासा करते हैं, तो आप संभवतः पोर्ट 80 पर पहुंच प्रदान करेंगे क्योंकि प्रत्येक ब्राउज़र पहले HTTP प्रोटोकॉल का उपयोग करने पर पोर्ट 80 से कनेक्ट करने का प्रयास करेगा। डब्ल्यू आम काम के आसपास यह प्रदान करने के लिए आवेदन और सार्वजनिक इंटरनेट के बीच में एक फ़ायरवॉल या पोर्ट-ट्रांसलेटर का उपयोग करना है। इसलिए अनुरोधों ने फ़ायरवॉल को पोर्ट 80 का अनुरोध करने के लिए मारा, लेकिन फ़ायरवॉल पोर्ट 8080 पर कुछ आंतरिक होस्ट के लिए अनुरोध को आगे बढ़ाता है। इस तरह से वास्तविक वेब-सर्वर पोर्ट 80 पर सार्वजनिक रूप से उपलब्ध होने के दौरान हाई-पोर्ट पर काम कर सकता है।
- (internet request) ----> (port 80)[Firewall] ------> (port 8080)[Webserver]
कभी-कभी यह रीडायरेक्ट केवल iptables
NAT नियम का उपयोग करके किया जाता है :
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
यह पोर्ट 8080 पर एक अनपेक्षित एप्लिकेशन को सुनने की अनुमति देता है, जबकि पोर्ट 80 के लिए आने वाले सभी अनुरोध केवल 8080 पोर्ट पर रीडायरेक्ट किए जाते हैं।
हालांकि आधुनिक लिनक्स कर्नेल का उपयोग करने की एक और संभावना है: क्षमताओं का उपयोग करें।
setcap CAP_NET_BIND_SERVICE=+ep /some/webserver/binary
यह binary
गैर-रूट उपयोगकर्ता से शुरू होने पर भी विशेषाधिकार प्राप्त बंदरगाहों से बांधने की अनुमति देगा । man capabilities
अधिक जानकारी के लिए देखें।