सभी iptables नियम देखना


144

क्या iptablesनियमों को थोड़ा और विस्तार से देखने का कोई तरीका है ?

मैंने हाल ही में आईपी की एक श्रृंखला के लिए जोड़ा गया:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

मैंने जो चाहा वह किया है, लेकिन जब मैं उपयोग करता हूं:

iptables -L

मुझे वैसा ही आउटपुट मिलता है जैसा मुझे आमतौर पर मिलता है:

Chain INPUT (policy ACCEPT)
target    prot opt source        destination

Chain FORWARD (policy ACCEPT)
target    prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source        destination

मैं उन नियमों को कैसे देख सकता हूं जिनमें मैं जोड़ता हूं? (सिस्टम CentOS 6 है)

जवाबों:


116

का उपयोग करते समय -L, --listविकल्प वर्तमान फ़ायरवॉल नियमों सूची, आप भी उचित नेटफिल्टर तालिका निर्दिष्ट करने की आवश्यकता (में से एक filter, nat, mangle, rawया security)। इसलिए, यदि आप के लिए एक नियम जोड़ दिया है natमेज, आप स्पष्ट रूप से इस तालिका का उपयोग कर निर्दिष्ट करना चाहिए -t, --tableविकल्प:

iptables --table nat --list

या विकल्पों के संक्षिप्त रूप का उपयोग करना:

iptables -t nat -L

यदि आप एक विशिष्ट तालिका निर्दिष्ट नहीं करते हैं, तो filterतालिका को डिफ़ॉल्ट के रूप में उपयोग किया जाता है।


तीव्र परिणामों के लिए, यह भी शामिल करने के लिए उपयोगी हो सकता है -n, --numericहोस्ट नामों के बजाय संख्यात्मक आईपी पतों मुद्रित करने के लिए, इस प्रकार रिवर्स DNS खोज के लिए प्रतीक्षा करने की जरूरत से बचने के विकल्प।

आप विकल्प -v, --verboseविकल्प को शामिल करके और भी अधिक जानकारी प्राप्त कर सकते हैं ।


113

iptables: पांच अलग-अलग टेबल को नियंत्रित करता है filter, nat, mangle, rawऔर security। किसी दिए गए कॉल पर, iptablesकेवल इन तालिकाओं में से किसी एक को प्रदर्शित या संशोधित करता है, जो विकल्प के तर्क से -t(डिफ़ॉल्ट रूप में filter) निर्दिष्ट होता है । फ़ायरवॉल की पूर्ण स्थिति देखने के लिए, आपको iptablesक्रमिक रूप से प्रत्येक तालिकाओं पर कॉल करने की आवश्यकता है ।

इसके अतिरिक्त, नियमों का सटीक प्रतिनिधित्व प्राप्त करने के लिए, आपको विकल्प पारित करने की आवश्यकता है -v। अन्यथा आउटपुट में कुछ महत्वपूर्ण मानदंड छोड़ दिए जाते हैं, जैसे कि फ़िल्टर नियमों में इंटरफ़ेस (उदाहरण के लिए एक नियम जो "सब कुछ स्वीकार करता है" और एक नियम जो कहता है कि "लूपबैक इंटरफ़ेस पर सब कुछ स्वीकार करें" केवल के साथ भिन्न हो सकता है -v)।

इस प्रकार, नेटफिल्टर नियमों की पूरी प्रस्तुति पाने के लिए, आपको आवश्यकता है

iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security

वैकल्पिक रूप से, आप iptables-saveप्रोग्राम को कॉल कर सकते हैं , जो सभी तालिकाओं में सभी नियमों को एक प्रारूप में प्रदर्शित करता है जिसे पार्स किया जा सकता है iptables-restore। यह प्रारूप भी मनुष्यों द्वारा उचित रूप से पठनीय है (यह iptablesतालिका बनाने के लिए आदेशों की एक श्रृंखला की तरह बहुत अधिक है )।


56

iptables -Sमेरे लिए चाल है। सेवा बंद होने पर भी यह सभी सक्रिय नियमों को सूचीबद्ध करता है।

मैन पेज से:

-एस, - सूची-नियम [श्रृंखला] चयनित श्रृंखला में सभी नियमों को प्रिंट करें। यदि कोई श्रृंखला चयनित नहीं है, तो सभी श्रृंखलाएं iptables-save की तरह प्रिंट की जाती हैं। प्रत्येक दूसरे iptables कमांड की तरह, यह निर्दिष्ट तालिका पर लागू होता है (फ़िल्टर डिफ़ॉल्ट है)।


यह वास्तव में kwl उत्तर है, मैंने यह भी देखा है कि / sbin / सेवा iptables स्थिति एक समान आउटपुट देती है
TheLovelySausage

6
+1। इसके बारे में कोई 'नहीं लगता है' - मैन पेज से: "-S, चयनित श्रृंखला में सभी नियमों को प्रिंट करें। यदि कोई श्रृंखला चयनित नहीं है, तो सभी श्रृंखलाएं iptables-save की तरह मुद्रित होती हैं"। यह वह है जिसकी मुझे आमतौर पर आवश्यकता होती है।
माइक एस

3
मुझे यह मामला नहीं लगा। iptables -Sमेरे सभी नेट नियमों को नहीं दिखाता है, जिसे मैं देख सकता हूं जब मैं चलाता iptables -L -t nat
हूं

1
@ माइक पेज से, बीओटीएच कमांड केवल निर्दिष्ट टेबल पर काम करता है, डिफ़ॉल्ट रूप से फ़िल्टर करता है। "हर दूसरे iptables कमांड की तरह, यह निर्दिष्ट तालिका पर लागू होता है (फ़िल्टर डिफ़ॉल्ट है)।" दस्तावेज़ में शब्दांकन को लगभग पहचान के लिए कॉपी किया जाता है -S और -L, वे केवल आउटपुट स्वरूपण में भिन्न होते हैं, न कि मुद्रित नियमों में। यह कम से कम उबंटू 16.04 पर सच है जो मेरे सिस्टम पर iptables v1.6.0 है।
स्कॉट

यहाँ @mulllhausen के साथ सहमत हूँ। मुझे अपने नेट टेबल नियमों को दिखाने के लिए "sudo iptables --table nat --list" की आवश्यकता थी। स्वयं द्वारा "-S" ध्वज उन्हें नहीं दिखा।
रॉबर्ट ओस्क्लर

15

मुझे क्या करना है iptables-save > iptables_bckp, यह सभी परतों को बैकअप करेगा, फिर फ़ाइल को संपादित करें और iptables को पुनर्स्थापित करेंiptables-restore < iptables_bckp

# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp

आप एक दोहरा बैकअप बना सकते हैं ताकि आप अपने पिछले iptables को खोए बिना उनमें से एक को संशोधित कर सकें।

यह एक व्यक्तिगत अभ्यास है, मैं यह नहीं कह रहा हूं कि यह सबसे अच्छा तरीका है लेकिन मेरे लिए यह बहुत अच्छा है।

कोशिश करो


यह एकमात्र यथार्थवादी उत्तर है जो मैंने अब तक पाया है कि वास्तव में सभी तालिकाओं को भी डंप करता है।
क्रिस हैरिंगटन

4

iptablesआदेश भी आप फ़िल्टर करना तालिका यह चूक नहीं तो तालिका निर्दिष्ट करने के लिए की आवश्यकता है। इसलिए कोशिश करें:

iptables -t nat -L

1

आप उपयोग कर सकते हैं:

# lsmod | grep ip_tables
ip_tables              13193  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

सभी तालिकाओं को खोजने और तालिका में विशिष्ट नियम दिखाने के लिए।


1

यदि यह वास्तव में आपकी मदद करेगा आप एक bash स्क्रिप्ट लिख सकते हैं और इसे एक फ़ोल्डर में रख सकते हैं जो आपके पथ द्वारा संदर्भित है या इसे ~ / .bashrc फ़ाइल में अन्य नाम से संदर्भित करता है।

AllRules.sh

#!/bin/bash

 echo "Filter table:"
 iptables -t filter -vL

 echo "Nat table:"
 iptables -t nat -vL

 echo "Mangle table:"
 iptables -t mangle -vL

 echo "Raw table:"
 iptables -t raw -vL

 echo "Security table:"
 iptables -t security -vL

 echo 
 echo "All rules in all tables printed"

अपने नए बैश स्क्रिप्ट के साथ अनुमतियाँ निष्पादित करने के लिए याद रखें chmod

यदि अनुमति एक समस्या है, तो आपको सभी iptablesकमांड के सामने sudo जोड़ना पड़ सकता है ।


0
iptables -vnxL
iptables -vnxL -tnat

संभवतः इसके अतिरिक्त, हालांकि ये बहुत कम उपयोग किए जाते हैं:

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