Project

General

Profile

strongSwan as TNC Client » History » Version 21

Andreas Steffen, 29.03.2014 13:38

1 1 Andreas Steffen
h1. strongSwan as TNC Client
2 2 Andreas Steffen
3 19 Andreas Steffen
h3. Required Ubuntu Packages
4 1 Andreas Steffen
5 19 Andreas Steffen
If you are installing a strongSwan TNC client on an Ubuntu Linux OS then the following packages must be installed:
6 1 Andreas Steffen
<pre>
7 19 Andreas Steffen
sudo apt-get install build-essential libcurl4-openssl-dev
8 1 Andreas Steffen
</pre>
9 1 Andreas Steffen
10 19 Andreas Steffen
If a security chip, i.e. a Trusted Platform Module (TPM) is present on the client hardware and you want to do remote attestation then three additional packages are required for TPM support:
11 19 Andreas Steffen
<pre>
12 19 Andreas Steffen
sudo apt-get trousers tpm-tools libtspi-dev
13 19 Andreas Steffen
</pre>
14 19 Andreas Steffen
15 19 Andreas Steffen
h3. Build strongSwan VPN client with TNC support
16 19 Andreas Steffen
17 19 Andreas Steffen
Download the latest strongSwan tarball from http://download.strongswan.org/strongswan.tar.bz2, unpack the tarball and change into the top-level strongswan source directory:
18 19 Andreas Steffen
<pre>
19 19 Andreas Steffen
  wget http://download.strongswan.org/strongswan.tar.bz2
20 19 Andreas Steffen
  tar xjf strongswan.tar.bz2
21 19 Andreas Steffen
  cd strongswan-x.y.z
22 19 Andreas Steffen
</pre>
23 19 Andreas Steffen
24 19 Andreas Steffen
Next configure the following compilation options:
25 19 Andreas Steffen
<pre>
26 19 Andreas Steffen
./configure --prefix=/usr --sysconfdir=/etc \
27 19 Andreas Steffen
            --disable-gmp --disable-aes --disable-md5 \
28 19 Andreas Steffen
            --disable-sha1 --disable-sha2 --disable-fips-prf \
29 19 Andreas Steffen
            --enable-curl --enable-openssl --enable-eap-identity \
30 19 Andreas Steffen
            --enable-eap-dynamic --enable-eap-md5 --enable-eap-mschapv2 --enable-tls \
31 20 Andreas Steffen
            --enable-eap-ttls --enable-eap-tnc --enable-tnccs-20 --enable-tnc-imc \
32 19 Andreas Steffen
            --enable-imc-os --enable-imc-attestation --enable-imc-scanner --enable-imc-swid
33 19 Andreas Steffen
</pre>
34 19 Andreas Steffen
35 19 Andreas Steffen
If a TPM is available and you intend to use it for attestation, add
36 19 Andreas Steffen
<pre>
37 19 Andreas Steffen
            --with-tss=trousers
38 19 Andreas Steffen
</pre>
39 19 Andreas Steffen
40 19 Andreas Steffen
Build and install the strongSwan client with
41 19 Andreas Steffen
<pre>
42 19 Andreas Steffen
make
43 19 Andreas Steffen
sudo make install
44 19 Andreas Steffen
</pre>
45 19 Andreas Steffen
46 21 Andreas Steffen
h3. Configuration of TNC Integrity Measurement Collectors
47 19 Andreas Steffen
48 4 Andreas Steffen
/etc/tnc_config - TNC configuration file for strongSwan client 
49 1 Andreas Steffen
<pre>
50 21 Andreas Steffen
IMC "OS"          /usr/lib/ipsec/imcvs/imc-os.so
51 21 Andreas Steffen
IMC "Scanner"     /usr/lib/ipsec/imcvs/imc-scanner.so
52 21 Andreas Steffen
IMC "Attestation" /usr/lib/ipsec/imcvs/imc-attestation.so
53 21 Andreas Steffen
IMC "SWID"        /usr/lib/ipsec./imcvs/imc-swid.so
54 1 Andreas Steffen
</pre>
55 18 Andreas Steffen
56 21 Andreas Steffen
h3. Configuration as a TNCCS 2.0 Client with EAP-MD5 password-based client authentication
57 21 Andreas Steffen
58 1 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
59 1 Andreas Steffen
<pre>
60 18 Andreas Steffen
charon {
61 18 Andreas Steffen
  plugins {
62 19 Andreas Steffen
    eap-ttls {
63 19 Andreas Steffen
      max_message_count = 0
64 19 Andreas Steffen
    }
65 18 Andreas Steffen
    eap-tnc {
66 18 Andreas Steffen
      protocol = tnccs-2.0
67 19 Andreas Steffen
      max_message_count = 30
68 1 Andreas Steffen
    }
69 7 Andreas Steffen
    tnc-imc {
70 19 Andreas Steffen
      preferred_language = en, de
71 7 Andreas Steffen
    }
72 7 Andreas Steffen
  }
73 7 Andreas Steffen
}
74 7 Andreas Steffen
</pre>
75 7 Andreas Steffen
76 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
77 7 Andreas Steffen
<pre>
78 7 Andreas Steffen
carol@strongswan.org : EAP "Ar3etTnp"
79 7 Andreas Steffen
</pre>
80 7 Andreas Steffen
81 10 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
82 7 Andreas Steffen
<pre>
83 7 Andreas Steffen
conn home
84 7 Andreas Steffen
     leftid=carol@strongswan.org
85 16 Andreas Steffen
     leftauth=eap
86 12 Andreas Steffen
     right=192.168.0.1
87 6 Andreas Steffen
     rightid=@moon.strongswan.org
88 1 Andreas Steffen
     rightsendcert=never
89 4 Andreas Steffen
     rightsubnet=10.1.0.0/16
90 1 Andreas Steffen
     auto=add
91 17 Andreas Steffen
</pre>
92 17 Andreas Steffen
93 17 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-20/carol.daemon.log
94 17 Andreas Steffen
95 17 Andreas Steffen
h3. Configuration as a TNCCS 2.0 Client with EAP-TLS certicate-based client authentication
96 17 Andreas Steffen
97 4 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
98 4 Andreas Steffen
<pre>
99 4 Andreas Steffen
charon {
100 4 Andreas Steffen
  plugins {
101 4 Andreas Steffen
    eap-tnc {
102 5 Andreas Steffen
      protocol = tnccs-2.0
103 5 Andreas Steffen
    }
104 5 Andreas Steffen
    tnc-imc {
105 4 Andreas Steffen
      preferred_language = ru, fr, en
106 1 Andreas Steffen
    }
107 1 Andreas Steffen
  }
108 1 Andreas Steffen
}
109 18 Andreas Steffen
110 18 Andreas Steffen
libimcv {
111 18 Andreas Steffen
  plugins {
112 18 Andreas Steffen
    imc-test {
113 18 Andreas Steffen
      command = allow
114 18 Andreas Steffen
    }
115 18 Andreas Steffen
  }
116 18 Andreas Steffen
}
117 1 Andreas Steffen
</pre>
118 1 Andreas Steffen
119 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
120 7 Andreas Steffen
<pre>
121 7 Andreas Steffen
: RSA carolKey.pem "nH5ZQEWtku0RJEZ6"
122 7 Andreas Steffen
</pre>
123 7 Andreas Steffen
124 7 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
125 7 Andreas Steffen
<pre>
126 7 Andreas Steffen
conn home
127 7 Andreas Steffen
     leftcert=carolCert.pem
128 7 Andreas Steffen
     leftid=carol@strongswan.org
129 7 Andreas Steffen
     leftauth=eap
130 7 Andreas Steffen
     right=192.168.0.1
131 11 Andreas Steffen
     rightid=@moon.strongswan.org
132 7 Andreas Steffen
     rightsendcert=never
133 7 Andreas Steffen
     rightsubnet=10.1.0.0/16
134 7 Andreas Steffen
     auto=add
135 12 Andreas Steffen
</pre>
136 16 Andreas Steffen
137 7 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-20-tls/carol.daemon.log
138 8 Andreas Steffen
139 17 Andreas Steffen
h3. Configuration as a TNCCS 1.1 Client where both VPN Gateway and AAA Server authenticate themselves
140 17 Andreas Steffen
141 17 Andreas Steffen
<pre>
142 17 Andreas Steffen
./configure --prefix=/usr --sysconfdir =/etc --disable-pluto --enable-curl
143 17 Andreas Steffen
            --enable-eap-tls --enable-eap-ttls --enable-eap-identity --enable-eap-md5
144 17 Andreas Steffen
            --enable-eap-tnc --enable-tnccs-11 --enable-tnc-imc
145 17 Andreas Steffen
            --enable-imc-test --enable-imc-scanner
146 4 Andreas Steffen
</pre>
147 4 Andreas Steffen
148 4 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
149 4 Andreas Steffen
<pre>
150 4 Andreas Steffen
charon {
151 4 Andreas Steffen
  plugins {
152 4 Andreas Steffen
    eap-tnc {
153 4 Andreas Steffen
      protocol = tnccs-1.1
154 18 Andreas Steffen
    }
155 18 Andreas Steffen
  }
156 18 Andreas Steffen
}
157 18 Andreas Steffen
158 18 Andreas Steffen
libimcv {
159 18 Andreas Steffen
  plugins {
160 18 Andreas Steffen
    imc-test {
161 18 Andreas Steffen
      command = allow
162 1 Andreas Steffen
    }
163 1 Andreas Steffen
  }
164 1 Andreas Steffen
}
165 7 Andreas Steffen
</pre>
166 7 Andreas Steffen
167 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
168 7 Andreas Steffen
<pre>
169 7 Andreas Steffen
carol@strongswan.org : EAP "Ar3etTnp"
170 7 Andreas Steffen
</pre>
171 7 Andreas Steffen
172 7 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
173 7 Andreas Steffen
<pre>
174 7 Andreas Steffen
conn home
175 7 Andreas Steffen
     leftid=carol@strongswan.org
176 7 Andreas Steffen
     leftauth=eap
177 7 Andreas Steffen
     right=192.168.0.1
178 1 Andreas Steffen
     rightid=@moon.strongswan.org
179 1 Andreas Steffen
     rightsubnet=10.1.0.0/16
180 8 Andreas Steffen
     rightauth=pubkey
181 8 Andreas Steffen
     aaa_identity="C=CH, O=Linux strongSwan, CN=aaa.strongswan.org"
182 7 Andreas Steffen
     auto=add
183 2 Andreas Steffen
</pre>
184 13 Andreas Steffen
185 16 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-11-radius/carol.daemon.log