Ami a tanfolyamból kimaradt –
CA kiszolgáló konfigurálása Cisco routeren
A Cisco routerek alapfunkciója az IP csomagok továbbítása, de ezen túl további szolgáltatásokat is tudnak futtatni. Működhetnek DHCP vagy DNS kiszolgálóként vagy akár tanúsítványkiadó, azaz Certification Authority (CA) kiszolgálóként. Ez a cikk ez utóbbi funkció bemutatására vállalkozik.
Mielőtt részletesen bemutatom a konkrét konfigurációs lépéseket, tekintsük át, hogy miért van szükség CA kiszolgálóra egy vállalati hálózatban. Ha két felhasználó – a nemzetközi példákban általában Bob és Alice – titkosított vagy digitális aláírással ellátott üzeneteket szeretne küldeni egymásnak, akkor mindkettőjüknek szüksége van egy Publikus/Privát kulcspárra. Feltételezük, hogy ismerik egymás Publikus kulcsát, de saját Privát kulcsukat senkinek nem árulják el. Ennek alapján Bob birtokában van Pub(B), Pub(A) és Pri(B), Alice pedig ismeri Pub(A), Pub(B) és Pri(A) kulcsokat. Ha Bob titkosított üzenetet szeretne küldeni Alice részére, akkor a titkosításhoz Pub(A) kulcsot használja, Alice pedig Pri(A) kulccsal tudja ezt dekódolni. Ha Bob digitálisan aláírt üzenetet szeretne küldeni Alice részére akkor az aláírást Pri(B) kulccsal tudja elkészíteni, Alice pedig Pub(B) kulccsal tudja ellenőrizni, hogy tényleg Pri(B) kulcsot használták az aláírás elkészítéséhez.
Ha ez ilyen jól működik – márpedig jól működik, mióta Rivest, Shamir és Adleman kifejlesztették a híres RSA algoritmust –, akkor joggal kérdezhetjük, hogy miért van szükség tanúsítványokra és egy hatóságra, ami kiadja ezeket. A probléma gyökere az a pillanat amikor Alice és Bob kicserélik egymás Publikus kulcsait. Hogyan történik ez a kulcs csere? A 21. században valószínűleg nem személyesen adják át egymásnak, hanem elküldik elektronikus üzenetben. Honnan tudhatja Alice, hogy ezt a mailt tényleg Bob írta, nem valami hacker, aki azt hazudja magáról, hogy ő Bob?
Itt kerül képbe a tanúsítványkiadó hatóság – azaz a CA szerver. Amikor Bob generál magának egy Publikus/Privát kulcspárt, akkor a Publikus kulcsot beteszi egy Tanúsítvány Kérelembe – Certificate Signing Request (CSR). A kérelem a Pub(B) kulcson kívül tartalmazhatja Bob adatait, nevét, születésnapját vagy akár a fényképét is. A CSR-t Bob elküldi a CA kiszolgálónak, ahol ellenőrzik, hogy tényleg Bob küldte, aztán a CA aláírja azt a saját nagyon titkos Privát kulcsával. Így létrejön Bob tanúsítványa, amit a CA hitelesített és visszaküldik Bob részére. Igen ám, de miért bízik jobban Alice a CA által hitelesített tanúsítványban, mint Bob Publikus kulcsában? Azért, mert amikor Alice notebookját telepítette az IT, akkor felvette a CA tanúsítványát a megbízható CA szerverek közé, egy megbízható IT-s kolléga. Nos, igen: a sor végén valakiben mindig meg kell bízni. :)
Hogyan lesz tehát egy Cisco router CA kiszolgáló? A fenti példában szereplő Alice, Bob és CA most három router, akiket egy LAN hálózat kapcsol össze valahogy úgy, ahogy az 1. ábrán látható. A tanúsítványokon időbélyeg van, és nem használhatók, miután lejár az érvényességük, ezért nagyon fontos, hogy minden játékos órája ugyanazt az időt mutassa. Állítsuk be a CA kiszolgálót NTP szervernek, Alice és Bob routereket pedig NTP klienseknek. A CA, Alice és Bob IP címei rendre: 10.0.1.1/24, 10.0.1.2/24 és 10.0.1.3/24.
Bob(config)#ntp server 10.0.1.1
Alice(config)#ntp server 10.0.1.1
1. ábra
A CA szerver HTTP protokollt használ a tanúsítványok terjesztésére, ezért kapcsoljuk be ezt a szolgáltatást, majd indítsuk el a CA funkciót:
CA(cs-server)#hash sha512
CA(cs-server)#issuer-name CN=CA,O=alef.com
CA(cs-server)#grant auto
CA(cs-server)#no shutdown
Password:
Re-enter password:
A grant auto paranccsal egy kicsit csalunk mert így a CA boldog-boldogtalannak kiadja majd a hitelesített tanúsítványt minden ellenőrzés nélkül, de egy laborkörnyezetben ez talán megengedhető.
Ellenőrizzük, hogy mit csináltunk.
Certificate Server CA:
Status: enabled
State: enabled
Server's configuration is locked (enter "shut" to unlock it)
Issuer name: CN=CA,O=alef.com
CA cert fingerprint: 5892E819 E66042AB 33EE1D7E 4E2AF900
Granting mode is: auto
Last certificate issued serial number (hex): 1
CA certificate expiration timer: 15:10:53 CEST Jun 15 2026
CRL NextUpdate timer: 21:10:53 CEST Jun 16 2023
Current primary storage dir: nvram:
Database Level: Minimum - no cert data written to storage
Azaz fut a CA szolgáltatás, és kiadta magának a CA tanúsítványt. Bob és Alice most generáljon magának egy Publikus/Privát kulcspárt az RSA algoritmussal.
Bob#sh crypto key mypubkey rsa bob.alef.com
% Key pair was generated at: 15:21:34 CEST Jun 16 2023
Key name: bob.alef.com
Key type: RSA KEYS
Storage Device: not specified
Usage: General Purpose Key
Key is not exportable.
Key Data:
30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101
0097A4C8 DCBD1569 E94A57F2 7D377CA8 461551D1 0718AA42 B8AE1F48 72C7A7DA
79897F93 40D2333C 278ABDA3 1DFEF29A BD7B9234 D432AA8E 00C6B525 4D0B4710
A0C4C021 9E5F5934 98DDC2F5 9F93573D 91FCABDE B7A5C495 16527050 A412F546
B94482B8 5A2BC04C 5568109C 28219A77 AD70C748 817CF996 1B7EC430 7C6B7478
9B726D67 60DBEC92 A6421B04 3F112B36 4A35A40C 4E403A3E B47A6108 A3A5E994
7F7A1709 B9D43795 3B646458 AB52A5F2 D388E0F6 E451D8C9 FF13EA4C 2255DBB9
89D25B30 8EA86644 FBD6BC02 41811C4A 93B8866E AC0CE9D0 386EDA09 B9F134BD
7A0104C5 DE045546 F1AFE3AC 06D10F3C E310A004 E91E3C1D 6E3E831D 9880DF50
E7020301 0001
Tanúsítványt csak úgy kaphatunk, ha ismerjük a CA kiszolgálót és megadjuk, hogy mi kerüljön a CSR kérelembe.
Bob(ca-trustpoint)#enrollment url http://10.0.1.1
Bob(ca-trustpoint)#rsakeypair bob.alef.com
Bob(ca-trustpoint)#fqdn bob.alef.com
Bob(ca-trustpoint)#subject-name CN=bob,O=alef.com
Bob(ca-trustpoint)#revocation-check none
Töltsük le a CA tanúsítványát, hogy megbízzunk az általa hitelesített tanúsítványokban.
Certificate has the following attributes:
Fingerprint MD5: 5892E819 E66042AB 33EE1D7E 4E2AF900
Fingerprint SHA1: 643A83E1 3FD8A3F5 A9288A07 B7CB0BDB 9A05EC4C
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
Ellenőrizzük, hogy van konfigurált CA kiszolgáló, és letöltöttük a tanúsítványát.
Trustpoint Trusted-CA:
Subject Name:
cn=CA
o=alef.com
Serial Number (hex): 01
Certificate configured.
SCEP URL: http://10.0.1.1:80/cgi-bin
Bob#sh crypto pki certificates
CA Certificate
Status: Available
Certificate Serial Number (hex): 01
Certificate Usage: Signature
Issuer:
cn=CA
o=alef.com
Subject:
cn=CA
o=alef.com
Validity Date:
start date: 15:10:53 CEST Jun 16 2023
end date: 15:10:53 CEST Jun 15 2026
Associated Trustpoints: Trusted-CA
Végül kérjünk egy tanúsítványt Bob és Alice részére.
Password:
Re-enter password:
Enter Interface name or IP Address[]: 10.0.1.2
Request certificate from CA? [yes/no]: yes
A jelszóra csak a tanúsítvány esetleges visszavonása esetén lesz szükség.
Ellenőrizzük, hogy megkaptuk az aláírt tanúsítványt.
Certificate
Status: Available
Version: 3
Certificate Serial Number (hex): 02
Certificate Usage: General Purpose
Issuer:
cn=CA
o=alef.com
Subject:
Name: bob.alef.com
IP Address: 10.0.1.3
Serial Number: 67129386
serialNumber=67129386+ipaddress=10.0.1.3+hostname=bob.alef.com
cn=bob
o=alef.com
Validity Date:
start date: 15:39:21 CEST Jun 16 2023
end date: 15:39:21 CEST Jun 15 2024
Subject Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Signature Algorithm: SHA512 with RSA Encryption
Fingerprint MD5: 43D5DACD 3C5021D8 12CF2D9B 0B74C8B4
Fingerprint SHA1: AD53A0C3 6D3F3FE4 3459CA7D 6BC295FF D695B865
X509v3 extensions:
X509v3 Key Usage: A0000000
Digital Signature
Key Encipherment
X509v3 Subject Key ID: E96F2364 1D4D5286 ED4BD16C 05392834 7B27F66B
X509v3 Authority Key ID: 6FF99C52 82556D30 2BC087DE AF84C4B7 9C106579
Authority Info Access:
Associated Trustpoints: Trusted-CA
Key Label: bob.alef.com
És íme, megérkezett a friss, ropogós tanúsítvány. Máris lehet RSA tanúsítványon alapuló hitelesítéssel kialakított IPSec-csatornákat konfigurálni.
Szeretnél többet tudni?
Vedd fel velünk a kapcsolatot az alábbi elérhetőségen:
- Gőgös Barnabás
Senior Systems Engineer
+36 30 162 0841
barnabas.gogos@alef.com