3/5 - (2 голоса)

Вопросы безопасности Jenkins

Как минимум, входящий трафик на мастер Jenkins должен быть ограничен c определенных диапазонов IP-адресов, от которых вы ожидаете трафик. Кроме того, ваша среда может быть дополнительно защищена с помощью следующих методов.

Включить SSL для Дженкинса

Сертификаты Secure Sockets Layer / Transport Layer Security (SSL / TLS) могут использоваться для защиты сетевых соединений и установления идентичности веб-сайтов через Интернет. Это легко можно реализовать, установив в свой мастер Jenkins балансировщик нагрузки ELB. В этом случае вы можете использовать диспетчер сертификатов AWS, чтобы подключить сертификат, который предоставляет вам зашифрованные сетевые подключения и защищает ваши данные во время их передачи.

CSRF Защита

Подделка межсайтовых запросов (CSRF) — это класс атак, который позволяет выполнять нежелательные действия над Jenkins. По умолчанию в установках Jenkins 2.x включена опция защиты CSRF. Чтобы проверить состояние этого параметра, выберите « Управление Jenkins» , затем « Настроить глобальную безопасность» и убедитесь, что параметр «Предотвращать подделки межсайтовых запросов» включен.

Смысл безопасности сборки на мастере

Следует проявлять осторожность, чтобы не выполнить сборку на мастере. Как вы видите на следующих этапах настройки, мы рекомендуем настроить мастер так, чтобы на нем нельзя было выполнить сборку, и чтобы вы запускали сборки только на рабочих узлах. Сборки, которые запускаются на мастере, имеют возможность читать и изменять файлы в $JENKINS_HOME , что, в случае злонамеренного доступа, может повлиять на всю установку Jenkins и безопасность вашей системы.

Контроль доступа рабочего узла

В версиях Jenkins 1.5.80.x и более поздних версий установлена ​​подсистема, которая устанавливает барьер между рабочими узлами и мастером, чтобы безопасно подключать к мастеру менее доверенные рабочие узлы.

В вашей установке Jenkins 2.x этот барьер должен быть включен по умолчанию. В этом можно убедиться, посетив «Управление Jenkins», затем «Настроить глобальную безопасность» и убедившись, что «Включить ведомое устройство -> Управление основным доступом» включено.

Настроить аутентификацию пользователя

В процессе установки вы можете создать первого пользователя-администратора. Создайте главного пользователя, которого можно использовать для создания других групп и пользователей, а затем перейдите к панели управления Jenkins.

Аутентификация пользователя может быть обеспечена несколькими способами:

  • Самая простая схема аутентификации — использовать базу данных пользователей Jenkins. Учетные записи пользователей могут быть созданы с помощью панели инструментов Jenkins (выберите « Управление Jenkins» , затем « Настроить глобальную безопасность» ).
    • Опция для безопасности на основе матрицы предлагает наиболее точный контроль над привилегиями пользователя. Используя эту опцию, вы можете указать детализированные разрешения для каждого пользователя и каждого действия, которое он может предпринять.
  • Если Jenkins работает на компьютере с Windows, вы можете настроить Jenkins для аутентификации имени пользователя и пароля через Active Directory с помощью плагина Active Directory .
  • Если Jenkins работает в Linux, тот же плагин Active Directory можно использовать, указав домены Active Directory для аутентификации, или вы можете настроить доступ к пользователям / группам Unix в вашей локальной системе. С этим параметром пользователи будут входить в Jenkins, вводя свое имя пользователя и пароль Unix.
  • С помощью плагина LDAP пользователи могут проходить аутентификацию с помощью Active Directory-совместимой службы LDAP, такой как AWS Directory Service или OpenLDAP.

Защита доступа к сети

Группа безопасности, действует как виртуальный межсетевой экран, который контролирует трафик к вашим экземплярам. Когда вы запускаете экземпляр, вы связываете одну или несколько групп безопасности с экземпляром. Поскольку все порты по умолчанию отключены, вы добавляете правила для каждой группы безопасности, которые разрешают трафик в связанные экземпляры или из них.

При запуске вашего мастера создайте группу безопасности, которая позволяет подключение к следующим портам:

  • Порт 80 или 8080, для возможности настройки Jenkins и взаимодействия с панелью управления. По умолчанию панель управления Jenkins доступна через порт 8080, но вы можете использовать iptables, чтобы перенаправить порт 80 на 8080 и разрешить локальные подключения:
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 
$ sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080
  • Порт 22 для подключения через экземпляры SSH к экземплярам и выполнения обслуживания.

Для каждого порта ограничьте доступ к вашему IP-адресу или диапазону IP-адресов с помощью поля «Источник», которое определяет трафик, который может достичь вашего экземпляра. Укажите один IP-адрес или диапазон IP-адресов в нотации бесклассовой междоменной маршрутизации (CIDR) (например, 203.0.113.5/32, как показано на следующем рисунке). При подключении из-за брандмауэра вам понадобится диапазон IP-адресов, используемый клиентскими компьютерами.безопасность jenkins

Хотите настроить безопасность Jenkins, обращайтесь ITFB обеспечит защиту Вашего наземного или облачного сервера.