होस्टपैड के लिए NAT iptables नियमों का उपयोग कैसे करें


8

मेरा पीसी दो नेट इंटरफेस - wlan0 और eth0 से लैस है। मैं wlan0 पर पहुंच बिंदु के रूप में वाईफाई पोर्ट का उपयोग करना चाहता हूं। इसलिए मैं hostapd सुविधा का उपयोग करता हूं और यह स्थानीय नेटवर्क में राउटिंग मोड में ठीक से काम करता है। उपयोगकर्ता ऐसे बनाए गए एक्सेस प्वाइंट से कनेक्ट हो सकते हैं और डीएचसीपी दोनों सेगमेंट में ठीक से काम करता है। Hostapd वाले PC में कोई फ़ायरवॉल और / या iptables नियम (iptables और फ़ायरवॉल अक्षम) नहीं हैं। मैं केवल ADSL राउटर में फ़ायरवॉल बिल्ड का उपयोग करना चाहता हूं।

मेरा नेट कॉन्फिग इस प्रकार है

...... होस्टपैड के साथ पीसी ................. केबल कनेक्शन .................. ADSL राउटर

..... wlan0 .............. eth0 ..... <----------------------- -------> ........... 192.168.0.1 ...................... <---> इंटरनेट 192.168.10.1 ... 192.168.0.7 .............................. 192.168.10.11 को स्थिर मार्ग जोड़ा गया

पीसी पर ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:12:3F:F2:31:65  
       inet addr:192.168.0.7  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::212:3fff:fef2:3165/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2169539 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1008097 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3056198487 (2.8 GiB)  TX bytes:72727161 (69.3 MiB)
      Interrupt:16 

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:3398 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3398 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:495444 (483.8 KiB)  TX bytes:495444 (483.8 KiB)

mon.wlan0 Link encap:UNSPEC  HWaddr 00-14-A5-04-94-3C-90-F0-00-00-00-00-00-00-00-00  
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:151 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:17092 (16.6 KiB)  TX bytes:0 (0.0 b)

wlan0     Link encap:Ethernet  HWaddr 00:14:A5:04:94:3C  
      inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
      inet6 addr: fe80::214:a5ff:fe04:943c/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1502 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 b)  TX bytes:279392 (272.8 KiB)

मैं पूरी तरह से iptables में noob हूँ। तो क्या कोई मुझे पीसी पर साधारण NAT iptables को कॉन्फ़िगर करने में मदद कर सकता है? मैं चाहता हूं कि सभी उपयोगकर्ता होस्टपेड (नेटवर्क 192.168.10.X) के माध्यम से नेटवर्क से जुड़े और इंटरनेट से पहुंच प्राप्त कर सकें? मैं किसी भी ट्रैफ़िक को फ़िल्टर नहीं करना चाहता, केवल NAT।


ठीक है धन्यवाद। लेकिन मुझे वाईफाई सेगमेंट से इंटरनेट का कनेक्शन नहीं मिल सकता है। WiFi से जुड़े क्लाइंट का पता 192.168.10.48 (डीएचसीपी के माध्यम से) है। इनली ट्रैफिक मैं इस पते से eth0 पोर्ट पर देख सकता हूं

16:50:14.671587 ARP, Request who-has 192.168.0.48 tell 192.168.0.1, length 46

सूचना - पता 192.168.0.48 नहीं 192.168.10.48 है। तो बहाना काम करने के लिए।

Eaven I 192.168.0.1 को पिंग नहीं कर सकता - ADSL राउटर का पोर्ट। यह पहले संभव था।

और इंटरनेट से वाईफ़ाई उपयोगकर्ताओं तक पहुंच के बारे में क्या? निश्चित रूप से मैं ADSL राउटर में सेटअप करूंगा, विशेष रूप से ऐसे वाईफाई उपयोगकर्ता के लिए इंटरनेट से विशेष रूप से आईपी पते पर आईपी पोर्ट पूलिंग को अग्रेषित करना।

संपादित करें

systemstl दिखाता है कि iptables है:

iptables.service          loaded active exited

लेकिन निश्चित रूप से मैं चला:

systemctl enable iptables.service
systemctl start iptables.service

संपादित करें

काम करता है! लेकिन मुझे हर बार आई बूट कंप्यूटर (स्टार्टअप स्क्रिप्ट से) मैन्युअल रूप से जोड़ना होगा:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

क्या यह सामान्य स्थिति है?


नीचे मेरी अद्यतन प्रतिक्रिया देखें ...
विधायक

जवाबों:


6

सबसे सरल रूप में:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

बस इतना ही वाईफाई उपयोगकर्ताओं के उपयोग की अनुमति देगा करने के लिए इंटरनेट।

निश्चित रूप से आपके अन्य रूटिंग सेटअप को पहले से ही मान लिया गया है, अर्थात्:

  1. फ़ॉरवर्डिंग कर्नेल में सक्षम है

    sysctl net.ipv4.ip_forward=1
    
  2. अग्रेषण सक्षम किया गया iptables:

    iptables -P FORWARD ACCEPT
    iptables -F FORWARD
    

समस्याओं tcpdump -nn -i eth0को देखने के लिए ट्रैफ़िक देखने के लिए उपयोग करें eth0कि क्या यह ठीक से ठीक हो जाता है, अगर प्रतिक्रिया वापस आ रही है, आदि।

संपादित करें: "मुझे हर बार बूट कंप्यूटर (स्टार्टअप स्क्रिप्ट से) को मैन्युअल रूप से जोड़ना होगा ..." यह इस बात पर निर्भर करता है कि आपके पास कौन सा लिनक्स वितरण है। अफसोस की बात यह है कि प्रत्येक डिस्ट्रो का अपना फ़ायरवॉल टूल है - अंत में वे केवल कॉल कर रहे हैं, iptablesलेकिन किसी कारण से लेखकों का मानना ​​है कि जिस तरह से iptables काम करना चाहते हैं, उसे बाधित करना है।

आपके प्रश्न का उत्तर देने के लिए - इस NAT नियम को स्वचालित रूप से जोड़ने के लिए सबसे अधिक संभावना है कि आपके फ़ायरवॉल को कॉन्फ़िगर किया जा सकता है। हालांकि, बिना किसी अच्छे कारण के लिनक्स डिस्ट्रोस के बीच सटीक तरीका बदलता है। दुखद लेकिन सत्य।


पीसी पर सभी फ़ायरवॉल अक्षम हैं। केवल चलने वाली सेवा iptables है
mackowiakp

iptables == फ़ायरवॉल - किसी तरह आपको उस MASQUERADE नियम का उत्सर्जन करने के लिए iptables को कॉन्फ़िगर करने की आवश्यकता होती है। कैसे? यह आपके लिनक्स वितरण पर निर्भर करता है। कहीं न कहीं कॉन्फिग फाइल होनी चाहिए। कहाँ पे? यह आपके लिनक्स वितरण पर निर्भर करता है।
विधायक

तो आप म्यू iptables का फैसला किया है:
mackowiakp

इसलिए आपने mu iptables का फैसला किया: [रूट @ मीडिया ~] # iptables -L चेन INPUT (पॉलिसी ACCEPT) लक्ष्य विरोध ऑप्ट सोर्स डेस्टिनेशन चेन FORWARD (पॉलिसी ACCEPT) लक्ष्य विरोध ऑप्ट सोर्स गंतव्य चेन OUTUTUT (पॉलिसी ACCEPT) लक्ष्य विरोध स्रोत गंतव्य । और मैं और स्टार्टअप में ऐसी लाइन: iptables -t nat-POSTROUTING -o eth0 -j MASQUERADE। तो iptables का मेरा कार्यान्वयन डी वास्तव में "पारदर्शी" फ़ायरवॉल है - या नो-फ़ायरवॉल
mackowiakp

5

मैंने सभी अवसरों के लिए एक फ़ायरवॉल लिखा। उपयोग करने से पहले कृपया README और SCRIPT पढ़ें। मैंने HOSTAP के लिए आवश्यक नियम शामिल किए

आवश्यक अंग:

HostAP

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

HostAP को कार्य करने के लिए ACCEPT होने के लिए नीचे दी गई लाइनों की आवश्यकता होती है

iptables -A INPUT -j ACCEPT >> /dev/null 2>&1 
iptables -A OUTPUT -j ACCEPT >> /dev/null 2>&1

https://github.com/diveyez/fw.sh

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