1. ホーム
  2. ansible

[解決済み] 切断されずにansibleでUFW拒否ポリシーを設定する方法は?

2022-02-16 13:22:15

質問内容

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

問題は、"Set firewall default policy"を実行するとすぐに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

の時点でSSHセッションが終了しているように見えるのですが。 reject ポリシーが適用されました。これを解決するにはどうしたらよいでしょうか。私はユーザー名/パスワード認証でログインしています(つまり、SSHキーなし)それが違いを生むなら。

解決方法は?

UFWにルールを追加する順番は重要ではありません。ですから、ルールの順番を逆にすればいいのです。コツは、現在の接続を許可するルールを追加してから、それを拒否する(つまり即座に切断する)デフォルトのルールを追加することです。

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

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