Home »

Деплой конфигов на ...
 

Деплой конфигов на сервер

 
Wasice
(@wasice)
Младший сисадмин

Есть некий локальный сервис, который генерирует конфиги nginx. После этого конфиг нужно "залить" на сервер и далее выполнить reload чтобы изменения вступили в силу. И все бы просто, но руководство поставило жесткие требования по безопасности.

Аутентификация на сервер только по ключу, который должен иметь пароль.

А как и где мне указывать пароль от приватного ключа? Т.е. как я вижу - ключ должен быть добавлен в систему через ssh-add например, но тогда ни php ни Ansible не увидят этот ключ в своей сессии.

Подскажите, а как вообще решаются такие задачи? Ведь админы не руками же "разливают" конфиги.

Спасибо!

ОтветитьЦитата
Topic starter Размещено : 01.10.2020 14:20
Метки темы
Zerox
(@zerox)
Honorable Member Admin

@wasiceF А вы чем деплой делаете? Если не ошибаюсь, тот же gitlab или teamcity поддерживают пароли на ssh ключи.

ОтветитьЦитата
Размещено : 01.10.2020 14:28
Wasice
(@wasice)
Младший сисадмин

@zerox пока еще ничем, раньше деплой был настроен в php через ssh2_auth_pubkey_file и ssh2_scp_send
Все работало успешно до момента когда потребовалась парольная фраза. А у этих функий есть баг ( https://bugs.php.net/bug.php?id=58573 ) и нормально работать больше они не могут :(

Это сообщение было изменено 9 месяцев назад 2 раз от Wasice
ОтветитьЦитата
Topic starter Размещено : 01.10.2020 14:34
Zerox
(@zerox)
Honorable Member Admin

@wasice тогда реализация будет зависеть от применяемого инструмента. Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

ОтветитьЦитата
Размещено : 01.10.2020 15:54
Wasice
(@wasice)
Младший сисадмин
От: @zerox

@wasice тогда реализация будет зависеть от применяемого инструмента. Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

А какой лучше использовать инструмент для этой цели с точки зрения администрирования?

Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

А как передать парольную фразу? Получается если какой-нибудь хакир проникнет на сервер, то рядом будут и ключи и тут же парольная фраза, не очень секурно. В идеале хочется добавить ключ в систему, ввести пароль от него и пусть софт далее подключается уже. И если даже ключ "уйдет" то без парольной фразы он не будет представлять никакой ценности! Ну как я это вижу, но как это делается в реальности - не знаю.

 

ОтветитьЦитата
Topic starter Размещено : 02.10.2020 08:47
Zerox
(@zerox)
Honorable Member Admin
От: @wasice

А какой лучше использовать инструмент для этой цели с точки зрения администрирования?

Самые известные и популярные это Jenkins, Gitlab, Teamcity. Я затрудняюсь сказать, какой лучше. Но, конечно, для такой задачи это все избыточно. 

Заливать конфиг можно не только по ssh. Можно и по rsync с авторизацией па паролю. А на сервере, куда идет конфиг, можно в firewall настроить ограничение на подключение по ip. Это не менее безопасно, но более гибко и удобно. 

ОтветитьЦитата
Размещено : 02.10.2020 10:14
Wasice
(@wasice)
Младший сисадмин
От: @zerox

Можно и по rsync с авторизацией па паролю.

Это все сводится к той же проблеме. И по ssh можно "заливать" по паролю.

От: @zerox

можно в firewall настроить ограничение на подключение по ip

А вот это уже дельный совет. Спасибо! По всей видимости так и поступим.

ОтветитьЦитата
Topic starter Размещено : 02.10.2020 15:27
Zerox
(@zerox)
Honorable Member Admin
От: @wasice

Это все сводится к той же проблеме. И по ssh можно "заливать" по паролю.

Это немного другое. По ssh могут подключаться разные люди и сервисы и с разных ip. Тогда надо их всех разрешать и каждому правило делать. А если просто заливать конфиг по rsync, то это отдельный порт, для которого можно сделать разрешение отдельное только для того сервера, с которого заливается конфиг. А ssh останется как и был, доступен всем, если это необходимо. Так что тут разница принципиальная. С точки зрения безопасности, ограничение по ip надежнее, чем доступ отовсюду, но с паролем на сертификат. 

ОтветитьЦитата
Размещено : 02.10.2020 20:29