我上周在安全溢出问题上提出了这个问题,但是没有回复,所以我希望你能在这里提供帮助。问题如下:
所以我正忙于在VM上设置一个敲门服务,以便在使用knockd和ufw“敲打”正确的端口序列时启用SSH登录。
我目前遇到的问题是,当选择了正确的端口序列时,ufw的user.rules无法将新规则写入文件。
我尝试在/ etc / ufw中的所有文件上使用chmod 777作为测试,但该文件仍然无法写入。
/etc/ufw/user.rules的输出如下:
30pts
knockd文件显示在下面的代码块中:
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/after6.rules is world writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/after6.rules is group writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/user6.rules is world writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/user6.rules is group writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/applications.d is world writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/applications.d is group writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/user.rules is world writable!
Jun 14 13:13:31 Pop knockd[4780]: WARN: /etc/ufw/user.rules is group writable!
Jun 14 13:13:31 Pop knockd[4780]: ERROR: '/etc/ufw/user.rules' is not writable
Jun 14 13:13:31 Pop knockd[4780]: openSSH: command returned non-zero status code (1)
/ etc / default / knockd的输出如下所示:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = ufw allow 22/tcp
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = ufw delete allow 22/tcp
tcpflags = syn
非常感谢任何建议。
答案 0 :(得分:1)
首先注意您更改的所有文件的警告和重置权限。拥有防火墙规则上所有用户的写权限并不是一个好主意。那就是:
chmod -R ga-w /etc/ufw
然后在knockd.service文件(在/ lib / systemd / system /文件夹中找到)中禁用(注释掉或设置显式为关闭)ProtectSystem指令。
如果这样可行,请将其重置为完整并置于其下方
ReadWritePaths=-/etc/ufw/
ProtectSystem =完全挂载ro / usr,/ boot和/ etc,用于该单元调用的进程,不包括ReadWritePaths中指定的目录。
如果正在运行,请在重新启动服务之前执行
systemctl daemon-reload
答案 1 :(得分:0)
我遇到了同样的问题,敲了/etc/ufw/user.rules不可写错误。敲入数据包显示在syslog中,并尝试使用ufw insert 1 ...命令。我目前最好的猜测是cgroups系统。
在/etc/knockd.conf中使用iptables命令代替ufw命令对我有用。
答案 2 :(得分:0)
我有同样的问题,但通过清理ip4和ip6表解决了它。 在一条错误消息中,它表示' xtable'被另一个进程锁定了。
ufw disable
iptables -F
iptables -X
ip6tables -F
ip6tables -X
ufw enable
试试敲门声
然后检查
service knockd status