क्या RHEL7 में फायरवालड के साथ बस चलाने का कोई तरीका है?


11

मैं आरएचईएल 7 का उपयोग करना शुरू कर रहा हूं और सिस्टमड के साथ आने वाले परिवर्तनों के बारे में थोड़ा सीख रहा हूं।

क्या /sbin/service iptables saveफायरवॉल में प्रदर्शन करने का कोई तरीका है ?

$ /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

दस्तावेज़ से सबसे नज़दीकी समानांतर मैं पा सकता हूं --reload:

Reload the firewall without loosing state information:
$ firewall-cmd --reload

लेकिन यह स्पष्ट रूप से नहीं कहता है कि यह बचत है या नहीं।

जवाबों:


21

RHEL 7.0 में फ़ायरवॉल के संस्करण में कोई "सेव" स्क्रिप्ट नहीं है और स्थायी कॉन्फ़िगरेशन के लिए चल रहे फ़ायरवॉल कॉन्फ़िगरेशन की प्रतिलिपि बनाने का कोई तरीका नहीं है। आप परिवर्तन --permanentबनाने वाली कमांड लाइन में जोड़कर फ़ायरवॉल के साथ फ़ायरवॉल परिवर्तन सहेजते हैं। इसके बिना, आपके द्वारा किया गया कोई भी परिवर्तन अस्थायी है और सिस्टम के पुनरारंभ होने पर खो जाएगा।

उदाहरण के लिए:

firewall-cmd --add-service=http                 # Running config
firewall-cmd --add-service=http --permanent     # Startup config

फायरवॉल के बाद के (बाद के आरएचईएल 7) संस्करणों में रनिंग कॉन्फ़िगरेशन को बचाने का एक तरीका शामिल है, और यह अब फेडोरा और आरएचईएल 7.1 में उपलब्ध है । इस मामले में कमांड बस है:

firewall-cmd --runtime-to-permanent

2
माइकल हैम्पटन की टिप्पणी को जारी रखने के लिए, मैंने पाया कि फायरवॉल नियमों को सही ढंग से सहेजे जाने के लिए, "फ़ायरवॉल-सेमी-रनटर्म-टू-परमानेंट" को चलाने के बाद मुझे फायरवॉल सेवा ("सिस्टेक्टल रिस्टार्ट फायरवल्ड") को पुनः आरंभ करना पड़ा। iptables के माध्यम से मैन्युअल रूप से कुछ नियमों को हटाने के बाद। ऐसा प्रतीत होता है कि फ़ायरवॉल के कुछ नियम हैं, इसलिए "फ़ायरवॉल- cmd --reload" फ़ायरवॉल से नियमों को फिर से स्थापित कर सकता है जिन्हें "- रनटाइम-टू-परमानेंट" कमांड के माध्यम से हटा दिया जाना चाहिए।
एंटनी गुयेन

2
ध्यान दें कि - रनटाइम-से-स्थायी कमांड टैब पूरा होने में दिखाई नहीं देता है, लेकिन यह वास्तव में, वहां (एक CentOS 7.5 सिस्टम पर परीक्षण) है।
dodexahedron 3

@AntonyNguyen जब फ़ायरवॉल नियम का प्रबंधन कर रहा है तो आपको iptables कमांड का उपयोग नहीं करना चाहिए। FIrewalld के पास परिवर्तन के बारे में जानने का कोई तरीका नहीं है (इसे समय-समय पर प्रदूषित करने की आवश्यकता होगी और यह फ़ायरवॉल के प्रदर्शन को मार देगा क्योंकि इसके डिजाइन, जो btw है। nftables द्वारा तय किया गया है) का उपयोग करें 'फ़ायरवॉल- cmd --direct-sassthrough ipv4 -ए फॉरवर्ड ...
-जे डीआरओपी

0

मुझे एसआईपी सेवा और कुछ आईपी जोड़ने की जरूरत थी

निर्देशिका में / usr / lib / firewalld / सेवाओं / मैंने अन्य xml सेवा फ़ाइलों के आधार पर sip.xml जोड़ा ।

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SIP</short>
  <description>This is SIP, Yo! </description>
  <port protocol="udp" port="5060"/>
</service>

फिर मैंने फायरवॉल को एसआईपी सेवा दी

# firewall-cmd --add-service=sip --permanent 

फिर मैंने /etc/firewalld/zones/public.xml में सेवा करने के लिए IP जोड़ दिया

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description></description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
  <service name="https"/>

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip"/>
    <accept/>
  </rule>

</zone>

यदि आप लॉगिंग स्तर जोड़ते हैं तो आप लॉग भी जोड़ सकते हैं

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip" 
    <log prefix="sip" level="info"/>
    <accept/>
  </rule>

अपने क्षेत्र में नियम जोड़ने के बाद, निष्पादित करें

# firewall-cmd --reload

अपने iptables की जांच करें - आपको सभी सेट होने चाहिए।

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