समाधान I: एक विशिष्ट पुस्तकालय को लोड करना
ऐप-रूट-जेल : इंटरफ़ेस गेटवे को मजबूर करने के लिए ld_preload का उपयोग करें (महान विचार लेकिन रूट या अंक क्षमताओं की आवश्यकता होती है) का उपयोग नोटों पर विस्तृत है
प्रॉक्सी : एक विशेष एप्लिकेशन के लिए प्रॉक्सी को बाध्य करने के लिए ld_preload का उपयोग करें (यह इंटरफ़ेस के बजाय प्रॉक्सी का उपयोग कर रहा है)
फोर्स-बिंद : सुविधाओं की एक बहुत कुछ है लेकिन बाइंड लीक (विश्वसनीय नहीं)
बाइंड-इंटरफ़ेस-आईपी : बहुत सरल और लीक कनेक्शन (विश्वसनीय नहीं)
Bind-IP : बहुत सरल और रिसाव कनेक्शन (विश्वसनीय नहीं)
समाधान II: लिनक्स उपयोक्ता
क्लासिक लिनक्स उपयोगकर्ता अंतरिक्ष आईपी-नेटन्स : महान समाधान लेकिन रूट और इंटरफ़ेस की आवश्यकता होती है केवल एक ही उपयोगकर्ता स्थान पर मौजूद हो सकता है
फायरजेल : फायरजेल एक एप्लिकेशन को एक विशिष्ट नेटवर्क का उपयोग करने के लिए मजबूर कर सकता है, लेकिन संगतता सीमित है (उदाहरण के लिए यह ट्यून इंटरफेस के साथ संगत नहीं है)। फायरजेल को रूट की आवश्यकता नहीं हैfirejail --dns=8.8.8.8 --noprofile --net=eth0 --ip=192.168.1.1 app-command
नेटजेल के साथ फायरजेल : फायरजेल एक एप्लिकेशन को एक विशिष्ट उपयोगकर्ता स्थान का उपयोग करने के लिए मजबूर कर सकता है जो अलग से बनाया गया था, यह हमें बिना रूट के नाम देता हैfirejail --dns=8.8.8.8 --noprofile --netns=nameOfyourNS app-command
मस्कारे और पुल के साथ फायरजेल : फायरजेल एक एप्लिकेशन को iptables मस्कारा के साथ एक विशिष्ट इंटरफ़ेस का उपयोग करने के लिए मजबूर कर सकती है , यह बहुत अच्छा है और इसे रूट की आवश्यकता नहीं है लेकिन इसके लिए ip_forward की आवश्यकता होती है और सुरक्षा प्रभाव को प्रभावित कर सकता हैfirejail --net=br0 firefox
समाधान III: लिनक्स iptables
Iptables का उपयोग इस उद्देश्य के लिए किया जा सकता है, लेकिन इसके लिए ip_forward की आवश्यकता होती है और यदि यह सही ढंग से कॉन्फ़िगर नहीं किया गया है, तो सुरक्षा प्रभाव को प्रभावित कर सकता है, उदाहरण 1 , उदाहरण 2 , उदाहरण 3 , उदाहरण 4
समाधान (I, II और III) नोट:
Wireguard
यदि आप एक वीपीएन (विशेष रूप से वायरगार्ड) का उपयोग कर रहे हैं और आप इस समाधान को वायरगार्ड इंटरफेस ( उपयोगकर्ता स्थान के साथ वायरगार्ड) पर लागू करना चाहते हैं, तो आप एक wg इंटरफ़ेस (और इस प्रकार एक वीपीएन इंटरफेस तक सीमित) से युक्त उपयोगकर्ता स्थान बनाने के लिए लिंक किए गए निर्देश का पालन कर सकते हैं। ) यह भी firejail --netns=container
जड़ के बिना उपयोगकर्ता स्थान का उपयोग करने में सक्षम होने के साथ जोड़ा जा सकता है ।
इंटरफ़ेस गेटवे कैसे खोजें
गेटवे खोजने के लिए कई समाधान हैं यहां कुछ कमांड हैं जो उपयोग किए गए गेटवे को खोजने की अनुमति देते हैं
$ route
$ route -n
$ ip rule list
$ ip route show
$ netstat -rn
$ cat /etc/network/interfaces
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
$ traceroute www.google.com
$ ip route show 0.0.0.0/0 dev eth0
ऐप-रूट-जेल का उपयोग कैसे करें
git clone https://github.com/Intika-Linux-Network/App-Route-Jail.git
cd Approute-Utils
chown 755 make.sh
./make.sh
- भविष्य के चिह्नित पैकेट के लिए एक मार्ग जोड़ें (जेल आवेदन के लिए) इस उदाहरण
192.168.1.1
में मजबूर गेटवे के रूप में उपयोग किया जाता है, यह मार्ग नियम अन्य अनुप्रयोगों को प्रभावित नहीं करेगा, इस हेरफेर को उदाहरण के लिए सिस्टम बूट पर केवल एक बार किया जाना चाहिए यदि आप चाहते हैं इस घोल को रोजाना इस्तेमाल करें
ip rule add fwmark 10 table 100
ip route add default via 192.168.1.1 table 100
- वह एप्लिकेशन प्रारंभ करें जिसे आप जेल करना चाहते हैं
MARK=10 LD_PRELOAD=./mark.so firefox
MARK=10 LD_PRELOAD=./mark.so wget -qO- ifconfig.me