Я только начинаю работать с солью, и мне интересно, как солеварня проходит проверку подлинности в отношении клиентов. Я знаю, что при подключении миньона мастер должен принять открытый ключ миньона, и поэтому неавторизованные миньоны не могут подключиться. Но что мешает кому-то притвориться солитером, если все миньоны подключаются не к тому серверу, с радостью выполняют код и предоставляют полный доступ злоумышленнику?
Конечно, миньон подключается к заданному IP-адресу или имени хоста, но это должно быть довольно легко захватить ...
Без дополнительных усилий ничто не помешает злоумышленнику (сомнительно определенному) инициировать атаку «человек посередине» во время первого обмена ключами и всех последующих соединений. Это тот же риск, который присущ любому обмену ключами через Интернет.
Вы можете проверить отпечатки пальцев как мастера, так и миньона.
На хозяине: sudo salt-key -F
По миньону: sudo salt-call --local key.finger
Но тогда вам придется поверить, что нет также (тщательно продуманного) (устойчивого) человека в середине атаки между вами и рассматриваемой машиной, когда вы используете ssh. Это черепахи до самого конца.
Настоящему параноику придется предварительно сгенерировать ключи в автономном режиме (главный и все миньоны) и надеяться вместе с остальными из нас, что их ЦП каким-то образом не скомпрометирован тонкими способами, которые мы еще не обнаружили.
Вы можете убедиться, что миньон отказывается подключаться к мастеру, если позже ключ не совпадает. Отключение соли-миньона, бэкап /etc/salt/pki/minion/minion_master.pub
, измените его, а затем запустите salt-minion в режиме отладки: sudo salt-minion -l debug