जवाबों:
मुझे "उबंटू" के बारे में पता नहीं है, लेकिन लिनक्स में आम तौर पर "iptables" एक सेवा नहीं है - यह नेटफिल्टर कर्नेल फ़ायरवॉल को हेरफेर करने के लिए एक कमांड है। आप सभी मानक श्रृंखलाओं पर डिफ़ॉल्ट नीतियों को "ACCEPT" पर सेट करके और नियमों की धज्जियां उड़ाते हुए फ़ायरवॉल को "अक्षम" (या रोक) कर सकते हैं।
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(आपको अन्य तालिकाओं को फ्लश करने की आवश्यकता हो सकती है, जैसे कि "नेट", यदि आपने उनका उपयोग किया है)
उबंटू वेबसाइट पर निम्न लेख NetworkManager के साथ उपयोग के लिए iptables की स्थापना का वर्णन करता है: https://help.ubuntu.com/community/IptablesHowTo
iptables -F
मैं क्या याद कर रहा था :-)
iptables-save > /tmp/rules
ने मेरा दिन बचाया। धन्यवाद
आप सभी गलत हैं :-)
आप जिस आदेश को देख रहे हैं, वह है:
$ sudo ufw disable
मैं पहले जाँच करूँगा कि क्या यह स्थापित है (यह शायद है):
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 प्रतिष्ठानों पर परीक्षण किया गया था।
Iptables एक कमांड है यह एक सेवा नहीं है, इसलिए आम तौर पर जैसे कमांड का उपयोग करना संभव नहीं है
service iptables start
या
service iptables stop
फ़ायरवॉल को शुरू और बंद करने के लिए, लेकिन कुछ डिस्ट्रोस जैसे सेंटो ने फ़ायरवॉल और इसे कॉन्फ़िगर करने के लिए एक कॉन्फ़िगरेशन फ़ाइल को शुरू और बंद करने के लिए iptables नामक एक सेवा स्थापित की है। वैसे भी इस दायरे के लिए स्क्रिप्ट के संपादन या इंस्टॉलेशन को प्रबंधित करने के लिए एक सेवा बनाना संभव है। Linux, ubuntu की सभी सेवाएँ अपवाद नहीं हैं, /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 फ़ाइल में उपरोक्त स्क्रिप्ट के अनुसार डाला जाना चाहिए। इस स्क्रिप्ट को /etc/init.d में iptables नामक फ़ाइल में डाला जाना चाहिए और इसे प्रयोग करने योग्य बनाना चाहिए
chmod+x *iptables*
और रनलेवेल्स का उपयोग करके सेवा जोड़ें
update-rc.d iptables defaults
आप शेल से नए नियम जोड़ सकते हैं, ये नियम तुरंत सक्रिय होंगे और /etc/iptables.conf में जुड़ जाएंगे जब सेवा बंद हो जाएगी (इसका मतलब है कि सिस्टम शटडाउन होने पर उन्हें निश्चित रूप से सहेजा जाएगा)।
मुझे उम्मीद है कि यह सभी के लिए मददगार होगा।
क्योंकि दोनों iptables और ufw लिनक्स में नेटफिल्टर फ़ायरवॉल को प्रबंधित करने के तरीके हैं , और क्योंकि दोनों ही उबंटू में डिफ़ॉल्ट रूप से उपलब्ध हैं, आप फ़ायरवॉल नियमों को शुरू करने और रोकने (और प्रबंधित) करने के लिए या तो उपयोग कर सकते हैं।
iptables अधिक लचीला है, लेकिन क्योंकि ufw सरल और विशिष्ट फ़ंक्शन के लिए एक बहुत ही सरल इंटरफ़ेस भाषा प्रदान करता है जिसका आप उपयोग कर सकते हैं:
sudo ufw disable
# फ़ायरवॉल को निष्क्रिय करने के लिए
sudo ufw enable
# फ़ायरवॉल को सक्षम करने के लिए
वर्तमान फ़ायरवॉल सेटिंग्स को देखने के लिए sudo ufw status verbose
, या iptables -L
।
पर उबंटू समुदाय डॉक्स पृष्ठों iptables और UFW एक महान सौदा अधिक जानकारी है।
ऐसा लगता है कि उबंटू में फ़ायरवॉल को प्रबंधित करने के कई तरीके हैं, इसलिए आपको इसे पढ़ने में रुचि हो सकती है: 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
फायरवॉल नियमों को लोड करने के लिए बूटिंग सिस्टम कमांड निष्पादित किया गया है। इसलिए, उपरोक्त आदेशों का उपयोग करके सभी नियमों को छोड़ने के बाद उसी कमांड को निष्पादित करना "फ़ायरवॉल को फिर से लोड करने" के परिणामस्वरूप होगा, जो आपने पूछा था।
अगर मैं ubuntu गाइड में iptables सेट करने के लिए सही तरीके से याद करता हूं, तो इसे नेटवर्किंग स्क्रिप्ट के हिस्से के रूप में सेट करना है। जिसका अर्थ है कि कोई /etc/init.d/iptables स्क्रिप्ट नहीं है जैसे कि BSD स्टाइल OS में है।
/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) को पुनः आरंभ कर सकते हैं (मूल होना चाहिए)
मेरी भी यही समस्या थी। वास्तव में, इसमें कोई iptables-persistent था/etc/init.d
इसलिए, मैंने iptables-persistent फ़ाइल बनाई /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
और फिर 755 की अनुमति दी।
chmod 755 /etc/init.d/iptables-persistent
अब यह पूरी तरह से काम करता है! आशा है कि यह किसी की मदद कर सकता है।
यदि आप उबंटू सर्वर को VM अतिथि के रूप में चला रहे हैं (उदाहरण के लिए VirtualBox में) तो libvirt को सक्षम किया जा सकता है। यदि ऐसा है तो libvirt में कुछ इन-बिल्ट नेटवर्क फ़िल्टर होते हैं जो iptables का उपयोग करते हैं। ये फ़िल्टर nwfilters पर फ़ायरवॉल अनुभाग में वर्णित के रूप में कॉन्फ़िगर किए जा सकते हैं ।
Iptables नियमों को अक्षम करने के लिए या तो आपको libvirt से सभी अपमानजनक नियमों को हटाने की आवश्यकता होगी, या यदि आप इसका उपयोग नहीं कर रहे हैं तो आप libvirt को अक्षम कर सकते हैं - उदाहरण के लिए मैन्युअल ओवरराइड कॉन्फ़िगरेशन (फिर रिबूट) स्थापित करें:
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
आप उस कमांड का उपयोग कर रहे हैं जो RedHat और CentOS के लिए उपयुक्त है, उबंटू या डेबियन के लिए नहीं।
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
डिफ़ॉल्ट रूप से कोई भी नहीं है, लेकिन हाल ही में डेबियन डेरिवेटिव (उबंटू सहित) में आप iptables के प्रबंधन के लिए एक सेवा स्थापित कर सकते हैं :
sudo apt install iptables-persistent
फिर आप पहले से सहेजे गए नियमों को लोड कर सकते हैं:
systemctl start netfilter-persistent
क्या हुआ इसकी समीक्षा करें:
systemctl status netfilter-persistent
netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2019-03-24 10:49:50 IST; 16min ago
Main PID: 1674 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Mar 24 10:49:50 ubuntu systemd[1]: Starting netfilter persistent configuration...
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv4 (no rules to load)
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv6 (no rules to load)
Mar 24 10:49:50 ubuntu systemd[1]: Started netfilter persistent configuration.
Mar 24 11:02:49 ubuntu systemd[1]: Started netfilter persistent configuration.
या सेवा बंद करें:
systemctl stop netfilter-persistent
सेवा को रोकने से, डिफ़ॉल्ट रूप से, होगा नहीं फ्लश iptables (यानी फ़ायरवॉल अक्षम नहीं करेंगे, देख man netfilter-persistent
)।
/etc/init.d/
लेंगे (संयुक्त राष्ट्र) मदद के लिए शीर्ष लिंक है जब आप googling 'iptables ubuntu बंद कर देते हैं'।