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

Я использую центральный хост системного журнала. Каждая граничная система отправляет *.debug в центральный loghost. Центральный хост системного журнала выполняет системный-журнал-ng и имеет правила разделить журналы так, чтобы каждая машина генерировала свои собственные файлы, названные по имени в течение того дня. Это также выводит все в единственный файл, против которого я выполняю потомка logcheck.sh.

Один раз в день я выполняю компактор журнала, который архивирует любые журналы, более старые, чем 7 дней, и удаляет что-либо более старое, чем 28 дней. Между этими двумя это дает журналам ожидаемую жизнь 35 дней на сервере, что означает, что все журналы должны добраться до ежемесячных резервных копий, где они могут быть восстановлены в течение максимум двух лет.

Это интенсивно устройством хранения данных, но, кажется, лучший способ гарантировать покрытие.

86
задан 5 April 2010 в 10:23
12 ответов

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

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

(Вы, возможно, должны сбросить другие таблицы также такой как "туземные" при использовании их),

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

76
ответ дан 28 November 2019 в 19:23

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

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.

30
ответ дан 28 November 2019 в 19:23

Похож там на несколько способов управлять брандмауэром в 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
ответ дан 28 November 2019 в 19:23

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

2
ответ дан 28 November 2019 в 19:23
  • 1
    Был в Debian Woody (Ubuntu существовала затем?), так или иначе it' s все еще реализованный системными администраторами сегодня. Почему они изменяли ту любую идею? –   4 April 2010 в 03:50
  • 2
    I' ve не подсказка..., но я, кажется, вспоминаю это являющийся одной из тех раздражающих вещей, которые я должен был выяснить, когда я настроил сервер человечности 9.10 или что-то..., так как я хотел дистрибутив выпуска, который имел недавнюю пост-ГРЭС и был для серверов... иначе я выполняю дугу Linux. –  xenoterracide 4 April 2010 в 23:35

Создать файл в /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)

2
ответ дан 28 November 2019 в 19:23

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

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

17
ответ дан 28 November 2019 в 19:23

Вы все ошибаетесь: -)

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

$ sudo ufw disable
46
ответ дан 28 November 2019 в 19:23

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

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

sudo ufw disable # Чтобы отключить межсетевой экран

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

Для просмотра текущих настроек брандмауэра используйте sudo ufw status verbose или iptables -L .

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

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

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

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

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

sudo ufw disable # Чтобы отключить межсетевой экран

sudo ufw enable # Чтобы включить межсетевой экран

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

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

6
ответ дан 28 November 2019 в 19:23

Вы используете команду, подходящую для RedHat и CentOS, а не для Ubuntu или Debian.

http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/

1
ответ дан 28 November 2019 в 19:23

У меня была такая же проблема. На самом деле, в /etc/init.d

не было iptables-persistent. Итак, я создал файл iptables-persistent в /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

Теперь он работает отлично! Надеюсь, это кому-то поможет.

2
ответ дан 28 November 2019 в 19:23

Если вы используете сервер Ubuntu как гостевую виртуальную машину (например, в VirtualBox), то libvirt может быть включен. Если это так, libvirt содержит несколько встроенных сетевых фильтров, использующих iptables. Эти фильтры можно настроить, как описано в разделе брандмауэра на nwfilters .

Чтобы отключить правила iptables, вам нужно либо удалить все нарушающие правила из libvirt, либо вы можете просто отключить libvirt, если вы: вы не используете его - например установите конфигурацию ручного переопределения (затем перезагрузите):

sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
2
ответ дан 28 November 2019 в 19:23

По умолчанию их нет, но в последних производных debian (включая Ubuntu) вы можете установить сервис для управления iptables: Затем вы можете загрузить ранее сохранённые правила:

systemctl start netfilter-persistent

Просмотреть, что произошло:

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.

Или остановить службу:

systemctl stop netfilter-persistent

Остановка службы будет, по умолчанию, а не прошивать iptables (i. e. не отключает брандмауэр, см. man netfilter-persistent).

.
1
ответ дан 28 November 2019 в 19:23

Теги

Похожие вопросы