Udostępnij za pośrednictwem


Konfigurowanie zgodnego ze standardem FIPS, bezpiecznego i zdalnego środowiska tworzenia dla systemu Linux

Obsługa systemu Linux jest dostępna w programie Visual Studio 2017 lub nowszym. Bezpieczne tworzenie zdalnego systemu Linux zgodne ze standardem FIPS jest dostępne w programie Visual Studio 2019 w wersji 16.5 lub nowszej.

Federal Information Processing Standard (FIPS) Publikacja 140-2 to amerykański standard rządowy dla modułów kryptograficznych. Implementacje standardu są weryfikowane przez firmę NIST. System Windows zweryfikował obsługę modułów kryptograficznych zgodnych ze standardem FIPS. W programie Visual Studio 2019 w wersji 16.5 lub nowszej można użyć bezpiecznego, zgodnego ze standardem FIPS połączenia kryptograficznego z systemem Linux na potrzeby programowania zdalnego.

Poniżej przedstawiono sposób konfigurowania bezpiecznego, zgodnego ze standardem FIPS połączenia między programem Visual Studio i zdalnym systemem Linux. Ten przewodnik ma zastosowanie podczas kompilowania projektów CMake lub MSBuild Linux w programie Visual Studio. Ten artykuł to zgodna ze standardem FIPS wersja instrukcji dotyczących połączenia w temacie Nawiązywanie połączenia ze zdalnym komputerem z systemem Linux.

Przygotowywanie połączenia zgodnego ze standardem FIPS

Niektóre przygotowania są wymagane do korzystania ze zgodnego ze standardem FIPS, kryptograficznie bezpiecznego połączenia SSH między programem Visual Studio i zdalnym systemem Linux. W przypadku zgodności ze standardem FIPS-140-2 program Visual Studio obsługuje tylko klucze RSA.

Przykłady w tym artykule używają systemu Ubuntu 18.04 LTS z serwerem OpenSSH w wersji 7.6. Jednak instrukcje powinny być takie same dla każdej dystrybucji przy użyciu umiarkowanie najnowszej wersji protokołu OpenSSH.

Aby skonfigurować serwer SSH w systemie zdalnym

  1. W systemie Linux zainstaluj i uruchom serwer OpenSSH:

    sudo apt install openssh-server
    sudo service ssh start
    
  2. Jeśli chcesz ssh , aby serwer był uruchamiany automatycznie po uruchomieniu systemu, włącz go przy użyciu polecenia systemctl:

    sudo systemctl enable ssh
    
  3. Otwórz /etc/ssh/sshd_config jako katalog główny. Edytuj (lub dodaj, jeśli nie istnieją), następujące wiersze:

    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
    

    Uwaga

    ssh-rsa jest jedynym algorytmem klucza hosta zgodnego ze standardem FIPS, który obsługuje program VS. aes*-ctr Algorytmy są również zgodne ze standardem FIPS, ale implementacja w programie Visual Studio nie jest zatwierdzona. ecdh-* Algorytmy wymiany kluczy są zgodne ze standardem FIPS, ale program Visual Studio ich nie obsługuje.

    Nie ograniczasz się do tych opcji. Można skonfigurować ssh tak, aby używać innych szyfrowania, algorytmów kluczy hosta itd. Niektóre inne istotne opcje zabezpieczeń, które warto wziąć pod uwagę, to PermitRootLogin, PasswordAuthenticationi PermitEmptyPasswords. Aby uzyskać więcej informacji, zobacz man stronę sshd_config dotyczącą lub artykuł Konfiguracja serwera SSH.

  4. Po zapisaniu i zamknięciu sshd_configuruchom ponownie serwer SSH, aby zastosować nową konfigurację:

    sudo service ssh restart
    

Następnie utworzysz parę kluczy RSA na komputerze z systemem Windows. Następnie skopiujesz klucz publiczny do zdalnego systemu Linux do użycia przez sshprogram .

Aby utworzyć i użyć pliku klucza RSA

  1. Na maszynie z systemem Windows wygeneruj parę kluczy publicznego/prywatnego RSA przy użyciu następującego polecenia:

    ssh-keygen -t rsa -b 4096 -m PEM
    

    Polecenie tworzy klucz publiczny i klucz prywatny. Domyślnie klucze są zapisywane w systemach %USERPROFILE%\.ssh\id_rsa i %USERPROFILE%\\.ssh\\id_rsa.pub. (W programie PowerShell użyj $env:USERPROFILE zamiast makra %USERPROFILE%cmd ) Jeśli zmienisz nazwę klucza, użyj zmienionej nazwy w kolejnych krokach. Zalecamy użycie hasła w celu zwiększenia bezpieczeństwa.

  2. Z systemu Windows skopiuj klucz publiczny na maszynę z systemem Linux:

    scp %USERPROFILE%\.ssh\id_rsa.pub user@hostname:
    
  3. W systemie Linux dodaj klucz do listy autoryzowanych kluczy i upewnij się, że plik ma odpowiednie uprawnienia:

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Teraz możesz sprawdzić, czy nowy klucz działa w pliku ssh. Użyj go, aby zalogować się z systemu Windows:

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

Pomyślnie skonfigurowano ssh, utworzono i wdrożono klucze szyfrowania oraz przetestowano połączenie. Teraz możesz przystąpić do konfigurowania połączenia programu Visual Studio.

Nawiązywanie połączenia z systemem zdalnym w programie Visual Studio

  1. W programie Visual Studio wybierz pozycję Narzędzia > Opcje na pasku menu, aby otworzyć okno dialogowe Opcje . Następnie wybierz Menedżer połączeń międzyplatformowe > , aby otworzyć okno dialogowe Menedżer połączeń.

    Jeśli wcześniej nie skonfigurowaliśmy połączenia w programie Visual Studio, podczas tworzenia projektu po raz pierwszy program Visual Studio otwiera okno dialogowe Menedżer połączeń.

  2. W oknie dialogowym Menedżer połączeń wybierz przycisk Dodaj, aby dodać nowe połączenie.

    Zrzut ekranu przedstawiający okienko opcji w oknie dialogowym Menedżer połączeń. Wyróżniono wieloplatformowe > C plus > Menedżer połączeń.

    Zostanie wyświetlone okno Łączenie z systemem zdalnym.

    Zrzut ekranu przedstawiający okno Łączenie z systemem zdalnym, które zawiera pola tekstowe nazwy hosta, portu, nazwy użytkownika, typu uwierzytelniania i hasła.

  3. W oknie dialogowym Łączenie z systemem zdalnym wprowadź szczegóły połączenia maszyny zdalnej.

    Wpis opis
    Nazwa hosta Nazwa lub adres IP urządzenia docelowego
    Port Port, na którym działa usługa SSH, zazwyczaj 22
    Nazwa użytkownika Użytkownik do uwierzytelniania jako
    Authentication type (Typ uwierzytelniania) Wybieranie klucza prywatnego dla połączenia zgodnego ze standardem FIPS
    Plik klucza prywatnego Plik klucza prywatnego utworzony na potrzeby połączenia SSH
    Hasło Hasło używane z kluczem prywatnym wybranym powyżej

    Zmień typ uwierzytelniania na Klucz prywatny. Wprowadź ścieżkę do klucza prywatnego w polu Plik klucza prywatnego. Możesz użyć przycisku Przeglądaj , aby zamiast tego przejść do pliku klucza prywatnego. Następnie wprowadź hasło używane do szyfrowania pliku klucza prywatnego w polu Hasło .

  4. Wybierz przycisk Połącz, aby spróbować nawiązać połączenie z komputerem zdalnym.

    Jeśli połączenie powiedzie się, program Visual Studio skonfiguruje funkcję IntelliSense do korzystania z nagłówków zdalnych. Aby uzyskać więcej informacji, zobacz IntelliSense dla nagłówków w systemach zdalnych.

    Jeśli połączenie nie powiedzie się, pola wprowadzania, które należy zmienić, są nakreślane na czerwono.

    Zrzut ekranu przedstawiający okno Łączenie z systemem zdalnym zawierające pola tekstowe nazwy hosta i portu opisane na czerwono, aby wskazać, że należy je zmienić.

    Aby uzyskać więcej informacji na temat rozwiązywania problemów z połączeniem, zobacz Nawiązywanie połączenia ze zdalnym komputerem z systemem Linux.

Narzędzie wiersza polecenia dla Menedżer połączeń

Program Visual Studio 2019 w wersji 16.5 lub nowszej: ConnectionManager.exe to narzędzie wiersza polecenia do zarządzania połączeniami programowania zdalnego poza programem Visual Studio. Jest to przydatne w przypadku zadań, takich jak aprowizowanie nowej maszyny deweloperskiej. Możesz też użyć go do skonfigurowania programu Visual Studio na potrzeby ciągłej integracji. Aby zapoznać się z przykładami i pełnym odwołaniem do polecenia ConnectionManager, zobacz ConnectionManager reference (Dokumentacja menedżera połączeń).

Opcjonalnie: Włączanie lub wyłączanie trybu FIPS

Można włączyć tryb FIPS globalnie w systemie Windows.

  1. Aby włączyć tryb FIPS, naciśnij Windows+R , aby otworzyć okno dialogowe Uruchom , a następnie uruchom polecenie gpedit.msc.

  2. Rozwiń węzeł Zasady komputera lokalnego Konfiguracja > komputera Ustawienia systemu Windows Ustawienia > > zabezpieczeń Zasady lokalne i wybierz opcje zabezpieczeń>.

  3. W obszarze Zasady wybierz pozycję Kryptografia systemu: użyj algorytmów zgodnych ze standardem FIPS do szyfrowania, tworzenia skrótów i podpisywania, a następnie naciśnij Enter, aby otworzyć okno dialogowe.

  4. Na karcie Ustawienia zabezpieczeń lokalnych wybierz pozycję Włączone lub Wyłączone, a następnie wybierz przycisk OK , aby zapisać zmiany.

Ostrzeżenie

Włączenie trybu FIPS może spowodować nieoczekiwane przerwanie lub zachowanie niektórych aplikacji. Aby uzyskać więcej informacji, zobacz wpis w blogu Dlaczego nie zalecamy już "trybu FIPS".

Dodatkowe zasoby

Dokumentacja firmy Microsoft dotycząca weryfikacji standardu FIPS 140

FIPS 140-2: Wymagania dotyczące zabezpieczeń modułów kryptograficznych (from NIST)

Program weryfikacji algorytmów kryptograficznych: uwagi dotyczące walidacji (z NIST)

Wpis w blogu firmy Microsoft na temat tego, dlaczego nie zalecamy już korzystania z trybu FIPS

Konfiguracja serwera SSH

Zobacz też

Konfigurowanie projektu systemu Linux
Konfigurowanie projektu CMake systemu Linux
Nawiązywanie połączenia ze zdalnym komputerem z systemem Linux
Wdrażanie, uruchamianie i debugowanie projektu systemu Linux
Konfigurowanie sesji debugowania narzędzia CMake