Różnice między wybraną wersją a wersją aktualną.
Nowa wersja | Poprzednia wersja | ||
notatki:security_ipsec [2025/06/14 19:28] – utworzono administrator | notatki:security_ipsec [2025/06/14 20:46] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ====== IPsec ====== | + | ====== |
===== Instalacja oprogramowania ===== | ===== Instalacja oprogramowania ===== | ||
Linia 21: | Linia 21: | ||
==== Modyfikacja plików konfiguracyjnych ==== | ==== Modyfikacja plików konfiguracyjnych ==== | ||
- | |||
- | plik setkey.conf_a_ :\\ | ||
<code txt setkey.conf_a_> | <code txt setkey.conf_a_> | ||
# | # | ||
Linia 41: | Linia 39: | ||
</ | </ | ||
- | plik setkey.conf_b_ :\\ | ||
<code txt setkey.conf_b_> | <code txt setkey.conf_b_> | ||
# | # | ||
Linia 64: | Linia 61: | ||
Na maszynie a:\\ | Na maszynie a:\\ | ||
<code bash> | <code bash> | ||
- | sudo setkey -f setkey.conf_a_ | + | administrator@ipsec-A: |
- | sudo setkey -D | + | administrator@ipsec-A: |
- | sudo setkey -DP | + | 172.20.252.198 172.20.253.237 |
+ | esp mode=transport spi=8192(0x00002000) reqid=0(0x00000000) | ||
+ | E: aes-cbc | ||
+ | seq=0x00000000 replay=0 flags=0x00000000 state=mature | ||
+ | created: Jun 14 19:29:57 2025 | ||
+ | diff: 4(s) hard: 0(s) soft: 0(s) | ||
+ | last: hard: 0(s) soft: 0(s) | ||
+ | current: 0(bytes) | ||
+ | allocated: 0 hard: 0 soft: 0 | ||
+ | sadb_seq=1 pid=13464 refcnt=0 | ||
+ | 172.20.253.237 172.20.252.198 | ||
+ | esp mode=transport spi=4096(0x00001000) reqid=0(0x00000000) | ||
+ | E: aes-cbc | ||
+ | seq=0x00000000 replay=0 flags=0x00000000 state=mature | ||
+ | created: Jun 14 19:29:57 2025 | ||
+ | diff: 4(s) hard: 0(s) soft: 0(s) | ||
+ | last: hard: 0(s) soft: 0(s) | ||
+ | current: 0(bytes) | ||
+ | allocated: 0 hard: 0 soft: 0 | ||
+ | sadb_seq=0 pid=13464 refcnt=0 | ||
+ | administrator@ipsec-A: | ||
+ | 172.20.252.198[any] 172.20.253.237[any] 255 | ||
+ | fwd prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:29:57 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=82 seq=1 pid=13511 | ||
+ | refcnt=1 | ||
+ | 172.20.252.198[any] 172.20.253.237[any] 255 | ||
+ | in prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:29:57 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=72 seq=2 pid=13511 | ||
+ | refcnt=1 | ||
+ | 172.20.253.237[any] 172.20.252.198[any] 255 | ||
+ | out prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:29:57 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=65 seq=3 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=59 seq=4 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=52 seq=5 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=43 seq=6 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=36 seq=7 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=27 seq=8 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=20 seq=9 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=11 seq=10 pid=13511 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 19:18:30 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=4 seq=0 pid=13511 | ||
+ | refcnt=1 | ||
+ | administrator@ipsec-A: | ||
</ | </ | ||
Linia 72: | Linia 160: | ||
Na maszynie b:\\ | Na maszynie b:\\ | ||
<code bash> | <code bash> | ||
- | sudo setkey -f setkey.conf_b_ | + | administrator@ipsec-B: |
- | sudo setkey -D | + | administrator@ipsec-B: |
- | sudo setkey -DP | + | 172.20.252.198 172.20.253.237 |
+ | esp mode=transport spi=8192(0x00002000) reqid=0(0x00000000) | ||
+ | E: aes-cbc | ||
+ | seq=0x00000000 replay=0 flags=0x00000000 state=mature | ||
+ | created: Jun 14 19:31:00 2025 | ||
+ | diff: 15(s) hard: 0(s) soft: 0(s) | ||
+ | last: hard: 0(s) soft: 0(s) | ||
+ | current: 0(bytes) | ||
+ | allocated: 0 hard: 0 soft: 0 | ||
+ | sadb_seq=1 pid=32009 refcnt=0 | ||
+ | 172.20.253.237 172.20.252.198 | ||
+ | esp mode=transport spi=4096(0x00001000) reqid=0(0x00000000) | ||
+ | E: aes-cbc | ||
+ | seq=0x00000000 replay=0 flags=0x00000000 state=mature | ||
+ | created: Jun 14 19:31:00 2025 | ||
+ | diff: 15(s) hard: 0(s) soft: 0(s) | ||
+ | last: hard: 0(s) soft: 0(s) | ||
+ | current: 0(bytes) | ||
+ | allocated: 0 hard: 0 soft: 0 | ||
+ | sadb_seq=0 pid=32009 refcnt=0 | ||
+ | administrator@ipsec-B: | ||
+ | 172.20.252.198[any] 172.20.253.237[any] 255 | ||
+ | out prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:31:00 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=17 seq=1 pid=32078 | ||
+ | refcnt=1 | ||
+ | 172.20.253.237[any] 172.20.252.198[any] 255 | ||
+ | fwd prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:31:00 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=10 seq=2 pid=32078 | ||
+ | refcnt=1 | ||
+ | 172.20.253.237[any] 172.20.252.198[any] 255 | ||
+ | in prio def ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 19:31:00 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=8 seq=0 pid=32078 | ||
+ | refcnt=1 | ||
+ | administrator@ipsec-B: | ||
</ | </ | ||
+ | |||
+ | ===== Test Działania tunelu ===== | ||
+ | |||
+ | ==== Wykonanie ping z maszyny A do B i obserwacja nagłówka ESP ==== | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ===== Pytania ===== | ||
+ | |||
+ | ==== Jaki ruch zabezpieczony jest tunelem IPSec? ==== | ||
+ | |||
+ | Ruch IP pomiędzy maszynami A (172.20.253.237) i B (172.20.252.198) – każdy protokół (any) zdefiniowany w SPD. | ||
+ | |||
+ | ==== Jaki protokół IPSec jest używany? Jakie algorytmy? ==== | ||
+ | |||
+ | * Protokół: ESP | ||
+ | * Algorytm szyfrowania: | ||
+ | * Usługi: Szyfrowanie (brak autentykacji w tym przykładzie) | ||
+ | |||
+ | ==== Rola SAD i SPD: ==== | ||
+ | |||
+ | * SAD: Przechowuje parametry SA (klucze, algorytmy, SPI) | ||
+ | * SPD: Przechowuje polityki bezpieczeństwa (który ruch ma być zabezpieczony i jak) | ||
+ | |||
+ | ==== Które komendy są przetwarzane dla ruchu wychodzącego/ | ||
+ | |||
+ | * Dla pakietów wychodzących – '' | ||
+ | * Dla pakietów przychodzących – '' | ||
+ | |||
+ | ==== Dlaczego potrzebne są dwie SA? ==== | ||
+ | |||
+ | SA są jednokierunkowe – jedna dla A → B, druga dla B → A, aby zabezpieczyć dwukierunkowy kanał. | ||
+ | |||
+ | ==== Znaczenie komend '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== Jakie jest przeznaczenie pola SPI w nagłówku IPSec? ==== | ||
+ | |||
+ | SPI (Security Parameter Index) to unikalny identyfikator asocjacji bezpieczeństwa (SA), który pozwala odbiorcy zidentyfikować, | ||
+ | |||
+ | ==== Jakie jest przeznaczenie pola Sequence Number w nagłówku IPSec? ==== | ||
+ | |||
+ | Sequence Number służy do zapobiegania atakom typu replay. Numer rośnie monotonicznie dla każdego pakietu, co pozwala sprawdzić, czy pakiety nie zostały powtórzone. | ||
+ | |||
+ | ===== Modyfikacja polityk IPSec i SA ===== | ||
+ | |||
+ | ==== ESP z AES-CBC + HMAC-SHA1 ==== | ||
+ | |||
+ | <code bash setkey.conf_a_> | ||
+ | # | ||
+ | |||
+ | ## maszyna A (172.20.253.237) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA: A->B | ||
+ | add 172.20.253.237 172.20.252.198 esp 0x1000 -E aes-cbc 0xaa223344556677889900aabbccddeeff -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | ## SA: B->A | ||
+ | add 172.20.252.198 172.20.253.237 esp 0x2000 -E aes-cbc 0xbb223344556677889900aabbccddeeff -A hmac-sha1 0x11223344556677889900aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz wszystkie pakiety ESP w trybie transportowym | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P out ipsec esp/ | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P in ipsec esp/ | ||
+ | </ | ||
+ | |||
+ | <code bash setkey.conf_b_> | ||
+ | # | ||
+ | |||
+ | ## maszyna B (172.20.252.198) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA: B->A | ||
+ | add 172.20.252.198 172.20.253.237 esp 0x2000 -E aes-cbc 0xbb223344556677889900aabbccddeeff -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | ## SA: A->B | ||
+ | add 172.20.253.237 172.20.252.198 esp 0x1000 -E aes-cbc 0xaa223344556677889900aabbccddeeff -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz wszystkie pakiety ESP w trybie transportowym | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P out ipsec esp/ | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P in ipsec esp/ | ||
+ | </ | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ==== AH z HMAC-SHA1 ==== | ||
+ | |||
+ | <code bash setkey.conf_a_> | ||
+ | # | ||
+ | |||
+ | ## maszyna A (172.20.253.237) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA: A->B | ||
+ | add 172.20.253.237 172.20.252.198 ah 0x1000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | ## SA: B->A | ||
+ | add 172.20.252.198 172.20.253.237 ah 0x2000 -A hmac-sha1 0x11223344556677889900aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz wszystkie pakiety AH w trybie transportowym | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P out ipsec ah/ | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P in ipsec ah/ | ||
+ | </ | ||
+ | |||
+ | <code bash setkey.conf_b_> | ||
+ | # | ||
+ | |||
+ | ## maszyna B (172.20.252.198) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA: B->A | ||
+ | add 172.20.252.198 172.20.253.237 ah 0x2000 -A hmac-sha1 0x11223344556677889900aabbccddeeff00112233; | ||
+ | ## SA: A->B | ||
+ | add 172.20.253.237 172.20.252.198 ah 0x1000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz wszystkie pakiety AH w trybie transportowym | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P out ipsec ah/ | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P in ipsec ah/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ==== ESP (AES-CBC) + AH (HMAC-SHA1) ==== | ||
+ | |||
+ | <code bash setkey.conf_a_> | ||
+ | # | ||
+ | |||
+ | ## maszyna A (172.20.253.237) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA ESP: A->B | ||
+ | add 172.20.253.237 172.20.252.198 esp 0x3000 -E aes-cbc 0xaa223344556677889900aabbccddeeff; | ||
+ | ## SA ESP: B->A | ||
+ | add 172.20.252.198 172.20.253.237 esp 0x4000 -E aes-cbc 0xbb223344556677889900aabbccddeeff; | ||
+ | |||
+ | ## SA AH: A->B | ||
+ | add 172.20.253.237 172.20.252.198 ah 0x5000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | ## SA AH: B->A | ||
+ | add 172.20.252.198 172.20.253.237 ah 0x6000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz pakiety ESP i AH w trybie transportowym | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P out ipsec esp/ | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P in ipsec esp/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code bash setkey.conf_b_> | ||
+ | # | ||
+ | |||
+ | ## maszyna B (172.20.252.198) | ||
+ | flush; | ||
+ | spdflush; | ||
+ | |||
+ | ## SA ESP: B->A | ||
+ | add 172.20.252.198 172.20.253.237 esp 0x4000 -E aes-cbc 0xbb223344556677889900aabbccddeeff; | ||
+ | ## SA ESP: A->B | ||
+ | add 172.20.253.237 172.20.252.198 esp 0x3000 -E aes-cbc 0xaa223344556677889900aabbccddeeff; | ||
+ | |||
+ | ## SA AH: B->A | ||
+ | add 172.20.252.198 172.20.253.237 ah 0x6000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | ## SA AH: A->B | ||
+ | add 172.20.253.237 172.20.252.198 ah 0x5000 -A hmac-sha1 0x00112233445566778899aabbccddeeff00112233; | ||
+ | |||
+ | ## SPD: zabezpiecz pakiety ESP i AH w trybie transportowym | ||
+ | spdadd 172.20.252.198 172.20.253.237 any -P out ipsec esp/ | ||
+ | spdadd 172.20.253.237 172.20.252.198 any -P in ipsec esp/ | ||
+ | </ | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ==== Pytania ==== | ||
+ | |||
+ | === Różnica pomiędzy konfiguracjami ESP a ESP+AH === | ||
+ | |||
+ | * ESP chroni dane (szyfruje), ale nie chroni całego nagłówka IP. | ||
+ | * AH nie szyfruje, ale chroni integralność całego pakietu IP (z nagłówkiem). | ||
+ | * ESP+AH zapewnia poufność i integralność nagłówka i danych. | ||
+ | |||
+ | === Zastosowanie AH === | ||
+ | |||
+ | Przy połączeniach, | ||
+ | |||
+ | ===== Protokół IKE i strongSwan (PSK) ===== | ||
+ | |||
+ | ==== Czyszczenie SAD i SPD ==== | ||
+ | Na mszynie A i B:\\ | ||
+ | <code bash> | ||
+ | sudo setkey -F # usuń wszystkie SA | ||
+ | sudo setkey -FP # usuń wszystkie SP | ||
+ | </ | ||
+ | |||
+ | ==== Konfiguracje ==== | ||
+ | === Maszyna A === | ||
+ | |||
+ | / | ||
+ | < | ||
+ | config setup | ||
+ | charondebug = "ike 1, knl 1, cfg 1" | ||
+ | |||
+ | conn host-host | ||
+ | keyexchange=ikev2 | ||
+ | authby=psk | ||
+ | left=172.20.253.237 | ||
+ | leftsubnet=172.20.253.237/ | ||
+ | right=172.20.252.198 | ||
+ | rightsubnet=172.20.252.198/ | ||
+ | ike=aes256-sha1-modp1024 | ||
+ | esp=aes256-sha1 | ||
+ | auto=add | ||
+ | </ | ||
+ | |||
+ | / | ||
+ | < | ||
+ | 172.20.253.237 172.20.252.198 : PSK " | ||
+ | </ | ||
+ | |||
+ | === Maszyna B === | ||
+ | |||
+ | / | ||
+ | < | ||
+ | config setup | ||
+ | charondebug = "ike 1, knl 1, cfg 1" | ||
+ | |||
+ | conn host-host | ||
+ | keyexchange=ikev2 | ||
+ | authby=psk | ||
+ | left=172.20.252.198 | ||
+ | leftsubnet=172.20.252.198/ | ||
+ | right=172.20.253.237 | ||
+ | rightsubnet=172.20.253.237/ | ||
+ | ike=aes256-sha1-modp1024 | ||
+ | esp=aes256-sha1 | ||
+ | auto=add | ||
+ | </ | ||
+ | |||
+ | / | ||
+ | < | ||
+ | 172.20.252.198 172.20.253.237 : PSK " | ||
+ | </ | ||
+ | ==== Uruchomienie strongSwan i nawiązanie tunelu ==== | ||
+ | |||
+ | <code bash> | ||
+ | administrator@ipsec-A: | ||
+ | Stopping strongSwan IPsec... | ||
+ | Starting strongSwan 5.9.5 IPsec [starter]... | ||
+ | administrator@ipsec-A: | ||
+ | initiating IKE_SA host-host[1] to 172.20.252.198 | ||
+ | generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ] | ||
+ | sending packet: from 172.20.253.237[500] to 172.20.252.198[500] (1044 bytes) | ||
+ | received packet: from 172.20.252.198[500] to 172.20.253.237[500] (344 bytes) | ||
+ | parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ] | ||
+ | selected proposal: IKE: | ||
+ | authentication of ' | ||
+ | establishing CHILD_SA host-host{1} | ||
+ | generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ] | ||
+ | sending packet: from 172.20.253.237[4500] to 172.20.252.198[4500] (412 bytes) | ||
+ | received packet: from 172.20.252.198[4500] to 172.20.253.237[4500] (220 bytes) | ||
+ | parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) ] | ||
+ | authentication of ' | ||
+ | IKE_SA host-host[1] established between 172.20.253.237[172.20.253.237]...172.20.252.198[172.20.252.198] | ||
+ | scheduling reauthentication in 9788s | ||
+ | maximum IKE_SA lifetime 10328s | ||
+ | selected proposal: ESP: | ||
+ | CHILD_SA host-host{1} established with SPIs c4b20310_i c04d47dc_o and TS 172.20.253.237/ | ||
+ | peer supports MOBIKE | ||
+ | connection ' | ||
+ | administrator@ipsec-A: | ||
+ | 172.20.253.237 172.20.252.198 | ||
+ | esp mode=tunnel spi=3226290140(0xc04d47dc) reqid=1(0x00000001) | ||
+ | E: aes-cbc | ||
+ | A: hmac-sha1 | ||
+ | seq=0x00000000 replay=0 flags=0x00000000 state=mature | ||
+ | created: Jun 14 20:37:14 2025 | ||
+ | diff: 38(s) hard: 3600(s) | ||
+ | last: Jun 14 20:37:14 2025 hard: 0(s) soft: 0(s) | ||
+ | current: 3192(bytes) | ||
+ | allocated: 38 hard: 0 soft: 0 | ||
+ | sadb_seq=1 pid=28477 refcnt=0 | ||
+ | 172.20.252.198 172.20.253.237 | ||
+ | esp mode=tunnel spi=3300000528(0xc4b20310) reqid=1(0x00000001) | ||
+ | E: aes-cbc | ||
+ | A: hmac-sha1 | ||
+ | seq=0x00000000 replay=32 flags=0x00000000 state=mature | ||
+ | created: Jun 14 20:37:14 2025 | ||
+ | diff: 38(s) hard: 3600(s) | ||
+ | last: Jun 14 20:37:14 2025 hard: 0(s) soft: 0(s) | ||
+ | current: 3192(bytes) | ||
+ | allocated: 38 hard: 0 soft: 0 | ||
+ | sadb_seq=0 pid=28477 refcnt=0 | ||
+ | administrator@ipsec-A: | ||
+ | 172.20.253.237[any] 172.20.252.198[any] 255 | ||
+ | out prio high + 1073374593 ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 20:37:14 2025 lastused: Jun 14 20:37:56 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=265 seq=1 pid=28510 | ||
+ | refcnt=1 | ||
+ | 172.20.252.198[any] 172.20.253.237[any] 255 | ||
+ | fwd prio high + 1073374593 ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 20:37:14 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=258 seq=2 pid=28510 | ||
+ | refcnt=1 | ||
+ | 172.20.252.198[any] 172.20.253.237[any] 255 | ||
+ | in prio high + 1073374593 ipsec | ||
+ | esp/ | ||
+ | created: Jun 14 20:37:14 2025 lastused: Jun 14 20:37:56 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=248 seq=3 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: Jun 14 20:37:14 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=243 seq=4 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: Jun 14 20:37:14 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=236 seq=5 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: Jun 14 20:37:14 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=227 seq=6 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: Jun 14 20:37:14 2025 | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=220 seq=7 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=211 seq=8 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=204 seq=9 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | in(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=195 seq=10 pid=28510 | ||
+ | refcnt=1 | ||
+ | (per-socket policy) | ||
+ | out(socket) none | ||
+ | created: Jun 14 20:34:15 2025 lastused: | ||
+ | lifetime: 0(s) validtime: 0(s) | ||
+ | spid=188 seq=0 pid=28510 | ||
+ | refcnt=1 | ||
+ | administrator@ipsec-A: | ||
+ | </ | ||
+ | |||
+ | ===== Pytania ===== | ||
+ | |||
+ | ==== Ile asocjacji SA zostało wynegocjowanych? | ||
+ | |||
+ | |||
+ | W wyniku setkey -D widać dwie asocjacje ESP w bazie SAD (SPI 0xc04d47dc i 0xc4b20310) – po jednej dla każdego kierunku ruchu. | ||
+ | |||
+ | === Jaki rodzaj nagłówka IPSec i jaki tryb pracy został użyty dla stworzonych asocjacji SA? Jakie algorytmy zostały użyte? === | ||
+ | |||
+ | |||
+ | Zgodnie z logiem ipsec up host-host, wynegocjowano ESP w trybie tunelowym (ESP: | ||
+ | |||
+ | Algorytmy: AES‑CBC 256‑bit dla szyfrowania oraz HMAC‑SHA1‑96 (96‑bitowy tag) dla uwierzytelnienia. | ||
+ | |||
+ | === Jaka jest długość użytego klucza dla poszczególnych algorytmów? | ||
+ | |||
+ | |||
+ | AES‑CBC‑256 używa klucza o długości 256 bitów. | ||
+ | |||
+ | HMAC‑SHA1‑96 wykorzystuje tag o długości 96 bitów (12 bajtów), choć sam klucz HMAC może być dłuższy (typowo 160 bitów), | ||
+ | |||
+ | === W której fazie protokołu IKE użyty został współdzielony klucz PSK? === | ||
+ | |||
+ | |||
+ | Klucz PSK został użyty w fazie 1 (IKE_SA_INIT oraz IKE_AUTH) do uwierzytelnienia endpointów. | ||
+ | |||
+ | === Jakie polityki SPD zostały stworzone przez proces IKE? === | ||
+ | |||
+ | |||
+ | setkey -DP pokazuje cztery wpisy: | ||
+ | |||
+ | dwa wpisy out i in dla tunelu ESP w trybie tunelowym (po jednej każda dla ruchu A→B i B→A) z reqid = 1 oraz flagą unique. | ||
+ | |||
+ | dodatkowy wpis fwd związany z przekazywaniem pakietów. | ||
+ | |||
+ | Polityki dotyczą ruchu 172.20.253.237[any] <-> 172.20.252.198[any] i mają priorytet „high”, operację ipsec esp/ | ||
+ | |||
+ | ===== Analiza ruchu IKE w Wireshark ===== | ||
+ | |||
+ | Filtr: '' | ||
+ | |||
+ | W pakietach IKE_SA_INIT widać wymianę ofert SA (AES_CBC_256/ | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | W IKE_AUTH pojawiają się IDi, IDr oraz AUTH payload z uwierzytelnieniem za pomocą PSK. | ||
+ | |||
+ | {{.: | ||
+ | |||
+ |