Ami a tanfolyamból kimaradt –
CA kiszolgáló konfigurálása Cisco routeren

Gőgös Barnabás

Senior Systems Engineer

Barnabas.Gogos@alef.com

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.

CA(config)#ntp master 5
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(config)#ip http server  CA(config)#crypto pki server CA
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.

CA#sh crypto pki server
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(config)#crypto key generate rsa modulus 2048 label bob.mycorp.com
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(config)#crypto pki trustpoint Trusted-CA
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.

Alice(config)#crypto pki authenticate Trusted-CA
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.

Bob#sh crypto pki trustpoints
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.

Alice(config)#crypto pki enroll Trusted-CA
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.

Bob#sh crypto pki certificates verbose Trusted-CA
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