Udostępnij za pośrednictwem


Kontrolowanie ruchu wychodzącego za pomocą usługi Azure Firewall

W tym artykule pokazano, jak ograniczyć ruch wychodzący z aplikacji usługi App Service do zasobów zaplecza Azure lub innych zasobów sieciowych za pomocą usługi Azure Firewall. Ta konfiguracja pomaga zapobiegać eksfiltracji danych lub ryzyku wszczepienia złośliwego programu.

Domyślnie aplikacja usługi App Service może wysyłać żądania wychodzące do publicznego Internetu (na przykład podczas instalowania wymaganych pakietów Node.js z NPM.org). Jeśli aplikacja jest zintegrowana z siecią wirtualną platformy Azure, możesz kontrolować ruch wychodzący z sieciowymi grupami zabezpieczeń w ograniczonym zakresie, takim jak docelowy adres IP, port i protokół. Usługa Azure Firewall umożliwia kontrolowanie ruchu wychodzącego na znacznie bardziej szczegółowym poziomie i filtrowanie ruchu na podstawie analizy zagrożeń w czasie rzeczywistym z poziomu usługi Microsoft Cyber Security. Możesz centralnie tworzyć, wymuszać i rejestrować zasady łączności aplikacji i sieci w subskrypcjach i sieciach wirtualnych (zobacz Funkcje usługi Azure Firewall).

Aby zapoznać się ze szczegółowymi pojęciami dotyczącymi sieci i ulepszeniami zabezpieczeń w usłudze App Service, zobacz Funkcje sieciowe i Od zera do bohatera z App Service, część 6: Zabezpieczenie twojej aplikacji webowej.

Wymagania wstępne

  • Włącz regionalną integrację sieci wirtualnej dla aplikacji.
  • Sprawdź, czy opcja Route All jest włączona. To ustawienie jest domyślnie włączone, co informuje usługę App Service o kierowaniu całego ruchu wychodzącego przez zintegrowaną sieć wirtualną. Jeśli go wyłączysz, ruch tylko do prywatnych adresów IP będzie kierowany przez sieć wirtualną.
  • Jeśli chcesz również kierować dostęp do usług zaplecza platformy Azure za pośrednictwem usługi Azure Firewall, wyłącz wszystkie punkty końcowe usługi w podsieci usługi App Service w zintegrowanej sieci wirtualnej. Po skonfigurowaniu usługi Azure Firewall ruch wychodzący do usług platformy Azure będzie kierowany przez zaporę zamiast punktów końcowych usługi.

1. Utwórz wymaganą podsieć zapory sieciowej

Aby wdrożyć zaporę w zintegrowanej sieci wirtualnej, potrzebna jest podsieć o nazwie AzureFirewallSubnet.

  1. W witrynie Azure Portal przejdź do sieci wirtualnej zintegrowanej z aplikacją.
  2. W obszarze nawigacji po lewej stronie wybierz Podsieci>+ Podsieć.
  3. W polu Nazwa wpisz AzureFirewallSubnet.
  4. Zakres adresów podsieci, zaakceptuj domyślny lub określ zakres o rozmiarze co najmniej /26.
  5. Wybierz pozycję Zapisz.

2. Wdróż zaporę i uzyskaj jej adres IP

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Wpisz firewall w polu wyszukiwania i naciśnij Enter.

  3. Wybierz pozycję Zapora, a następnie wybierz pozycję Utwórz.

  4. Na stronie Tworzenie zapory skonfiguruj zaporę, jak pokazano w poniższej tabeli:

    Ustawienie Wartość
    Grupa zasobów: Ta sama grupa zasobów co zintegrowana sieć wirtualna.
    Nazwa/nazwisko Wybrana nazwa
    Region Ten sam region co zintegrowana sieć wirtualna.
    Zasady zapory Utwórz go, wybierając pozycję Dodaj nową.
    Sieć wirtualna Wybierz zintegrowaną sieć wirtualną.
    Publiczny adres IP Wybierz istniejący adres lub utwórz go, wybierając pozycję Dodaj nowy.

    Zrzut ekranu przedstawiający tworzenie usługi Azure Firewall w witrynie Azure Portal.

  5. Kliknij pozycję Przejrzyj i utwórz.

  6. Wybierz ponownie pozycję Utwórz .

    Wdrożenie potrwa klika minut.

  7. Po zakończeniu wdrażania przejdź do grupy zasobów i wybierz zaporę.

  8. Na stronie Przegląd zapory skopiuj prywatny adres IP. Prywatny adres IP będzie używany jako adres następnego przeskoku w regule routingu dla sieci wirtualnej.

    Zrzut ekranu przedstawiający pobieranie prywatnego adresu IP usługi Azure Firewall.

3. Przekieruj cały ruch do zapory

Podczas tworzenia sieci wirtualnej platforma Azure automatycznie tworzy domyślną tabelę tras dla każdej z jej podsieci i dodaje domyślne trasy systemowe do tabeli. W tym kroku utworzysz tabelę tras zdefiniowaną przez użytkownika, która kieruje cały ruch do zapory, a następnie skojarzysz ją z podsiecią usługi App Service w zintegrowanej sieci wirtualnej.

  1. W menu witryny Azure Portal wybierz pozycję Wszystkie usługi lub wyszukaj i wybierz pozycję Wszystkie usługi na dowolnej stronie.

  2. W obszarze Sieć wybierz pozycję Tabele tras.

  3. Wybierz Dodaj.

  4. Skonfiguruj tabelę tras, tak jak w poniższym przykładzie:

    Zrzut ekranu przedstawiający tworzenie tabeli tras routingu w witrynie Azure Portal.

    Upewnij się, że wybrano ten sam region co utworzona zapora.

  5. Wybierz pozycję Przejrzyj i utwórz.

  6. Wybierz pozycję Utwórz.

  7. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

  8. W obszarze nawigacji po lewej stronie wybierz pozycję Trasy>Dodaj.

  9. Skonfiguruj nową trasę, jak pokazano w poniższej tabeli:

    Ustawienie Wartość
    Prefiks adresu 0.0.0.0/0
    Typ następnego skoku Urządzenie wirtualne
    Adres następnego skoku Prywatny adres IP dla zapory, który skopiowałeś w 2. Wdróż zaporę i uzyskaj jej adres IP.
  10. W obszarze nawigacji po lewej stronie wybierz pozycję Kojarzenie podsieci>

  11. W obszarze Sieć wirtualna wybierz zintegrowaną sieć wirtualną.

  12. W obszarze Podsieć wybierz podsieć usługi App Service.

    Zrzut ekranu przedstawiający kojarzenie tabeli tras z podsiecią usługi App Service.

  13. Wybierz przycisk OK.

4. Konfigurowanie zasad zapory

Ruch wychodzący z aplikacji jest teraz kierowany przez zintegrowaną sieć wirtualną do zapory. Aby kontrolować ruch wychodzący usługi App Service, dodaj regułę aplikacji do zasad zapory.

  1. Przejdź do strony podsumowania zapory i wybierz jej politykę.

  2. Na stronie zasad zapory, w obszarze nawigacji po lewej stronie, wybierz Reguły aplikacji>Dodaj kolekcję reguł.

  3. W obszarze Reguły dodaj regułę sieciową z podsiecią usługi App Service jako adresem źródłowym i określ docelowy adres FQDN. Na poniższym zrzucie ekranu docelowa nazwa FQDN jest ustawiona na contoso.com.

    Zrzut ekranu przedstawiający konfigurowanie reguły zasad usługi Azure Firewall.

    Uwaga

    Zamiast określać podsieć usługi App Service jako adres źródłowy, możesz również bezpośrednio użyć prywatnego adresu IP aplikacji w podsieci. Prywatny adres IP aplikacji można znaleźć w podsieci przy użyciu zmiennej środowiskowejWEBSITE_PRIVATE_IP.

  4. Wybierz Dodaj.

5. Sprawdź ruch wychodzący

Łatwym sposobem sprawdzenia konfiguracji jest użycie curl polecenia z konsoli debugowania SCM aplikacji w celu zweryfikowania połączenia wychodzącego.

  1. W przeglądarce przejdź do https://<app-name>.scm.azurewebsites.net/DebugConsole.

  2. W konsoli programu uruchom polecenie curl -s <protocol>://<fqdn-address> z adresem URL zgodnym ze skonfigurowaną regułą aplikacji. Poniższy zrzut ekranu przedstawia przykład witryny internetowej, która pokazuje pomyślną odpowiedź z interfejsu API przedstawiającą adres IP.

    Zrzut ekranu weryfikowania sukcesu ruchu wychodzącego przy użyciu polecenia curl w konsoli debugowania SCM.

  3. Uruchom ponownie polecenie curl -s <protocol>://<fqdn-address> przy użyciu adresu URL, który nie jest zgodny ze skonfigurowaną regułą aplikacji. Na poniższym zrzucie ekranu nie otrzymujesz odpowiedzi, co oznacza, że zapora zablokowała żądanie wychodzące z aplikacji.

    Zrzut ekranu przedstawiający wysyłanie ruchu wychodzącego przy użyciu polecenia curl w konsoli debugowania SCM.

Napiwek

Ponieważ te żądania wychodzące przechodzą przez zaporę, można je przechwycić w dziennikach zapory, włączając rejestrowanie diagnostyczne zapory (włącz usługę AzureFirewallApplicationRule).

Jeśli uruchomisz polecenia curl z włączonymi dziennikami diagnostycznymi, możesz je znaleźć w dziennikach zapory.

  1. W portalu Azure przejdź do zapory.

  2. W obszarze nawigacji po lewej stronie wybierz pozycję Dzienniki.

  3. Zamknij wiadomość powitalną, wybierając pozycję X.

  4. W obszarze Wszystkie zapytania wybierz Dzienniki zapory>Dane dziennika reguł aplikacji.

  5. Kliknij Uruchom. Te dwa dzienniki dostępu są widoczne w wynikach zapytania.

    Zrzut ekranu przedstawiający konsolę debugowania SCM w celu zweryfikowania nieudanego ruchu wychodzącego przy użyciu polecenia curl.

Więcej zasobów

Monitorowanie dzienników i metryk usługi Azure Firewall.