Skip to content

Commit e3dc805

Browse files
committed
Implement channel bindings
1 parent d947ff1 commit e3dc805

18 files changed

Lines changed: 710 additions & 301 deletions

File tree

.config/ci/install.sh

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,7 @@ then
3737
sudo apt-get -qy install can-utils || exit 1
3838
sudo apt-get -qy install linux-modules-extra-$(uname -r) || exit 1
3939
sudo apt-get -qy install samba smbclient
40-
# For OpenLDAP, we need to pre-populate some setup questions
41-
sudo debconf-set-selections <<< 'slapd slapd/password2 password Bonjour1'
42-
sudo debconf-set-selections <<< 'slapd slapd/password1 password Bonjour1'
43-
sudo debconf-set-selections <<< 'slapd slapd/domain string scapy.net'
44-
sudo apt-get -qy install slapd
45-
ldapadd -D "cn=admin,dc=scapy,dc=net" -w Bonjour1 -f $CUR/openldap-testdata.ldif -c
40+
sudo bash $CUR/openldap/install.sh
4641
# Make sure libpcap is installed
4742
if [ ! -z $SCAPY_USE_LIBPCAP ]
4843
then

.config/ci/openldap-testdata.ldif

Lines changed: 0 additions & 146 deletions
This file was deleted.

.config/ci/openldap/config.ldif

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
# This file is part of Scapy
3+
4+
# Contains the configuration of our OpenLDAP test server
5+
6+
# Configure LDAPS
7+
dn: cn=config
8+
add: olcTLSCACertificateFile
9+
olcTLSCACertificateFile: {{CAFILE}}
10+
11+
dn: cn=config
12+
add: olcTLSCertificateKeyFile
13+
olcTLSCertificateKeyFile: {{KEYFILE}}
14+
15+
dn: cn=config
16+
add: olcTLSCertificateFile
17+
olcTLSCertificateFile: {{CRTFILE}}
18+
19+
dn: cn=config
20+
add: olcTLSVerifyClient
21+
olcTLSVerifyClient: never
22+
23+
# Set channel bindings to 'tls-endpoint', like it would be on Windows
24+
dn: cn=config
25+
replace: olcSaslCbinding
26+
olcSaslCbinding: tls-endpoint

.config/ci/openldap/install.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
# SPDX-License-Identifier: GPL-2.0-only
4+
# This file is part of Scapy
5+
# See https://scapy.net/ for more information
6+
7+
# Install an OpenLDAP test server
8+
9+
# Pre-populate some setup questions
10+
sudo debconf-set-selections <<< 'slapd slapd/password2 password Bonjour1'
11+
sudo debconf-set-selections <<< 'slapd slapd/password1 password Bonjour1'
12+
sudo debconf-set-selections <<< 'slapd slapd/domain string scapy.net'
13+
14+
# Run setup
15+
sudo apt-get -qy install slapd
16+
17+
# Enable LDAPs
18+
sudo sed -i '/^SLAPD_SERVICES/ c\SLAPD_SERVICES="ldap:/// ldapi:/// ldaps://"' /etc/default/slapd
19+
sudo service slapd restart
20+
21+
# Copy config template and replace variables.
22+
CUR=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
23+
openldap_conf=$(mktemp /tmp/scapy_openldapconf_XXXXXX.ldif)
24+
pkipath=$(realpath "$CUR/../../../test/scapy/layers/tls/pki")
25+
cp $CUR/config.ldif $openldap_conf
26+
sed -i "s@{{CAFILE}}@${pkipath}/ca_cert.pem@g" $openldap_conf
27+
sed -i "s@{{CRTFILE}}@${pkipath}/srv_cert.pem@g" $openldap_conf
28+
sed -i "s@{{KEYFILE}}@${pkipath}/srv_key.pem@g" $openldap_conf
29+
30+
echo $openldap_conf
31+
32+
sudo ldapmodify -Y EXTERNAL -H "ldapi:///" -w Bonjour1 -f $openldap_conf
33+
sudo ldapadd -D "cn=admin,dc=scapy,dc=net" -w Bonjour1 -f $CUR/testdata.ldif -c

.config/ci/openldap/testdata.ldif

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-License-Identifier: OLDAP-2.8
2+
# This file is based on https://git.openldap.org/openldap/openldap/-/blob/master/tests/data/ppolicy.ldif?ref_type=heads
3+
# (renamed to dc=scapy, dc=net)
4+
5+
dn: dc=scapy, dc=net
6+
objectClass: top
7+
objectClass: organization
8+
objectClass: dcObject
9+
o: Scapy
10+
dc: scapy
11+
12+
dn: ou=People, dc=scapy, dc=net
13+
objectClass: top
14+
objectClass: organizationalUnit
15+
ou: People
16+
17+
dn: ou=Groups, dc=scapy, dc=net
18+
objectClass: organizationalUnit
19+
ou: Groups
20+
21+
dn: cn=Policy Group, ou=Groups, dc=scapy, dc=net
22+
objectClass: groupOfNames
23+
cn: Policy Group
24+
member: uid=nd, ou=People, dc=scapy, dc=net
25+
owner: uid=ndadmin, ou=People, dc=scapy, dc=net
26+
27+
dn: cn=Test Group, ou=Groups, dc=scapy, dc=net
28+
objectClass: groupOfNames
29+
cn: Policy Group
30+
member: uid=another, ou=People, dc=scapy, dc=net
31+
32+
dn: ou=Policies, dc=scapy, dc=net
33+
objectClass: top
34+
objectClass: organizationalUnit
35+
ou: Policies
36+
37+
dn: uid=nd, ou=People, dc=scapy, dc=net
38+
objectClass: top
39+
objectClass: person
40+
objectClass: inetOrgPerson
41+
cn: Neil Dunbar
42+
uid: nd
43+
sn: Dunbar
44+
givenName: Neil
45+
userPassword: testpassword
46+
47+
dn: uid=ndadmin, ou=People, dc=scapy, dc=net
48+
objectClass: top
49+
objectClass: person
50+
objectClass: inetOrgPerson
51+
cn: Neil Dunbar (Admin)
52+
uid: ndadmin
53+
sn: Dunbar
54+
givenName: Neil
55+
userPassword: testpw
56+
57+
dn: uid=another, ou=People, dc=scapy, dc=net
58+
objectClass: top
59+
objectClass: person
60+
objectClass: inetOrgPerson
61+
cn: Another Test
62+
uid: another
63+
sn: Test
64+
givenName: Another
65+
userPassword: testing
66+

0 commit comments

Comments
 (0)