CentV 7 पर iptables के बजाय Firewalld का उपयोग करने के लिए OpenVPN को कॉन्फ़िगर करना


14

मुझे Centos 7 का उपयोग करके OpenVPN को कॉन्फ़िगर करने की आवश्यकता है firewalld

मैंने सेंटोस 6.5 पर iptables का उपयोग किया और केवल निम्न पंक्तियों को जोड़ना था /etc/sysconfig/iptables:

-A POSTROUTING -s "10.0.0.0/24" -o "wlan0" -j MASQUERADE 
-A FORWARD -p tcp -s 10.0.0.0/24 -d 0.0.0.0/0 -j ACCEPT 
run the command: echo 1 > /proc/sys/net/ipv4/ip_forward 
open port 443.

जवाबों:


31

firewall-cmdकमांड का उपयोग करें ।

मान लें कि आप डिफ़ॉल्ट क्षेत्र पर OpenVPN तक फ़ायरवॉल खोल रहे हैं, निम्न कमांड को पूरा करें। यदि आप इसे एक गैर-डिफ़ॉल्ट क्षेत्र पर चला रहे हैं, तो --zone=<zone>कमांड में जोड़ें ।

नोट: यदि आप publicअपने बाहरी फेसिंग नेटवर्क अडैप्टर के लिए डिफॉल्ट ज़ोन का उपयोग करते हैं तो आपका लूपबैक इंटरफ़ेस भी मॉस्क्राइब किया जा सकता है ( firewalldआप जिस संस्करण को चला रहे हैं उस पर निर्भर करता है ) जिसके कारण यदि आप एक सेवा (जैसे कि mySQL) चला रहे हैं तो समस्याएँ हो सकती हैं स्थानीय स्तर पर।

सबसे पहले, वर्तमान में जो कुछ भी खुला है उसे सूचीबद्ध करें:

# firewall-cmd --list-services
http https ssh

अगला, openvpnसेवा जोड़ें :

# firewall-cmd --add-service openvpn
success

एक त्वरित जाँच:

# firewall-cmd --list-services
http https openvpn ssh

उपरोक्त openvpnकार्य करने की अनुमति देगा , जिसे आप अब परीक्षण कर सकते हैं। हालाँकि, यह पुनरारंभ नहीं होगा। इसे स्थायी बनाने के लिए, --permanentविकल्प जोड़ें :

# firewall-cmd --permanent --add-service openvpn`
success

ध्यान दें कि यह अंतिम कमांड अगले पुनरारंभ तक पोर्ट को नहीं खोलता है, इसलिए आपको दोनों कमांड का उपयोग करने की आवश्यकता है।

अंत में, मस्कारा जोड़ें:

# firewall-cmd --add-masquerade
success

और इसे पुनः आरंभ करने के बाद स्थायी करें:

# firewall-cmd --permanent --add-masquerade
success

इसकी पुष्टी करें:

# firewall-cmd --query-masquerade
yes

ध्यान दें कि यदि आपका आने वाला ओपनवीपीएन कनेक्शन आपके इंटरनेट के लिए एक अलग क्षेत्र में है, तो कनेक्शन का सामना करना पड़ सकता है और बाद वाले पर --zone=<zone>विकल्प का उपयोग करना होगा --add-masquerade


आप कैसे बताते हैं कि फ़ायरवॉल में ओपनवैप सेवा की परिभाषा क्या है? उदाहरण के लिए, आप यह कैसे सत्यापित कर सकते हैं कि यह TCP 443 पर Openvpn की अनुमति दे रहा है?
क्रिस्टोफर

@Christopher - सर्विस फाइल्स में स्थित हैं /lib/firewalld/services/। आपके मामले में, यह openvpn.xmlउस निर्देशिका के भीतर होगा । उपयोगकर्ता परिभाषित सेवाओं में जाना /etc/firewalld/services। ध्यान दें कि ओपेनवोन के लिए डिफ़ॉल्ट पोर्ट है UDP/1194
garethTheRed

1
धन्यवाद। मुझे एक समस्या हो रही थी, और सोचा कि यह फायरवॉल हो सकता है। उपरोक्त निर्देशों से मैंने जो कुछ अलग किया था, वह केवल "Openvpn" के बजाय सेवा नाम के रूप में "https" का उपयोग करना था। पता चला, यह समस्या के साथ फ़ायरवॉल नहीं था। मैं बस गूंगा हो रहा था, और "टैप" के बजाय "ट्यून" का उपयोग करने के लिए अपने क्लाइंट को ठीक से कॉन्फ़िगर करना भूल गया। उपरोक्त निर्देश पूरी तरह से काम करते हैं।
क्रिस्टोफर

1
मैंने पूरे क्षेत्र में बहुरूपिया जोड़ने के साथ एक समस्या देखी है। जब मैं लोकलहोस्ट पर अन्य सेवाएँ चला रहा हूँ, तो यह लूपबैक इंटरफ़ेस के लिए मेरे कनेक्शन को NAT करने की कोशिश करता है। मैं केवल 10.8.0.0/16 तक संदेशवाहक को सीमित करना चाहता हूं। किसी भी विचार आप ऐसा कैसे कर सकते हैं?
क्रिस्टोफर

1
यह बग इसका कारण हो सकता है। मूल रूप से, यदि आपका डिफॉल्ट ज़ोन publicज़ोन है तो यह लूपबैक इंटरफ़ेस को बनाता है। यह पता चला है कि मैंने पहले अपना डिफ़ॉल्ट क्षेत्र सेट किया था external, इसलिए कभी भी उस समस्या का सामना न करें जो आप देख रहे हैं। सेवाओं और एडेप्टर को दूसरे ज़ोन में ले जाने की कोशिश करें कि क्या यह मदद करता है। मुझे बताएं :-)
garethTheRed
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.