सवाल उबंटू पर iptables कैसे शुरू / बंद करें?


मैं उबंटू पर iptables सेवा कैसे शुरू / बंद कर सकता हूं?

मैंने कोशिश की है

 service iptables stop

लेकिन यह दे रहा है "अपरिचित सेवा"

ऐसा क्यों कर रहा है? क्या कोई और तरीका है?


81
2018-04-03 11:15


मूल


मुझे लगता है कि कुछ भ्रम इस तरह के लेखों से आता है: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux जो केवल फेडोरा / रेड हैट पर लागू होता है और दावा करता है कि आपको इसे मिल जाएगा /etc/init.d/ यह (अन) मददगार है जब आप 'iptables ubuntu बंद करें' googling करते समय मिलता है। - icc97


जवाब:


मुझे "उबंटू" के बारे में पता नहीं है, लेकिन आमतौर पर लिनक्स में, "iptables" एक सेवा नहीं है - यह netfilter कर्नेल फ़ायरवॉल में हेरफेर करने का आदेश है। आप सभी मानक श्रृंखलाओं पर डिफ़ॉल्ट नीतियों को "ACCEPT" पर सेट करके और नियमों को फ़्लश करके फ़ायरवॉल को "अक्षम" (या रोक सकते हैं) कर सकते हैं।

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

(यदि आप उन्हें इस्तेमाल करते हैं, तो आपको "नेट" जैसे अन्य टेबल भी फ्लश करने की आवश्यकता हो सकती है)

उबंटू वेबसाइट पर निम्नलिखित आलेख NetworkManager के उपयोग के लिए iptables सेट अप करने का वर्णन करता है: https://help.ubuntu.com/community/IptablesHowTo


65
2018-04-03 17:36



क्या यह हमेशा के लिए सभी मौजूदा नियमों को फेंक नहीं देगा? सुडो iptables-save> / tmp / नियमों के साथ कहीं उन्हें पहले सहेजने के लिए सर्वश्रेष्ठ - Jens Timmerman
यह सेवा को रोकता नहीं है, लेकिन बस सब कुछ के माध्यम से अनुमति देता है। - Frederik Nielsen
आह, धन्यवाद। iptables -F मैं क्या लापता था :-) - Cameron
@JensTimmerman iptables-save > /tmp/rules मेरा दिन बचा लिया धन्यवाद - blagus


आप सब गलत हैं :-)

जिस आदेश को आप ढूंढ रहे हैं वह है:

$ sudo ufw disable

44
2017-08-15 18:40



सुनिश्चित करें कि हम ufw के बारे में बात कर रहे थे, लेकिन यह पोस्ट iptables के बारे में है - webjay
खैर, मुझे लगता है कि यह उबंटू का एक डिफ़ॉल्ट इंस्टॉल था, और उसके पास iptables नहीं है, लेकिन ufw है। - Frederik Nielsen
ufw iptables के लिए सिर्फ एक अग्रभाग है: "Iptables एक फ़ायरवॉल है, जो डिफ़ॉल्ट रूप से सभी आधिकारिक उबंटू वितरण (उबंटू, कुबंटू, जुबंटू) पर स्थापित होता है। जब आप उबंटू स्थापित करते हैं, तो iptables वहां होता है, लेकिन यह डिफ़ॉल्ट रूप से सभी ट्रैफ़िक को अनुमति देता है। उबंटू 8.04 आती है ufw के साथ - iptables फ़ायरवॉल आसानी से प्रबंधित करने के लिए एक कार्यक्रम। " help.ubuntu.com/community/IptablesHowTo - benjaoming
हो सकता है, लेकिन Ubuntu में ufw == iptables (अधिक या कम) के रूप में, ufw को अक्षम करने से iptables अक्षम करने के बराबर है। - Frederik Nielsen
sudo ufw स्थिति verbose; सूडो iptables -L; - user27465


मैं पहले जांच करता हूं कि यह इंस्टॉल है (यह शायद है):

dpkg -l | grep iptables

उबंटू पर, iptables एक सेवा नहीं है। इसे रोकने के लिए, आपको निम्न कार्य करना होगा:

sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

अपने पिछले नियमों को पुनर्स्थापित करने के लिए:

iptables-restore < /root/firewall.rules

यह से लिया गया था http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ और कई उबंटू 8.X और 9.10 प्रतिष्ठानों पर परीक्षण किया गया था।


29
2018-04-05 07:46



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


Iptables एक आदेश है कि यह एक सेवा नहीं है, इसलिए आमतौर पर कमांड का उपयोग करना संभव नहीं है

service iptables start

या

service iptables stop

फ़ायरवॉल को शुरू करने और रोकने के लिए, लेकिन केंद्रों जैसे कुछ डिस्ट्रोज़ ने फ़ायरवॉल को शुरू करने और रोकने के लिए iptables नामक एक सेवा स्थापित की है और कॉन्फ़िगर करने के लिए कॉन्फ़िगरेशन फ़ाइल को स्थापित किया है। वैसे भी आईपोटबेल को इस स्कोप के लिए स्क्रिप्ट को संपादित या स्थापित करने के लिए एक सेवा बनाना संभव है। लिनक्स में सभी सेवाएं, उबंटू अपवाद नहीं है, /etc/init.d फ़ोल्डर के अंदर निष्पादन योग्य स्क्रिप्ट हैं, जो मानक इंटरफ़ेस लागू करती हैं (प्रारंभ करें, रोकें, पुनरारंभ करें) एक संभावित लिपि इस तरह दिखती है:

 #!/bin/sh -e
 ### BEGIN INIT INFO
 # Provides:          iptables
 # Required-Start:    mountvirtfs ifupdown $local_fs
 # Default-Start:     S
 # Default-Stop:      0 6
 ### END INIT INFO

 # July 9, 2007
 # James B. Crocker <ubuntu@james.crocker.name>
 # Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
 # Script to load/unload/save iptables firewall settings.

 PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

 IPTABLES=/sbin/iptables
 IPTABLES_SAVE=/sbin/iptables-save
 IPTABLES_RESTORE=/sbin/iptables-restore

 IPTABLES_CONFIG=/etc/iptables.conf

 [ -x $IPTABLES ] || exit 0

 . /lib/lsb/init-functions


 case "$1" in
 start)
    log_action_begin_msg "Starting firewall"
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
    ;;

 stop)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Flushing ALL firewall rules from chains!"
    if $IPTABLES -F ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
    if $IPTABLES -X ; then
        $IPTABLES -P INPUT ACCEPT
        $IPTABLES -P FORWARD ACCEPT
        $IPTABLES -P OUTPUT ACCEPT
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 save)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 force-reload|restart)
    log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
    $IPTABLES -F
    $IPTABLES -X
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 *)
    echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
    exit 1
    ;;
 esac

 exit 0 

यह स्क्रिप्ट इसका हिस्सा है ट्यूटोरियल, फ़ायरवॉल को कॉन्फ़िगर करने के लिए सभी आदेशों को उपरोक्त स्क्रिप्ट के अनुसार /etc/iptables.conf फ़ाइल में डाला जाना चाहिए। इस स्क्रिप्ट को एक फ़ाइल में डाला जाना चाहिए iptables /etc/init.d में और इसे निष्पादन योग्य बनाते हैं

chmod+x *iptables* 

और रनलेवल का उपयोग कर सेवा जोड़ें

update-rc.d iptables defaults

आप खोल से नए नियम जोड़ सकते हैं, ये नियम तत्काल सक्रिय होंगे और सेवा बंद होने पर /etc/iptables.conf में जोड़ा जाएगा (इसका मतलब है कि सिस्टम बंद होने पर उन्हें निश्चित रूप से सहेजा जाएगा)।

मुझे आशा है कि यह हर किसी के लिए सहायक होगा।


16
2017-10-17 07:53





क्योंकि iptables और ufw दोनों प्रबंधित करने के तरीके हैं नेटफिल्टर लिनक्स में फ़ायरवॉल, और क्योंकि दोनों उबंटू में डिफ़ॉल्ट रूप से उपलब्ध हैं, आप फ़ायरवॉल नियमों को शुरू और बंद (और प्रबंधित) करने के लिए या तो उपयोग कर सकते हैं।

iptables अधिक लचीला है, लेकिन क्योंकि ufw सरल और सामान्य फ़ंक्शन के लिए एक बहुत ही सरल इंटरफ़ेस भाषा प्रदान करता है जिसका आप उपयोग कर सकते हैं:

sudo ufw disable # फ़ायरवॉल को अक्षम करने के लिए

sudo ufw enable  # फ़ायरवॉल को सक्षम करने के लिए

वर्तमान फ़ायरवॉल सेटिंग्स का उपयोग करने के लिए sudo ufw status verbose, या iptables -L ।

उबंटू सामुदायिक दस्तावेज़ पृष्ठ पर iptablesतथा UFW एक और अधिक जानकारी है।


6
2017-07-02 22:37





अगर मुझे सही ढंग से याद आता है तो उबंटू गाइड में iptables सेट अप करने का सुझाया गया तरीका इसे नेटवर्किंग स्क्रिप्ट के हिस्से के रूप में सेट करना है। जिसका मतलब है कि कोई /etc/init.d/iptables स्क्रिप्ट नहीं है जैसे बीएसडी स्टाइल ओएस में है।


3
2018-04-03 23:05



डेबियन वुडी में था (उबंटू तब मौजूद था?), वैसे भी यह आज भी सिसडमिन द्वारा लागू किया गया है। उन्होंने किसी भी विचार को क्यों बदल दिया?
मेरे पास कोई सुराग नहीं है ... लेकिन मुझे याद है कि यह उन परेशान चीजों में से एक है जब मैंने उबंटू सर्वर 9 .10 या कुछ स्थापित किया था ... क्योंकि मैं एक रिलीज डिस्ट्रो चाहता था जिसमें हालिया पोस्टग्रेस थे और सर्वर के लिए था ... अन्यथा मैं आर्क लिनक्स चलाता हूं। - xenoterracide


ऐसा लगता है कि उबंटू में फ़ायरवॉल का प्रबंधन करने के कई तरीके हैं, इसलिए आपको इसे पढ़ने में रुचि हो सकती है: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup

सभी मौजूदा नियमों को छोड़ने के लिए आप इन आदेशों का उपयोग कर सकते हैं (उन्हें कुछ स्क्रिप्ट में रखें):

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t filter -X

सामान्य स्थिति में, आपके डिफ़ॉल्ट फ़ायरवॉल नियम कुछ फ़ाइल में सहेजे जाते हैं (उदाहरण के लिए, /etc/iptables.rules)। सिस्टम कमांड बूटिंग करते समय iptables-restore </etc/iptables.rules फ़ायरवॉल नियम लोड करने के लिए निष्पादित। इसलिए, उपरोक्त आदेशों का उपयोग करके सभी नियमों को छोड़ने के बाद उसी आदेश को निष्पादित करने के परिणामस्वरूप "फ़ायरवॉल पुनः लोड करना" होगा जिसके बारे में आपने पूछा था।


3
2018-04-05 04:32





/Etc/init.d/ पर एक फ़ाइल बनाएं

touch fw.rc

फ़ाइल निष्पादन योग्य chmod + x बनाओ

उस फ़ाइल में /etc/rc2.d/ पर एक सिमलिंक बनाएं

ln -s /etc/init.d/fw.rc S80firewall

S80firewall संपादित करें और निम्न जोड़ें

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F

आप इस फ़ाइल पर अपने सभी कस्टम iptables नियम जोड़ सकते हैं

अब आप /etc/rc2.d/S80firewall चलाकर फ़ायरवॉल (iptables) को पुनरारंभ कर सकते हैं (रूट होना चाहिए)


3
2017-10-17 08:37





मेरी भी यही समस्या थी। वास्तव में, इसमें कोई iptables- लगातार नहीं था /etc/init.d

इसलिए, मैंने iptables- लगातार फ़ाइल बनाई है /etc/init.d

nano /etc/init.d/iptables-persistent

और निम्नलिखित अंदर लिखा:

#!/bin/sh
#       Written by Simon Richter <sjr@debian.org>
#       modified by Jonathan Wiltshire <jmw@debian.org>
#       with help from Christoph Anton Mitterer
#

### BEGIN INIT INFO
# Provides:          iptables-persistent
# Required-Start:    mountkernfs $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Start-Before:    $network
# X-Stop-After:      $network
# Short-Description: Set up iptables rules
# Description:       Loads/saves current iptables rules from/to /etc/iptables
#  to provide a persistent rule set during boot time
### END INIT INFO

. /lib/lsb/init-functions

rc=0

load_rules()
{
    log_action_begin_msg "Loading iptables rules"

    #load IPv4 rules
    if [ ! -f /etc/iptables/rules.v4 ]; then
        log_action_cont_msg " skipping IPv4 (no rules to load)"
    else
        log_action_cont_msg " IPv4"
        iptables-restore < /etc/iptables/rules.v4 2> /dev/null
        if [ $? -ne 0 ]; then
            rc=1
        fi
    fi

    #load IPv6 rules    
    if [ ! -f /etc/iptables/rules.v6 ]; then
        log_action_cont_msg " skipping IPv6 (no rules to load)"
    else
        log_action_cont_msg " IPv6"
        ip6tables-restore < /etc/iptables/rules.v6 2> /dev/null
        if [ $? -ne 0 ]; then
            rc=1
        fi
    fi

    log_action_end_msg $rc
}

save_rules()
{
    log_action_begin_msg "Saving rules"

    #save IPv4 rules
    #need at least iptable_filter loaded:
    /sbin/modprobe -q iptable_filter
    if [ ! -f /proc/net/ip_tables_names ]; then
        log_action_cont_msg " skipping IPv4 (no modules loaded)"
    elif [ -x /sbin/iptables-save ]; then
        log_action_cont_msg " IPv4"
        iptables-save > /etc/iptables/rules.v4
        if [ $? -ne 0 ]; then
            rc=1
        fi
    fi

    #save IPv6 rules
    #need at least ip6table_filter loaded:
    /sbin/modprobe -q ip6table_filter
    if [ ! -f /proc/net/ip6_tables_names ]; then
        log_action_cont_msg " skipping IPv6 (no modules loaded)"
    elif [ -x /sbin/ip6tables-save ]; then
        log_action_cont_msg " IPv6"
        ip6tables-save > /etc/iptables/rules.v6
        if [ $? -ne 0 ]; then
            rc=1
        fi
    fi

    log_action_end_msg $rc
}

flush_rules()
{
    log_action_begin_msg "Flushing rules"

    if [ ! -f /proc/net/ip_tables_names ]; then
        log_action_cont_msg " skipping IPv4 (no module loaded)"
    elif [ -x /sbin/iptables ]; then
        log_action_cont_msg " IPv4"
        for param in F Z X; do /sbin/iptables -$param; done
        for table in $(cat /proc/net/ip_tables_names)
        do
            /sbin/iptables -t $table -F
            /sbin/iptables -t $table -Z
            /sbin/iptables -t $table -X
        done
        for chain in INPUT FORWARD OUTPUT
        do
            /sbin/iptables -P $chain ACCEPT
        done
    fi

    if [ ! -f /proc/net/ip6_tables_names ]; then
        log_action_cont_msg " skipping IPv6 (no module loaded)"
    elif [ -x /sbin/ip6tables ]; then
        log_action_cont_msg " IPv6"
        for param in F Z X; do /sbin/ip6tables -$param; done
        for table in $(cat /proc/net/ip6_tables_names)
        do
            /sbin/ip6tables -t $table -F
            /sbin/ip6tables -t $table -Z
            /sbin/ip6tables -t $table -X
        done
        for chain in INPUT FORWARD OUTPUT
        do
            /sbin/ip6tables -P $chain ACCEPT
        done
    fi

    log_action_end_msg 0
}

case "$1" in
start|restart|reload|force-reload)
    load_rules
    ;;
save)
    save_rules
    ;;
stop)
    # Why? because if stop is used, the firewall gets flushed for a variable
    # amount of time during package upgrades, leaving the machine vulnerable
    # It's also not always desirable to flush during purge
    echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
    ;;
flush)
    flush_rules
    ;;
*)
    echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
    exit 1
    ;;
esac

exit $rc

और फिर chmod 755 अनुमति दी।

chmod 755 /etc/init.d/iptables-persistent

अब यह पूरी तरह से काम करता है! उम्मीद है कि यह किसी की मदद कर सकता है।


2
2018-04-17 10:39





यदि आप उबंटू सर्वर को वीएम अतिथि (उदा। वर्चुअलबॉक्स में) के रूप में चला रहे हैं तो libvirt सक्षम किया जा सकता है। यदि ऐसा है तो libvirt में कुछ अंतर्निहित नेटवर्क फ़िल्टर हैं जो iptables का उपयोग करते हैं। इन फिल्टर को फ़ायरवॉल सेक्शन में वर्णित के रूप में कॉन्फ़िगर किया जा सकता है nwfilters

Iptables नियमों को अक्षम करने के लिए आपको या तो libvirt से सभी अपमानजनक नियमों को हटाने की आवश्यकता होगी, या यदि आप इसका उपयोग नहीं कर रहे हैं तो आप केवल libvirt को अक्षम कर सकते हैं - उदा। मैन्युअल ओवरराइड कॉन्फ़िगरेशन स्थापित करें (फिर रीबूट करें):

sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'

2
2018-04-01 14:38





आप उस आदेश का उपयोग कर रहे हैं जो RedHat और CentOS के लिए उपयुक्त है, उबंटू या डेबियन नहीं।

http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/


1
2017-08-13 22:59