#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
Комментариев нет:
Отправить комментарий