如何在ansible中配置UFW拒绝策略而不断开连接?

Joh*_*han 11 ansible ufw

我正在尝试在Ansible中配置UFW,如下所示:

- name: Set firewall default policy
  ufw: state=enabled policy=reject
  sudo: true

- name: Allow SSH in UFW
  ufw: rule=allow port=22 proto=tcp
Run Code Online (Sandbox Code Playgroud)

问题是,只要执行"设置防火墙默认策略",ansible就会断开与服务器的连接:

TASK: [Set firewall default policy] *******************************************
changed: [xxx]

TASK: [Allow SSH in UFW] ******************************************************
fatal: [xxx] => {'msg': 'FAILED: [Errno 61] Connection refused', 'failed': True}

FATAL: all hosts have already failed -- aborting
Run Code Online (Sandbox Code Playgroud)

对我来说,reject在应用策略时,SSH会话似乎已终止.我该如何解决这个问题?我正在使用用户名/密码身份验证(即没有SSH密钥)登录,如果这有任何区别.

Yar*_*min 16

向UFW添加规则的顺序并不重要.所以你可以改变规则的顺序.诀窍是在添加默认规则之前添加规则以允许当前连接,这将拒绝它(因此立即断开连接).

- name: Allow SSH in UFW
  ufw: rule=allow port=22 proto=tcp

- name: Set firewall default policy
  ufw: state=enabled policy=reject
  sudo: true
Run Code Online (Sandbox Code Playgroud)