Delen via


FiPS-compatibele veilige externe Linux-ontwikkeling instellen

Linux-ondersteuning is beschikbaar in Visual Studio 2017 en hoger. FiPS-compatibele veilige externe Linux-ontwikkeling is beschikbaar in Visual Studio 2019 versie 16.5 en hoger.

Federal Information Processing Standard (FIPS) Publication 140-2 is een Amerikaanse overheidsstandaard voor cryptografische modules. Implementaties van de standaard worden gevalideerd door NIST. Windows heeft gevalideerde ondersteuning voor cryptografische modules die compatibel zijn met FIPS. In Visual Studio 2019 versie 16.5 en hoger kunt u een veilige, cryptografische verbinding met FIPS gebruiken voor externe ontwikkeling met uw Linux-systeem.

U kunt als volgt een beveiligde, FIPS-compatibele verbinding instellen tussen Visual Studio en uw externe Linux-systeem. Deze handleiding is van toepassing wanneer u CMake- of MSBuild Linux-projecten bouwt in Visual Studio. Dit artikel is de FIPS-compatibele versie van de verbindingsinstructies in Verbinding maken met uw externe Linux-computer.

Een FIPS-compatibele verbinding voorbereiden

Enige voorbereiding is vereist voor het gebruik van een FIPS-compatibele, cryptografische beveiligde SSH-verbinding tussen Visual Studio en uw externe Linux-systeem. Voor FIPS-140-2-naleving ondersteunt Visual Studio alleen RSA-sleutels.

In de voorbeelden in dit artikel wordt Ubuntu 18.04 LTS gebruikt met OpenSSH-serverversie 7.6. De instructies moeten echter hetzelfde zijn voor elke distributie met behulp van een redelijk recente versie van OpenSSH.

De SSH-server instellen op het externe systeem

  1. Installeer en start de OpenSSH-server op het Linux-systeem:

    sudo apt install openssh-server
    sudo service ssh start
    
  2. Als u wilt dat de ssh-server automatisch wordt gestart wanneer het systeem wordt opgestart, schakelt u deze in met behulp van systemctl:

    sudo systemctl enable ssh
    
  3. Open /etc/ssh/sshd_config als root. Bewerk (of voeg, als ze niet bestaan) de volgende regels toe:

    Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
    HostKeyAlgorithms ssh-rsa
    KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
    MACs hmac-sha2-256,hmac-sha1
    

    Notitie

    ssh-rsa, rsa-sha2-*en ecdsa-sha2-* zijn de enige FIPS-conforme hostsleutels algoritmen die Visual Studio ondersteunt. Zie Ondersteunde SSH-algoritmenvoor meer informatie over de algoritmen die Visual Studio ondersteunt.

    U bent niet beperkt tot deze opties. U kunt ssh configureren voor het gebruik van andere coderingssleutels, hostsleutelalgoritmen enzovoort. Enkele andere relevante beveiligingsopties die u kunt overwegen, zijn PermitRootLogin, PasswordAuthenticationen PermitEmptyPasswords. Zie de pagina man voor sshd_config of het artikel SSH-serverconfiguratievoor meer informatie.

  4. Nadat u sshd_confighebt opgeslagen en gesloten, start u de ssh-server opnieuw om de nieuwe configuratie toe te passen:

    sudo service ssh restart
    

Vervolgens maakt u een ECDSA-sleutelpaar op uw Windows-computer. Vervolgens kopieert u de openbare sleutel naar het externe Linux-systeem voor gebruik door ssh.

Een ECDSA-sleutelbestand maken en gebruiken

  1. Genereer op de Windows-computer een openbaar/persoonlijk ECDSA-sleutelpaar met behulp van deze opdracht:

    ssh-keygen -t ecdsa -m PEM
    

    Met de opdracht maakt u een openbare sleutel en een persoonlijke sleutel. Standaard worden de sleutels opgeslagen in %USERPROFILE%.ssh\id_ecdsa en %USERPROFILE%.ssh\id_ecdsa.pub. (Gebruik in PowerShell $env:USERPROFILE in plaats van de cmd-macro %USERPROFILE%) Sleutels die worden gegenereerd met RSA, worden ook ondersteund. Als u de sleutelnaam wijzigt, gebruikt u de gewijzigde naam in de volgende stappen. U wordt aangeraden een wachtwoordzin te gebruiken voor een betere beveiliging.

  2. Kopieer vanuit Windows de openbare sleutel naar de Linux-computer:

    scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
    
  3. Voeg op het Linux-systeem de sleutel toe aan de lijst met geautoriseerde sleutels en zorg ervoor dat het bestand over de juiste machtigingen beschikt:

    cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Nu kunt u testen of de nieuwe sleutel in sshwerkt. Gebruik deze om u aan te melden vanuit Windows:

    ssh -i %USERPROFILE%\.ssh\id_ecdsa user@hostname
    

U hebt sshingesteld, versleutelingssleutels gemaakt en geïmplementeerd en uw verbinding getest. U kunt nu de Visual Studio-verbinding instellen.

Verbinding maken met het externe systeem in Visual Studio

  1. Kies in Visual Studio Extra > Opties op de menubalk om het dialoogvenster Opties te openen. Selecteer vervolgens Cross Platform > Connection Manager om het dialoogvenster Verbindingsbeheer te openen.

    Als u nog geen verbinding hebt ingesteld in Visual Studio, wordt het dialoogvenster Verbindingsbeheer voor u geopend wanneer u uw project voor de eerste keer bouwt.

  2. Kies in het dialoogvenster Verbindingsbeheer de knop Toevoegen om een nieuwe verbinding toe te voegen.

    Schermopname van het deelvenster Opties in het dialoogvenster Verbindingsbeheer. Cross Platform > C plus plus > Connection Manager is uitgelicht.

    Het venster Verbinding maken met extern systeem wordt weergegeven.

    Schermopname van het venster Verbinding maken met extern systeem, met tekstvakken voor de hostnaam, poort, gebruikersnaam, verificatietype en wachtwoord.

  3. Voer in het dialoogvenster Verbinding maken met extern systeem de verbindingsgegevens van uw externe computer in.

    Ingang Beschrijving
    hostnaam Naam of IP-adres van uw doelapparaat
    poort Poort waarop de SSH-service wordt uitgevoerd, meestal 22
    gebruikersnaam Gebruiker verifiëren als
    verificatietype Kies persoonlijke sleutel voor een FIPS-compatibele verbinding
    persoonlijke sleutelbestand Persoonlijke-sleutelbestand gemaakt voor ssh-verbinding
    wachtwoordzin Wachtwoordzin die wordt gebruikt met een persoonlijke sleutel die hierboven is geselecteerd

    Wijzig het verificatietype in persoonlijke sleutel. Voer het pad naar uw persoonlijke sleutel in het veld Persoonlijke-sleutelbestand in. U kunt de knop Bladeren gebruiken om in plaats daarvan naar uw persoonlijke-sleutelbestand te navigeren. Voer vervolgens de wachtwoordzin in die wordt gebruikt voor het versleutelen van uw persoonlijke-sleutelbestand in het veld wachtwoordzin.

  4. Kies de knop Verbinding maken om verbinding te maken met de externe computer.

    Als de verbinding slaagt, configureert Visual Studio IntelliSense voor het gebruik van de externe headers. Zie voor meer informatie IntelliSense voor headers op externe systemen.

    Als de verbinding mislukt, worden de invoervakken die moeten worden gewijzigd rood weergegeven.

    Schermopname van het venster Verbinding maken met extern systeem met de tekstvakken hostnaam en poort die rood zijn gemarkeerd om aan te geven dat ze moeten worden gewijzigd.

    Zie Verbinding maken met uw externe Linux-computervoor meer informatie over het oplossen van problemen met uw verbinding.

Opdrachtregelprogramma voor Verbindingsbeheer

Visual Studio 2019 versie 16.5 of hoger: ConnectionManager.exe is een opdrachtregelprogramma voor het beheren van externe ontwikkelverbindingen buiten Visual Studio. Dit is handig voor taken zoals het inrichten van een nieuwe ontwikkelcomputer. U kunt het ook gebruiken om Visual Studio in te stellen voor continue integratie. Zie ConnectionManager-verwijzingvoor voorbeelden en een volledige verwijzing naar de opdracht ConnectionManager.

Optioneel: FIPS-modus in- of uitschakelen

Het is mogelijk om de FIPS-modus wereldwijd in te schakelen in Windows.

  1. Als u de FIPS-modus wilt inschakelen, drukt u op Windows+R- om het dialoogvenster uitvoeren te openen en voert u gpedit.mscuit.

  2. Vouw lokaal computerbeleid > Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen > en selecteer Beveiligingsopties.

  3. Selecteer onder BeleidSysteemcryptografie: FIPS-compatibele algoritmen gebruiken voor versleuteling, hashing en ondertekeningen druk vervolgens op Enter- om het dialoogvenster te openen.

  4. Selecteer op het tabblad Lokale beveiligingsinstellingIngeschakeld of Uitgeschakelden kies vervolgens OK- om uw wijzigingen op te slaan.

Waarschuwing

Het inschakelen van de FIPS-modus kan ertoe leiden dat sommige toepassingen onverwacht worden onderbroken of zich gedragen. Zie het blogbericht Waarom we niet meer "FIPS-modus" aanbevelenvoor meer informatie.

Aanvullende informatiebronnen

Microsoft-documentatie over FIPS 140-validatie

FIPS 140-2: Beveiligingsvereisten voor cryptografische modules (van NIST)

Validatieprogramma voor cryptografische algoritmen: Validatienotities (van NIST)

Microsoft-blogbericht op Waarom we de FIPS-modus niet meer aanbevelen

SSH-serverconfiguratie

Zie ook

een Linux-project configureren
Een Linux CMake-project configureren
Verbinding maken met uw externe Linux-computer
uw Linux-project implementeren, uitvoeren en fouten opsporen
CMake-foutopsporingssessies configureren