Я думаю, что некоторая путаница связана с такими статьями: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux, которая относится только к Fedora / Red Hat и утверждает, что вы найдете ее в /etc/init.d/ней. (un) полезно - это верхняя ссылка, которую вы получаете, когда гуглите «отключите iptables ubuntu».
icc97
Ответы:
76
Я не знаю об «Ubuntu», но в Linux вообще «iptables» - это не служба, а команда для управления брандмауэром ядра netfilter. Вы можете «отключить» (или остановить) брандмауэр, установив для всех стандартных цепочек политики по умолчанию «ПРИНЯТЬ» и сбросив правила.
конечно, если бы мы говорили о UFW, но этот пост о iptables
webjay
1
Ну, я предположил, что это была установка Ubuntu по умолчанию, и в ней нет iptables, но есть ufw.
Фредерик Нильсен
22
ufw - это просто интерфейс для iptables: «Iptables - это брандмауэр, установленный по умолчанию во всех официальных дистрибутивах Ubuntu (Ubuntu, Kubuntu, Xubuntu). При установке Ubuntu iptables присутствует, но по умолчанию разрешает весь трафик. Ubuntu 8.04 приходит с помощью ufw - программы для простого управления брандмауэром iptables. " help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Возможно, но, как и ufw == iptables (более или менее) в Ubuntu, отключение ufw равнозначно отключению iptables.
Фредерик Нильсен
2
Скорее всего, OP действительно заинтересован в отключении брандмауэров, вместо того, чтобы разбираться в тонкостях службы iptables для управления брандмауэрами, так что это хороший ответ.
BobDoolittle
30
Я бы сначала проверил, установлен ли он с (вероятно, так):
dpkg -l | grep iptables
В Ubuntu iptables не является службой. Чтобы остановить это, вы должны сделать следующее:
Я не знаю, почему так много голосов, iptables - модуль ядра. Это никогда не «служба», которую можно «остановить». Они используются, чтобы сообщить ядру, как обрабатывать соединения. Также в производственной среде вы никогда не должны отключать брандмауэр. Если что-то не работает, найдите правильное, а не простое решение.
Broco
17
Iptables - это команда, а не служба, поэтому обычно невозможно использовать такие команды, как
service iptables start
или же
service iptables stop
для запуска и остановки брандмауэра, но некоторые дистрибутивы, такие как centos, установили службу iptables для запуска и остановки брандмауэра и файл конфигурации для его настройки. В любом случае можно создать сервис для управления редактированием ipotables или установить скрипт для этой области. Все сервисы в Linux, Ubuntu не является исключением, являются исполняемыми скриптами внутри папки /etc/init.d, которая реализует стандартный интерфейс (start, stop, restart). Возможный скрипт выглядит следующим образом:
#!/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. Этот скрипт необходимо вставить в файл с именем iptables в /etc/init.d и сделать его исполняемым с помощью
chmod+x *iptables*
и добавьте сервис к уровням запуска, используя
update-rc.d iptables defaults
Вы можете добавить новые правила из оболочки, эти правила будут немедленно активны и будут добавлены в /etc/iptables.conf, когда служба остановится (это означает, что они обязательно будут сохранены при завершении работы системы).
Поскольку iptables и ufw являются способами управления брандмауэром netfilter в Linux, а также тем, что оба доступны по умолчанию в Ubuntu, вы можете использовать либо для запуска, либо для остановки (и управления) правилами брандмауэра.
iptables более гибок, но поскольку ufw предоставляет очень простой язык интерфейса для простых и типичных функций, которые вы можете использовать:
sudo ufw disable # Чтобы отключить брандмауэр
sudo ufw enable # Чтобы включить брандмауэр
Для просмотра текущих настроек брандмауэра используйте sudo ufw status verbose, или iptables -L.
Страницы документации сообщества Ubuntu по iptables и UFW содержат гораздо больше информации.
В обычном случае ваши правила брандмауэра по умолчанию сохраняются в каком-либо файле (например, /etc/iptables.rules). Во время загрузки системная команда iptables-restore </etc/iptables.rulesвыполняется для загрузки правил брандмауэра. Таким образом, выполнение той же команды после того, как вы удалили все правила, используя вышеуказанные команды, приведет к «перезагрузке брандмауэра», о которой вы просили.
Если я правильно помню, предложенный способ настройки iptables в руководствах по ubuntu - это настроить его как часть сетевых сценариев. Это означает, что нет сценария /etc/init.d/iptables, как в ОС в стиле BSD.
Был в Debian Woody (существовал ли тогда Ubuntu?), Так или иначе, он все еще применяется системными администраторами сегодня. Почему они изменили эту идею?
Я понятия не имею ... но я, кажется, вспоминаю, что это была одна из тех раздражающих вещей, которые мне пришлось выяснить, когда я настраивал Ubuntu Server 9.10 или что-то в этом роде ..., так как я хотел выпустить дистрибутив, в котором были последние postgres и был для серверов ... в противном случае я запускаю Arch Linux.
ксенотеррацид
2
Создайте файл в /etc/init.d/
touch fw.rc
Сделайте файл исполняемым chmod + x
Сделайте символическую ссылку на этот файл в /etc/rc2.d/
Я была такая же проблема. На самом деле, не было никакого iptables-постоянного в/etc/init.d
Итак, я создал постоянный файл iptables в /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
а затем дал chmod 755 разрешение.
chmod 755 /etc/init.d/iptables-persistent
Теперь это работает отлично! Надеюсь, это может кому-то помочь.
Если вы используете сервер Ubuntu в качестве гостевой виртуальной машины (например, в VirtualBox), тогда может быть включена libvirt . Если это так, libvirt содержит несколько встроенных сетевых фильтров, которые используют iptables. Эти фильтры могут быть настроены, как описано в разделе брандмауэра на nwfilters .
Чтобы отключить правила iptables, вам нужно либо удалить все нарушающие правила из libvirt, либо вы можете просто отключить libvirt, если вы его не используете - например, установить конфигурацию ручного переопределения (затем перезагрузить):
/etc/init.d/
ней. (un) полезно - это верхняя ссылка, которую вы получаете, когда гуглите «отключите iptables ubuntu».Ответы:
Я не знаю об «Ubuntu», но в Linux вообще «iptables» - это не служба, а команда для управления брандмауэром ядра netfilter. Вы можете «отключить» (или остановить) брандмауэр, установив для всех стандартных цепочек политики по умолчанию «ПРИНЯТЬ» и сбросив правила.
(Возможно, вам придется очистить и другие таблицы, например, «nat», если вы их использовали)
В следующей статье на веб-сайте Ubuntu описывается настройка iptables для использования с NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
источник
iptables -F
было то, чего мне не хватало :-)iptables-save > /tmp/rules
спас мой день. СпасибоВы все не правы :-)
Команда, которую вы ищете:
источник
Я бы сначала проверил, установлен ли он с (вероятно, так):
В Ubuntu iptables не является службой. Чтобы остановить это, вы должны сделать следующее:
Чтобы восстановить ваши предыдущие правила:
Это было взято с http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ и протестировано на многих установках Ubuntu 8.X & 9.10.
источник
Iptables - это команда, а не служба, поэтому обычно невозможно использовать такие команды, как
или же
для запуска и остановки брандмауэра, но некоторые дистрибутивы, такие как centos, установили службу iptables для запуска и остановки брандмауэра и файл конфигурации для его настройки. В любом случае можно создать сервис для управления редактированием ipotables или установить скрипт для этой области. Все сервисы в Linux, Ubuntu не является исключением, являются исполняемыми скриптами внутри папки /etc/init.d, которая реализует стандартный интерфейс (start, stop, restart). Возможный скрипт выглядит следующим образом:
Этот скрипт является частью этого руководства , все команды для настройки брандмауэра должны быть вставлены, в соответствии с приведенным выше сценарием, в файл /etc/iptables.conf. Этот скрипт необходимо вставить в файл с именем iptables в /etc/init.d и сделать его исполняемым с помощью
и добавьте сервис к уровням запуска, используя
Вы можете добавить новые правила из оболочки, эти правила будут немедленно активны и будут добавлены в /etc/iptables.conf, когда служба остановится (это означает, что они обязательно будут сохранены при завершении работы системы).
Я надеюсь, что это будет полезно для всех.
источник
Поскольку iptables и ufw являются способами управления брандмауэром netfilter в Linux, а также тем, что оба доступны по умолчанию в Ubuntu, вы можете использовать либо для запуска, либо для остановки (и управления) правилами брандмауэра.
iptables более гибок, но поскольку ufw предоставляет очень простой язык интерфейса для простых и типичных функций, которые вы можете использовать:
sudo ufw disable
# Чтобы отключить брандмауэрsudo ufw enable
# Чтобы включить брандмауэрДля просмотра текущих настроек брандмауэра используйте
sudo ufw status verbose
, илиiptables -L
.Страницы документации сообщества Ubuntu по iptables и UFW содержат гораздо больше информации.
источник
Похоже, есть несколько способов управления брандмауэром в Ubuntu, поэтому вам может быть интересно прочитать это: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Чтобы удалить все текущие правила, вы можете использовать эти команды (поместите их в некоторый скрипт):
В обычном случае ваши правила брандмауэра по умолчанию сохраняются в каком-либо файле (например, /etc/iptables.rules). Во время загрузки системная команда
iptables-restore </etc/iptables.rules
выполняется для загрузки правил брандмауэра. Таким образом, выполнение той же команды после того, как вы удалили все правила, используя вышеуказанные команды, приведет к «перезагрузке брандмауэра», о которой вы просили.источник
Если я правильно помню, предложенный способ настройки iptables в руководствах по ubuntu - это настроить его как часть сетевых сценариев. Это означает, что нет сценария /etc/init.d/iptables, как в ОС в стиле BSD.
источник
Создайте файл в /etc/init.d/
Сделайте файл исполняемым chmod + x
Сделайте символическую ссылку на этот файл в /etc/rc2.d/
Отредактируйте S80firewall и добавьте следующее
Вы можете добавить все свои собственные правила iptables в этот файл
Теперь вы можете перезапустить брандмауэр (iptables), запустив /etc/rc2.d/S80firewall (должен быть root)
источник
Я была такая же проблема. На самом деле, не было никакого iptables-постоянного в
/etc/init.d
Итак, я создал постоянный файл iptables в
/etc/init.d
и написал следующее внутри:
а затем дал chmod 755 разрешение.
Теперь это работает отлично! Надеюсь, это может кому-то помочь.
источник
Если вы используете сервер Ubuntu в качестве гостевой виртуальной машины (например, в VirtualBox), тогда может быть включена libvirt . Если это так, libvirt содержит несколько встроенных сетевых фильтров, которые используют iptables. Эти фильтры могут быть настроены, как описано в разделе брандмауэра на nwfilters .
Чтобы отключить правила iptables, вам нужно либо удалить все нарушающие правила из libvirt, либо вы можете просто отключить libvirt, если вы его не используете - например, установить конфигурацию ручного переопределения (затем перезагрузить):
источник
Вы используете команду, которая подходит для RedHat и CentOS, а не для Ubuntu или Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
источник
По умолчанию их нет, но в последних производных Debian (включая Ubuntu) вы можете установить сервис для управления iptables :
Затем вы можете загрузить ранее сохраненные правила:
Просмотрите, что случилось:
Или остановите сервис:
Остановка службы по умолчанию не сбрасывает iptables (т.е. не отключает брандмауэр, см.
man netfilter-persistent
).источник