Risposte:
Non conosco "Ubuntu", ma in Linux generalmente "iptables" non è un servizio, è un comando per manipolare il firewall del kernel netfilter. È possibile "disabilitare" (o arrestare) il firewall impostando i criteri predefiniti su tutte le catene standard su "ACCETTA" e svuotando le regole.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(Potrebbe essere necessario svuotare anche altre tabelle, come "nat", se le hai utilizzate)
Il seguente articolo sul sito Web di Ubuntu descrive la configurazione di iptables per l'uso con NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
iptables -F
era quello che mi mancava :-)
iptables-save > /tmp/rules
mi ha salvato la giornata. Grazie
Sbagli tutti :-)
Il comando che stai cercando è:
$ sudo ufw disable
Vorrei prima verificare se è installato con (probabilmente lo è):
dpkg -l | grep iptables
Su Ubuntu, iptables non è un servizio. Per fermarlo, devi fare quanto segue:
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
Per ripristinare le tue regole precedenti:
iptables-restore < /root/firewall.rules
Questo è stato preso da http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ ed è stato testato su molte installazioni Ubuntu 8.X e 9.10.
Iptables è un comando non è un servizio, quindi generalmente non è possibile usare comandi come
service iptables start
o
service iptables stop
per avviare e arrestare il firewall, ma alcune distro come centos hanno installato un servizio chiamato iptables per avviare e arrestare il firewall e un file di configurazione per configurarlo. Ad ogni modo è possibile creare un servizio per gestire ipotizzabili modifiche o l'installazione di uno script per questo ambito. Tutti i servizi in Linux, Ubuntu non fa eccezione, sono script eseguibili nella cartella /etc/init.d, che implementa un'interfaccia standard (avvio, arresto, riavvio) Un possibile script è simile al seguente:
#!/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
Questo script fa parte di questo tutorial , tutti i comandi per configurare il firewall devono essere inseriti, secondo lo script sopra, nel file /etc/iptables.conf. Questo script deve essere inserito in un file chiamato iptables in /etc/init.d e renderlo eseguibile usando
chmod+x *iptables*
e aggiungi il servizio ai runlevel usando
update-rc.d iptables defaults
È possibile aggiungere nuove regole dalla shell, queste saranno immediatamente attive e verranno aggiunte a /etc/iptables.conf quando il servizio si arresta (ciò significa che verranno sicuramente salvate all'arresto del sistema).
Spero che questo possa essere utile a tutti.
Poiché sia iptables che ufw sono modi per gestire il firewall netfilter in Linux e poiché entrambi sono disponibili per impostazione predefinita in Ubuntu, è possibile utilizzare sia per avviare e arrestare (e gestire) le regole del firewall.
iptables è più flessibile, ma poiché ufw fornisce un linguaggio di interfaccia molto semplice per una funzione semplice e tipica puoi usare:
sudo ufw disable
# Per disabilitare il firewall
sudo ufw enable
# Per abilitare il firewall
Per visualizzare le impostazioni del firewall correnti utilizzare sudo ufw status verbose
, o iptables -L
.
Le pagine dei documenti della comunità Ubuntu su iptables e UFW hanno molte più informazioni.
Sembra che ci siano diversi modi per gestire il firewall in Ubuntu, quindi potresti essere interessato a leggere questo: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Per eliminare tutte le regole correnti è possibile utilizzare questi comandi (inserirli in alcuni script):
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
Nel solito caso, le regole del firewall predefinite sono state salvate in alcuni file (ad esempio /etc/iptables.rules). Durante l'avvio del comando di sistema iptables-restore </etc/iptables.rules
eseguito per caricare le regole del firewall. Pertanto, eseguendo lo stesso comando dopo aver eliminato tutte le regole utilizzando i comandi sopra, si otterrà il "ricaricamento del firewall" richiesto.
Se ricordo correttamente il modo suggerito per configurare iptables nelle guide di Ubuntu è configurarlo come parte degli script di rete. il che significa che non esiste uno script /etc/init.d/iptables come nei sistemi operativi in stile BSD.
Crea un file su /etc/init.d/
touch fw.rc
Rendi eseguibile il file chmod + x
Crea un link simbolico a quel file su /etc/rc2.d/
ln -s /etc/init.d/fw.rc S80firewall
Modifica S80firewall e aggiungi quanto segue
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
È possibile aggiungere tutte le regole personalizzate di iptables su questo file
Ora puoi riavviare il firewall (iptables) eseguendo /etc/rc2.d/S80firewall (deve essere root)
Ho avuto lo stesso problema. In effetti, non vi era alcuna iptables-persistente in/etc/init.d
Quindi, ho creato il file persistente iptables in /etc/init.d
nano /etc/init.d/iptables-persistent
e ha scritto quanto segue all'interno:
#!/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
e poi ha dato il permesso a chmod 755.
chmod 755 /etc/init.d/iptables-persistent
Ora funziona perfettamente! Spero che possa aiutare qualcuno.
Se stai eseguendo il server Ubuntu come guest VM (ad esempio in VirtualBox), libvirt potrebbe essere abilitato. In tal caso libvirt contiene alcuni filtri di rete integrati che utilizzano iptables. Questi filtri possono essere configurati come descritto nella sezione firewall su nwfilters .
Per disabilitare le regole di iptables dovrai o rimuovere tutte le regole offensive da libvirt, oppure puoi semplicemente disabilitare libvirt se non lo stai usando - ad es. Installa una configurazione di sostituzione manuale (quindi riavvia):
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Stai usando il comando appropriato per RedHat e CentOS, non Ubuntu o Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
Non ce ne sono di default, ma negli ultimi derivati debian (incluso Ubuntu) è possibile installare un servizio per gestire iptables :
sudo apt install iptables-persistent
È quindi possibile caricare le regole salvate in precedenza:
systemctl start netfilter-persistent
Rivedi cosa è successo:
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.
O interrompere il servizio:
systemctl stop netfilter-persistent
L'arresto del servizio, per impostazione predefinita, non scaricherà iptables (ovvero non disabiliterà il firewall, vedi man netfilter-persistent
).
/etc/init.d/
esso (un) è utile il collegamento principale che si ottiene quando si cerca su google "disattivare iptables ubuntu".