ipsec
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| ipsec [2017/02/27 16:25] – [Teorie] djbuldog | ipsec [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 34: | Řádek 34: | ||
| * Možnosti autentizace | * Možnosti autentizace | ||
| * Veřejným klíčem | * Veřejným klíčem | ||
| - | * RSA nebo X.509 | + | * RSA nebo certifikát |
| * Sdíleným klíčem (PSK) - textový řetězec | * Sdíleným klíčem (PSK) - textový řetězec | ||
| * Extensible Authentication Protocol (EAP) | * Extensible Authentication Protocol (EAP) | ||
| Řádek 45: | Řádek 45: | ||
| * určen primárně pro autentizaci přes login | * určen primárně pro autentizaci přes login | ||
| - | * Internet Key Exchange | + | * Internet Key Exchange |
| * slouží k ustanovení SA | * slouží k ustanovení SA | ||
| + | * typicky se přes IKE ustanoví prvotní řídící SA | ||
| + | * následně se vytváří další child-SA pro vlastní komunikaci (například oddělené tunely) | ||
| * aktuálně existují dvě verze: IKEv1, IKEv2 | * aktuálně existují dvě verze: IKEv1, IKEv2 | ||
| * naslouchá na portu UDP/500 | * naslouchá na portu UDP/500 | ||
| Řádek 52: | Řádek 54: | ||
| * fáze 1 | * fáze 1 | ||
| - | * vytváří prvotní | + | * vytváří prvotní Security Association (SA) |
| * dohoda na velikosti klíčů, šifrovacím alg, hash funkci, platnosti klíče | * dohoda na velikosti klíčů, šifrovacím alg, hash funkci, platnosti klíče | ||
| * vygenerování klíče - každá strana pošle vygenerované číslo, k němu se přidá tajné sdílené a výsledek je klíč | * vygenerování klíče - každá strana pošle vygenerované číslo, k němu se přidá tajné sdílené a výsledek je klíč | ||
| Řádek 59: | Řádek 61: | ||
| * existují dva režimy | * existují dva režimy | ||
| * **Main mode** - chrání identitu komunikujicích uzlů | * **Main mode** - chrání identitu komunikujicích uzlů | ||
| - | * **Aggressive mode** - zjednodušený main mode, nechrání identitu | + | * **Aggressive mode** - zjednodušený main mode, nechrání identitu |
| * fáze 2 | * fáze 2 | ||
| * **Quick mode** | * **Quick mode** | ||
| - | * vytvaří Security Associations pro jiné služby | + | * vytvaří |
| * u Cisca se označuje jako IPsec | * u Cisca se označuje jako IPsec | ||
| * u Openswan jako Klips | * u Openswan jako Klips | ||
| Řádek 81: | Řádek 83: | ||
| ==== IKEv2 ==== | ==== IKEv2 ==== | ||
| + | * fáze navazování spojení jsou obdobné | ||
| * **NAT-T** | * **NAT-T** | ||
| * umožňuje průchod přes dynamický NAT jako Masquerade | * umožňuje průchod přes dynamický NAT jako Masquerade | ||
| Řádek 103: | Řádek 106: | ||
| ===== Strongswan prakticky ===== | ===== Strongswan prakticky ===== | ||
| - | * podle [[https:// | ||
| * nainstalovat balíček strongswan (nevyžaduje žádné speciální kernel moduly) | * nainstalovat balíček strongswan (nevyžaduje žádné speciální kernel moduly) | ||
| - | | + | |
| - | * **ipsec.conf** - definice tunelů a globálních nastavení | + | ==== Verze od 5.2.0 ==== |
| + | |||
| + | | ||
| + | * konfigurace | ||
| + | * klíče, certifikáty a CA se vkládají do podadresářů ve složce | ||
| + | |||
| + | * stále lze používat starší konfigurační soubory i binárky popsané u předchozí verze, dokonce současně s novými (některé spojení starým způsobem, některé novým) | ||
| + | |||
| + | * služba se spouští pořád stejně přes | ||
| + | * přes systemd (systemctl start/stop strongswan) | ||
| + | * přímo zavoláním binárky strongswan start (na Debian ipsec start) | ||
| + | |||
| + | * místo left/right se v konciguraci používá local/ | ||
| + | * po změně konfigurace je nejprve potřeba zavolat načtení '' | ||
| + | |||
| + | * IPSec spojení (child-SA) lze ručně zapnout/ | ||
| + | * '' | ||
| + | * narozdíl od starší verze jsou child-SA pojmenované a každý lze spustit jen jednou | ||
| + | < | ||
| + | swanctl --initiate --child < | ||
| + | swanctl --terminate --child < | ||
| + | </ | ||
| + | |||
| + | * definovaná spojení (SA) se vypíšou příkazem '' | ||
| + | * aktivní SA se zjišťují příkazem '' | ||
| + | * aktivutu SA lze sledovat přes '' | ||
| + | |||
| + | ==== Verze před 5.2.0 ==== | ||
| + | |||
| + | * konfiguruje se úpravou tří souborů | ||
| + | * **ipsec.conf** - definice | ||
| * **ipsec.secrets** - definice hesel k šifrovacím klíčům a případné uživatelské účty (EAP). Musí zde být uvedeny také všechny používané privátní širfrovací klíče, aby je strongswan našel. | * **ipsec.secrets** - definice hesel k šifrovacím klíčům a případné uživatelské účty (EAP). Musí zde být uvedeny také všechny používané privátní širfrovací klíče, aby je strongswan našel. | ||
| * **strongswan.conf** - zatím jsem nikdy nepoužil :) | * **strongswan.conf** - zatím jsem nikdy nepoužil :) | ||
| + | * případné klíče, certifikáty nebo důvěryhodné CA se umísťují do podadresáře private, certs a cacerts | ||
| + | * na Debian je konfigurační adresář /etc/ipsec, na CentOS / | ||
| - | | + | * při [[https:// |
| - | * na CentOS je hlavní binárka nazvaná '' | + | |
| - | + | ||
| - | | + | |
| * IPsec by měl sám poznat, zda je left nebo right na zákldě znalosti lokálního prostředí | * IPsec by měl sám poznat, zda je left nebo right na zákldě znalosti lokálního prostředí | ||
| * lepší je ale cfg tvorit tak, že left je strana lokální a right vzdálená | * lepší je ale cfg tvorit tak, že left je strana lokální a right vzdálená | ||
| - | * vygenerovat klíče/ | + | |
| + | * přes systemd ('' | ||
| + | * přímo zavoláním binárky '' | ||
| + | * měl by se používat jen jeden způsob - na CentOS mi systemd neuměl zastavit strongswan spuštěný přímo | ||
| + | |||
| + | * IPSec spojení lze ručně zapnout/ | ||
| + | * pozor: pokud se příkaz '' | ||
| + | * Informace o definovaných a navázaných spojení se zobrazí příkazem '' | ||
| + | |||
| + | ==== Příklad IPsec serveru pro Windows 7 ==== | ||
| + | |||
| + | * podle [[https:// | ||
| + | | ||
| * **Self signed root CA** - certifikační autorita pro generování certifikátů (pokud ještě nemáme) | * **Self signed root CA** - certifikační autorita pro generování certifikátů (pokud ještě nemáme) | ||
| * **VPN Host key** - používá se k identifikaci serveru u klientů. Musí prý v DN (Distinguished Name) nebo SAN (subject Alternative Name) obsahovat IP adresu nebo doménové jméno stroje. V opačném případě nemusí být akceptován. | * **VPN Host key** - používá se k identifikaci serveru u klientů. Musí prý v DN (Distinguished Name) nebo SAN (subject Alternative Name) obsahovat IP adresu nebo doménové jméno stroje. V opačném případě nemusí být akceptován. | ||
| Řádek 138: | Řádek 181: | ||
| ==== Poznámky, Tipy, FAQ ==== | ==== Poznámky, Tipy, FAQ ==== | ||
| + | |||
| + | === Ladění === | ||
| + | |||
| + | * prohlédnout logy '' | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | * důležitá je kontrola výskytu řetězce "has priv key" | ||
| + | < | ||
| + | pubkey: | ||
| + | </ | ||
| + | |||
| + | === Obnova tunelu === | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | < | ||
| + | auto=route | ||
| + | dpdaction=restart | ||
| + | </ | ||
| === Průchod IPsec jádrem === | === Průchod IPsec jádrem === | ||
| Řádek 145: | Řádek 207: | ||
| * odchozí IPsec pakety pouze zabalené (šifrované) | * odchozí IPsec pakety pouze zabalené (šifrované) | ||
| - | * iptables umí pracovat s IPsec pakety zabalenými i rozbalenými | + | * iptables umí pracovat s IPsec pakety zabalenými i rozbalenými |
| < | < | ||
| iptables -t filter -I OUTPUT -p esp -j DROP | iptables -t filter -I OUTPUT -p esp -j DROP | ||
| Řádek 156: | Řádek 218: | ||
| </ | </ | ||
| - | * IPsec je implementován přes kernel xfrm | + | * IPsec je implementován přes kernel xfrm, přes iptables prochází 2x ([[http:// |
| === Virtuální IP adresy === | === Virtuální IP adresy === | ||
ipsec.1488209106.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
