मैं ssh * दूरस्थ * पोर्ट अग्रेषण को कैसे सीमित कर सकता हूं?


22

मुझे ssh -Rउपयोगकर्ता द्वारा अग्रेषित किए जाने वाले पोर्ट को दूरस्थ रूप से सीमित करने की आवश्यकता है ।

मुझे permitopenअधिकृत_कीप्स पर विकल्प के बारे में पता है , लेकिन जैसा कि मैन पेज पर कहा गया है कि यह केवल स्थानीय ' ssh -L' पोर्ट फॉरवर्डिंग को सीमित करता है

जैसा कि यहां चर्चा की गई है कि एक उपयोगकर्ता को netcatसमान या समान मिलेगा , लेकिन इस मामले में उपयोगकर्ता के पास शेल एक्सेस नहीं है

मुझे यह धागा भी मिला, जो सेलिनक्स का उपयोग करने के बारे में बात करता है या LD_PRELOAD, लेकिन मैंने पहले कभी भी सेलिनक्स को कॉन्फ़िगर नहीं किया है और इसके साथ कैसे करें, इस बारे में जानकारी नहीं मिल सकती है LD_PRELOAD

शायद किसी ने इसे लागू करने के लिए ओपनशेड के लिए एक पैच बनाया है?

संपादित करें: मुझे यह बग रिपोर्ट मिली है इसलिए मुझे लगता है कि यह अभी तक लागू नहीं हुई है


क्या आपने इसके लिए कोई हल ढूंढा है?
अलेक्सा डेस

मैंने नहीं किया, मुझे लगता है कि यह तब तक नहीं किया जा सकता है जब तक कि उपरोक्त बग बंद नहीं होता है या कोई इसे लागू करने के लिए पैच नहीं लिखता है
लुलिस

जवाबों:


3

यह ओपनएसएसएच 7.8 पी 1 में लागू किया गया है, जो 2018-08-24 को जारी किया गया था। रिलीज नोट्स से उद्धरण:

PermitListen के निर्देश को sshd_config (5) और संबंधित permlisten = प्राधिकृत_लेखों के विकल्प में जोड़ें, जो नियंत्रण को संबोधित करते हैं, जो पते और पोर्ट संख्या को सुनकर दूरस्थ अग्रेषण (ssh -R ...) का उपयोग कर सकते हैं।


4

एक विकल्प है no-port-forwardingजिसे आप उपयोग कर सकते हैं, जो सभी पोर्ट अग्रेषण को रोकता है। कम से कम OpenSSH 4.3p2 (CentOS 5.3 - सबसे पुरानी मशीन जिसकी मुझे एक्सेस है) के रूप में प्रस्तुत करें। इसे उसी जगह पर रखें जो आपने डाला होगा permitopen


13
पोर्ट फ़ॉरवर्डिंग को पूरी तरह से अक्षम करना ओवरकिल लगता है और प्रश्न के लिए उपयुक्त नहीं है। मुझे लगता है कि ओपी इसे सीमित करना चाहता है , फिर भी कुछ विशिष्ट रिमोट पोर्ट फॉरवर्डिंग की अनुमति देता है।
gertvdijk

2
हां, मुझे कुछ बंदरगाहों को अग्रेषित करने की अनुमति देने की आवश्यकता है
लुल्लीस

0

यह संभव नहीं है कि ssh का उपयोग करते हुए इसे सीमित किया जाए। शायद selinux या iptables का उपयोग उस अंत तक किया जा सकता है। हालांकि, एक वैकल्पिक रणनीति है जो आपकी आवश्यकताओं के अनुरूप हो भी सकती है और नहीं भी। UNIX सॉकेट्स के लिए बाइंडिंग का उपयोग करें। यह ओपनशेयर संस्करण 6.8 से शुरू होना चाहिए।

सॉकेट्स का उपयोग करते समय आपके पास अपने निपटान में फाइलसिस्टम एसीएल (हालांकि वेदर सॉकेट्स इज्जत जो * निक्स आश्रित हो सकती है) है और आप इसका उपयोग एक उपयोगकर्ता को दूसरे लोगों को सॉकेट से बांधने से रोकने के लिए कर सकते हैं। हालाँकि, यह बंदरगाहों को किसी भी तरह से बाँधने से नहीं रोकता है, इसलिए आपके उपयोग के मामले के आधार पर यह मदद नहीं कर सकता है, लेकिन हो सकता है कि बंदरगाह मायने नहीं रखते अगर आप लगातार केवल सॉकेट्स का उपयोग कर सकते हैं।

UNIX सॉकेट्स के साथ झूलने वाले सॉकेट फ़ाइलों को संभालना समस्याग्रस्त हो सकता है क्योंकि रिवर्स प्रकाशक पुन: कनेक्ट करने का प्रयास करते हैं। मेरे पास उस समस्या का एक और प्रश्न (और उत्तर) है। संक्षेप में आप शायद भी उपयोग करना चाहते हैं StreamLocalBindUnlink yes:

कनेक्शन बंद होने के बाद SSH रिवर्स टनल सॉकेट की सफाई कैसे करें?


-1

डुप्लिकेट: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it

लगता है कि आप निम्नलिखित का उपयोग कर सकते हैं?

सर्वर कॉन्फ़िगरेशन फ़ाइल में एक PermitOpen विकल्प है। इस विकल्प का उपयोग मेजबानों और बंदरगाहों को निर्दिष्ट करने के लिए किया जा सकता है जिसके लिए आगे की स्थापना की जा सकती है। इस विकल्प का उपयोग मैच ब्लॉक के अंदर किया जा सकता है, इसलिए इसे उपयोगकर्ता, समूह या होस्टनाम या आईपी एड्रेस पैटर्न द्वारा प्रतिबंधित किया जा सकता है।

संपादित करें: इसलिए सर्वर कॉन्फ़िगरेशन में निम्नलिखित जोड़ें

PermitOpen होस्ट: पोर्ट

PermitOpen IPv4_addr: पोर्ट

PermitOpen [IPv6_addr]: पोर्ट


1
केवल यू एंड एल पर डुप्लिकेट के रूप में चिह्नित किया जा सकता है।
GAD3R

1
जैसा कि प्रश्न में कहा गया है, यह -L के लिए है और यह पहले से ही एक गैर समाधान के रूप में जाना जाता है
एलेक्सॉउ डे

1
क्या कभी इसका कोई समाधान होगा (iptables के बगल में)?
davesave
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.