我想在通过 SSH 连接时在远程机器上设置 ufw。我输入
ufw reset
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 22
ufw enable
之后它会立即阻止 ssh 连接,并且不接受新的连接。我唯一能做的就是重置服务器。我是不是漏掉了什么?
编辑 1:当然,因为我已配置 ssh。我通过 SSH 访问服务器。这意味着它已配置,并且我在运行之前可以连接到服务器ufw enable
答案1
我目前也遇到了同样的问题。目前,我已将此作为解决方法。
ufw default allow incoming
ufw deny 1:21/tcp
ufw deny 23:65535/tcp
答案2
在 Ubuntu 16.04.2 上,在全新安装的情况下执行此操作对我来说很顺利,即使在重启后也是如此
ufw enable
ufw allow ssh
ufw allow 22
ufw enable
答案3
我使用expect
命令解决了:
apt install expect -y
if [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
expect -c "
set timeout 3
spawn ufw enable
expect \"Command may disrupt existing ssh connections\"
send -- \"y\r\"
expect eof
"
else
ufw enable
fi
apt purge expect -y