Вопрос: Как запустить / остановить iptables на Ubuntu?


Как запустить / остановить службу iptables на Ubuntu?

я пытался

 service iptables stop

но это дает «непризнанная услуга»,

Почему это так? Есть ли другой метод?


81
2018-04-03 11:15


Источник


Я думаю, что некоторые из путаницы исходят из таких статей: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux который применяется только к Fedora / Red Hat и утверждает, что вы найдете его в /etc/init.d/ it (un) полезно - это верхняя ссылка, которую вы получаете, когда googling отключает iptables ubuntu. - icc97


Ответы:


Я не знаю о «Ubuntu», но в Linux обычно «iptables» не является сервисом - это команда для управления брандмауэром ядра netfilter. Вы можете «отключить» (или остановить) брандмауэр, установив политики по умолчанию для всех стандартных цепей на «ПРИНЯТЬ» и сбросить правила.

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

(Возможно, вам понадобится также очистить другие таблицы, например «nat», если вы их использовали)

Следующая статья на веб-сайте Ubuntu описывает настройку iptables для использования с NetworkManager: https://help.ubuntu.com/community/IptablesHowTo


65
2018-04-03 17:36



Разве это не отбросит все текущие правила навсегда? Лучше всего их сперва сохранить с помощью sudo iptables-save> / tmp / rules - Jens Timmerman
Это не останавливает сервис, а просто разрешает все. - Frederik Nielsen
Ах, спасибо. iptables -F было то, чего мне не хватало :-) - Cameron
@JensTimmerman iptables-save > /tmp/rules спас мой день. благодаря - blagus


Вы все неправы :-)

Команда, которую вы ищете, это:

$ sudo ufw disable

45
2017-08-15 18:40



конечно, если мы говорим об UFW, но это сообщение о iptables - webjay
Ну, я предположил, что это была установка Ubuntu по умолчанию, и у этого нет iptables, но есть ufw. - Frederik Nielsen
ufw является лишь интерфейсом для iptables: «Iptables - это брандмауэр, установленный по умолчанию во всех официальных дистрибутивах Ubuntu (Ubuntu, Kubuntu, Xubuntu). Когда вы устанавливаете Ubuntu, iptables есть, но он позволяет весь трафик по умолчанию. Ubuntu 8.04 Comes с ufw - программа для легкого управления брандмауэром iptables. " help.ubuntu.com/community/IptablesHowTo - benjaoming
Может быть, но как UFW == iptables (более или менее) в Ubuntu, отключение ufw равно отключению iptables. - Frederik Nielsen
sudo ufw status verbose; sudo iptables -L; - user27465


Я бы сначала проверил, установлен ли он (вероятно, это):

dpkg -l | grep iptables

На Ubuntu iptables не является сервисом. Чтобы остановить его, вы должны сделать следующее:

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

Чтобы восстановить прежние правила:

iptables-restore < /root/firewall.rules

Это было взято из http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ и был протестирован на многих установках Ubuntu 8.X и 9.10.


28
2018-04-05 07:46



Я не знаю, почему у этого так много upvotes, iptables - это модуль ядра. Это никогда не «услуга», которая может быть «остановлена». Они используются, чтобы сообщить ядру, как обращаться с соединениями. Также в рабочей среде вы никогда не должны отключать брандмауэр. Если что-то не работает, найдите правильное решение, а не простое. - Broco


Iptables - это команда, которая не является сервисом, поэтому обычно невозможно использовать команды, такие как

service iptables start

или

service iptables stop

чтобы запустить и остановить брандмауэр, но некоторые дистрибутивы, такие как centos, установили службу под названием iptables для запуска и остановки брандмауэра и конфигурационного файла для его настройки. Во всяком случае, можно сделать сервис для управления редактированием ipotables или установкой скрипта для этой области. Все службы в linux, ubuntu не являются исключением, являются исполняемыми скриптами внутри папки /etc/init.d, которая реализует стандартный интерфейс (запуск, остановка, перезапуск) Возможный сценарий выглядит так:

 #!/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, когда остановка службы (это означает, что они будут сохранены точно при завершении работы системы).

Надеюсь, это будет полезно всем.


16
2017-10-17 07:53





Поскольку iptables и ufw являются способами управления Netfilter брандмауэр в Linux, и поскольку оба доступны по умолчанию в Ubuntu, вы можете использовать либо для запуска, либо для остановки (и управления) правил брандмауэра.

iptables более гибкая, но поскольку ufw обеспечивает очень простой язык интерфейса для простой и типичной функции, которую вы можете использовать:

sudo ufw disable # Чтобы отключить брандмауэр

sudo ufw enable  # Чтобы включить брандмауэр

Чтобы увидеть текущие настройки брандмауэра, используйте sudo ufw status verbose, или iptables -L ,

Сообщество Ubuntu документирует страницы на Iptablesа также UFW имеют гораздо больше информации.


6
2017-07-02 22:37





Если я правильно помню, предлагаемый способ установки iptables в руководствах ubuntu - это настроить его как часть сетевых сценариев. это означает, что скрипт /etc/init.d/iptables не существует, как в ОС BSD.


3
2018-04-03 23:05



Был ли в Debian Woody (тогда существовал Ubuntu?), Так или иначе, он все еще используется sysadmins сегодня. Почему они изменили эту идею?
У меня нет подсказки ... но я, похоже, вспоминаю, что это одна из тех неприятных вещей, которые мне приходилось определять, когда я настраивал сервер ubuntu 9.10 или что-то в этом роде ... так как мне нужен дистрибутив релиза, который имел недавние postgres и был для серверов ... иначе я запускаю arch linux. - xenoterracide


Похоже, существует несколько способов управления брандмауэром в Ubuntu, поэтому вам может быть интересно прочитать это: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup

Чтобы удалить все текущие правила, вы можете использовать эти команды (поместите их в некоторый скрипт):

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

В обычном случае ваши правила брандмауэра по умолчанию сохраняются в каком-либо файле (например, /etc/iptables.rules). При загрузке системной команды iptables-restore </etc/iptables.rules выполненных для загрузки правил брандмауэра. Таким образом, выполнение одной и той же команды после того, как вы сбросили все правила, используя приведенные выше команды, приведет к «перезагрузке брандмауэра», о котором вы просили.


3
2018-04-05 04:32





Создайте файл на /etc/init.d/

touch fw.rc

Сделать исполняемый файл chmod + x

Сделать символическую ссылку на этот файл на /etc/rc2.d/

ln -s /etc/init.d/fw.rc S80firewall

Измените S80firewall и добавьте следующее

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F

Вы можете добавить все пользовательские правила iptables в этот файл

Теперь вы можете перезапустить брандмауэр (iptables), запустив /etc/rc2.d/S80firewall (должен быть root)


3
2017-10-17 08:37