add keyserver ansible playbook to deploy oob keyserver [ci skip]
This commit is contained in:
parent
dd5a097855
commit
9ad93d3aa7
2 changed files with 75 additions and 0 deletions
73
modules/kubernetes/keyserver/index.md
Normal file
73
modules/kubernetes/keyserver/index.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
This contains the setup for setting up a remote machine that serves a keyfile for decrypting a luks volume
|
||||
|
||||
1. Install nginx
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt install nginx apache2-utils -y
|
||||
```
|
||||
|
||||
2. Create User for basic auth
|
||||
|
||||
```
|
||||
sudo htpasswd -c /etc/nginx/.htpasswd truenas
|
||||
```
|
||||
|
||||
3. Create secure directory and key file
|
||||
|
||||
```
|
||||
sudo mkdir -p /srv/keys
|
||||
head -c 128 /dev/urandom | sudo tee /srv/keys/truenas.key >/dev/null
|
||||
```
|
||||
|
||||
4. Create rate limit zone
|
||||
```
|
||||
# /etc/nginx/conf.d/ratelimit.conf
|
||||
|
||||
# Allow only 3 key requests per minute per IP
|
||||
limit_req_zone $binary_remote_addr zone=keylimit:10m rate=3r/m;
|
||||
```
|
||||
|
||||
5. Configure nginx virtual host
|
||||
```
|
||||
# /etc/nginx/sites-available/keyserver.conf
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name <ip address here>;
|
||||
|
||||
# TLS certificate and key (we will set these in the next step)
|
||||
ssl_certificate /etc/ssl/certs/keyserver.crt;
|
||||
ssl_certificate_key /etc/ssl/private/keyserver.key;
|
||||
|
||||
# Enforce strong TLS
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
# Rate limiting zone created earlier
|
||||
limit_req zone=keylimit burst=2 nodelay;
|
||||
|
||||
location /keys/ {
|
||||
alias /srv/keys/;
|
||||
|
||||
# Basic auth
|
||||
auth_basic "Restricted";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd;
|
||||
|
||||
# Disable directory listing
|
||||
autoindex off;
|
||||
|
||||
# Prevent caching
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0" always;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
6. Enable the host:
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/keyserver.conf /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
7. Disable default host:
|
||||
```
|
||||
sudo rm /etc/nginx/sites-enabled/default
|
||||
```
|
||||
2
modules/kubernetes/keyserver/inventory.ini
Normal file
2
modules/kubernetes/keyserver/inventory.ini
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
[keyserver]
|
||||
130.162.165.220 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_ed25519
|
||||
Loading…
Add table
Add a link
Reference in a new issue