Project

General

Profile

strongSwan as TNC Client » History » Version 20

Andreas Steffen, 29.03.2014 13:33

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 19 Andreas Steffen
h3. Configuration as a TNCCS 2.0 Client with EAP-MD5 password-based client authentication
47 19 Andreas Steffen
48 4 Andreas Steffen
/etc/tnc_config - TNC configuration file for strongSwan client 
49 4 Andreas Steffen
<pre>
50 18 Andreas Steffen
IMC "Test"    /usr/local/lib/ipsec/imcvs/imc-test.so
51 18 Andreas Steffen
IMC "Scanner" /usr/local/lib/ipsec/imcvs/imc-scanner.so
52 18 Andreas Steffen
</pre>
53 1 Andreas Steffen
54 1 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
55 1 Andreas Steffen
<pre>
56 18 Andreas Steffen
charon {
57 18 Andreas Steffen
  plugins {
58 19 Andreas Steffen
    eap-ttls {
59 19 Andreas Steffen
      max_message_count = 0
60 19 Andreas Steffen
    }
61 18 Andreas Steffen
    eap-tnc {
62 18 Andreas Steffen
      protocol = tnccs-2.0
63 19 Andreas Steffen
      max_message_count = 30
64 1 Andreas Steffen
    }
65 7 Andreas Steffen
    tnc-imc {
66 19 Andreas Steffen
      preferred_language = en, de
67 7 Andreas Steffen
    }
68 7 Andreas Steffen
  }
69 7 Andreas Steffen
}
70 7 Andreas Steffen
</pre>
71 7 Andreas Steffen
72 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
73 7 Andreas Steffen
<pre>
74 7 Andreas Steffen
carol@strongswan.org : EAP "Ar3etTnp"
75 7 Andreas Steffen
</pre>
76 7 Andreas Steffen
77 10 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
78 7 Andreas Steffen
<pre>
79 7 Andreas Steffen
conn home
80 7 Andreas Steffen
     leftid=carol@strongswan.org
81 16 Andreas Steffen
     leftauth=eap
82 12 Andreas Steffen
     right=192.168.0.1
83 6 Andreas Steffen
     rightid=@moon.strongswan.org
84 1 Andreas Steffen
     rightsendcert=never
85 4 Andreas Steffen
     rightsubnet=10.1.0.0/16
86 7 Andreas Steffen
     auto=add
87 1 Andreas Steffen
</pre>
88 1 Andreas Steffen
89 17 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-20/carol.daemon.log
90 17 Andreas Steffen
91 1 Andreas Steffen
h3. Configuration as a TNCCS 2.0 Client with EAP-TLS certicate-based client authentication
92 1 Andreas Steffen
93 17 Andreas Steffen
/etc/tnc_config - TNC configuration file for strongSwan client 
94 17 Andreas Steffen
<pre>
95 17 Andreas Steffen
IMC "Test"    /usr/local/lib/ipsec/imcvs/imc-test.so
96 17 Andreas Steffen
IMC "Scanner" /usr/local/lib/ipsec/imcvs/imc-scanner.so
97 17 Andreas Steffen
</pre>
98 17 Andreas Steffen
99 4 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
100 4 Andreas Steffen
<pre>
101 4 Andreas Steffen
charon {
102 4 Andreas Steffen
  plugins {
103 4 Andreas Steffen
    eap-tnc {
104 5 Andreas Steffen
      protocol = tnccs-2.0
105 5 Andreas Steffen
    }
106 5 Andreas Steffen
    tnc-imc {
107 4 Andreas Steffen
      preferred_language = ru, fr, en
108 1 Andreas Steffen
    }
109 1 Andreas Steffen
  }
110 1 Andreas Steffen
}
111 18 Andreas Steffen
112 18 Andreas Steffen
libimcv {
113 18 Andreas Steffen
  plugins {
114 18 Andreas Steffen
    imc-test {
115 18 Andreas Steffen
      command = allow
116 18 Andreas Steffen
    }
117 18 Andreas Steffen
  }
118 18 Andreas Steffen
}
119 1 Andreas Steffen
</pre>
120 1 Andreas Steffen
121 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
122 7 Andreas Steffen
<pre>
123 7 Andreas Steffen
: RSA carolKey.pem "nH5ZQEWtku0RJEZ6"
124 7 Andreas Steffen
</pre>
125 7 Andreas Steffen
126 7 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
127 7 Andreas Steffen
<pre>
128 7 Andreas Steffen
conn home
129 7 Andreas Steffen
     leftcert=carolCert.pem
130 7 Andreas Steffen
     leftid=carol@strongswan.org
131 7 Andreas Steffen
     leftauth=eap
132 7 Andreas Steffen
     right=192.168.0.1
133 11 Andreas Steffen
     rightid=@moon.strongswan.org
134 7 Andreas Steffen
     rightsendcert=never
135 7 Andreas Steffen
     rightsubnet=10.1.0.0/16
136 7 Andreas Steffen
     auto=add
137 12 Andreas Steffen
</pre>
138 16 Andreas Steffen
139 7 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-20-tls/carol.daemon.log
140 8 Andreas Steffen
141 6 Andreas Steffen
h3. Configuration as a TNCCS 1.1 Client where both VPN Gateway and AAA Server authenticate themselves
142 4 Andreas Steffen
143 1 Andreas Steffen
<pre>
144 1 Andreas Steffen
./configure --prefix=/usr --sysconfdir =/etc --disable-pluto --enable-curl
145 1 Andreas Steffen
            --enable-eap-tls --enable-eap-ttls --enable-eap-identity --enable-eap-md5
146 17 Andreas Steffen
            --enable-eap-tnc --enable-tnccs-11 --enable-tnc-imc
147 17 Andreas Steffen
            --enable-imc-test --enable-imc-scanner
148 17 Andreas Steffen
</pre>
149 17 Andreas Steffen
150 17 Andreas Steffen
/etc/tnc_config - TNC configuration file for strongSwan client 
151 17 Andreas Steffen
<pre>
152 17 Andreas Steffen
IMC "Test"    /usr/local/lib/ipsec/imcvs/imc-test.so
153 17 Andreas Steffen
IMC "Scanner" /usr/local/lib/ipsec/imcvs/imc-scanner.so
154 4 Andreas Steffen
</pre>
155 4 Andreas Steffen
156 4 Andreas Steffen
/etc/strongswan.conf - strongSwan configuration file
157 4 Andreas Steffen
<pre>
158 4 Andreas Steffen
charon {
159 4 Andreas Steffen
  plugins {
160 4 Andreas Steffen
    eap-tnc {
161 4 Andreas Steffen
      protocol = tnccs-1.1
162 18 Andreas Steffen
    }
163 18 Andreas Steffen
  }
164 18 Andreas Steffen
}
165 18 Andreas Steffen
166 18 Andreas Steffen
libimcv {
167 18 Andreas Steffen
  plugins {
168 18 Andreas Steffen
    imc-test {
169 18 Andreas Steffen
      command = allow
170 1 Andreas Steffen
    }
171 1 Andreas Steffen
  }
172 1 Andreas Steffen
}
173 7 Andreas Steffen
</pre>
174 7 Andreas Steffen
175 7 Andreas Steffen
/etc/ipsec.secrets - strongSwan IPsec secrets file
176 7 Andreas Steffen
<pre>
177 7 Andreas Steffen
carol@strongswan.org : EAP "Ar3etTnp"
178 7 Andreas Steffen
</pre>
179 7 Andreas Steffen
180 7 Andreas Steffen
/etc/ipsec.conf - strongSwan IPsec configuration file
181 7 Andreas Steffen
<pre>
182 7 Andreas Steffen
conn home
183 7 Andreas Steffen
     leftid=carol@strongswan.org
184 7 Andreas Steffen
     leftauth=eap
185 7 Andreas Steffen
     right=192.168.0.1
186 1 Andreas Steffen
     rightid=@moon.strongswan.org
187 1 Andreas Steffen
     rightsubnet=10.1.0.0/16
188 8 Andreas Steffen
     rightauth=pubkey
189 8 Andreas Steffen
     aaa_identity="C=CH, O=Linux strongSwan, CN=aaa.strongswan.org"
190 7 Andreas Steffen
     auto=add
191 2 Andreas Steffen
</pre>
192 13 Andreas Steffen
193 16 Andreas Steffen
"Client logfile":http://www.strongswan.org/uml/testresults/tnc/tnccs-11-radius/carol.daemon.log