Myślę, że pewne zamieszanie wynika z takich artykułów: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux, który dotyczy tylko Fedory / Red Hat i twierdzi, że w /etc/init.d/nim znajdziesz (nie) pomocne jest górny link, który dostajesz, kiedy googlujesz „wyłącz iptables ubuntu”.
icc97
Odpowiedzi:
76
Nie wiem o „Ubuntu”, ale ogólnie w Linuksie „iptables” nie jest usługą - to polecenie do manipulowania zaporą jądra netfiltra. Możesz „wyłączyć” (lub zatrzymać) zaporę, ustawiając domyślne zasady dla wszystkich standardowych łańcuchów na „AKCEPTUJ” i opróżniając reguły.
pewnie, jeśli mówiliśmy o ufw, ale ten post dotyczy iptables
webjay,
1
Cóż, założyłem, że była to domyślna instalacja Ubuntu, i że nie ma iptables, ale ma ufw.
Frederik Nielsen
22
ufw to tylko nakładka na iptables: „Iptables to zapora ogniowa, domyślnie instalowana we wszystkich oficjalnych dystrybucjach Ubuntu (Ubuntu, Kubuntu, Xubuntu). Po zainstalowaniu Ubuntu, iptables jest dostępny, ale domyślnie zezwala na cały ruch. Ubuntu 8.04 with ufw - program do łatwego zarządzania zaporą iptables. ” help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Być może, ale ponieważ ufw == iptables (mniej więcej) w Ubuntu, wyłączenie ufw jest równoznaczne z wyłączeniem iptables.
Frederik Nielsen,
2
Najprawdopodobniej OP był faktycznie zainteresowany wyłączeniem zapór ogniowych, zamiast zrozumienia zawiłości usługi iptables do zarządzania zaporami ogniowymi, więc jest to dobra odpowiedź.
BobDoolittle,
30
Najpierw sprawdziłbym, czy jest on zainstalowany (prawdopodobnie jest):
dpkg -l | grep iptables
W systemie Ubuntu iptables nie jest usługą. Aby go zatrzymać, musisz wykonać następujące czynności:
Nie wiem, dlaczego ma tak wiele pozytywnych opinii, iptables to moduł jądra. Nigdy nie jest to „usługa”, którą można „zatrzymać”. Służą do informowania jądra, jak obsługiwać połączenia. Również w środowisku produkcyjnym nigdy nie należy wyłączać zapory. Jeśli coś nie działa, znajdź właściwe rozwiązanie, a nie łatwe.
Broco,
17
Iptables jest poleceniem, nie jest usługą, więc generalnie nie można używać poleceń takich jak
service iptables start
lub
service iptables stop
w celu uruchomienia i zatrzymania zapory ogniowej, ale niektóre dystrybucje, takie jak centos, zainstalowały usługę o nazwie iptables w celu uruchomienia i zatrzymania zapory ogniowej oraz plik konfiguracyjny do jej skonfigurowania. W każdym razie możliwe jest stworzenie usługi do zarządzania edycją ipotables lub instalowania skryptu dla tego zakresu. Wszystkie usługi w systemie Linux, ubuntu nie jest wyjątkiem, są skryptami wykonywalnymi w folderze /etc/init.d, które implementują standardowy interfejs (start, stop, restart) Możliwy skrypt wygląda następująco:
#!/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
Ten skrypt jest częścią tego samouczka , zgodnie z powyższym skryptem wszystkie polecenia służące do konfigurowania zapory muszą zostać wstawione do pliku /etc/iptables.conf. Skrypt ten należy wstawić do pliku o nazwie iptables w /etc/init.d i umożliwić jego wykonanie za pomocą
chmod+x *iptables*
i dodaj usługę do poziomów uruchamiania za pomocą
update-rc.d iptables defaults
Możesz dodać nowe reguły z powłoki, reguły te będą natychmiast aktywne i zostaną dodane do /etc/iptables.conf, gdy usługa się zatrzyma (oznacza to, że zostaną zapisane na pewno po zamknięciu systemu).
Mam nadzieję, że będzie to pomocne dla wszystkich.
Ponieważ zarówno iptables, jak i ufw są sposobami zarządzania zaporą netfilter w Linuksie, a ponieważ oba są domyślnie dostępne w Ubuntu, możesz użyć albo do uruchomienia i zatrzymania (i zarządzania) regułami zapory.
iptables jest bardziej elastyczny, ale ponieważ ufw zapewnia bardzo prosty język interfejsu dla prostych i typowych funkcji, których możesz użyć:
sudo ufw disable # Aby wyłączyć zaporę
sudo ufw enable # Aby włączyć zaporę ogniową
Aby zobaczyć bieżące ustawienia zapory, użyj sudo ufw status verboselub iptables -L.
Strony z dokumentami społeczności Ubuntu na iptables i UFW zawierają znacznie więcej informacji.
W zwykłym przypadku domyślne reguły zapory są zapisywane w niektórych plikach (na przykład /etc/iptables.rules). Podczas uruchamiania systemu uruchomiono polecenie iptables-restore </etc/iptables.ruleszaładowania reguł zapory. Wykonanie tego samego polecenia po usunięciu wszystkich reguł przy użyciu powyższych poleceń spowoduje „ponowne załadowanie zapory”, o które prosiłeś.
Jeśli dobrze pamiętam, sugerowanym sposobem skonfigurowania iptables w przewodnikach Ubuntu jest skonfigurowanie go jako części skryptów sieciowych. co oznacza, że nie ma skryptu /etc/init.d/iptables, tak jak w systemach operacyjnych typu BSD.
Była w Debianie Woodym (czy wtedy Ubuntu istniało?), Zresztą jest nadal wdrażana przez sysadmins. Dlaczego zmienili ten pomysł?
Nie mam pojęcia ... ale wydaje mi się, że pamiętam, że jest to jedna z tych irytujących rzeczy, które musiałem wymyślić, konfigurując serwer Ubuntu 9.10 lub coś w tym stylu ... ponieważ chciałem dystrybucji, która zawierała ostatnio postgres i było dla serwerów ... w przeciwnym razie uruchomię arch Linux.
ksenoterrakid
2
Utwórz plik na /etc/init.d/
touch fw.rc
Ustaw plik wykonywalny chmod + x
Utwórz dowiązanie symboliczne do tego pliku na /etc/rc2.d/
Miałem ten sam problem. W rzeczywistości nie było w nim opcji trwałej w iptables/etc/init.d
Tak więc utworzyłem plik trwały iptables w /etc/init.d
nano /etc/init.d/iptables-persistent
i napisał w środku:
#!/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
a następnie dał chmod 755 pozwolenie.
chmod 755 /etc/init.d/iptables-persistent
Teraz działa idealnie! Mam nadzieję, że może komuś pomóc.
Jeśli korzystasz z serwera Ubuntu jako gość VM (np. W VirtualBox), możesz włączyć libvirt . Jeśli tak, libvirt zawiera wbudowane filtry sieciowe wykorzystujące iptables. Filtry te można skonfigurować zgodnie z opisem w sekcji zapory na filtrach nw .
Aby wyłączyć reguły iptables, musisz albo usunąć wszystkie obraźliwe reguły z libvirt, albo możesz po prostu wyłączyć libvirt, jeśli go nie używasz - np. Zainstaluj konfigurację ręcznego nadpisywania (następnie uruchom ponownie):
/etc/init.d/
nim znajdziesz (nie) pomocne jest górny link, który dostajesz, kiedy googlujesz „wyłącz iptables ubuntu”.Odpowiedzi:
Nie wiem o „Ubuntu”, ale ogólnie w Linuksie „iptables” nie jest usługą - to polecenie do manipulowania zaporą jądra netfiltra. Możesz „wyłączyć” (lub zatrzymać) zaporę, ustawiając domyślne zasady dla wszystkich standardowych łańcuchów na „AKCEPTUJ” i opróżniając reguły.
(Może być konieczne opróżnienie również innych tabel, takich jak „nat”, jeśli z nich korzystałeś)
Poniższy artykuł na stronie Ubuntu opisuje konfigurowanie iptables do użytku z NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
źródło
iptables -F
brakowało mi :-)iptables-save > /tmp/rules
uratował mi dzień. DziękiWszyscy się mylicie :-)
Polecenie, którego szukasz, to:
źródło
Najpierw sprawdziłbym, czy jest on zainstalowany (prawdopodobnie jest):
W systemie Ubuntu iptables nie jest usługą. Aby go zatrzymać, musisz wykonać następujące czynności:
Aby przywrócić poprzednie zasady:
Zostało to zaczerpnięte z http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ i zostało przetestowane na wielu instalacjach Ubuntu 8.X i 9.10.
źródło
Iptables jest poleceniem, nie jest usługą, więc generalnie nie można używać poleceń takich jak
lub
w celu uruchomienia i zatrzymania zapory ogniowej, ale niektóre dystrybucje, takie jak centos, zainstalowały usługę o nazwie iptables w celu uruchomienia i zatrzymania zapory ogniowej oraz plik konfiguracyjny do jej skonfigurowania. W każdym razie możliwe jest stworzenie usługi do zarządzania edycją ipotables lub instalowania skryptu dla tego zakresu. Wszystkie usługi w systemie Linux, ubuntu nie jest wyjątkiem, są skryptami wykonywalnymi w folderze /etc/init.d, które implementują standardowy interfejs (start, stop, restart) Możliwy skrypt wygląda następująco:
Ten skrypt jest częścią tego samouczka , zgodnie z powyższym skryptem wszystkie polecenia służące do konfigurowania zapory muszą zostać wstawione do pliku /etc/iptables.conf. Skrypt ten należy wstawić do pliku o nazwie iptables w /etc/init.d i umożliwić jego wykonanie za pomocą
i dodaj usługę do poziomów uruchamiania za pomocą
Możesz dodać nowe reguły z powłoki, reguły te będą natychmiast aktywne i zostaną dodane do /etc/iptables.conf, gdy usługa się zatrzyma (oznacza to, że zostaną zapisane na pewno po zamknięciu systemu).
Mam nadzieję, że będzie to pomocne dla wszystkich.
źródło
Ponieważ zarówno iptables, jak i ufw są sposobami zarządzania zaporą netfilter w Linuksie, a ponieważ oba są domyślnie dostępne w Ubuntu, możesz użyć albo do uruchomienia i zatrzymania (i zarządzania) regułami zapory.
iptables jest bardziej elastyczny, ale ponieważ ufw zapewnia bardzo prosty język interfejsu dla prostych i typowych funkcji, których możesz użyć:
sudo ufw disable
# Aby wyłączyć zaporęsudo ufw enable
# Aby włączyć zaporę ogniowąAby zobaczyć bieżące ustawienia zapory, użyj
sudo ufw status verbose
lubiptables -L
.Strony z dokumentami społeczności Ubuntu na iptables i UFW zawierają znacznie więcej informacji.
źródło
Wygląda na to, że istnieje kilka sposobów zarządzania zaporą ogniową w systemie Ubuntu, więc możesz zainteresować się tym: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Aby usunąć wszystkie obecne reguły, możesz użyć tych poleceń (umieść je w skrypcie):
W zwykłym przypadku domyślne reguły zapory są zapisywane w niektórych plikach (na przykład /etc/iptables.rules). Podczas uruchamiania systemu uruchomiono polecenie
iptables-restore </etc/iptables.rules
załadowania reguł zapory. Wykonanie tego samego polecenia po usunięciu wszystkich reguł przy użyciu powyższych poleceń spowoduje „ponowne załadowanie zapory”, o które prosiłeś.źródło
Jeśli dobrze pamiętam, sugerowanym sposobem skonfigurowania iptables w przewodnikach Ubuntu jest skonfigurowanie go jako części skryptów sieciowych. co oznacza, że nie ma skryptu /etc/init.d/iptables, tak jak w systemach operacyjnych typu BSD.
źródło
Utwórz plik na /etc/init.d/
Ustaw plik wykonywalny chmod + x
Utwórz dowiązanie symboliczne do tego pliku na /etc/rc2.d/
Edytuj S80firewall i dodaj następujące elementy
Możesz dodać wszystkie niestandardowe reguły iptables do tego pliku
Teraz możesz ponownie uruchomić zaporę (iptables), uruchamiając /etc/rc2.d/S80firewall (musi być rootem)
źródło
Miałem ten sam problem. W rzeczywistości nie było w nim opcji trwałej w iptables
/etc/init.d
Tak więc utworzyłem plik trwały iptables w
/etc/init.d
i napisał w środku:
a następnie dał chmod 755 pozwolenie.
Teraz działa idealnie! Mam nadzieję, że może komuś pomóc.
źródło
Jeśli korzystasz z serwera Ubuntu jako gość VM (np. W VirtualBox), możesz włączyć libvirt . Jeśli tak, libvirt zawiera wbudowane filtry sieciowe wykorzystujące iptables. Filtry te można skonfigurować zgodnie z opisem w sekcji zapory na filtrach nw .
Aby wyłączyć reguły iptables, musisz albo usunąć wszystkie obraźliwe reguły z libvirt, albo możesz po prostu wyłączyć libvirt, jeśli go nie używasz - np. Zainstaluj konfigurację ręcznego nadpisywania (następnie uruchom ponownie):
źródło
Używasz polecenia odpowiedniego dla RedHat i CentOS, a nie Ubuntu lub Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
źródło
Domyślnie nie ma żadnych, ale w najnowszych pochodnych Debiana (w tym Ubuntu) możesz zainstalować usługę do zarządzania iptables :
Następnie możesz załadować wcześniej zapisane reguły:
Sprawdź, co się stało:
Lub zatrzymaj usługę:
Zatrzymanie usługi domyślnie nie opróżni iptables (tj. Nie wyłączy zapory, patrz
man netfilter-persistent
).źródło