Zeile 3: |
Zeile 3: |
| cert_client: Rechner, auf den die Zertifikate übertragen werden. | | cert_client: Rechner, auf den die Zertifikate übertragen werden. |
| | | |
− | ==Cert_master== | + | ==cert_master== |
| | | |
| ===Software besorgen/installieren:=== | | ===Software besorgen/installieren:=== |
Zeile 218: |
Zeile 218: |
| cp $CHAINFILE /home/cert/$DOMAIN/ | | cp $CHAINFILE /home/cert/$DOMAIN/ |
| | | |
− | chmod 500 $(find /home/cert -mindepth 1 -type d ) | + | chmod 750 $(find /home/cert -mindepth 1 -type d ) |
− | chmod 400 $(find /home/cert -mindepth 1 -type f ) | + | chmod 740 $(find /home/cert -mindepth 1 -type f ) |
− | chown cert.cert -R /home/cert/* | + | chown root.cert -R /home/cert/* |
| | | |
| # cleanup unused cert files | | # cleanup unused cert files |
Zeile 272: |
Zeile 272: |
| </source> | | </source> |
| | | |
− | ==SSH konfigurieren== | + | ===Transferbenutzer anlegen=== |
| | | |
− | /etc/ssh/sshd_config: Hier wird /etc/ssh/authorized_keys_local als zusätzliche Quelle für erlaubte public keys hinzugefügt. | + | Dieser Benutzer wird verwendet als Transferbenutzer zwischen cert_master und cert_client |
| + | |
| + | <source lang=bash inline> adduser --home /home/cert --disabled-login -gecos "" cert</source> |
| + | |
| + | ===SSH konfigurieren=== |
| + | |
| + | '''/etc/ssh/sshd_config''': Hier wird /etc/ssh/authorized_keys_local als zusätzliche Quelle für erlaubte public keys hinzugefügt. |
| <source lang=bash> | | <source lang=bash> |
| AuthorizedKeysFile %h/.ssh/authorized_keys /etc/ssh/authorized_keys_local | | AuthorizedKeysFile %h/.ssh/authorized_keys /etc/ssh/authorized_keys_local |
| </source> | | </source> |
| | | |
− | /etc/ssh/sshd_config: Hier wird ein chroot jail für den Zertifikatsuser eingerichtet, so dass ein geleakter private key kein manipulieren des Cert_master zulässt. Die Permissions von /home/cert (wie gesetzt in hooks.sh) verhindern ein überschreiben der Zertifikate, internal-sftp erlaubt nur sftp über die Verbindung. | + | '''/etc/ssh/sshd_config''': Hier wird ein chroot jail für den Zertifikatsuser eingerichtet, so dass ein geleakter private key kein manipulieren des cert_master zulässt. Die Permissions von /home/cert (wie gesetzt in hooks.sh) verhindern ein überschreiben der Zertifikate, internal-sftp erlaubt nur sftp über die Verbindung. |
| <source lang=bash> | | <source lang=bash> |
| Match User cert | | Match User cert |
Zeile 289: |
Zeile 295: |
| </source> | | </source> |
| | | |
− | /etc/ssh/authorized_keys_local: Hier kommen alle public keys von hosts rein, die Zertifikate abrufen wollen. | + | '''/etc/ssh/authorized_keys_local''': Hier kommen alle public keys von hosts rein, die Zertifikate abrufen wollen. |
| + | |
| + | ===Cron=== |
| + | |
| + | Das script in cron.daily läuft einmal täglich (wann wird bestimmt von Debian). Dann werden neue Zertifikate abgerufen und alte erneuert. |
| + | '''/etc/cron.daily/ssl_certs''': dehydrated wird aufgerufen und stdout wird verworfen. Stderr wird über cron per mail weiter gegeben. |
| + | <source lang=bash> |
| + | #!/bin/bash |
| + | |
| + | dehydrated -c -g -f /etc/dehydrated/config > /dev/null |
| + | </source> |
| + | |
| + | ==cert_client== |
| + | |
| + | ==SSH kofigurieren== |