UFW 作为 Ubuntu 上的一项活跃服务

UFW 作为 Ubuntu 上的一项活跃服务
  • 每次我重新启动计算机并检查 UFW 防火墙的状态(sudo ufw status)时,它都会被禁用,即使我随后启用并重新启动它。
  • 我尝试将其sudo ufw enable作为启动应用程序之一,但每次登录时它都会要求输入 sudo 密码,我猜它无法保护登录我计算机的任何其他人。

我如何设置 ufw 以便它在我打开计算机时激活并保护所有帐户?

更新

我刚刚试了一下/etc/init.d/ufw start,它激活了防火墙。然后我重启了电脑,它又被禁用了。

/etc/ufw/ufw.conf 的内容

# /etc/ufw/ufw.conf
# 

# set to yes to start on boot
ENABLED=yes

# set to one of 'off', 'low', 'medium', 'high'
LOGLEVEL=full

/etc/default/ufw 的内容

# /etc/default/ufw
#

# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=no

# Set the default input policy to ACCEPT, ACCEPT_NO_TRACK, DROP, or REJECT.
# ACCEPT enables connection tracking for NEW inbound packets on the INPUT
# chain, whereas ACCEPT_NO_TRACK does not use connection tracking. Please note
# that if you change this you will most likely want to adjust your rules.
DEFAULT_INPUT_POLICY="DROP"

# Set the default output policy to ACCEPT, ACCEPT_NO_TRACK, DROP, or REJECT.
# ACCEPT enables connection tracking for NEW outbound packets on the OUTPUT
# chain, whereas ACCEPT_NO_TRACK does not use connection tracking. Please note
# that if you change this you will most likely want to adjust your rules.
DEFAULT_OUTPUT_POLICY="ACCEPT"

# Set the default forward policy to ACCEPT, DROP or REJECT.  Please note that
# if you change this you will most likely want to adjust your rules
DEFAULT_FORWARD_POLICY="DROP"

# Set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please
# note that setting this to ACCEPT may be a security risk. See 'man ufw' for
# details
DEFAULT_APPLICATION_POLICY="SKIP"

# By default, ufw only touches its own chains. Set this to 'yes' to have ufw
# manage the built-in chains too. Warning: setting this to 'yes' will break
# non-ufw managed firewall rules
MANAGE_BUILTINS=no

#
# IPT backend
#
# only enable if using iptables backend
IPT_SYSCTL=/etc/ufw/sysctl.conf

# extra connection tracking modules to load
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"

更新

按照您的建议并运行 update-rc.d,但没有成功。

lester@mcgrath-pc:~$ sudo update-rc.d ufw defaults
update-rc.d: warning: /etc/init.d/ufw missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/ufw ...
   /etc/rc0.d/K20ufw -> ../init.d/ufw
   /etc/rc1.d/K20ufw -> ../init.d/ufw
   /etc/rc6.d/K20ufw -> ../init.d/ufw
   /etc/rc2.d/S20ufw -> ../init.d/ufw
   /etc/rc3.d/S20ufw -> ../init.d/ufw
   /etc/rc4.d/S20ufw -> ../init.d/ufw
   /etc/rc5.d/S20ufw -> ../init.d/ufw

lester@mcgrath-pc:~$ ls -l /etc/rc?.d/*ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc0.d/K20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc1.d/K20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc2.d/S20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc3.d/S20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc4.d/S20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc5.d/S20ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 13 2009-12-20 20:34 /etc/rc6.d/K20ufw -> ../init.d/ufw

答案1

我记得,由于对 ufw 在启动时没有处于“活动”状态感到沮丧,我多次立即绕过 10 秒 grub 倒计时,然后重新启动以检查先前建议的结果。

既然提到脚本在启动时运行,我想知道我是否以某种方式在脚本执行之前切断了它。事实并非如此。在 grub 弹出时选择 ubuntu 9.1 后,ufw“active”似乎仍然保持。

看起来 ufw 的默认启动与防火墙配置或 Firestarter 中的一个或两个之间存在冲突。卸载它们似乎解决了我的问题。

希望这对其他人也有效。

答案2

您可以在 中创建一个脚本/etc/rc2.d。此运行级别与启动系统范围的服务(如 pulseaudio 或 webservices)相同...

更新

  1. 看来 ~quack 采纳了制作 rc 脚本的建议,并在他的回答中将其扩展为一个很好的操作方法,所以您可能想尝试一下,而不是手动编辑文件。
  2. 不过,我心中有一个疑问:UFW 只是 iptables 的一个前端,因此你可以检查 iptables 是否正在使用你为其设置的规则。在 shell 中,输入sudo iptables -L;您应该会获得当前正在使用的规则列表。例如,我打开了几个端口,在列出的规则中,我以以下形式找到它们:

(部分输出)

Chain ufw-user-input (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:51813 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:5550 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:29970 

所以,如果您的规则正在使用中,您实际上不需要进行任何额外的操作......

答案3

简单防火墙文档和一个相关 UbuntuForums 帖子建议sudo ufw enable您需要做的所有事情都是为了让 UFW 设置在重启后继续存在。

但是您指出,sudo ufw status执行完之后运行enable仍然显示防火墙已禁用。...如果属实,则表明出现了问题。

运行/etc/init.d/ufw start(或restart) 是否有帮助?您是否尝试过安装gufwGUI (通过 S​​ynaptic 或其他包管理器) 并使用它进行配置?

/etc/default/ufw请编辑您的问题并包含和的内容/etc/ufw/ufw.conf

更新

好的。运行 init 脚本成功了,所以看起来服务在启动时没有正确启动。很难说清楚原因,但我敢打赌 Jaunty 和 Karmic 之间存在一些不一致,导致 dist-upgrade 期间混淆了。

使用update-rc.d更多信息)在正确的位置创建启动链接:

sudo update-rc.d ufw defaults

然后验证启动脚本链接是否已创建:

ls -l /etc/rc?.d/*ufw

——您应该得到一个像这样的符号链接列表(或非常相似——链接名称中的数字可能不同):

lrwxrwxrwx 1 root root 17 2009-10-06 22:33 /etc/rc1.d/K01ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 17 2009-10-06 22:33 /etc/rc2.d/S99ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 17 2009-10-06 22:33 /etc/rc3.d/S99ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 17 2009-10-06 22:33 /etc/rc4.d/S99ufw -> ../init.d/ufw
lrwxrwxrwx 1 root root 17 2009-10-06 22:33 /etc/rc5.d/S99ufw -> ../init.d/ufw

如果这些都已到位,您的防火墙应该会在下次重启时自动启动。

更新 2:我更新了update-rc.d上面的行;旧版本应该可以工作,但我认为这个版本更“合适”。旧版本可能不会创建链接K01ufw

答案4

我也遇到过同样的问题 - 非常令人沮丧,因为这是我第一次尝试将 Linux 作为我的主要操作系统。我尝试了这里介绍的解决方案,但结果同样不好。

然而,出于某种原因,我决定尝试其他方法,而且看起来它有效......

我不确定是两者结合还是只删除了一个,但我删除/卸载了 Firestarter 和防火墙配置工具。然后我再次执行 sudo ufw enable 并重新启动。

现在它似乎成功了。我重启了几次,结果都一样。现在每次启动后 sudo ufw status 都会变为活动状态。

不过 - 我还有一件事要测试...马上回来......

相关内容