De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
In dit document wordt de verlenging beschreven van het certificaat van de Firepower Management Center (FMC) Sftunnel Certificate Authority (CA) in relatie tot de FTD-connectiviteit (Firepower Threat Defence).
Cisco raadt kennis van de volgende onderwerpen aan:
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
FMC en FTD communiceren met elkaar via sftunnel (Sourcefire-tunnel). Deze communicatie maakt gebruik van certificaten om het gesprek veilig te maken via een TLS-sessie. Meer informatie over de sftunnel en hoe deze zich heeft gevestigd, vindt u op deze link.
Uit de pakketopname kunt u zien dat de FMC (10.48.79.232 in dit voorbeeld) en FTD (10.48.79.23) certificaten met elkaar uitwisselen. Ze doen dit om te controleren of ze met het juiste apparaat praten en er geen afluisterapparatuur of Man-In-The-Middle (MITM)-aanval is. De communicatie wordt versleuteld met die certificaten en alleen de partij die de bijbehorende privésleutel voor dat certificaat heeft, kan het opnieuw ontsleutelen.
U kunt zien dat de certificaten worden ondertekend door dezelfde Interne certificeringsinstantie (CA) die is ingesteld op het VCC. De configuratie is gedefinieerd in het FMC op /etc/sf/sftunnel.conf bestand dat zoiets bevat als:
proxyssl {
proxy_cert /etc/sf/keys/sftunnel-cert.pem; ---> Certificate provided by FMC to FTD for the sftunnel communication (signed by InternalCA)
proxy_key /etc/sf/keys/sftunnel-key.pem;
proxy_cacert /etc/sf/ca_root/cacert.pem; ---> CA certificate (InternalCA)
proxy_crl /etc/sf/ca_root/crl.pem;
proxy_cipher 1;
proxy_tls_version TLSv1.2;
};
Dit geeft de CA aan die wordt gebruikt voor de ondertekening van alle certificaten voor de sftunnel (zowel het FTD als het FMC) en het certificaat dat door het FMC wordt gebruikt om alle FTD’s toe te zenden. Dit certificaat is ondertekend door de Interne CA.
Wanneer het FTD zich bij het FMC registreert, stelt het FMC tevens een certificaat op om het FTD-apparaat te activeren dat wordt gebruikt voor de verdere communicatie over de sftunnel. Dit certificaat wordt ook ondertekend door hetzelfde interne CA-certificaat. Op FMC, kunt u dat certificaat (en privé sleutel) onder /var/sf/peers/<UUID-FTD-device> en mogelijk onder certs_pushed map vinden en heet sftunnel-cert.pem (sftunnel-key.pem voor private sleutel). Op FTD kunt u de bestanden onder /var/sf/peers/<UID-FMC-device> met dezelfde naamgevingsconventie vinden.
Elk certificaat heeft echter ook een geldigheidstermijn voor veiligheidsdoeleinden. Bij de inspectie van het certificaat van InternCA zien we ook de geldigheidsperiode van 10 jaar voor het VCC InternCA, zoals blijkt uit de pakketvastlegging.
Het interne certificaat van het VCC is slechts 10 jaar geldig. Na de vervaltijd vertrouwt het systeem op afstand dit certificaat niet meer (evenals de door het systeem ondertekende certificaten) en dit leidt tot problemen met de sftunnelcommunicatie tussen FTD- en FMC-apparaten (en ook FMC HA-communicatie). Dit betekent ook dat verschillende belangrijke functionaliteiten zoals verbindingsgebeurtenissen, malware zoeken, op identiteit gebaseerde regels, beleidsimplementaties en vele andere dingen niet werken.
De apparaten verschijnen niet als uitgeschakeld op de FMC UI onder het tabblad Apparaten > Apparaatbeheer wanneer de sftunnel niet is verbonden. Het probleem dat betrekking heeft op deze vervaldatum, wordt getraceerd op Cisco-fout-id CSC08098. Houd er echter rekening mee dat alle systemen getroffen zijn, zelfs wanneer u een vaste release van het defect uitvoert. Meer informatie over deze oplossing vindt u in het gedeelte Oplossing.
Het VCC vernieuwt de CA niet automatisch en geeft de certificaten opnieuw uit aan de FTD-apparatuur. Er is ook geen gezondheidswaarschuwing van het VCC waaruit blijkt dat het certificaat vervalt. Cisco bug-id CSCwd08448 wordt in dit opzicht gevolgd om in de toekomst een gezondheidswaarschuwing voor de FMC UI te geven.
Aanvankelijk gebeurt er niets en de communicatiekanalen voor de veilige tunnel blijven functioneren zoals voorheen. Wanneer echter de sftunnelcommunicatie tussen FMC en FTD-apparaten wordt verbroken en de verbinding opnieuw tot stand wordt gebracht, is het mislukt en kunt u logregels waarnemen op het berichtenlogbestand dat naar het verlopen van het certificaat wijst. Merk op dat de sftunnelcommunicatie (gebruikt voor High-Availability (HA) sync) tussen primair en secundair VCC ook mogelijk wordt beïnvloed zoals beschreven in dit deel.
Loglijnen van FTD-apparaat van /ngfw/var/log/message:
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [INFO] Initiating IPv4 connection to 10.10.200.31:8305/tcp
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [INFO] Wait to connect to 8305 (IPv4): 10.10.200.31
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [INFO] Connected to 10.10.200.31 from resolved_ip_list (port 8305) (IPv4)
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] -Error with certificate at depth: 1
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] issuer = /title=InternalCA/OU=Intrusion Management System/CN=06f5f3ca-c77b-11e2-81bf-884d9d11f3ef/O=Sourcefire, Inc.
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] subject = /title=InternalCA/OU=Intrusion Management System/CN=06f5f3ca-c77b-11e2-81bf-884d9d11f3ef/O=Sourcefire, Inc.
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] err 10:certificate has expired
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] SSL_renegotiate error: 1: error:00000001:lib(0):func(0):reason(1)
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [ERROR] Connect:SSL handshake failed
Sep 20 04:10:47 FTD-hostname SF-IMS[50792]: [51982] sftunneld:sf_ssl [WARN] SSL Verification status: certificate has expired
Loglijnen van FMC-apparaat van /var/log/berichten:
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [INFO] VERIFY ssl_verify_callback_initial ok=1!
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [ERROR] SSL_renegotiate error: 1: error:00000001:lib(0):func(0):reason(1)
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [WARN] establishConnectionUtil: SSL handshake failed
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [WARN] establishConnectionUtil: SSL Verification status: ok
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [WARN] establishConnectionUtil: SSL handshake failed: error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [INFO] establishConnectionUtil: Failed to connect using SSL to: '10.10.21.10'
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [ERROR] establishSSLConnection: Unable to connect with both threads:
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [ERROR] establishSSLConnection: ret_accept status : Too many levels of symbolic links
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [ERROR] establishSSLConnection: iret_connect status: Too many levels of symbolic links
Sep 20 03:14:23 FMC-hostname SF-IMS[1504]: [4171] sftunneld:sf_ssl [ERROR] establishSSLConnection: Failed connecting with SSL to using to: '10.10.21.10' rval[40] *CA cert from FMC
De sftunnelcommunicatie kan om verschillende redenen worden verbroken:
Omdat er zo veel mogelijkheden zijn die de sftunnelcommunicatie kunnen doorbreken, is het zeer aan te raden om zo snel mogelijk op de situatie te corrigeren, zelfs wanneer momenteel alle FTD-apparaten goed zijn aangesloten ondanks het verlopen certificaat.
De gemakkelijkste manier is om deze opdrachten uit te voeren in de SSH-sessie van het FMC:
expert
sudo su
cd /etc/sf/ca_root
openssl x509 -dates -noout -in cacert.pem
Dit toont u de Geldigheid elementen van het certificaat. Het belangrijkste relevante deel hier is de "notAfter", waaruit blijkt dat het certificaat hier geldig is tot 5 oktober 2034.
Als u wilt dat er één opdracht wordt uitgevoerd die u onmiddellijk de hoeveelheid dagen geeft waarvoor het certificaat nog geldig is, kunt u dit gebruiken:
CERT_PATH="/etc/sf/ca_root/cacert.pem"; EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$CERT_PATH" | cut -d= -f2); EXPIRY_DATE_SECONDS=$(date -d "$EXPIRY_DATE" +%s); CURRENT_DATE_SECONDS=$(date +%s); THIRTY_DAYS_SECONDS=$((30*24*60*60)); EXPIRY_THRESHOLD=$((CURRENT_DATE_SECONDS + THIRTY_DAYS_SECONDS)); DAYS_LEFT=$(( (EXPIRY_DATE_SECONDS - CURRENT_DATE_SECONDS) / (24*60*60) )); if [ "$EXPIRY_DATE_SECONDS" -le "$CURRENT_DATE_SECONDS" ]; then DAYS_EXPIRED=$(( (CURRENT_DATE_SECONDS - EXPIRY_DATE_SECONDS) / (24*60*60) )); echo -e "\nThe certificate has expired $DAYS_EXPIRED days ago.\nIn case the sftunnel communication with the FTD is not yet lost, you need to take action immediately in renewing the certificate.\n"; elif [ "$EXPIRY_DATE_SECONDS" -le "$EXPIRY_THRESHOLD" ]; then echo -e "\nThe certificate will expire within the next 30 days!\nIt is ONLY valid for $DAYS_LEFT more days.\nIt is recommended to take action in renewing the certificate as quickly as possible.\n"; else echo -e "\nThe certificate is valid for more than 30 days.\nIt is valid for $DAYS_LEFT more days.\nThere is no immediate need to perform action but this depends on how far the expiry date is in the future.\n"; fi
Er wordt een voorbeeld getoond van een installatie waarbij het certificaat nog meerdere jaren geldig is.
Bij recente VDB-updates (399 of hoger) wordt u automatisch gewaarschuwd wanneer uw certificaat binnen 90 dagen vervalt. Daarom hoeft u dit niet zelf handmatig bij te houden, aangezien u wordt gewaarschuwd wanneer u dicht bij de vervaltijd bent. Dit verschijnt dan op de FMC-webpagina in twee vormen. Beide manieren verwijzen naar de pagina van de gebiedsbericht.
De eerste methode is via het tabblad Taak. Dit bericht is plakkerig en beschikbaar voor de gebruiker tenzij expliciet gesloten. Het melding pop-up verschijnt ook en is beschikbaar tot expliciet gesloten door de gebruiker. Het verschijnt altijd als een fout.
De tweede methode is via Health Alert. Dit verschijnt in het tabblad Gezondheid, maar dit is niet kleverig en vervangt of verwijdert als de gezondheidsmonitor wordt uitgevoerd, wat standaard elke 5 minuten is. Het toont ook een melding pop-up die expliciet door de gebruiker moet worden gesloten. Dit kan zowel als fout (wanneer verlopen) als waarschuwing (wanneer het verlopen is) weergeven.
Dit is de beste situatie omdat we, afhankelijk van het verstrijken van het certificaat, nog tijd hebben. Ofwel kiezen we voor de volledig geautomatiseerde aanpak (aanbevolen) die afhankelijk is van de FMC-versie, ofwel kiezen we voor een meer handmatige aanpak die TAC-interactie vereist.
Dit is de situatie waarin onder normale omstandigheden geen uitvaltijd en de minste hoeveelheid handmatige handelingen wordt verwacht.
Alvorens verder te gaan, moet u de hotfix voor uw bepaalde versie installeren zoals hier vermeld. Het voordeel is dat deze hotfixes geen reboot van het VCC en dus potentiële kapotte sftunnelcommunicatie vereisen wanneer het certificaat al is verlopen. De beschikbare hotfixes (downloadlinks zijn voor virtueel FMC, voor hardware FMC kijk op de geschikte downloadpagina's voor de versies) zijn:
Zodra de hotfix is geïnstalleerd, bevat het FMC nu het script generation_certs.pl dat:
Opmerking: Het script generation_certs.pl controleert momenteel of er kritieke bewerkingen uitgevoerd worden. Is dit niet het geval, dan kan deze niet worden uitgevoerd.
Kritieke bewerkingen kunnen zijn: Smart Agent wordt niet geregistreerd of geregistreerd, back-up/herstel taak wordt uitgevoerd, SRU update taak wordt uitgevoerd, VDB update taak wordt uitgevoerd, domeintaak wordt uitgevoerd, HA Operation in progress of Upgrade wordt uitgevoerd.
Daarom kunt u dit script niet uitvoeren wanneer u alleen klassieke licenties gebruikt op uw FMC (of een van de vermelde bewerkingen moet eerst worden voltooid). In dat geval moet u contact opnemen met Cisco TAC om deze controle te omzeilen, de certificaten te regenereren en vervolgens de omzeiling opnieuw ongedaan te maken.
Daarom wordt aanbevolen (indien mogelijk):
Opmerking: Wanneer FMC in High-Availability (HA) wordt uitgevoerd, moet u de handeling eerst op het primaire knooppunt uitvoeren en vervolgens op het secundaire knooppunt, aangezien het deze certificaten ook gebruikt om te communiceren tussen de FMC-knooppunten. De InternalCA op beide FMC-knooppunten is verschillend, dus ze hebben verschillende verlooptijden. U vindt meer informatie over de certificaten in FMC HA op deze sectie.
In het voorbeeld hier ziet u dat het maakt een logbestand op /var/log/sf/sfca_generation.log, geeft aan sftunnel_status.pl te gebruiken, geeft de verlooptijd aan op de InternalCA en geeft aan of er fouten zijn opgetreden. Hier is het er bijvoorbeeld niet in geslaagd om de certificaten over te brengen naar apparaat BSNS-1120-1 en EMEA-FPR3110-08, wat wordt verwacht omdat de sftunnelbuis was neergehaald voor die apparaten.
U voert de volgende stappen uit om de tunnel voor de mislukte verbindingen te corrigeren:
cp cacert.pem cacert.pem.backup
cp sftunnel-cert.pem sftunnel-cert.pem.backup
cp sftunnel-key.pem sftunnel-key.pem.backup
> cacert.pem
> sftunnel-cert.pem
> sftunnel-key.pem
In deze situatie hebben we twee verschillende scenario's. Ofwel alle tunnelverbindingen zijn nog steeds operationeel of ze zijn niet meer (of gedeeltelijk) operationeel.
We kunnen dezelfde procedure toepassen als aangegeven in het certificaat is nog niet verlopen (ideaal scenario) - Aanbevolen aanpak sectie.
Verander of herstart het VCC (of een FTD) in deze situatie echter NIET omdat alle verbindingen met de sftunnels worden verbroken en we alle certificaatupdates handmatig moeten uitvoeren op elk FTD (en secundair FMC zoals behandeld in deze sectie). De enige uitzondering hierop zijn de vermelde Hotfix-releases, aangezien ze geen herstart van het VCC vereisen.
De tunnels blijven met elkaar verbonden en de certificaten worden vervangen op elk van de FTD’s (en secundair FMC wanneer in FMC HA). In het geval dat sommige certificaten niet worden ingevuld, wordt u gevraagd om de certificaten die niet zijn ingevuld en moet u de handmatige aanpak te volgen zoals eerder aangegeven in de vorige sectie.
We kunnen dezelfde procedure toepassen als aangegeven in het certificaat is nog niet verlopen (ideaal scenario) - Aanbevolen aanpak sectie. In dit scenario wordt het nieuwe certificaat wel op het VCC gegenereerd, maar kan niet naar de apparatuur worden gekopieerd, aangezien de tunnel reeds is ingeklapt. Dit proces kan worden geautomatiseerd met de scripts copy_sftunnel_certs.py / copy_sftunnel_certs_jumpserver.py
Indien alle FTD-apparatuur wordt losgekoppeld van het FMC, kunnen we het FMC in deze situatie verbeteren, aangezien het geen invloed heeft op de verbindingen in de sftunnels. Als u nog steeds bepaalde apparaten hebt aangesloten door sftunnel, dan moet u zich ervan bewust zijn dat de upgrade van de FMC alle sftunnelverbindingen sluit en ze komen niet weer boven als gevolg van het verlopen certificaat. Het voordeel van de upgrade hier zou zijn dat het geeft u een goede leidraad over de certificaatbestanden die moeten worden overgedragen naar elk van de FTD's (en secundair FMC wanneer in FMC HA).
In deze situatie kunt u het script generation_certs.pl uitvoeren vanuit het VCC dat de nieuwe certificaten genereert, maar u moet ze nog steeds handmatig doordrukken naar elk FTD (en secundair FMC zoals behandeld in deze paragraaf) apparaat. Afhankelijk van de hoeveelheid apparaten, is dit doenbaar of kan een vervelende taak zijn. Bij gebruik van de scripts copy_sftunnel_certs.py / copy_sftunnel_certs_jumpserver.py is dit echter sterk geautomatiseerd.
De communicatie tussen primair en secundair FMC in high-Availability-paar gebeurt ook via de sftunnelverbinding, net als bij een FMC dat communiceert naar de FTD-apparaten. De certificaatelementen (cacert.pem / sftunnel-cert.pem / sftunnel-key.pem) worden op dezelfde plaats in het VCC opgeslagen onder /var/sf/peers/<UUID-FMC>. Het is echter altijd het belangrijkste VCC dat optreedt als beheerder van het secundaire VCC. Op deze manier is het secundaire VCC als een FTD-apparaat vanuit het perspectief van het primaire VCC. Daarom ziet u alleen het certificaat op het secundaire VCC en niet op de bestanden op het primaire VCC op de map /var/sf/peers/.
Vaak is uw secundaire VCC op een later tijdstip dan uw primaire VCC gecreëerd en kan de interne VCC dus nog geldig zijn en nog niet verlopen, in tegenstelling tot uw primaire VCC. Daarom zou een handmatige switch van het actieve VCC een mogelijkheid kunnen zijn om de gevolgen te minimaliseren in die situaties waarin het secundaire VCC nog steeds over een geldig certificaat zou beschikken en daarmee dus nog vrije tunnelcommunicatie met alle FTD’s zou hebben. Dit zou u dan nog steeds in staat stellen om configuraties in te zetten, terwijl in de tussentijd ook de oplossing of update op het certificaat van het primaire VCC wordt voorbereid. De communicatie tussen beide VCC-voorzieningen kon echter ook worden verbroken wanneer de tunnel was gesloopt na het verstrijken van het certificaat van het eerste VCC.
Tijdens het vernieuwingsproces van de certificaten zijn er twee verschillende scenario’s:
1. Primair certificaat van CCA van het VCC is verlopen: Aangezien het secundaire VCC als een VHZ wordt beschouwd ten opzichte van het primaire VCC, moet de verlenging van het certificaat de bijgewerkte certificaten die op het primaire VCC zijn opgesteld, niet alleen naar de FTD-apparatuur, maar ook naar het secundaire VCC sturen.
2. Het tweede CA-certificaat van het VCC is verlopen: in deze situatie zijn de enige certificaatupdates die vereist zijn, die van de FTD-apparaten. Omdat de sftunnelcommunicatie tussen beide VCC's in HA gebaseerd is op het primaire certificaat van het VCC CA.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
3.0 |
26-Nov-2024 |
Update op situaties wanneer generation_certs.pl hangende is op andere operaties om eerst te voltooien. |
2.0 |
14-Nov-2024 |
Hotfix als aanbevolen aanpak |
1.0 |
14-Nov-2024 |
Eerste vrijgave |