Je pense qu'une partie de la confusion provient d'articles comme celui-ci: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux qui s'applique uniquement à Fedora / Red Hat et affirme que vous le trouverez dans /etc/init.d/celui-ci. (mal) est le premier lien que vous obtenez lorsque vous recherchez «désactivez iptables ubuntu» dans Google.
icc97
Réponses:
76
Je ne connais pas «Ubuntu», mais sous Linux en général, «iptables» n’est pas un service, c’est une commande permettant de manipuler le pare-feu du noyau Netfilter. Vous pouvez "désactiver" (ou arrêter) le pare-feu en définissant les stratégies par défaut sur "ACCEPTER" sur toutes les chaînes standard et en purgeant les règles.
Est-ce que cela ne jettera pas toutes les règles actuelles pour toujours? Préférez les sauver quelque part d’abord avec sudo iptables-save> / tmp / rules
Jens Timmerman le
8
Cela n'arrête pas le service, mais laisse tout passer.
Frederik Nielsen
1
Ah merci. iptables -Fétait ce qui me manquait :-)
Cameron
@JensTimmerman a iptables-save > /tmp/rulessauvé ma journée. Merci
Bien sûr, si nous parlions d'ufw, mais cet article concerne iptables
webjay
1
Eh bien, j'ai supposé que c'était une installation par défaut d'Ubuntu, et que celui-ci n'a pas iptables, mais ufw.
Frederik Nielsen
22
ufw est juste une interface pour iptables: "Iptables est un pare-feu, installé par défaut sur toutes les distributions officielles Ubuntu (Ubuntu, Kubuntu, Xubuntu). Lorsque vous installez Ubuntu, iptables est présent, mais il autorise tout le trafic par défaut. Ubuntu 8.04 est maintenant disponible. avec ufw - un programme permettant de gérer facilement le pare-feu iptables. " help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Peut-être, mais comme ufw == iptables (plus ou moins) dans Ubuntu, désactiver ufw équivaut à désactiver iptables.
Frederik Nielsen
2
Très probablement, le PO était réellement intéressé à désactiver les pare-feu, au lieu de comprendre les subtilités du service iptables pour la gestion des pare-feu, c'est donc une bonne réponse.
BobDoolittle
30
Je voudrais d’abord vérifier s’il est installé avec (c’est probablement le cas):
dpkg -l | grep iptables
Sur Ubuntu, iptables n'est pas un service. Pour l'arrêter, vous devez procéder comme suit:
Je ne sais pas pourquoi cela a eu tant de votes positifs, iptables est un module du noyau. Ce n'est jamais un "service" qui peut être "arrêté". Ils sont utilisés pour indiquer au noyau comment gérer les connexions. De même, dans un environnement de production, vous ne devez jamais désactiver votre pare-feu. Si quelque chose ne fonctionne pas, trouvez la bonne solution, pas la plus facile.
Broco
17
Iptables est une commande, ce n'est pas un service, il est donc généralement impossible d'utiliser des commandes telles que
service iptables start
ou
service iptables stop
afin de démarrer et d’arrêter le pare-feu, mais certaines distributions comme centos ont installé un service appelé iptables pour démarrer et arrêter le pare-feu et un fichier de configuration pour le configurer. Quoi qu'il en soit, il est possible de créer un service permettant de gérer l'édition d'ipotables ou d'installer un script pour cette étendue. Tous les services sous linux, ubuntu n’est pas une exception, sont des scripts exécutables dans le dossier /etc/init.d, qui implémente une interface standard (démarrer, arrêter, redémarrer). Un script possible ressemble à ceci:
#!/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
Ce script fait partie de ce tutoriel . Toutes les commandes permettant de configurer le pare-feu doivent être insérées, conformément au script ci-dessus, dans le fichier /etc/iptables.conf. Ce script doit être inséré dans un fichier appelé iptables dans /etc/init.d et le rendre exécutable à l’aide de
chmod+x *iptables*
et ajoutez le service aux niveaux d'exécution à l'aide de
update-rc.d iptables defaults
Vous pouvez ajouter de nouvelles règles à partir du shell, ces règles seront immédiatement actives et seront ajoutées à /etc/iptables.conf lorsque le service s'arrêtera (cela signifie qu'elles seront sauvegardées à coup sûr lors de l'arrêt du système).
Parce que iptables et ufw sont des moyens de gérer le pare-feu netfilter sous Linux et qu’ils sont tous deux disponibles par défaut dans Ubuntu, vous pouvez utiliser soit pour démarrer et arrêter (et gérer) les règles du pare-feu.
iptables est plus flexible, mais parce que ufw fournit un langage d'interface très simple pour des fonctions simples et typiques, vous pouvez utiliser:
sudo ufw disable # Pour désactiver le pare-feu
sudo ufw enable # Pour activer le pare-feu
Pour voir les paramètres actuels du pare-feu, utilisez sudo ufw status verbose, ou iptables -L.
Les pages de documentation de la communauté Ubuntu sur iptables et UFW contiennent de nombreuses autres informations.
Dans le cas habituel, vos règles de pare-feu par défaut enregistrées dans un fichier (par exemple, /etc/iptables.rules). Lors du démarrage de la commande système iptables-restore </etc/iptables.rulesexécutée pour charger les règles du pare-feu. Ainsi, exécuter la même commande après avoir abandonné toutes les règles en utilisant les commandes ci-dessus entraînera le "rechargement du pare-feu" que vous avez demandé.
Si je me souviens bien, la méthode suggérée pour configurer iptables dans les guides Ubuntu est de le configurer dans le cadre des scripts de réseau. ce qui signifie qu'il n'y a pas de script /etc/init.d/iptables comme dans les systèmes d'exploitation de style BSD.
Il y en avait dans Debian Woody (Ubuntu existait-il alors?), De toute façon, il est toujours implémenté par les administrateurs système aujourd'hui. Pourquoi ont-ils changé cette idée?
Je n'ai pas la moindre idée ... mais je pense me souvenir que c'est l'une de ces choses ennuyeuses que j'ai eu à comprendre lors de la configuration du serveur Ubuntu 9.10 ou quelque chose du genre ... car je voulais une version distro récente et récente. était pour les serveurs ... sinon je lance Arch Linux.
Xenoterracide
2
Créez un fichier sur /etc/init.d/
touch fw.rc
Rendre le fichier exécutable chmod + x
Faites un lien symbolique vers ce fichier sous /etc/rc2.d/
J'ai eu le même problème. En fait, il n’y avait pas de iptables-persistent dans/etc/init.d
J'ai donc créé le fichier iptables-persistent dans /etc/init.d
nano /etc/init.d/iptables-persistent
et a écrit ce qui suit à l'intérieur:
#!/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
puis a donné la permission à chmod 755.
chmod 755 /etc/init.d/iptables-persistent
Maintenant cela fonctionne parfaitement! J'espère que ça peut aider quelqu'un.
Si vous exécutez le serveur Ubuntu en tant qu'invité de machine virtuelle (par exemple dans VirtualBox), alors libvirt peut être activé. Si tel est le cas, libvirt contient des filtres réseau intégrés qui utilisent iptables. Ces filtres peuvent être configurés comme décrit dans la section pare-feu sur nwfilters .
Pour désactiver les règles iptables, vous devez soit supprimer toutes les règles incriminées de libvirt, soit vous pouvez simplement désactiver libvirt si vous ne l'utilisez pas - par exemple, installez une configuration de remplacement manuelle (puis redémarrez):
Il n'y en a aucun par défaut, mais vous pouvez installer un service permettant de gérer iptables dans les dérivés récents de Debian (y compris Ubuntu) :
sudo apt install iptables-persistent
Vous pouvez ensuite charger les règles précédemment enregistrées:
systemctl start netfilter-persistent
Passez en revue ce qui s'est passé:
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.
Ou arrêtez le service:
systemctl stop netfilter-persistent
Par défaut, l’arrêt du service ne vide pas iptables (c’est-à-dire ne désactive pas le pare-feu, voir man netfilter-persistent).
/etc/init.d/
celui-ci. (mal) est le premier lien que vous obtenez lorsque vous recherchez «désactivez iptables ubuntu» dans Google.Réponses:
Je ne connais pas «Ubuntu», mais sous Linux en général, «iptables» n’est pas un service, c’est une commande permettant de manipuler le pare-feu du noyau Netfilter. Vous pouvez "désactiver" (ou arrêter) le pare-feu en définissant les stratégies par défaut sur "ACCEPTER" sur toutes les chaînes standard et en purgeant les règles.
(Vous devrez peut-être vider d'autres tables, telles que "nat", si vous les avez utilisées)
L'article suivant sur le site Web Ubuntu décrit la configuration d'iptables à utiliser avec NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
la source
iptables -F
était ce qui me manquait :-)iptables-save > /tmp/rules
sauvé ma journée. MerciVous avez tout faux :-)
La commande que vous recherchez est:
la source
Je voudrais d’abord vérifier s’il est installé avec (c’est probablement le cas):
Sur Ubuntu, iptables n'est pas un service. Pour l'arrêter, vous devez procéder comme suit:
Afin de restaurer vos règles précédentes:
Ceci a été pris de http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ et a été testé sur de nombreuses installations Ubuntu 8.X & 9.10.
la source
Iptables est une commande, ce n'est pas un service, il est donc généralement impossible d'utiliser des commandes telles que
ou
afin de démarrer et d’arrêter le pare-feu, mais certaines distributions comme centos ont installé un service appelé iptables pour démarrer et arrêter le pare-feu et un fichier de configuration pour le configurer. Quoi qu'il en soit, il est possible de créer un service permettant de gérer l'édition d'ipotables ou d'installer un script pour cette étendue. Tous les services sous linux, ubuntu n’est pas une exception, sont des scripts exécutables dans le dossier /etc/init.d, qui implémente une interface standard (démarrer, arrêter, redémarrer). Un script possible ressemble à ceci:
Ce script fait partie de ce tutoriel . Toutes les commandes permettant de configurer le pare-feu doivent être insérées, conformément au script ci-dessus, dans le fichier /etc/iptables.conf. Ce script doit être inséré dans un fichier appelé iptables dans /etc/init.d et le rendre exécutable à l’aide de
et ajoutez le service aux niveaux d'exécution à l'aide de
Vous pouvez ajouter de nouvelles règles à partir du shell, ces règles seront immédiatement actives et seront ajoutées à /etc/iptables.conf lorsque le service s'arrêtera (cela signifie qu'elles seront sauvegardées à coup sûr lors de l'arrêt du système).
J'espère que cela sera utile à tout le monde.
la source
Parce que iptables et ufw sont des moyens de gérer le pare-feu netfilter sous Linux et qu’ils sont tous deux disponibles par défaut dans Ubuntu, vous pouvez utiliser soit pour démarrer et arrêter (et gérer) les règles du pare-feu.
iptables est plus flexible, mais parce que ufw fournit un langage d'interface très simple pour des fonctions simples et typiques, vous pouvez utiliser:
sudo ufw disable
# Pour désactiver le pare-feusudo ufw enable
# Pour activer le pare-feuPour voir les paramètres actuels du pare-feu, utilisez
sudo ufw status verbose
, ouiptables -L
.Les pages de documentation de la communauté Ubuntu sur iptables et UFW contiennent de nombreuses autres informations.
la source
Il semble y avoir plusieurs façons de gérer le pare-feu dans Ubuntu. Vous pouvez donc lire ceci: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Pour supprimer toutes les règles actuelles, vous pouvez utiliser ces commandes (insérez-les dans un script):
Dans le cas habituel, vos règles de pare-feu par défaut enregistrées dans un fichier (par exemple, /etc/iptables.rules). Lors du démarrage de la commande système
iptables-restore </etc/iptables.rules
exécutée pour charger les règles du pare-feu. Ainsi, exécuter la même commande après avoir abandonné toutes les règles en utilisant les commandes ci-dessus entraînera le "rechargement du pare-feu" que vous avez demandé.la source
Si je me souviens bien, la méthode suggérée pour configurer iptables dans les guides Ubuntu est de le configurer dans le cadre des scripts de réseau. ce qui signifie qu'il n'y a pas de script /etc/init.d/iptables comme dans les systèmes d'exploitation de style BSD.
la source
Créez un fichier sur /etc/init.d/
Rendre le fichier exécutable chmod + x
Faites un lien symbolique vers ce fichier sous /etc/rc2.d/
Modifiez S80firewall et ajoutez ce qui suit
Vous pouvez ajouter toutes vos règles personnalisées iptables sur ce fichier.
Maintenant, vous pouvez redémarrer le pare-feu (iptables) en exécutant /etc/rc2.d/S80firewall (doit être root)
la source
J'ai eu le même problème. En fait, il n’y avait pas de iptables-persistent dans
/etc/init.d
J'ai donc créé le fichier iptables-persistent dans
/etc/init.d
et a écrit ce qui suit à l'intérieur:
puis a donné la permission à chmod 755.
Maintenant cela fonctionne parfaitement! J'espère que ça peut aider quelqu'un.
la source
Si vous exécutez le serveur Ubuntu en tant qu'invité de machine virtuelle (par exemple dans VirtualBox), alors libvirt peut être activé. Si tel est le cas, libvirt contient des filtres réseau intégrés qui utilisent iptables. Ces filtres peuvent être configurés comme décrit dans la section pare-feu sur nwfilters .
Pour désactiver les règles iptables, vous devez soit supprimer toutes les règles incriminées de libvirt, soit vous pouvez simplement désactiver libvirt si vous ne l'utilisez pas - par exemple, installez une configuration de remplacement manuelle (puis redémarrez):
la source
Vous utilisez la commande appropriée pour RedHat et CentOS, pas pour Ubuntu ou Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
la source
Il n'y en a aucun par défaut, mais vous pouvez installer un service permettant de gérer iptables dans les dérivés récents de Debian (y compris Ubuntu) :
Vous pouvez ensuite charger les règles précédemment enregistrées:
Passez en revue ce qui s'est passé:
Ou arrêtez le service:
Par défaut, l’arrêt du service ne vide pas iptables (c’est-à-dire ne désactive pas le pare-feu, voir
man netfilter-persistent
).la source