LINUX.ORG.RU
решено ФорумAdmin

OpenVPN vs LDAP vs PCI DSS

 , ,


2

1

Доброго времени суток, может кто сталкивался с аналогичной проблемой, согласно PCI DSS нужно отключить SSLv3,TLSv1.0,TLSv1.1 оставить только TLSv1.2! А так же ограничить типы шифрования до:

ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSAAES256-GCM-SHA384
DHE-RSA-AES128-GCM-SHA256
DHE-DSS-AES128-GCM-SHA256
kEDH+AESGCM
ECDHE-RSA-AES128SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES256SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
DHE-RSA-AES128SHA256
DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA256
DHE-RSA-AES256-SHA256
DHE-DSS-AES256-SHA
DHE-RSAAES256-SHA

до соблюдения данных «замечательных» требований, стоял себе и трудился linux с OpenVPN на борту с авторизацией через LDAP с помощью плагина openvpn-auth-ldap, так вот когда данные требования были выполнены то мой великолепный OpenVPN сказал следующее:

TLS: Initial packet from [AF_INET]*******, sid=***** *****
CRL: CRL /etc/openvpn/certcrl.crl is from a different issuer than the issuer of certificate DC=***, DC=*****, CN=*****
VERIFY OK: depth=2, DC=***, DC=*****, CN=*******
CRL: CRL /etc/openvpn/certcrl.crl is from a different issuer than the issuer of certificate DDC=***, DC=*****, CN=*****
VERIFY OK: depth=1, DC=***, DC=*****, CN=*****
CRL CHECK OK: CN=**user**
VERIFY OK: depth=0, CN=**user**
Unable to enable STARTTLS: Connect error
LDAP connect failed.
PLUGIN_CALL: POST /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so/PLUGIN_AUTH_**user**_PASS_VERIFY status=1
PLUGIN_CALL: plugin function PLUGIN_AUTH_**user**_PASS_VERIFY failed with status 1: /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
TLS Auth Error: Auth **user**name/Password verification failed for peer
Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
[**user**] Peer Connection Initiated with [AF_INET]*****
PUSH: Received control message: 'PUSH_REQUEST'
Delayed exit in 5 seconds
SENT CONTROL [**user**]: 'AUTH_FAILED' (status=1)
SIGTERM[soft,delayed-exit] received, client-instance exiting

Либо разновидность ошибки

Unable to enable STARTTLS: Connect error (TLS error -5961:TCP connection reset by peer)
LDAP connect failed.

Так вот, правильно ли я понимаю, судя по

 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA 
это как раз тот тип шифрования с которым он лез, и если я проверяю коннект к контроллеру то он у меня открыт и по идее все должно быть хорошо?

Дальше были предприняты четные попытки по правки ldap.conf

TLSCipherSuite        ALL:!ADH:@STRENGTH

TLSCipherSuite        DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256

TLSCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSAAES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128SHA256:ECDHE-ECDSA-AES128-S

Они естественно включались по очереди и OpenVPN перезапускался, никакого эффекта это не дало....

может кто сталкивался с таким, либо подскажет по каким типам этот плагин может работать?

Ну, неплохо было бы файл конфигурации плагина выложить иначе помочь сложно

zgen ★★★★★ ()
Ответ на: комментарий от zgen

после включения дополнительных типов шифрования:

ECDHE-RSA-AES256-SHA
ECDHE-RSA-AES128-SHA
AES256-SHA
AES128-SHA
OpenVPN заработал, но согласно PCI DSS их быть не должно...((

Ну, неплохо было бы файл конфигурации плагина выложить иначе помочь сложно

<LDAP>
        # LDAP server URL
        URL             ldap://********

        # Bind DN (If your LDAP server doesn't support anonymous binds)
        # BindDN                uid=Manager,ou=People,dc=example,dc=com

        BindDN                 CN=***,OU=***,DC=***,DC=***

        # Bind Password
        # Password      SecretPassword

        Password                ***

        # Network timeout (in seconds)
        Timeout         15

        # Enable Start TLS
        TLSEnable       yes

        # Follow LDAP Referrals (anonymously)
        FollowReferrals yes

        # TLS CA Certificate File
        # TLSCACertFile /usr/local/etc/ssl/ca.pem

        TLSCACertFile           /etc/openvpn/CA.cer

        # TLS CA Certificate Directory
        #TLSCACertDir   /etc/ssl/certs

        TLSCACertDir            /etc/openvpn/

        # Client Certificate and key
        # If TLS client authentication is required
        #TLSCertFile    /usr/local/etc/ssl/client-cert.pem
        #TLSKeyFile     /usr/local/etc/ssl/client-key.pem

        # Cipher Suite
        # The defaults are usually fine here
        # TLSCipherSuite        ALL:!ADH:@STRENGTH
        # TLSCipherSuite        DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256
        # TLSCipherSuite        ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSAAES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128SHA256:ECDHE-ECDSA-AES128-S

</LDAP>

<Authorization>
        # Base DN
        BaseDN          "DC=***,DC=***"

        # User Search Filter
        SearchFilter    "(&(sAMAccountName=%u)(objectCategory=person)(objectClass=user)(msNPAllowDialin=TRUE))"

        # Require Group Membership
        RequireGroup    false

        # Add non-group members to a PF table (disabled)
        #PFTable        ips_vpn_users

#       <Group>
#               BaseDN          "CN=***,DC=***,DC=***"
#               #SearchFilter   "(|(cn=***)(cn=***))"
#               SearchFilter    "(objectClass=group)"
#               MemberAttribute uniqueMember
#               # Add group members to a PF table (disabled)
#               #PFTable        ips_vpn_eng
#       </Group>
</Authorization>

jasper88 ()
Ответ на: комментарий от jasper88

после включения дополнительных типов шифрования:

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

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

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

Если Вы внимательно прочитали первый пост то суть вопроса была не в том как мой LDAP заставить воспринимать тип шифрования OpenVPN-a, а как раз наоборот как заставить OpenVPN коннектиться к LDAP-у по тем типам которые я оставил разрешенными

jasper88 ()
Ответ на: комментарий от jasper88

Ты похоже путаешь TLS-шифрование канала OpenVPN и шифрование LDAP-плагина при подключении к LDAP-серверу.

Это шифрование OpenVPN канала:

Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA

после включения дополнительных типов шифрования:

Где включения? В LDAP-плагине или в OpenVPN?

У тебя LDAP-сервер поддерживает определённый набор cipher-ов, а LDAP-клиент - другой набор. Если эти наборы не пересекаются - коннекта, увы, не будет.

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

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

Ты похоже путаешь TLS-шифрование канала OpenVPN и шифрование LDAP-плагина при подключении к LDAP-серверу.

Выше приведенный конфиг, это конфиг самого плагина, по дефолту эта опция закомменчена, писал сюда те типы шифрования которые разрешены на Контроллере Домена, это не помогло

#TLSCipherSuite        ALL:!ADH:@STRENGTH

вот типы разрешенные на Контроллере Домена:

prio  ciphersuite                protocols  pfs                 curves
1     ECDHE-RSA-AES256-SHA384    TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
2     ECDHE-RSA-AES128-SHA256    TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
3     DHE-RSA-AES256-GCM-SHA384  TLSv1.2    DH,1024bits         None
4     DHE-RSA-AES128-GCM-SHA256  TLSv1.2    DH,1024bits         None
5     AES256-GCM-SHA384          TLSv1.2    None                None
6     AES128-GCM-SHA256          TLSv1.2    None                None
7     AES256-SHA256              TLSv1.2    None                None
8     AES128-SHA256              TLSv1.2    None                None

Где включения? В LDAP-плагине или в OpenVPN?

на Контроллере Домена

У тебя LDAP-сервер поддерживает определённый набор cipher-ов, а LDAP-клиент - другой набор. Если эти наборы не пересекаются - коннекта, увы, не будет

этоя понимаю, вопрос заключается в том можно ли заставить плагин использовать те типы шифрования которые у меня разрешены на контроллере домена?

jasper88 ()
Ответ на: комментарий от blind_oracle

А вот сами дополнительные наборы cipher-ов на втором контроллере с которыми работает:

1     ECDHE-RSA-AES256-SHA384    TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
2     ECDHE-RSA-AES128-SHA256    TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
3     ECDHE-RSA-AES256-SHA       TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
4     ECDHE-RSA-AES128-SHA       TLSv1.2    ECDH,P-256,256bits  prime256v1,secp384r1
5     DHE-RSA-AES256-GCM-SHA384  TLSv1.2    DH,1024bits         None
6     DHE-RSA-AES128-GCM-SHA256  TLSv1.2    DH,1024bits         None
7     AES256-GCM-SHA384          TLSv1.2    None                None
8     AES128-GCM-SHA256          TLSv1.2    None                None
9     AES256-SHA256              TLSv1.2    None                None
10    AES128-SHA256              TLSv1.2    None                None
11    AES256-SHA                 TLSv1.2    None                None
12    AES128-SHA                 TLSv1.2    None                None

на нем на 4 больше, а именно:

ECDHE-RSA-AES256-SHA
ECDHE-RSA-AES128-SHA
AES256-SHA
AES128-SHA

когда запрещаю SHA на контроллере, плагин отказывается использовать SHA256 и SHA384 которые открыты для соединений

jasper88 ()
Ответ на: комментарий от jasper88

В общем прошел очередной PCI DSS скан, и они пока разрешают использовать эти cipher-ы:

ECDHE-RSA-AES256-SHA
ECDHE-RSA-AES128-SHA
AES256-SHA
AES128-SHA
с ними плагин работает нормально, так что, хоть вопрос и не решен, поиск решения окончен

jasper88 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.