Ich denke , einige der Verwirrung von Artikeln wie diesem kommt: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux , die nur für Fedora / Red Hat bezieht und nicht behaupten , dass Sie es in finden würde /etc/init.d/es (un) hilfreich ist der oberste Link, den Sie erhalten, wenn Sie "iptables ubuntu ausschalten" googeln.
ICC97
Antworten:
76
Ich weiß nichts über "Ubuntu", aber unter Linux ist "iptables" im Allgemeinen kein Dienst - es ist ein Befehl, um die Firewall des Netfilter-Kernels zu manipulieren. Sie können die Firewall "deaktivieren" (oder stoppen), indem Sie die Standardrichtlinien für alle Standardketten auf "AKZEPTIEREN" setzen und die Regeln löschen.
sicher, wenn wir über ufw sprachen, aber dieser Beitrag handelt von iptables
webjay
1
Nun, ich nahm an, dass es eine Standardinstallation von Ubuntu ist und dass es keine iptables gibt, sondern ufw.
Frederik Nielsen
22
ufw ist nur ein Frontend für iptables: "Iptables ist eine Firewall, die standardmäßig auf allen offiziellen Ubuntu-Distributionen (Ubuntu, Kubuntu, Xubuntu) installiert ist. Wenn Sie Ubuntu installieren, ist iptables vorhanden, lässt jedoch standardmäßig den gesamten Datenverkehr zu. Ubuntu 8.04 kommt mit ufw - ein programm zur einfachen verwaltung der iptables firewall. " help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Könnte sein, aber wie ufw == iptables (mehr oder weniger) in Ubuntu ist das Deaktivieren von ufw gleichbedeutend mit dem Deaktivieren von iptables.
Frederik Nielsen
2
Wahrscheinlich war das OP tatsächlich daran interessiert, Firewalls zu deaktivieren, anstatt die Feinheiten des iptables-Dienstes für die Verwaltung von Firewalls zu verstehen. Dies ist also eine gute Antwort.
BobDoolittle
30
Ich würde zuerst prüfen, ob es mit installiert ist (es ist wahrscheinlich):
dpkg -l | grep iptables
Iptables ist unter Ubuntu kein Dienst. Um es zu stoppen, müssen Sie Folgendes tun:
Ich weiß nicht, warum dies so viele Upvotes hat, iptables ist ein Kernelmodul. Es ist niemals ein "Dienst", der "gestoppt" werden kann. Sie werden verwendet, um dem Kernel den Umgang mit Verbindungen mitzuteilen. Auch in einer Produktionsumgebung sollten Sie Ihre Firewall niemals deaktivieren. Wenn etwas nicht funktioniert, finden Sie die richtige Lösung, nicht die einfache.
Broco
17
Iptables ist ein Befehl, es ist kein Dienst, daher ist es im Allgemeinen nicht möglich, Befehle wie zu verwenden
service iptables start
oder
service iptables stop
um die Firewall zu starten und zu stoppen, aber einige Distributionen wie Centos haben einen Dienst namens iptables installiert, um die Firewall zu starten und zu stoppen, und eine Konfigurationsdatei, um sie zu konfigurieren. Auf jeden Fall ist es möglich, einen Dienst zum Verwalten von ipotables zu erstellen, der ein Skript für diesen Bereich bearbeitet oder installiert. Alle Dienste unter Linux, Ubuntu ist keine Ausnahme, sind ausführbare Skripte im Ordner /etc/init.d, die eine Standardschnittstelle implementieren (Starten, Stoppen, Neustarten). Ein mögliches Skript sieht folgendermaßen aus:
#!/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 <[email protected]>
# 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
Dieses Skript ist Teil dieses Tutorials . Alle Befehle zum Konfigurieren der Firewall müssen gemäß dem obigen Skript in die Datei /etc/iptables.conf eingefügt werden. Dieses Skript muss in eine Datei namens iptables in /etc/init.d eingefügt und mit ausführbar gemacht werden
chmod+x *iptables*
und fügen Sie den Dienst mit runlevels hinzu
update-rc.d iptables defaults
Sie können neue Regeln aus der Shell hinzufügen. Diese Regeln sind sofort aktiv und werden nach dem Beenden des Dienstes zu /etc/iptables.conf hinzugefügt (dies bedeutet, dass sie beim Herunterfahren des Systems mit Sicherheit gespeichert werden).
Ich hoffe, dass dies für alle hilfreich sein wird.
Da sowohl iptables als auch ufw Möglichkeiten zum Verwalten der Netfilter- Firewall unter Linux darstellen und beide standardmäßig in Ubuntu verfügbar sind, können Sie Firewall-Regeln entweder starten und stoppen (und verwalten).
iptables ist flexibler, aber da ufw eine sehr einfache Oberflächensprache für einfache und typische Funktionen bietet, können Sie Folgendes verwenden:
sudo ufw disable # Zum Deaktivieren der Firewall
sudo ufw enable # Zum Aktivieren der Firewall
Verwenden Sie sudo ufw status verboseoder, um die aktuellen Firewall-Einstellungen anzuzeigen iptables -L.
Die Ubuntu Community-Dokumentseiten zu iptables und UFW enthalten viele weitere Informationen.
Normalerweise werden Ihre Standard-Firewall-Regeln in einer Datei gespeichert (z. B. /etc/iptables.rules). Während des Systemstarts wird ein Befehl iptables-restore </etc/iptables.ruleszum Laden der Firewall-Regeln ausgeführt. Wenn Sie also denselben Befehl ausführen, nachdem Sie alle Regeln mit den oben genannten Befehlen gelöscht haben, wird die angeforderte Firewall neu geladen.
Wenn ich mich richtig erinnere, besteht die vorgeschlagene Methode zum Einrichten von iptables in den Ubuntu-Handbüchern darin, sie als Teil der Netzwerkskripte einzurichten. was bedeutet, dass es kein /etc/init.d/iptables-Skript gibt, wie es in BSD-artigen Betriebssystemen der Fall ist.
Es gab Debian Woody (gab es Ubuntu damals?), Trotzdem wird es heute noch von Sysadmins implementiert. Warum haben sie das geändert?
Ich habe keine Ahnung ... aber ich scheine mich daran zu erinnern, dass es eines der nervigen Dinge war, die ich herausfinden musste, als ich Ubuntu Server 9.10 oder so einrichtete ... seit ich eine neue Distribution mit Postgres und war für server ... ansonsten lasse ich arch linux laufen.
Xenoterracide
2
Erstellen Sie eine Datei unter /etc/init.d/
touch fw.rc
Machen Sie die Datei ausführbar chmod + x
Erstellen Sie auf /etc/rc2.d/ einen Symlink zu dieser Datei.
ln -s /etc/init.d/fw.rc S80firewall
Bearbeiten Sie S80firewall und fügen Sie Folgendes hinzu
Ich hatte das gleiche Problem. In der Tat gab es keine Iptables-persistent in/etc/init.d
Also habe ich die iptables-persistente Datei in erstellt /etc/init.d
nano /etc/init.d/iptables-persistent
und schrieb folgendes hinein:
#!/bin/sh
# Written by Simon Richter <[email protected]>
# modified by Jonathan Wiltshire <[email protected]>
# 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
und dann gab chmod 755 Erlaubnis.
chmod 755 /etc/init.d/iptables-persistent
Jetzt funktioniert es einwandfrei! Hoffe es kann jemandem helfen.
Wenn Sie Ubuntu-Server als VM-Gast ausführen (z. B. in VirtualBox), ist möglicherweise libvirt aktiviert. In diesem Fall enthält libvirt einige eingebaute Netzwerkfilter, die iptables verwenden. Diese Filter können wie im Abschnitt Firewall auf nwfilters beschrieben konfiguriert werden .
Um die iptables-Regeln zu deaktivieren, müssen Sie entweder alle beleidigenden Regeln aus libvirt entfernen oder Sie können libvirt einfach deaktivieren, wenn Sie es nicht verwenden.
Standardmäßig gibt es keine, aber in neueren Debian-Derivaten (einschließlich Ubuntu) können Sie einen Dienst zur Verwaltung von iptables installieren :
sudo apt install iptables-persistent
Sie können dann zuvor gespeicherte Regeln laden:
systemctl start netfilter-persistent
Überprüfen Sie, was passiert ist:
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.
Oder beenden Sie den Dienst:
systemctl stop netfilter-persistent
Durch das Stoppen des Dienstes werden standardmäßig keine iptables gelöscht (dh die Firewall wird nicht deaktiviert, siehe man netfilter-persistent).
/etc/init.d/
es (un) hilfreich ist der oberste Link, den Sie erhalten, wenn Sie "iptables ubuntu ausschalten" googeln.Antworten:
Ich weiß nichts über "Ubuntu", aber unter Linux ist "iptables" im Allgemeinen kein Dienst - es ist ein Befehl, um die Firewall des Netfilter-Kernels zu manipulieren. Sie können die Firewall "deaktivieren" (oder stoppen), indem Sie die Standardrichtlinien für alle Standardketten auf "AKZEPTIEREN" setzen und die Regeln löschen.
(Möglicherweise müssen Sie auch andere Tabellen löschen, z. B. "nat", wenn Sie sie verwendet haben.)
Der folgende Artikel auf der Ubuntu-Website beschreibt das Einrichten von iptables für die Verwendung mit NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
quelle
iptables -F
was mir gefehlt hat :-)iptables-save > /tmp/rules
hat meinen Tag gerettet. DankeIhr irrt euch alle :-)
Der gesuchte Befehl lautet:
quelle
Ich würde zuerst prüfen, ob es mit installiert ist (es ist wahrscheinlich):
Iptables ist unter Ubuntu kein Dienst. Um es zu stoppen, müssen Sie Folgendes tun:
So stellen Sie Ihre vorherigen Regeln wieder her:
Dies wurde von http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ übernommen und auf vielen Ubuntu 8.X- und 9.10-Installationen getestet.
quelle
Iptables ist ein Befehl, es ist kein Dienst, daher ist es im Allgemeinen nicht möglich, Befehle wie zu verwenden
oder
um die Firewall zu starten und zu stoppen, aber einige Distributionen wie Centos haben einen Dienst namens iptables installiert, um die Firewall zu starten und zu stoppen, und eine Konfigurationsdatei, um sie zu konfigurieren. Auf jeden Fall ist es möglich, einen Dienst zum Verwalten von ipotables zu erstellen, der ein Skript für diesen Bereich bearbeitet oder installiert. Alle Dienste unter Linux, Ubuntu ist keine Ausnahme, sind ausführbare Skripte im Ordner /etc/init.d, die eine Standardschnittstelle implementieren (Starten, Stoppen, Neustarten). Ein mögliches Skript sieht folgendermaßen aus:
Dieses Skript ist Teil dieses Tutorials . Alle Befehle zum Konfigurieren der Firewall müssen gemäß dem obigen Skript in die Datei /etc/iptables.conf eingefügt werden. Dieses Skript muss in eine Datei namens iptables in /etc/init.d eingefügt und mit ausführbar gemacht werden
und fügen Sie den Dienst mit runlevels hinzu
Sie können neue Regeln aus der Shell hinzufügen. Diese Regeln sind sofort aktiv und werden nach dem Beenden des Dienstes zu /etc/iptables.conf hinzugefügt (dies bedeutet, dass sie beim Herunterfahren des Systems mit Sicherheit gespeichert werden).
Ich hoffe, dass dies für alle hilfreich sein wird.
quelle
Da sowohl iptables als auch ufw Möglichkeiten zum Verwalten der Netfilter- Firewall unter Linux darstellen und beide standardmäßig in Ubuntu verfügbar sind, können Sie Firewall-Regeln entweder starten und stoppen (und verwalten).
iptables ist flexibler, aber da ufw eine sehr einfache Oberflächensprache für einfache und typische Funktionen bietet, können Sie Folgendes verwenden:
sudo ufw disable
# Zum Deaktivieren der Firewallsudo ufw enable
# Zum Aktivieren der FirewallVerwenden Sie
sudo ufw status verbose
oder, um die aktuellen Firewall-Einstellungen anzuzeigeniptables -L
.Die Ubuntu Community-Dokumentseiten zu iptables und UFW enthalten viele weitere Informationen.
quelle
Sieht so aus, als gäbe es mehrere Möglichkeiten, die Firewall in Ubuntu zu verwalten. Vielleicht möchten Sie dies lesen: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Um alle aktuellen Regeln zu löschen, können Sie die folgenden Befehle verwenden (in ein Skript einfügen):
Normalerweise werden Ihre Standard-Firewall-Regeln in einer Datei gespeichert (z. B. /etc/iptables.rules). Während des Systemstarts wird ein Befehl
iptables-restore </etc/iptables.rules
zum Laden der Firewall-Regeln ausgeführt. Wenn Sie also denselben Befehl ausführen, nachdem Sie alle Regeln mit den oben genannten Befehlen gelöscht haben, wird die angeforderte Firewall neu geladen.quelle
Wenn ich mich richtig erinnere, besteht die vorgeschlagene Methode zum Einrichten von iptables in den Ubuntu-Handbüchern darin, sie als Teil der Netzwerkskripte einzurichten. was bedeutet, dass es kein /etc/init.d/iptables-Skript gibt, wie es in BSD-artigen Betriebssystemen der Fall ist.
quelle
Erstellen Sie eine Datei unter /etc/init.d/
Machen Sie die Datei ausführbar chmod + x
Erstellen Sie auf /etc/rc2.d/ einen Symlink zu dieser Datei.
Bearbeiten Sie S80firewall und fügen Sie Folgendes hinzu
Sie können alle Ihre benutzerdefinierten Iptables-Regeln zu dieser Datei hinzufügen
Jetzt können Sie die Firewall (iptables) neu starten, indem Sie /etc/rc2.d/S80firewall ausführen (muss root sein).
quelle
Ich hatte das gleiche Problem. In der Tat gab es keine Iptables-persistent in
/etc/init.d
Also habe ich die iptables-persistente Datei in erstellt
/etc/init.d
und schrieb folgendes hinein:
und dann gab chmod 755 Erlaubnis.
Jetzt funktioniert es einwandfrei! Hoffe es kann jemandem helfen.
quelle
Wenn Sie Ubuntu-Server als VM-Gast ausführen (z. B. in VirtualBox), ist möglicherweise libvirt aktiviert. In diesem Fall enthält libvirt einige eingebaute Netzwerkfilter, die iptables verwenden. Diese Filter können wie im Abschnitt Firewall auf nwfilters beschrieben konfiguriert werden .
Um die iptables-Regeln zu deaktivieren, müssen Sie entweder alle beleidigenden Regeln aus libvirt entfernen oder Sie können libvirt einfach deaktivieren, wenn Sie es nicht verwenden.
quelle
Sie verwenden den für RedHat und CentOS geeigneten Befehl, nicht Ubuntu oder Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
quelle
Standardmäßig gibt es keine, aber in neueren Debian-Derivaten (einschließlich Ubuntu) können Sie einen Dienst zur Verwaltung von iptables installieren :
Sie können dann zuvor gespeicherte Regeln laden:
Überprüfen Sie, was passiert ist:
Oder beenden Sie den Dienst:
Durch das Stoppen des Dienstes werden standardmäßig keine iptables gelöscht (dh die Firewall wird nicht deaktiviert, siehe
man netfilter-persistent
).quelle