- 每次我重新启动计算机并检查 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)相同...
更新
- 看来 ~quack 采纳了制作 rc 脚本的建议,并在他的回答中将其扩展为一个很好的操作方法,所以您可能想尝试一下,而不是手动编辑文件。
- 不过,我心中有一个疑问: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
) 是否有帮助?您是否尝试过安装gufw
GUI (通过 Synaptic 或其他包管理器) 并使用它进行配置?
/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 都会变为活动状态。
不过 - 我还有一件事要测试...马上回来......