Как настроить политику отклонения UFW в недоступном без отключения?

Я пытаюсь настроить UFW в Ansible следующим образом:

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

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

Проблема в том, что как только выполняется «Установить политику брандмауэра по умолчанию», 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), если это имеет значение.


person Johan    schedule 28.08.2015    source источник


Ответы (1)


Порядок добавления правил в 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
person Yaroslav Admin    schedule 28.08.2015
comment
Я в замешательстве. Вы говорите, что порядок не важен, но тогда ваше решение состоит в том, чтобы изменить порядок? Что он? - person Sentry; 10.10.2020
comment
Порядок не важен в том смысле, что вы получите одну и ту же политику независимо от порядка правил. Но это важно в том смысле, что если вы добавите правило, которое блокирует ваше текущее соединение, вы больше не сможете добавить правило, которое разрешает ваше текущее соединение ????‍♂️ - person Yaroslav Admin; 10.10.2020