मैं सेंटोस 7 पर iptables का उपयोग कैसे कर सकता हूं? [बन्द है]


154

मैंने न्यूनतम कॉन्फ़िगरेशन (ओएस + देव टूल्स) के साथ सेंटोस 7 स्थापित किया। मैं httpdसेवा के लिए 80 पोर्ट खोलने की कोशिश कर रहा हूं , लेकिन मेरी iptables सेवा में कुछ गड़बड़ है ... इसमें गलत क्या है? मैं क्या गलत कर रहा हूं?

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory


# /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.

# sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /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.

# sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.

इस /etc/init.d/iptables को बचाने की कोशिश करें
Satya

8
मुझे यहाँ जवाब मिला । RHEL 7 का उपयोग करता है firewalld के instad iptables
Meiblorn

जवाबों:


333

RHEL 7 / CentOS 7 के साथ, फ़ायरवॉल को iptables के प्रबंधन के लिए पेश किया गया था। IMHO, फायरवालड सर्वर वातावरण के लिए वर्कस्टेशन के लिए अधिक अनुकूल है।

अधिक क्लासिक iptables सेटअप पर वापस जाना संभव है। सबसे पहले, बंद करो और फ़ायरवॉल सेवा मुखौटा:

systemctl stop firewalld
systemctl mask firewalld

फिर, iptables-services पैकेज स्थापित करें:

yum install iptables-services

बूट-टाइम पर सेवा सक्षम करें:

systemctl enable iptables

सेवा का प्रबंधन

systemctl [stop|start|restart] iptables

अपने फ़ायरवॉल नियमों को सहेजना निम्नानुसार किया जा सकता है:

service iptables save

या

/usr/libexec/iptables/iptables.init save

5
यह iptables को नहीं बचा रहा है। सर्वर को रिबूट करने से सभी परिवर्तन खो देते हैं।
रूजवेल्ट

2
मेरे सिस्टम पर iptables सही ढंग से सहेजे गए हैं। क्या आपने सुनिश्चित किया है कि बूट पर iptables सेवा शुरू की गई है? आप इसे 'systemctl enable iptables'
Sgaduuw

1
आपके पास फायरवालड भी चल सकता है जो अतिरिक्त iptables नियमों को सूची में जोड़ देगा (हर बार जब आप सिस्टम को रिबूट करते हैं)।
फायरवालड

जवाब में फायरवालड को मास्क करने के बारे में जानकारी जोड़ी, जैसा कि @ ट्रोडोएन-माइक ने सुझाव दिया
सगुदुव

8
@Sgaduuw क्या आप इस बात पर विस्तार से विचार कर सकते हैं कि आपको क्यों लगता है कि फिटवेल्ड सर्वरों के लिए उपयुक्त नहीं है?
अलेक्जेंडर ग्रू

98

RHEL और CentOS 7 iptables के बजाय फ़ायरवॉल-cmd का उपयोग करते हैं । आपको उस तरह की कमांड का उपयोग करना चाहिए:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

फिर, आप नियमों को फिर से लोड कर सकते हैं सुनिश्चित करें कि सब कुछ ठीक है

firewall-cmd --reload

यदि आप lxc या docker कंटेनरों का उपयोग करने की योजना बनाते हैं, तो यह iptable- सेव का उपयोग करने से बेहतर है। डॉकटर सेवाओं को शुरू करने से कुछ नियम जुड़ेंगे जो iptable- सेव कमांड प्रॉम्प्ट करेंगे। यदि आप परिणाम सहेजते हैं, तो आपके पास बहुत सारे नियम होंगे जिन्हें सहेजा नहीं जाना चाहिए। क्योंकि डॉकटर कंटेनर अगले रिबूट पर उन्हें आईपी पते बदल सकते हैं।

स्थायी विकल्प के साथ फ़ायरवॉल- cmd इसके लिए बेहतर है।

विकल्पों को देखने के लिए "मैन फ़ायरवॉल-cmd" या आधिकारिक फ़ायरवॉल डॉक्स की जाँच करें। ज़ोन, कॉन्फ़िगरेशन की जांच करने के लिए बहुत सारे विकल्प हैं कि यह कैसे काम करता है ... मैन पेज वास्तव में पूरा हो गया है।

मैं सेंटोस 7 के बाद से iptables-service का उपयोग नहीं करने की दृढ़ता से सिफारिश करता हूं


1
महान स्पष्टीकरण - मेरे लिए पूरी तरह से काम किया। धन्यवाद!
डिजिटलफॉर्मुला

1
फ़ायरवॉल- cmd --reload काम नहीं कर रहा है। मुझे प्रभावी होने के लिए परिवर्तनों के लिए "systemctl पुनरारंभ फ़ायरवॉल" का उपयोग करके पुनरारंभ करना पड़ा।
तुलसी मूसा

"क्योंकि फायरवालड गतिशील है, इसके विन्यास में परिवर्तन किसी भी समय किया जा सकता है, और तुरंत लागू किया जाता है। फ़ायरवॉल के किसी भी हिस्से को फिर से लोड करने की आवश्यकता नहीं है, इसलिए मौजूदा नेटवर्क कनेक्शन का कोई अनजाने में व्यवधान नहीं है" - आधिकारिक फ़ायरवालल्ड डॉक्स से।
यॉनक

कुशल और साफ। धन्यवाद बहुत
वैभव

17

मुझे समस्या थी कि रीबूटिंग iptables शुरू नहीं होगी।

यह तय है:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables

CentOS 7 पर काम नहीं करता है: # systemctl start iptablesदेता है Failed to start iptables.service: Unit not found.और # systemctl start ip6tablesदेता हैFailed to start ip6tables.service: Unit not found.
PKHunter


5

मैंने /etc/sysconfig/ip6tables-configफ़ाइल बदलने को संशोधित किया :

IP6TABLES_SAVE_ON_STOP="no"

सेवा:

IP6TABLES_SAVE_ON_STOP="yes"

और इस:

IP6TABLES_SAVE_ON_RESTART="no"

सेवा:

IP6TABLES_SAVE_ON_RESTART="yes"

ऐसा लगता है कि मैंने रिबूट के माध्यम से iptables कमांड का उपयोग करके किए गए परिवर्तनों को बचाया।


1

IPtables कॉन्फ़िगरेशन को पारंपरिक फ़ाइल में रखें और इसे बूट के बाद लोड किया जाएगा:

/ Etc / sysconfig / iptables


1

पिछले महीने मैंने LXC VM कंटेनर पर iptables को कॉन्फ़िगर करने का प्रयास किया, लेकिन हर बार जब iptables कॉन्फ़िगरेशन रिबूट होता है, तो वह स्वचालित रूप से लोड नहीं होता है।

मेरे लिए इसे काम करने का एकमात्र तरीका निम्नलिखित कमांड चलाकर था:

yum -y स्थापित iptables-services; systemctl अक्षम फ़ायरवॉल; systemctl मास्क फ़ायरवॉल; सेवा iptables पुनरारंभ; सेवा iptables सहेजें


0

और जोड़ने के लिए, आपको systemctl mask firewalldकमांड चलाने के बाद ip6tables के लिए भी ऐसा करने में सक्षम होना चाहिए :

    systemctl start ip6tables.service
    systemctl enable ip6tables.service

0

यदि आप ऐसा करते हैं, और आप fail2ban का उपयोग कर रहे हैं, तो आपको उचित फ़िल्टर / कार्य सक्षम करने की आवश्यकता होगी:

निम्नलिखित पंक्तियों को अंदर रखें /etc/fail2ban/jail.d/sshd.local

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 86400

सक्षम करें और विफलता 2 शुरू करें:

systemctl enable fail2ban
systemctl start fail2ban

संदर्भ: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/

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