Kyh*_*ger 1 knockd ubuntu-server ufw
我上周问过这个关于安全溢出的问题,但没有得到回复,所以我希望你能在这里提供帮助。问题如下:
因此,我正忙于在虚拟机上设置 Knockd 服务,以便在使用 Knockd 和 ufw “敲响”正确的端口序列时启用 SSH 登录。
我当前遇到的问题是,当选择正确的端口序列时,ufw 的 user.rules 无法将新规则写入文件。
我尝试对 /etc/ufw 中的所有文件使用 chmod 777 作为测试,但该文件仍然不可写。
/etc/ufw/user.rules 的输出如下:
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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
/etc/default/knockd 的输出如下所示:
# control if we start knockd at init or not
# 1 = start
# anything else = don't start
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1
# command line options
KNOCKD_OPTS="-i enp0s3"
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激。
小智 5
首先注意警告并重置您更改的所有文件的权限。为所有用户授予防火墙规则的写入权限并不是一个好主意。那就是做:
chmod -R ga-w /etc/ufw
Run Code Online (Sandbox Code Playgroud)
然后在knockd.service 文件(位于/lib/systemd/system/ 文件夹中)禁用(注释掉或显式设置为关闭)ProtectSystem 指令。
如果有效,请将其重置为完整并放在其下方
ReadWritePaths=-/etc/ufw/
Run Code Online (Sandbox Code Playgroud)
ProtectSystem= 完全安装 ro /usr、/boot 和 /etc,用于由单元调用的进程,不包括 ReadWritePaths 中指定的目录。
如果正在运行,请在重新启动服务之前执行以下操作
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |