
यह एक मिनी-फ़ायरवॉल है जो लक्षित डिवाइस को स्थानीय नेटवर्क से पूरी तरह अलग कर देता है।
यह एक मिनी-फ़ायरवॉल है जो किसी लक्षित डिवाइस को स्थानीय नेटवर्क से पूरी तरह अलग कर देता है। यह संक्रमित मशीनों को इंटरनेट एक्सेस देने के लिए है, लेकिन स्थानीय नेटवर्क को खतरे में डाले बिना।
यह प्रोजेक्ट libpcap पर निर्भर करता है, और निश्चित रूप से एक C कंपाइलर पर।
Debian पर, निम्नलिखित काम करना चाहिए:
# apt-get install git gcc make libpcap-dev
# git clone https://github.com/robertdavidgraham/isowall
# cd isowall
# make
यह बाइनरी isowall को स्थानीय isowall/bin निर्देशिका में रख देगा।
यह Windows, Mac OS X, xBSD, और लगभग किसी भी ऑपरेटिंग सिस्टम पर भी काम करना चाहिए जो libpcap का समर्थन करता है।
सबसे पहले, तीन नेटवर्क इंटरफ़ेस वाली एक मशीन सेटअप करें।
पहला नेटवर्क इंटरफ़ेस (जैसे eth0) सामान्य रूप से कॉन्फ़िगर किया जाएगा, जिसमें TCP/IP स्टैक होगा,
ताकि आप उस पर SSH कर सकें।
अन्य दो नेटवर्क इंटरफ़ेस में कोई TCP/IP स्टैक नहीं होना चाहिए, कोई IP पता नहीं, कुछ भी नहीं। यह सबसे महत्वपूर्ण कॉन्फ़िगरेशन चरण है, और सबसे आम चीज़ जो आप गलत करेंगे। उदाहरण के लिए, मशीन पर DHCP सॉफ़्टवेयर इन अतिरिक्त इंटरफ़ेस पर स्वचालित रूप से DHCP अनुरोध भेजने के लिए कॉन्फ़िगर किया जा सकता है। आपको जाकर इसे ठीक करना होगा ताकि इन इंटरफ़ेस से कुछ भी बंधा न हो।
चलाने के लिए, बस टाइप करें:
# ./bin/isowall --internal eth1 --external eth2 -c xxxx.conf
जहाँ xxxx.conf में आपका कॉन्फ़िगरेशन होता है, जिसका वर्णन नीचे किया गया है।
निम्नलिखित एक सामान्य कॉन्फ़िगरेशन फ़ाइल दिखाता है
internal = eth1
internal.target.ip = 10.0.0.129
internal.target.mac = 02:60:8c:37:87:f3
external = eth2
external.router.ip = 10.0.0.1
external.router.mac = 66:55:44:33:22:11
allow = 0.0.0.0/0
block = 192.168.0.0/16
block = 10.0.0.0/8
block = 224.0.0.0-255.255.255.255
जिस लक्षित डिवाइस को हम अलग कर रहे हैं उसका संकेतित IP और MAC पता है।
केवल IPv4 और ARP पैकेट पास किए जाते हैं।
बाहर जाने वाले पैकेटों में निम्नलिखित शर्तें होनी चाहिए:
internal.target.mac के बराबर होexternal.router.mac के बराबर होinternal.target.ip के बराबर होallow सीमा के भीतर हो, लेकिन block सीमा में नहीं होexternal.router.ip के बराबर होना चाहिएअंदर आने वाले पैकेटों में निम्नलिखित शर्तें होनी चाहिए:
internal.target.mac के बराबर होexternal.router.mac के बराबर होinternal.target.ip के बराबर होallow सीमा के भीतर हो, लेकिन block सीमा में नहीं होexternal.router.ip के बराबर होना चाहिएनिश्चित रूप से कोई गारंटी नहीं है, लेकिन इस प्रोग्राम की सुरक्षा काफी अच्छी है।
सुरक्षा इस तथ्य पर टिकी है कि एडेप्टर से कोई IP स्टैक बंधा नहीं है।
इसका मतलब यह है कि संक्रमित लक्षित मशीन फ़ायरवॉल मशीन को किसी भी तरह से छू नहीं सकती,
सिवाय उसके जो is_allowed() फ़ंक्शन में अनुमति दी गई है।
वह फ़ंक्शन फ़ायरवॉल मशीन के लिए अधिकांश हमले की सतह का प्रतिनिधित्व करता है।
और, जैसा कि आप फ़ंक्शन पढ़कर बता सकते हैं, इसमें लगभग कोई कार्यक्षमता नहीं है,
जिसका अर्थ है कि हमले की सतह वास्तव में बहुत छोटी है।
कुछ सैद्धांतिक हमले हैं जो भौतिक परत पर हो सकते हैं, लेकिन अधिकतर हमें उनके बारे में चिंता करने की आवश्यकता नहीं है।