Provide documenation
This commit is contained in:
parent
f1cb7486a5
commit
e8ef744f59
3 changed files with 258 additions and 0 deletions
27
doc/exam_mode.md
Normal file
27
doc/exam_mode.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# exam_mode
|
||||
|
||||
## Description / use cases
|
||||
|
||||
Activating exam_mode provides following functionalities:
|
||||
* when -exam user logs in, firewalld.service will start and prevent communication between devices in the same local network
|
||||
* home- and media-directory of -exam users will be renamed (on the next day) and removed (after some days).\
|
||||
This is important due the fact, that -exam user will be new created (with new user-id) on exam-mode initialisation.\
|
||||
Without renaming/deleting the home- and media-directory, the -exam user couldn't log in twice on the same pc.\
|
||||
Particularly important on machines with localhome
|
||||
|
||||
## Requirements
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
Per default, all hosts will get exam_mode. But we don't want exam_mode on teacher devices
|
||||
|
||||
inventory.yml
|
||||
```
|
||||
teacherdevices:
|
||||
hosts:
|
||||
10.0.14.[1..75]
|
||||
vars:
|
||||
exam_mode: false
|
||||
```
|
45
doc/vm_support.md
Normal file
45
doc/vm_support.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# VM support
|
||||
|
||||
lmn_client provides scripts to
|
||||
* create
|
||||
* modify
|
||||
* distribute
|
||||
* run
|
||||
|
||||
VMs based on Qemu/KVM in school network.
|
||||
|
||||
## Requirements
|
||||
|
||||
* For distribution of VMs, you have to run a `seedbox` with aria2 server (torrent server).\
|
||||
Repository with ansible-playbook for seedbox install: https://codeberg.org/digitalsouveraeneschule/...
|
||||
* `seedbox`-hostname must be resolvable via DNS
|
||||
|
||||
## Activation / Default
|
||||
|
||||
### To enable VM support:
|
||||
|
||||
```
|
||||
vm_support: true
|
||||
```
|
||||
|
||||
Default: `vm_support: false
|
||||
|
||||
### Torrent Server
|
||||
```
|
||||
torrent_srv: "myseedbox.linuxmuster.net"
|
||||
```
|
||||
|
||||
Default: `torrent_srv: "seedbox.{{ domain }}"`
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
Enable VM support on all clients.
|
||||
|
||||
inventory.yml
|
||||
```
|
||||
all:
|
||||
vars:
|
||||
vm_support: true
|
||||
torrent_srv: "myseedbox.linuxmuster.net" # default: seedbox.{{ domain }}
|
||||
```
|
186
doc/wlan.md
Normal file
186
doc/wlan.md
Normal file
|
@ -0,0 +1,186 @@
|
|||
# WLAN support
|
||||
|
||||
Supported modes authenticating via WLAN:
|
||||
|
||||
* **WPA-Personal** (WPA-PSK)\
|
||||
authentication via preshared key (psk)
|
||||
* **WPA-Enterprise** (WPA-802.1x) with **EAP-TLS**\
|
||||
authentication via client certificates (eap-tls)
|
||||
|
||||
Which method is used is determined by the variable `wlan`
|
||||
|
||||
Choices:
|
||||
* `"none"` <- (default)
|
||||
* `"psk"`
|
||||
* `"eap-tls"`
|
||||
|
||||
## WPA-Personal
|
||||
|
||||
### Requirements
|
||||
|
||||
WLAN with configured WPA-Personal (WPA-PSK)
|
||||
|
||||
### Configuration / Variables
|
||||
|
||||
* **wlan**
|
||||
Authentication mode
|
||||
Type: *String*
|
||||
Values:
|
||||
* "none" <-- (default)
|
||||
* "psk" <-- set to use WPA-Personal
|
||||
* "eap-tls"
|
||||
* **wlan_ssid**
|
||||
SSID of used WLAN
|
||||
Type: *String*
|
||||
* **wlan_password**
|
||||
Password of WLAN. Only for `wlan: "psk"`
|
||||
Type: *String*
|
||||
|
||||
### Examples
|
||||
|
||||
#### One class of devices with wlan access
|
||||
|
||||
inventory.yml
|
||||
```yaml
|
||||
laptop:
|
||||
hosts:
|
||||
10.0.13.[1-28]:
|
||||
vars:
|
||||
wlan: "psk"
|
||||
wlan_ssid: "devicesPSK"
|
||||
wlan_password: "topsecretpasswd"
|
||||
```
|
||||
|
||||
#### Two device classes with different wlan access
|
||||
|
||||
inventory.yml
|
||||
```yaml
|
||||
laptop_students:
|
||||
hosts:
|
||||
10.0.13.[1-28]:
|
||||
vars:
|
||||
wlan: "psk"
|
||||
wlan_ssid: "Students"
|
||||
wlan_password: "topsecretpasswd1"
|
||||
laptop_teachers:
|
||||
hosts:
|
||||
10.0.23.[1-82]:
|
||||
vars:
|
||||
wlan: "psk"
|
||||
wlan_ssid: "Teachers"
|
||||
wlan_password: "topsecretpasswd2"
|
||||
```
|
||||
|
||||
## WPA-Enterprise with EAP-TLS
|
||||
|
||||
Authentication is based on individual certificates, which will be automaticaly created on the radius server.
|
||||
Every devices gets his own certificate. When creating new certificates, the old one will be revoked.
|
||||
|
||||
### Requirements
|
||||
|
||||
* You need to run a freeradius server. For installation see https://codeberg....
|
||||
* The user, running this playbook, must have access to the radius-Server via ssh.
|
||||
|
||||
### Configuration / Variables
|
||||
|
||||
* **wlan**
|
||||
Authentication mode
|
||||
Type: *String*
|
||||
Values:
|
||||
* "none" <-- (default)
|
||||
* "psk"
|
||||
* "eap-tls" <-- set to use WPA Enterprise with EAP-TLS
|
||||
* **wlan_ssid**
|
||||
SSID of used WLAN
|
||||
Type: *String*
|
||||
* **wlan_eap_ca**
|
||||
CA data for certs and crl
|
||||
Type: *Dictionary of Strings*
|
||||
Keys:
|
||||
* C <-- default: "DE"
|
||||
* ST <-- default: "Baden-Wuerttemberg"
|
||||
* L <-- default: "Reutlingen"
|
||||
* O <-- default: "Linuxschule"
|
||||
* emailAddress <-- default: "admin@example.com"
|
||||
* CN <-- default: "Radius Certificate Authority"
|
||||
* password <-- default: "OtherVerySecurePassw0rd"
|
||||
* **wlan_force_issue**
|
||||
Force to issue a new certificate
|
||||
Only for `wlan: "eap-tls"`
|
||||
Type: *Bolean*
|
||||
Values:
|
||||
* true
|
||||
* false <-- (default)
|
||||
|
||||
### Examples
|
||||
|
||||
inventory.yml:
|
||||
```yaml
|
||||
infrastructure:
|
||||
hosts:
|
||||
radius_server:
|
||||
ansible_host: 10.0.0.15
|
||||
ansible_user: ansible
|
||||
laptop:
|
||||
vars:
|
||||
wlan: "eap-tls"
|
||||
wlan_ssid: "devices8021x"
|
||||
wlan_eap_ca:
|
||||
C: "DE"
|
||||
ST: "Baden-Wuerttemberg"
|
||||
L: "Reutlingen"
|
||||
O: "Linuxschule"
|
||||
emailAddress: "admin@example.com"
|
||||
CN: "Radius Certificate Authority"
|
||||
password: "secret4radiusCA"
|
||||
```
|
||||
|
||||
## complex example with both modes
|
||||
|
||||
We have three groups of devices (one with psk, two with eap-tls):
|
||||
|
||||
inventory.yml
|
||||
```yaml
|
||||
all:
|
||||
vars:
|
||||
wlan_ssid: "WLAName" # teacher and staff are using the same ssid
|
||||
radiusca_password: "secret4radiusCA"
|
||||
country_name: "DE"
|
||||
state_or_province_name: "Baden-Württemberg"
|
||||
locality_name: "Stuttgart"
|
||||
organization_name: "Baumschule"
|
||||
admin_email: "admin@example.com"
|
||||
|
||||
infrastructure:
|
||||
hosts:
|
||||
radius_server:
|
||||
ansible_host: 10.0.0.15
|
||||
ansible_user: ansible
|
||||
|
||||
laptop_students:
|
||||
hosts:
|
||||
10.0.13.[1-28]:
|
||||
vars:
|
||||
wlan: "psk"
|
||||
wlan_ssid: "Students" # ssid "WLAN" from group "all" will be overwritten
|
||||
wlan_password: "topsecretpasswd"
|
||||
laptop_teachers:
|
||||
hosts:
|
||||
10.0.23.[1-82]:
|
||||
vars:
|
||||
wlan: "eap-tls"
|
||||
laptop_staff:
|
||||
hosts:
|
||||
10.0.61.[1-20]:
|
||||
vars:
|
||||
wlan: "eap-tls"
|
||||
```
|
||||
|
||||
## example: Force issue of new certs
|
||||
|
||||
The issue of certificates can be forced.
|
||||
|
||||
Force issue of new certs for hosts in group laptop_teacher.
|
||||
If there is a valid certificate, the old one will be revoked and a new certificate will be issued.
|
||||
|
||||
ansible-playbook -i myinventory.yml -l laptop_teachers lmn-client.yml -e "wlan_force_issue=true"
|
Loading…
Add table
Reference in a new issue