Help me een multi-factor authenticatiesysteem implementeren op mijn Linux-server.
description
Door multi-factor authenticatie te implementeren, verbeter je de beveiliging van je server, vermindert je het risico op ongeautoriseerde toegang en bescherm je gevoelige gegevens.
prompt
try_prompt
Ik wil mijn Linux-server beveiligen door een multi-factor authenticatiesysteem (MFA) te implementeren. Geef details over mijn huidige Linux-distributie: {{linux_distributie}}, de diensten die ik wil beschermen met MFA (bijv. SSH, webapplicaties): {{diensten_te_be ... more
generate_helper
...
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een uitgebreide gids voor het beveiligen van je Ubuntu 20.04-server met multi-factor authenticatie (MFA) voor SSH met Google Authenticator:
**1. Overzicht van je situatie**
- **Distributie:** Ubuntu 20.04
- **Te beveiligen diensten:** SSH
- **Voorkeur MFA-methode:** Google Authenticator (tijdgebaseerde eenmalige wachtwoorden, TOTP)
---
**2. Aanbevolen tools en pakketten**
- `libpam-google-authenticator` — PAM-module voor Google Authenticator
- `google-authenticator` CLI-tool voor gebruikersconfiguratie
---
**3. Installatie en configuratie**
**Stap 1: Update je systeem**
```bash
sudo apt update
sudo apt upgrade -y
```
**Stap 2: Installeer de Google Authenticator PAM-module**
```bash
sudo apt install libpam-google-authenticator
```
**Stap 3: Configureer elke gebruiker die MFA moet gebruiken**
1. Log in als de gebruiker (of gebruik `sudo -u <gebruiker>`) en voer het commando uit:
```bash
google-authenticator
```
2. Volg de prompts:
- Bevestig dat je beveiligingscodes wilt genereren.
- Kies of je de codes via SMS wilt ontvangen (niet nodig, want we gebruiken TOTP).
- Bevestig dat je de QR-code wilt scannen met je Google Authenticator app.
- Noteer de geheime code en bewaar deze veilig.
- Beantwoord de vragen over herhaalde codes, limieten, etc.
**Stap 4: Pas de PAM-configuratie aan**
1. Open `/etc/pam.d/sshd`:
```bash
sudo nano /etc/pam.d/sshd
```
2. Voeg onderaan de regel toe:
```
auth required pam_google_authenticator.so
```
**Stap 5: Configureer SSH voor MFA**
1. Open `/etc/ssh/sshd_config`:
```bash
sudo nano /etc/ssh/sshd_config
```
2. Zorg dat de volgende opties correct staan:
```
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive
```
- Als je alleen MFA wilt gebruiken (geen enkele andere methode), kun je `AuthenticationMethods` aanpassen naar:
```
AuthenticationMethods publickey,keyboard-interactive
```
of
```
AuthenticationMethods keyboard-interactive
```
3. Herstart SSH:
```bash
sudo systemctl restart sshd
```
---
**4. Gebruikersinterface en gebruik**
- Bij elke SSH-inlogpoging wordt nu gevraagd om de MFA-code na de authenticatie met je SSH-sleutel of wachtwoord.
- Open je Google Authenticator app op je smartphone om het gegenereerde TOTP-code te gebruiken.
---
**5. Extra best practices**
- **Back-up codes:** Genereer en bewaar back-up codes voor noodgevallen.
- **Veiligheid:** Beperk SSH-toegang tot specifieke IP-adressen indien mogelijk.
- **Beheer:** Overweeg het gebruik van `fail2ban` voor extra bescherming tegen brute-force aanvallen.
- **Logging:** Controleer `/var/log/auth.log` regelmatig op verdachte activiteiten.
- **Testen:** Test je configuratie grondig voordat je je sessie sluit, om te voorkomen dat je jezelf buitensluit.
---
**6. Toekomstige uitbreidingen**
- Overweeg MFA voor andere diensten zoals webapplicaties via OAuth of TOTP-integraties.
- Voor meer geavanceerde MFA-oplossingen, kijk naar tools zoals `FreeIPA` of `Keycloak`.
---
**Samenvatting**
Door de installatie van `libpam-google-authenticator`, het configureren van PAM en SSH, en het gebruiken van de Google Authenticator app, versterk je de beveiliging van je Linux-server effectief. Zorg dat je alles test en back-ups hebt van je MFA-instellingen.
Mocht je verdere hulp nodig hebben bij specifieke configuraties of vragen, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Zeker, hier is een gedetailleerd plan voor het implementeren van multi-factor authenticatie (MFA) voor SSH op uw Ubuntu 20.04 server met Google Authenticator:
### Aanbevolen Tool: Google Authenticator PAM Module
De meest geschikte oplossing voor uw vereisten is de `libpam-google-authenticator` package. Dit integreert naadloos met Ubuntu's PAM (Pluggable Authentication Modules) systeem.
### Configuratiestappen
#### 1. Installatie
```bash
sudo apt update
sudo apt install libpam-google-authenticator
```
#### 2. Google Authenticator Configureren per Gebruiker
Voer voor elke gebruiker die MFA nodig heeft uit:
```bash
google-authenticator
```
Volg de interactieve setup:
- **QR Code**: Scan met Google Authenticator app
- **Emergency codes**: Bewaar deze veilig als backup
- Beantwoord vragen met:
- "Do you want authentication tokens to be time-based?" → **y**
- Update ~/.google_authenticator? → **y**
- Disallow multiple uses? → **y**
- Increase time window? → **n**
- Enable rate-limiting? → **y**
#### 3. PAM Configuratie
Bewerk het SSH PAM configuratiebestand:
```bash
sudo nano /etc/pam.d/sshd
```
Voeg toe boven aan het bestand:
```
auth required pam_google_authenticator.so
```
#### 4. SSH Server Configuratie
Bewerk de SSH configuratie:
```bash
sudo nano /etc/ssh/sshd_config
```
Zorg dat deze instellingen aanwezig zijn:
```
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive
```
#### 5. Herstart SSH Service
```bash
sudo systemctl restart sshd
```
### Test de Configuratie
**Belangrijk**: Houd een actieve SSH-sessie open tijdens het testen!
1. Open een nieuwe terminal
2. Probeer opnieuw in te loggen
3. U zou nu moeten zien: "Verification code:"
4. Voer de code uit uw Google Authenticator app in
### Best Practices en Aanbevelingen
#### 1. Backup Strategie
- Bewaar emergency codes op een veilige plaats
- Exporteer/secondeer QR-codes voor nieuwe devices
#### 2. Beveiliging
```bash
# Beveilig het configuratiebestand
chmod 600 ~/.google_authenticator
```
#### 3. Fallback Opties
- Houd minstens één backup-gebruikersaccount zonder MFA (alleen SSH key)
- Of configureer een bastion host met beperkte toegang
#### 4. Monitoring
```bash
# Monitor authenticatiepogingen
sudo tail -f /var/log/auth.log
```
#### 5. Onderhoud
- Regelmatig backups van .google_authenticator bestanden
- Test MFA werking na systeemupdates
### Troubleshooting Tips
- **Blokkeert login**: Gebruik je open SSH-sessie om configuratie aan te passen
- **Time sync issues**: `sudo apt install ntp`
- **Verkeerde code**: Controleer tijd synchronisatie op server en telefoon
### Alternatieve Opties (indien gewenst)
- **Authy**: Vergelijkbare TOTP-functionaliteit
- **Duo Security**: Enterprise-oplossing met meer features
- **Yubico OTP**: Hardware security keys
### Belangrijke Veiligheidsaanbevelingen
1. **Altijd SSH keys blijven gebruiken** als eerste factor
2. **Schakel wachtwoordauthenticatie uit** in sshd_config:
```
PasswordAuthentication no
```
3. **Gebruik fail2ban** voor extra beveiliging:
```bash
sudo apt install fail2ban
```
Deze configuratie biedt een robuuste twee-factor authenticatie waarbij gebruikers zowel hun SSH key als een tijdgebonden code nodig hebben voor toegang tot uw server.

