Как мне запустить UFW при загрузке?

ufw не запускается для загрузки. Мой файл /etc/ufw/ufw.conf выглядит так:

# /etc/ufw/ufw.conf # # Set to yes to start on boot. If setting this remotely, be sure to add a rule # to allow your remote connection before starting ufw. Eg: 'ufw allow 22/tcp' ENABLED=yes # Please use the 'ufw' command to set the loglevel. Eg: 'ufw logging medium'. # See 'man ufw' for details. LOGLEVEL=low

Итак, кажется, что он должен начать нормально. Однако сразу после загрузки я всегда получаю это:

$ sudo ufw status Status: inactive

Использование сценария «service» для запуска, похоже, не работает:

$ sudo service ufw start $ sudo ufw status Status: inactive

Если я заставляю перезагружать его будет работать нормально:

$ sudo ufw reload Firewall reloaded $ sudo ufw status Status: active

И после этого скрипт «service» работает просто отлично:

$ sudo ufw status Status: active $ sudo service ufw stop $ sudo ufw status Status: inactive $ sudo service ufw start $ sudo ufw status Status: active

Как мне запустить UFW при загрузке?

Изменить:

Я использую Ubuntu 18.04, поэтому используется systemd. systemctl is-enabled сообщает следующее:

$ sudo ufw status verbose Status: inactive $ sudo systemctl is-enabled ufw.service enabled

Я также пробовал это:

$ sudo systemctl enable ufw Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable ufw $ sudo ufw status verbose Status: inactive

И после перезагрузки он остается неактивным. journalctl -p err ничего интересного не сообщает. journalctl -u ufw reports:

$ journalctl -u ufw ...<snip>... -- Reboot -- May 26 12:53:36 matt-laptop systemd[1]: Started Uncomplicated firewall.

Так что, конечно, кажется, что он пытается запустить uufw ... кажется, что на самом деле это не так!

1
задан 26 May 2018 в 15:16

2 ответа

Я придумал решение. Я сделал это редактирование на /lib/systemd/system/ufw.service:

$ diff -u ufw.service.orig ufw.service --- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100 +++ ufw.service 2018-05-26 13:46:04.443673265 +0100 @@ -2,7 +2,7 @@ Description=Uncomplicated firewall Documentation=man:ufw(8) DefaultDependencies=no -Before=network.target +After=network.target [Service] Type=oneshot

Итак, это приводит к тому, что ufw запускается после того, как сеть вставлена ​​вместо нее. Кажется, что это трюк - ufw всегда включен после загрузки. Я не знаю, лучше ли это делать. Я беспокоюсь, что между запуском сети и запуском брандмауэра существует небольшое окно времени ... но по крайней мере оно начинается, которое лучше, чем раньше!

Возможно, кто-то может придумать лучшее решение. Или, может быть, это правильный способ сделать вещи - в этом случае это ошибка, которую по умолчанию она запускает перед сетью?

Edit:

Еще лучшее решение: [ ! d4] $ diff -u ufw.service.orig ufw.service --- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100 +++ ufw.service 2018-05-26 14:17:22.030681670 +0100 @@ -2,7 +2,7 @@ Description=Uncomplicated firewall Documentation=man:ufw(8) DefaultDependencies=no -Before=network.target +After=network-pre.target [Service] Type=oneshot

Согласно этой странице

https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

network-pre. Цель этой цели:

«Это основная цель для использования с службами брандмауэра, которые хотят установить брандмауэр до того, как какой-либо сетевой интерфейс встанет»

Что действительно заставляет меня задаться вопросом, почему это было По умолчанию это значение не установлено. Установка этого значения, похоже, решает все мои проблемы.

0
ответ дан 17 July 2018 в 13:23

Я придумал решение. Я сделал это редактирование на /lib/systemd/system/ufw.service:

$ diff -u ufw.service.orig ufw.service --- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100 +++ ufw.service 2018-05-26 13:46:04.443673265 +0100 @@ -2,7 +2,7 @@ Description=Uncomplicated firewall Documentation=man:ufw(8) DefaultDependencies=no -Before=network.target +After=network.target [Service] Type=oneshot

Итак, это приводит к тому, что ufw запускается после того, как сеть вставлена ​​вместо нее. Кажется, что это трюк - ufw всегда включен после загрузки. Я не знаю, лучше ли это делать. Я беспокоюсь, что между запуском сети и запуском брандмауэра существует небольшое окно времени ... но по крайней мере оно начинается, которое лучше, чем раньше!

Возможно, кто-то может придумать лучшее решение. Или, может быть, это правильный способ сделать вещи - в этом случае это ошибка, которую по умолчанию она запускает перед сетью?

Edit:

Еще лучшее решение: [ ! d4] $ diff -u ufw.service.orig ufw.service --- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100 +++ ufw.service 2018-05-26 14:17:22.030681670 +0100 @@ -2,7 +2,7 @@ Description=Uncomplicated firewall Documentation=man:ufw(8) DefaultDependencies=no -Before=network.target +After=network-pre.target [Service] Type=oneshot

Согласно этой странице

https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

network-pre. Цель этой цели:

«Это основная цель для использования с службами брандмауэра, которые хотят установить брандмауэр до того, как какой-либо сетевой интерфейс встанет»

Что действительно заставляет меня задаться вопросом, почему это было По умолчанию это значение не установлено. Установка этого значения, похоже, решает все мои проблемы.

0
ответ дан 20 July 2018 в 13:29

Другие вопросы по тегам:

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