Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Минимизировать ущерб в случае проблем во время настройки sshd и фаерволла

#ssh #ansible


Типичный плейбук у меня включает обычно конфигурирование фаервола и ssh:

- hosts: api
  roles:
    - sshd
    - apf


Для sshd просто копируется темплейт с нужным портом в /etc/ssh/sshd_config, где:

# What ports, IPs and protocols we listen for
Port {{ ssh_port }}


После чего установка apf происходит, настройка /etc/apf-firewall/allow_hosts.rules
и основного /etc/apf-firewall/conf.apf.
Как понимаете в conf.apf:

IG_TCP_CPORTS="{{ ssh_port }}"


Предпосылка: скажем у нас уже установлен sshd и apf и порт для ssh прописан 22.

При реконфигурации (например хотим сменить порт на 222) может статься так, что между
настройкой sshd и настройкой apf что-то пойдёт не так. 

В итоге ssh будет на 222 порту, но в apf будет открыт старый 22 порт. В итоге по
ssh уже не присоединиться, придётся ребутить машину в recovery mod и ручками исправлять всё.

Данный пример я привёл так как сам столкнулся с подобным. Но и во многих других задачах
при возникновении проблемы посередине выполнения role система в итоге останется в неконсистентом
состоянии.

Как можно подобные вещи предотвратить или свести к минимуму ущерб?
    


Ответы

Ответ 1



А что, если переходить постепенно? apf – открыть порт 222. Если сломается после этого шага, у вас просто будет лишний открытый порт 222. sshd – переключиться на порт 222 Если сломается здесь, то тоже останется лишний открытый 22, но по ssh вы уже сможете зайти на 222й. apf – закрыть порт 222

Комментариев нет:

Отправить комментарий