PT-TLS SWIMA Server » History » Version 20
Andreas Steffen, 08.07.2017 07:20
1 | 1 | Andreas Steffen | h1. PT-TLS SWIMA Server |
---|---|---|---|
2 | 1 | Andreas Steffen | |
3 | 9 | Andreas Steffen | {{>toc}} |
4 | 9 | Andreas Steffen | |
5 | 1 | Andreas Steffen | h2. Installing the strongSwan TNC Software |
6 | 1 | Andreas Steffen | |
7 | 1 | Andreas Steffen | First we have to install some additional Ubuntu packages needed for the strongSwan TNC build |
8 | 1 | Andreas Steffen | <pre> |
9 | 2 | Andreas Steffen | sudo apt install libsystemd-dev libssl-dev libcurl4-openssl-dev sqlite3 libsqlite3-dev libjson0-dev |
10 | 1 | Andreas Steffen | </pre> |
11 | 1 | Andreas Steffen | |
12 | 1 | Andreas Steffen | Download the lastest strongSwan tarball |
13 | 1 | Andreas Steffen | <pre> |
14 | 1 | Andreas Steffen | wget https://download.strongswan.org/strongswan-5.6.0dr1.tar.bz2 |
15 | 1 | Andreas Steffen | </pre> |
16 | 1 | Andreas Steffen | |
17 | 1 | Andreas Steffen | Unpack the tarball |
18 | 1 | Andreas Steffen | <pre> |
19 | 1 | Andreas Steffen | tar xf strongswan-5.6.0dr1.tar.bz2 |
20 | 1 | Andreas Steffen | </pre> |
21 | 1 | Andreas Steffen | |
22 | 1 | Andreas Steffen | and change into the strongSwan build directory |
23 | 1 | Andreas Steffen | <pre> |
24 | 1 | Andreas Steffen | cd strongswan-5.6.0dr1 |
25 | 1 | Andreas Steffen | </pre> |
26 | 1 | Andreas Steffen | |
27 | 1 | Andreas Steffen | Configure strongSwan with the following options |
28 | 1 | Andreas Steffen | <pre> |
29 | 1 | Andreas Steffen | ./configure --prefix=/usr --sysconfdir=/etc --disable-gmp --enable-openssl --enable-tnc-imv --enable-tnc-pdp --enable-tnccs-20 --enable-imv-os --enable-imv-swima --enable-sqlite --enable-curl --disable-stroke --enable-swanctl --enable-systemd |
30 | 1 | Andreas Steffen | </pre> |
31 | 1 | Andreas Steffen | |
32 | 1 | Andreas Steffen | Build and install strongSwan with the commands |
33 | 1 | Andreas Steffen | <pre> |
34 | 1 | Andreas Steffen | make; sudo make install |
35 | 1 | Andreas Steffen | </pre> |
36 | 3 | Andreas Steffen | |
37 | 14 | Andreas Steffen | The following TNC server options have to be configured in */etc/strongswan.conf* |
38 | 7 | Andreas Steffen | <pre> |
39 | 7 | Andreas Steffen | charon-systemd { |
40 | 7 | Andreas Steffen | journal { |
41 | 7 | Andreas Steffen | default = 1 |
42 | 7 | Andreas Steffen | tnc = 2 |
43 | 7 | Andreas Steffen | imv = 3 |
44 | 7 | Andreas Steffen | pts = 2 |
45 | 7 | Andreas Steffen | } |
46 | 7 | Andreas Steffen | syslog { |
47 | 7 | Andreas Steffen | auth { |
48 | 7 | Andreas Steffen | default = 0 |
49 | 7 | Andreas Steffen | } |
50 | 7 | Andreas Steffen | } |
51 | 7 | Andreas Steffen | plugins { |
52 | 7 | Andreas Steffen | tnccs-20 { |
53 | 7 | Andreas Steffen | max_batch_size = 131056 |
54 | 7 | Andreas Steffen | max_message_size = 131024 |
55 | 7 | Andreas Steffen | } |
56 | 7 | Andreas Steffen | tnc-pdp { |
57 | 7 | Andreas Steffen | server = tnc.example.org |
58 | 7 | Andreas Steffen | pt_tls { |
59 | 7 | Andreas Steffen | enable = yes |
60 | 7 | Andreas Steffen | } |
61 | 7 | Andreas Steffen | radius { |
62 | 7 | Andreas Steffen | enable = no |
63 | 7 | Andreas Steffen | } |
64 | 7 | Andreas Steffen | } |
65 | 7 | Andreas Steffen | } |
66 | 7 | Andreas Steffen | } |
67 | 7 | Andreas Steffen | |
68 | 7 | Andreas Steffen | libtls { |
69 | 7 | Andreas Steffen | suites = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
70 | 7 | Andreas Steffen | } |
71 | 7 | Andreas Steffen | |
72 | 7 | Andreas Steffen | libimcv { |
73 | 7 | Andreas Steffen | database = sqlite:///etc/pts/config.db |
74 | 7 | Andreas Steffen | policy_script = ipsec imv_policy_manager |
75 | 7 | Andreas Steffen | plugins { |
76 | 7 | Andreas Steffen | imv-swima { |
77 | 7 | Andreas Steffen | rest_api { |
78 | 7 | Andreas Steffen | uri = https://admin-user:ietf99hackathon@tnc.example.com/api/ |
79 | 7 | Andreas Steffen | timeout = 360 |
80 | 7 | Andreas Steffen | } |
81 | 7 | Andreas Steffen | } |
82 | 7 | Andreas Steffen | } |
83 | 1 | Andreas Steffen | } |
84 | 14 | Andreas Steffen | </pre> |
85 | 14 | Andreas Steffen | |
86 | 14 | Andreas Steffen | |
87 | 14 | Andreas Steffen | The */etc/tnc_config* file defines which Integrity Measurement Collectors (IMVs) are loaded by the TNC server |
88 | 14 | Andreas Steffen | <pre> |
89 | 14 | Andreas Steffen | #IMV-Configuration |
90 | 14 | Andreas Steffen | IMV "OS" /usr/lib/ipsec/imcvs/imv-os.so |
91 | 14 | Andreas Steffen | IMV "SWIMA" /usr/lib/ipsec/imcvs/imv-swima.so |
92 | 7 | Andreas Steffen | </pre> |
93 | 7 | Andreas Steffen | |
94 | 11 | Andreas Steffen | h2. Setting up a CA using the strongSwan "pki" Tool |
95 | 3 | Andreas Steffen | |
96 | 6 | Andreas Steffen | The strongSwan *pki* tool is very powerful and easy to use. First we create a directory where all keys and certificates are going to be stored |
97 | 3 | Andreas Steffen | <pre> |
98 | 3 | Andreas Steffen | sudo -s |
99 | 3 | Andreas Steffen | mkdir /etc/pts |
100 | 3 | Andreas Steffen | mkdir /etc/pts/pki |
101 | 3 | Andreas Steffen | cd /etc/pts/pki |
102 | 3 | Andreas Steffen | </pre> |
103 | 3 | Andreas Steffen | |
104 | 3 | Andreas Steffen | Then we generate an ECC public key pair for the Root CA and a matching self-signed CA certificate |
105 | 3 | Andreas Steffen | <pre> |
106 | 3 | Andreas Steffen | pki --gen --type ecdsa --size 256 --outform pem > caKey.pem |
107 | 3 | Andreas Steffen | pki --self --ca --in caKey.pem --type ecdsa --dn "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" --lifetime 3652 --outform pem > caCert.pem |
108 | 3 | Andreas Steffen | </pre> |
109 | 3 | Andreas Steffen | |
110 | 3 | Andreas Steffen | The CA certificate can be listed with the following command |
111 | 3 | Andreas Steffen | <pre> |
112 | 3 | Andreas Steffen | pki --print --in caCert.pem |
113 | 3 | Andreas Steffen | subject: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
114 | 3 | Andreas Steffen | issuer: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
115 | 3 | Andreas Steffen | validity: not before Jul 07 08:19:08 2017, ok |
116 | 3 | Andreas Steffen | not after Jul 07 08:19:08 2027, ok (expires in 3651 days) |
117 | 3 | Andreas Steffen | serial: 3a:98:52:2e:75:a5:a5:8b |
118 | 3 | Andreas Steffen | flags: CA CRLSign self-signed |
119 | 3 | Andreas Steffen | subjkeyId: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
120 | 3 | Andreas Steffen | pubkey: ECDSA 256 bits |
121 | 3 | Andreas Steffen | keyid: 85:94:42:42:d7:40:83:17:98:72:7f:d7:6b:4a:08:51:e8:5b:e0:63 |
122 | 3 | Andreas Steffen | subjkey: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
123 | 3 | Andreas Steffen | </pre> |
124 | 4 | Andreas Steffen | |
125 | 4 | Andreas Steffen | <pre> |
126 | 4 | Andreas Steffen | pki --req --in serverKey.pem --type ecdsa --dn "C=CZ, O=IETF, OU=SACM, CN=TNC Server" --san "tnc.example.com" --outform pem > serverReq.pem |
127 | 4 | Andreas Steffen | </pre> |
128 | 4 | Andreas Steffen | |
129 | 4 | Andreas Steffen | <pre> |
130 | 4 | Andreas Steffen | pki --issue --cakey caKey.pem --cacert caCert.pem --in serverReq.pem --type pkcs10 --flag serverAuth --lifetime 1461 --outform pem > serverCert.pem |
131 | 4 | Andreas Steffen | </pre> |
132 | 4 | Andreas Steffen | |
133 | 4 | Andreas Steffen | <pre> |
134 | 4 | Andreas Steffen | pki --print --in serverCert.pem |
135 | 4 | Andreas Steffen | subject: "C=CZ, O=IETF, OU=SACM, CN=TNC Server" |
136 | 4 | Andreas Steffen | issuer: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
137 | 4 | Andreas Steffen | validity: not before Jul 07 09:07:31 2017, ok |
138 | 4 | Andreas Steffen | not after Jul 07 09:07:31 2021, ok (expires in 1460 days) |
139 | 4 | Andreas Steffen | serial: 40:53:6a:88:f5:52:50:3b |
140 | 4 | Andreas Steffen | altNames: tnc.example.com |
141 | 4 | Andreas Steffen | flags: serverAuth |
142 | 4 | Andreas Steffen | authkeyId: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
143 | 4 | Andreas Steffen | subjkeyId: 9c:83:b7:e9:0a:7d:dd:08:1f:2d:c5:c6:cc:63:c0:3f:96:57:a2:ce |
144 | 4 | Andreas Steffen | pubkey: ECDSA 256 bits |
145 | 4 | Andreas Steffen | keyid: 15:91:40:5f:55:58:1f:9c:18:c1:89:6d:47:7c:bd:50:3d:b4:90:a1 |
146 | 4 | Andreas Steffen | subjkey: 9c:83:b7:e9:0a:7d:dd:08:1f:2d:c5:c6:cc:63:c0:3f:96:57:a2:ce |
147 | 1 | Andreas Steffen | </pre> |
148 | 4 | Andreas Steffen | |
149 | 6 | Andreas Steffen | The server key and the server and CA certificates are needed by the strongSwan TNC server and are therefore copied to the default locations. |
150 | 5 | Andreas Steffen | <pre> |
151 | 5 | Andreas Steffen | cp caCert.pem /etc/swanctl/x509ca |
152 | 5 | Andreas Steffen | cp serverCert.pem /etc/swanctl/x509 |
153 | 5 | Andreas Steffen | cp serverKey.pem /etc/swanctl/ecdsa |
154 | 5 | Andreas Steffen | </pre> |
155 | 19 | Andreas Steffen | |
156 | 20 | Andreas Steffen | The strongSwan *sw-collector* and *pt-tls-client* tools use the libcurl library for TLS connections. Because curl looks for X.509 certificate trust anchors in the /etc/ssl/certs directory, the private "IETF 99 Hackathon CA" must be added to the store of trusted CAs on each endpoint (i.e. TNC client) with the following commands |
157 | 19 | Andreas Steffen | <pre> |
158 | 19 | Andreas Steffen | cp caCert.pem /usr/local/share/ca-certificates/IETF99_Hackathon_CA.crt |
159 | 19 | Andreas Steffen | update-ca-certificates |
160 | 19 | Andreas Steffen | </pre> |
161 | 19 | Andreas Steffen | |
162 | 8 | Andreas Steffen | Right after installation the strongSwan TNC daemon has to be enabled and started as a systemd service with the following commands |
163 | 8 | Andreas Steffen | <pre> |
164 | 8 | Andreas Steffen | sudo systemctl enable strongswan-swanctl |
165 | 8 | Andreas Steffen | sudo systemctl start strongswan-swanctl |
166 | 8 | Andreas Steffen | </pre> |
167 | 8 | Andreas Steffen | |
168 | 8 | Andreas Steffen | In all subsequent reboots the *strongswan-swanctl* service will be started automatically. The following *swanctl* command shows that the service is running and that the certificates and keys have been loaded |
169 | 8 | Andreas Steffen | <pre> |
170 | 8 | Andreas Steffen | swanctl --list-certs |
171 | 8 | Andreas Steffen | |
172 | 8 | Andreas Steffen | List of X.509 End Entity Certificates |
173 | 8 | Andreas Steffen | |
174 | 8 | Andreas Steffen | subject: "C=CZ, O=IETF, OU=SACM, CN=TNC Server" |
175 | 8 | Andreas Steffen | issuer: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
176 | 8 | Andreas Steffen | validity: not before Jul 07 09:07:31 2017, ok |
177 | 8 | Andreas Steffen | not after Jul 07 09:07:31 2021, ok (expires in 1460 days) |
178 | 8 | Andreas Steffen | serial: 40:53:6a:88:f5:52:50:3b |
179 | 8 | Andreas Steffen | altNames: tnc.example.com |
180 | 8 | Andreas Steffen | flags: serverAuth |
181 | 8 | Andreas Steffen | authkeyId: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
182 | 8 | Andreas Steffen | subjkeyId: 9c:83:b7:e9:0a:7d:dd:08:1f:2d:c5:c6:cc:63:c0:3f:96:57:a2:ce |
183 | 8 | Andreas Steffen | pubkey: ECDSA 256 bits, has private key |
184 | 8 | Andreas Steffen | keyid: 15:91:40:5f:55:58:1f:9c:18:c1:89:6d:47:7c:bd:50:3d:b4:90:a1 |
185 | 8 | Andreas Steffen | subjkey: 9c:83:b7:e9:0a:7d:dd:08:1f:2d:c5:c6:cc:63:c0:3f:96:57:a2:ce |
186 | 8 | Andreas Steffen | |
187 | 8 | Andreas Steffen | List of X.509 CA Certificates |
188 | 8 | Andreas Steffen | |
189 | 8 | Andreas Steffen | subject: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
190 | 8 | Andreas Steffen | issuer: "C=CZ, O=IETF, OU=SACM, CN=IETF 99 Prague Hackathon CA" |
191 | 8 | Andreas Steffen | validity: not before Jul 07 08:19:08 2017, ok |
192 | 8 | Andreas Steffen | not after Jul 07 08:19:08 2027, ok (expires in 3651 days) |
193 | 8 | Andreas Steffen | serial: 3a:98:52:2e:75:a5:a5:8b |
194 | 8 | Andreas Steffen | flags: CA CRLSign self-signed |
195 | 8 | Andreas Steffen | subjkeyId: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
196 | 8 | Andreas Steffen | pubkey: ECDSA 256 bits |
197 | 8 | Andreas Steffen | keyid: 85:94:42:42:d7:40:83:17:98:72:7f:d7:6b:4a:08:51:e8:5b:e0:63 |
198 | 8 | Andreas Steffen | subjkey: 81:44:64:84:26:5f:f6:08:80:4a:c9:77:32:0e:b2:78:d0:8f:e5:84 |
199 | 9 | Andreas Steffen | </pre> |
200 | 9 | Andreas Steffen | |
201 | 9 | Andreas Steffen | h2. Install Apache Web Server |
202 | 9 | Andreas Steffen | |
203 | 9 | Andreas Steffen | An Apache web server equipped with a *Web Server Gateway Interface (WSGI)* module is installed on Ubuntu by the single command |
204 | 9 | Andreas Steffen | <pre> |
205 | 10 | Andreas Steffen | sudo apt install apache2 libapache2-mod-wsgi |
206 | 9 | Andreas Steffen | </pre> |
207 | 9 | Andreas Steffen | |
208 | 12 | Andreas Steffen | In order to secure the access to the web server we enable TLS |
209 | 12 | Andreas Steffen | <pre> |
210 | 12 | Andreas Steffen | a2enmod ssl |
211 | 12 | Andreas Steffen | </pre> |
212 | 12 | Andreas Steffen | |
213 | 9 | Andreas Steffen | h3. Configure strongTNC Virtual Web Server |
214 | 9 | Andreas Steffen | |
215 | 16 | Andreas Steffen | In the */etc/apache2/sites-available* directory create the following configuration file and name it e.g. *tnc.conf*: |
216 | 9 | Andreas Steffen | <pre> |
217 | 9 | Andreas Steffen | WSGIPythonPath /var/www/tnc |
218 | 1 | Andreas Steffen | |
219 | 12 | Andreas Steffen | <VirtualHost *:443> |
220 | 9 | Andreas Steffen | ServerName tnc.example.com |
221 | 9 | Andreas Steffen | ServerAdmin webmaster@localhost |
222 | 9 | Andreas Steffen | |
223 | 9 | Andreas Steffen | DocumentRoot /var/www/tnc |
224 | 9 | Andreas Steffen | |
225 | 9 | Andreas Steffen | <Directory /var/www/tnc/config> |
226 | 9 | Andreas Steffen | <Files wsgi.py> |
227 | 9 | Andreas Steffen | Order deny,allow |
228 | 9 | Andreas Steffen | Allow from all |
229 | 9 | Andreas Steffen | </Files> |
230 | 9 | Andreas Steffen | </Directory> |
231 | 9 | Andreas Steffen | |
232 | 9 | Andreas Steffen | WSGIScriptAlias / /var/www/tnc/config/wsgi.py |
233 | 9 | Andreas Steffen | WSGIPassAuthorization On |
234 | 1 | Andreas Steffen | |
235 | 12 | Andreas Steffen | SSLEngine on |
236 | 12 | Andreas Steffen | SSLCertificateFile /etc/swanctl/x509/serverCert.pem |
237 | 12 | Andreas Steffen | SSLCertificateKeyFile /etc/swanctl/ecdsa/serverKey.pem |
238 | 12 | Andreas Steffen | |
239 | 9 | Andreas Steffen | ErrorLog ${APACHE_LOG_DIR}/tnc/error.log |
240 | 9 | Andreas Steffen | LogLevel warn |
241 | 1 | Andreas Steffen | CustomLog ${APACHE_LOG_DIR}/tnc/access.log combined |
242 | 11 | Andreas Steffen | </VirtualHost> |
243 | 1 | Andreas Steffen | </pre> |
244 | 11 | Andreas Steffen | |
245 | 12 | Andreas Steffen | The *tnc* log directory is created with |
246 | 11 | Andreas Steffen | <pre> |
247 | 11 | Andreas Steffen | sudo mkdir /var/log/apache2/tnc |
248 | 9 | Andreas Steffen | </pre> |
249 | 9 | Andreas Steffen | |
250 | 9 | Andreas Steffen | h2. Initialize PTS Database |
251 | 9 | Andreas Steffen | |
252 | 9 | Andreas Steffen | I you haven't done so yet during the strongSwan TNC server installation, initialize the PTS SQLite database and give group "www-data" write permission: |
253 | 9 | Andreas Steffen | <pre> |
254 | 9 | Andreas Steffen | cd /usr/share/strongswan/templates/database/imv/ |
255 | 9 | Andreas Steffen | sudo cat tables.sql data.sql | sqlite3 /etc/pts/config.db |
256 | 9 | Andreas Steffen | sudo chgrp www-data /etc/pts /etc/pts/config.db |
257 | 9 | Andreas Steffen | sudo chmod g+w /etc/pts /etc/pts/config.db |
258 | 9 | Andreas Steffen | </pre> |
259 | 9 | Andreas Steffen | |
260 | 9 | Andreas Steffen | h2. Installing the strongTNC Policy Manager |
261 | 9 | Andreas Steffen | |
262 | 9 | Andreas Steffen | strongTNC is a web application based on the "Django":https://www.djangoproject.com/ framework which itself makes use of the Python scripting language. At least Django 1.8 and Python 2.6.5 are required. For the following installation and configuration steps we assume an Ubuntu Linux platform but the procedure on other Linux distributions is quite similar. |
263 | 9 | Andreas Steffen | |
264 | 9 | Andreas Steffen | h3. Install strongTNC |
265 | 9 | Andreas Steffen | |
266 | 9 | Andreas Steffen | The "strongTNC project":https://github.com/strongswan/strongTNC/ is hosted on GitHub. The latest release can be installed as follows |
267 | 9 | Andreas Steffen | <pre> |
268 | 9 | Andreas Steffen | wget https://github.com/strongswan/strongTNC/archive/master.zip |
269 | 9 | Andreas Steffen | unzip master.zip |
270 | 9 | Andreas Steffen | sudo mv strongTNC-master /var/www/tnc |
271 | 9 | Andreas Steffen | sudo chown -R www-data:www-data /var/www/tnc |
272 | 9 | Andreas Steffen | </pre> |
273 | 9 | Andreas Steffen | |
274 | 9 | Andreas Steffen | h3. Install Python/Django |
275 | 9 | Andreas Steffen | |
276 | 9 | Andreas Steffen | If not present yet, install the following Ubuntu packages |
277 | 9 | Andreas Steffen | |
278 | 9 | Andreas Steffen | <pre> |
279 | 18 | Andreas Steffen | sudo apt install python-pip python-dev libxml2-dev libxslt1-dev requests |
280 | 9 | Andreas Steffen | </pre> |
281 | 9 | Andreas Steffen | |
282 | 9 | Andreas Steffen | In the */var/www/tnc* directory execute the command |
283 | 9 | Andreas Steffen | |
284 | 9 | Andreas Steffen | <pre> |
285 | 9 | Andreas Steffen | sudo pip install -r requirements.txt |
286 | 9 | Andreas Steffen | </pre> |
287 | 9 | Andreas Steffen | |
288 | 9 | Andreas Steffen | which updates the Django version if necessary and installs various Python modules. |
289 | 9 | Andreas Steffen | |
290 | 9 | Andreas Steffen | h3. Configure strongTNC |
291 | 9 | Andreas Steffen | |
292 | 9 | Andreas Steffen | Copy *config/settings.sample.ini* to */etc/strongTNC/settings.ini* and adapt the settings to your preferences. |
293 | 9 | Andreas Steffen | <pre> |
294 | 9 | Andreas Steffen | [debug] |
295 | 15 | Andreas Steffen | DEBUG = 1 |
296 | 15 | Andreas Steffen | TEMPLATE_DEBUG = 0 |
297 | 15 | Andreas Steffen | SQL_DEBUG = 0 |
298 | 15 | Andreas Steffen | DEBUG_TOOLBAR = 0 |
299 | 9 | Andreas Steffen | |
300 | 9 | Andreas Steffen | [db] |
301 | 15 | Andreas Steffen | DJANGO_DB_URL = sqlite:////var/www/tnc/django.db |
302 | 9 | Andreas Steffen | STRONGTNC_DB_URL = sqlite:////etc/pts/config.db |
303 | 9 | Andreas Steffen | |
304 | 15 | Andreas Steffen | [paths] |
305 | 15 | Andreas Steffen | STATIC_ROOT = static |
306 | 9 | Andreas Steffen | |
307 | 9 | Andreas Steffen | [security] |
308 | 15 | Andreas Steffen | ALLOWED_HOSTS = 127.0.0.1,tnc.example.com |
309 | 15 | Andreas Steffen | CSRF_COOKIE_SECURE = 1 |
310 | 17 | Andreas Steffen | |
311 | 17 | Andreas Steffen | [localization] |
312 | 17 | Andreas Steffen | LANGUAGE_CODE = en-us |
313 | 17 | Andreas Steffen | TIME_ZONE = Etc/UTC |
314 | 17 | Andreas Steffen | |
315 | 17 | Andreas Steffen | [admins] |
316 | 17 | Andreas Steffen | Your Name: andreas.steffen@strongswan.org |
317 | 9 | Andreas Steffen | </pre> |
318 | 9 | Andreas Steffen | |
319 | 20 | Andreas Steffen | Create the django.db database where the login passwords are stored with the command |
320 | 9 | Andreas Steffen | <pre> |
321 | 9 | Andreas Steffen | sudo python /var/www/tnc/manage.py migrate --database meta |
322 | 9 | Andreas Steffen | </pre> |
323 | 9 | Andreas Steffen | |
324 | 15 | Andreas Steffen | Next set the strongTNC access passwords ("ietf99hackathon" in our example): |
325 | 9 | Andreas Steffen | <pre> |
326 | 9 | Andreas Steffen | sudo python /var/www/tnc/manage.py setpassword |
327 | 15 | Andreas Steffen | --> Please enter a new password for admin-user: ietf99hackathon |
328 | 9 | Andreas Steffen | --> Granting write_access permission. |
329 | 9 | Andreas Steffen | Looking for readonly-user in database... |
330 | 15 | Andreas Steffen | --> Please enter a new password for readonly-user: ietf99hackathon |
331 | 9 | Andreas Steffen | Passwords updated successfully! |
332 | 9 | Andreas Steffen | </pre> |
333 | 9 | Andreas Steffen | |
334 | 9 | Andreas Steffen | In order to get a correct display of the strongTNC web pages you have to execute the following command |
335 | 9 | Andreas Steffen | <pre> |
336 | 9 | Andreas Steffen | sudo python /var/www/tnc/manage.py collectstatic |
337 | 9 | Andreas Steffen | </pre> |
338 | 9 | Andreas Steffen | |
339 | 9 | Andreas Steffen | h3. Start strongTNC Virtual Web Server |
340 | 9 | Andreas Steffen | |
341 | 9 | Andreas Steffen | Now enable the virtual web server in the */etc/apache2/sites-enabled* directory and start it: |
342 | 9 | Andreas Steffen | <pre> |
343 | 9 | Andreas Steffen | cd /etc/apache2/sites-enabled |
344 | 16 | Andreas Steffen | sudo ln -s ../sites-available/tnc.conf tnc.conf |
345 | 15 | Andreas Steffen | sudo systemctl restart apache2 |
346 | 8 | Andreas Steffen | </pre> |