Skip to main content

Enterprise Server 3.20 в настоящее время доступен в качестве кандидата на выпуск.

Настройка шифров TLS и SSH

Вы можете настраивать наборы шифров и криптографические алгоритмы, которые GitHub Enterprise Server использует для подключений TLS и SSH, чтобы соответствовать определённым требованиям соответствия или безопасности.

Кто может использовать эту функцию?

Site administrators

О наборе шифров и настройке алгоритмов

GitHub Enterprise Server позволяет вам настроить, какие наборы шифров и криптографические алгоритмы следует использовать для:

  •         **TLS-соединения** на портах 443 (веб-интерфейс HTTPS) и 8443 (консоль управления HTTPS)
    
  •         **SSH-подключения** на порту 22 (операции Git через SSH) и порту 122 (доступ к административной оболочке)
    

Наборы безопасных шифров по умолчанию основаны на стандартных отраслевых рекомендациях по усилению защиты TLS и современных передовых методах обеспечения безопасности. Большинству организаций следует использовать эти значения по умолчанию, если иное не предписывается конкретными требованиями соответствия или безопасности.

Организациям может потребоваться настроить наборы шифров и криптографические алгоритмы в соответствии с конкретными политиками безопасности организации, отраслевыми стандартами или нормативными требованиями.

Начиная с GitHub Enterprise Server 3.19, шифры TLS настраиваются, и веб-шлюз использует более безопасные шифры по умолчанию. Чтобы обеспечить обратную совместимость с существующими экземплярами, вновь подготовленные экземпляры будут использовать эти новые значения по умолчанию.

Предупреждение

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

Примечание.

При настройке наборов шифров TLS используйте значения, разделенные запятыми, в командах конфигурации. GitHub Enterprise Server автоматически преобразует разделители-запятые в двоеточия для конфигурации HAProxy. Наборы шифров оцениваются в указанном порядке, поэтому сначала перечислите предпочитаемые шифры.

Настройка наборов шифров TLS

Вы можете настроить наборы шифров, используемые для соединений TLS 1.2 и TLS 1.3.

Список доступных наборов шифров TLS

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы просмотреть стандартные наборы безопасных шифров для TLS 1.2, выполните следующую команду.

    Shell
    ghe-crypto list tlsv12-ciphersuites
    
  3. Чтобы просмотреть стандартные наборы безопасных шифров для TLS 1.3, выполните следующую команду.

    Shell
    ghe-crypto list tlsv13-ciphersuites
    

Просмотр текущей конфигурации шифра

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы просмотреть настроенные наборы шифров TLS 1.2, выполните следующую команду.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites
    
  3. Чтобы просмотреть настроенные наборы шифров TLS 1.3, выполните следующую команду.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites
    

    Если эти команды возвращают пустые значения, экземпляр использует безопасные значения по умолчанию.

Настройка наборов шифров TLS 1.2

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные наборы шифров TLS 1.2 с ghe-crypto check помощью команды. Замените CIPHER1,CIPHER2,CIPHER3 его списком наборов шифров, разделенным запятыми.

    Shell
    ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Рассмотрим пример.

    ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384
    
  3. Если строка шифра действительна, установите наборы шифров TLS 1.2. Замените CIPHER1,CIPHER2,CIPHER3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Рассмотрим пример.

    ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Настройка наборов шифров TLS 1.3

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные наборы шифров TLS 1.3 с ghe-crypto check помощью команды. Замените CIPHER1,CIPHER2,CIPHER3 его списком наборов шифров, разделенным запятыми.

    Shell
    ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Рассмотрим пример.

    ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
    
  3. Если строка шифра действительна, установите наборы шифров TLS 1.3. Замените CIPHER1,CIPHER2,CIPHER3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Рассмотрим пример.

    ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Настройка криптографических алгоритмов SSH

Вы можете настроить криптографические алгоритмы, используемые для SSH-подключений, на порту 22 (операции Git) и порту 122 (административный доступ к оболочке).

Список доступных алгоритмов SSH

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы просмотреть защищенные шифры SSH по умолчанию, выполните следующую команду.

    Shell
    ghe-crypto list ssh-ciphers
    
  3. Чтобы просмотреть стандартные алгоритмы безопасного SSH MAC, выполните следующую команду.

    Shell
    ghe-crypto list ssh-mac-algorithms
    
  4. Чтобы просмотреть стандартные алгоритмы безопасного обмена ключами SSH, выполните следующую команду.

    Shell
    ghe-crypto list ssh-kex-algorithms
    
  5. Чтобы просмотреть типы защищенных сигнатур SSH по умолчанию, выполните следующую команду.

    Shell
    ghe-crypto list ssh-signature-types
    

Просмотр текущей конфигурации SSH

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы просмотреть настроенные шифры SSH, выполните следующую команду.

    Shell
    ghe-config github-ssl.ssh-ciphers
    
  3. Чтобы просмотреть настроенные алгоритмы SSH MAC, выполните следующую команду.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms
    
  4. Чтобы просмотреть настроенные алгоритмы обмена ключами SSH, выполните следующую команду.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms
    
  5. Чтобы просмотреть настроенные типы сигнатур SSH, выполните следующую команду.

    Shell
    ghe-config github-ssl.ssh-signature-types
    

    Если эти команды возвращают пустые значения, экземпляр использует безопасные значения по умолчанию.

Настройка шифров SSH

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные шифры SSH с помощью ghe-crypto check команды. Замените cipher1,cipher2,cipher3 его списком шифров, разделенным запятыми.

    Shell
    ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3
    

    Рассмотрим пример.

    ghe-crypto check ssh-ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
    
  3. Если строка шифра действительна, установите шифры SSH. Замените cipher1,cipher2,cipher3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'
    

    Рассмотрим пример.

    ghe-config github-ssl.ssh-ciphers 'chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Настройка алгоритмов SSH MAC

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные алгоритмы SSH MAC с помощью ghe-crypto check команды. Замените mac1,mac2,mac3 его списком алгоритмов MAC, разделенным запятыми.

    Shell
    ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3
    

    Рассмотрим пример.

    ghe-crypto check ssh-mac-algorithms hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
    
  3. Если строка алгоритма MAC допустима, задайте алгоритмы SSH MAC. Замените mac1,mac2,mac3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'
    

    Рассмотрим пример.

    ghe-config github-ssl.ssh-mac-algorithms 'hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Настройка алгоритмов обмена ключами SSH

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные алгоритмы обмена SSH-ключами с помощью ghe-crypto check команды. Замените kex1,kex2,kex3 их списком ключевых алгоритмов обмена через запятую.

    Shell
    ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3
    

    Рассмотрим пример.

    ghe-crypto check ssh-kex-algorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521
    
  3. Если строка алгоритма обмена ключами допустима, задайте алгоритмы обмена ключами SSH. Замените kex1,kex2,kex3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'
    

    Рассмотрим пример.

    ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Настройка типов сигнатур SSH

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Проверьте нужные типы сигнатур SSH с помощью ghe-crypto check команды. Замените sig1,sig2,sig3 списком типов сигнатур, разделенным запятыми.

    Shell
    ghe-crypto check ssh-signature-types sig1,sig2,sig3
    

    Рассмотрим пример.

    ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384
    
  3. Если строка типа сигнатуры допустима, задайте типы сигнатур SSH. Замените sig1,sig2,sig3 на список, разделенный запятыми.

    Shell
    ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'
    

    Рассмотрим пример.

    ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384'
    
  4. Проверьте конфигурацию.

    Shell
    ghe-config-check
    
  5. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  6. Подождите завершения запуска конфигурации.

  7. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.

Устранение неполадок в настройке шифра

Если клиенты не могут подключиться к ваш экземпляр GitHub Enterprise Server после изменения конфигурации шифра, вы можете устранить проблему.

  1. Убедитесь, что ваши клиенты поддерживают настроенные версии протокола TLS или SSH.
  2. Убедитесь, что хотя бы один настроенный набор шифров совместим с вашими клиентами.
  3. Просматривайте журналы экземпляров на предмет сбоев подтверждения TLS или ошибок подключения SSH. Дополнительные сведения о доступе к журналам см. в разделе AUTOTITLE.
  4. Временно восстановите настройки по умолчанию, чтобы убедиться, что проблема связана с шифрованием. Дополнительные сведения см. в разделе Восстановление набора шифров по умолчанию и настроек алгоритма.
  5. Если проблема сохраняется после восстановления значений по умолчанию, обратитесь к Поддержка GitHub Enterprise.

Восстановление стандартного набора шифров и настроек алгоритма

Чтобы восстановить стандартные наборы безопасных шифров или алгоритмы, сбросьте значение конфигурации.

  1. SSH в целевом экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Сбросьте параметр конфигурации. Замените SETTING именем параметра, который вы хотите восстановить до значений по умолчанию.

    Shell
    ghe-config --unset github-ssl.SETTING
    

    Например, чтобы восстановить стандартные наборы шифров TLS 1.2:

    ghe-config --unset github-ssl.tlsv12-ciphersuites
    
  3. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  4. Подождите завершения запуска конфигурации.

  5. Если вы настроили сообщение пользователя или режим обслуживания, удалите сообщение и отключите режим обслуживания.