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. 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.
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 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 interne CA op beide FMC-knooppunten is verschillend.
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.
Echter niet upgraden of opnieuw opstarten van het FMC (of een FTD) in deze situatie als het verbroken alle sftunnelverbindingen en we moeten alle certificaten updates handmatig uitvoeren op elk FTD. 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 op elk van de FTD's vervangen. 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 zal het nieuwe certificaat worden gegenereerd op het VCC, maar kan niet worden gekopieerd naar de apparatuur, 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.
In deze situatie kunt u het script generation_certs.pl uitvoeren vanuit het FMC dat de nieuwe certificaten genereert, maar u moet ze nog steeds handmatig naar elk FTD-apparaat duwen. 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.
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 |