Ćwiczenie — konfigurowanie dostępu do sieci
W tym ćwiczeniu skonfigurujesz dostęp do maszyny wirtualnej utworzonej wcześniej w tym module.
Ważne
Maszyna wirtualna dla tego ćwiczenia została utworzona wcześniej w tym module. Jeśli usunięto maszynę wirtualną lub grupę zasobów utworzoną w lekcji 3, musisz ponownie wykonać poprzednie ćwiczenie (Ćwiczenie — tworzenie maszyny wirtualnej platformy Azure).
W tej chwili utworzona i zainstalowana maszyna wirtualna Nginx w poprzednim ćwiczeniu nie jest dostępna z Internetu. W tym ćwiczeniu utworzysz sieciową grupę zabezpieczeń, która ulegnie zmianie, zezwalając na przychodzący dostęp HTTP na porcie 80.
Uwaga
Ważne jest, aby korzystasz z usługi Cloud Shell w wersji BASH dla niektórych poleceń w tym ćwiczeniu. Jeśli jesteś obecnie w trybie programu PowerShell, możesz użyć przycisku Przełącz do ...
Zadanie 1. Uzyskiwanie dostępu do serwera internetowego
W tej procedurze uzyskasz adres IP maszyny wirtualnej i podejmiesz próbę uzyskania dostępu do strony głównej serwera internetowego.
Uruchom następujące polecenie
az vm list-ip-addresses, aby uzyskać adres IP maszyny wirtualnej i zapisać wynik jako zmienną Bash:IPADDRESS="$(az vm list-ip-addresses \ --resource-group "IntroAzureRG" \ --name my-vm \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"Uruchom następujące polecenie
curl, aby pobrać stronę główną:curl --connect-timeout 5 http://$IPADDRESSArgument
--connect-timeoutokreśla, że nawiązywanie połączenia może potrwać do pięciu sekund. Po upływie pięciu sekund zostanie wyświetlony komunikat o błędzie z informacją, że upłynął limit czasu połączenia:curl: (28) Connection timed out after 5001 millisecondsTen komunikat oznacza, że maszyna wirtualna nie była dostępna w czasie ograniczenia czasowego.
Opcjonalnie spróbuj uzyskać dostęp do serwera internetowego z przeglądarki:
Uruchom następujące polecenie, aby wydrukować adres IP maszyny wirtualnej w konsoli programu:
echo $IPADDRESSZobaczysz adres IP, na przykład 23.102.42.235.
Skopiuj widoczny adres IP do schowka.
Otwórz nową kartę przeglądarki i przejdź do serwera internetowego. Po chwili zobaczysz, że połączenie nie jest nawiązywane. Jeśli poczekasz, aż przeglądarka przekroczy limit czasu, zobaczysz coś podobnego:
Zostaw tę kartę przeglądarki otwartą do użycia później.
Zadanie 2. Wyświetlanie listy bieżących reguł sieciowej grupy zabezpieczeń
Serwer internetowy nie jest dostępny. Aby dowiedzieć się dlaczego, należy sprawdzić bieżące reguły NSG.
Uruchom następujące polecenie
az network nsg list, aby wyświetlić listę sieciowych grup zabezpieczeń skojarzonych z maszyną wirtualną:az network nsg list \ --resource-group "IntroAzureRG" \ --query '[].name' \ --output tsvZobaczysz następujące dane wyjściowe:
my-vmNSGKażda maszyna wirtualna na platformie Azure jest skojarzona z co najmniej jedną sieciową grupą zabezpieczeń. W tym przypadku platforma Azure utworzyła grupę zabezpieczeń sieciowych o nazwie my-vmNSG.
Uruchom następujące polecenie
az network nsg rule list, aby wyświetlić listę reguł skojarzonych z grupą zabezpieczeń sieciowych o nazwie my-vmNSG:az network nsg rule list \ --resource-group "IntroAzureRG" \ --nsg-name my-vmNSGW danych wyjściowych zostanie wyświetlony duży blok tekstu w formacie JSON. W następnym kroku zostanie uruchomione podobne polecenie, które ułatwia odczytywanie danych wyjściowych.
Uruchom polecenie
az network nsg rule listpo raz drugi. Tym razem użyj argumentu--query, aby pobrać tylko nazwę, priorytet, odpowiednie porty i dostęp (Zezwalaj lub Odmawiaj) dla każdej reguły. Argument--outputformatuje dane wyjściowe jako tabelę, aby można było je łatwo odczytać.az network nsg rule list \ --resource-group "IntroAzureRG" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output tableZobaczysz następujące dane wyjściowe:
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 AllowZostanie wyświetlona domyślna reguła default-allow-ssh. Ta reguła umożliwia połączenia przychodzące przez port 22 (SSH). Protokół SSH (Secure Shell) to protokół używany w systemie Linux, który umożliwia administratorom zdalne uzyskiwanie dostępu do systemu. Priorytetem tej reguły jest 1000. Reguły są przetwarzane w kolejności priorytetu — niższe liczby są przetwarzane przed wyższymi liczbami.
Domyślnie sieciowa grupa zabezpieczeń maszyny wirtualnej systemu Linux zezwala na dostęp do sieci tylko na porcie 22. Ten port umożliwia administratorom dostęp do systemu. Należy również zezwolić na połączenia przychodzące na porcie 80, który zezwala na dostęp za pośrednictwem protokołu HTTP.
Zadanie 3. Tworzenie reguły zabezpieczeń sieci
W tym miejscu utworzysz regułę zabezpieczeń sieci, która zezwala na dostęp przychodzący na porcie 80 (HTTP).
Uruchom następujące polecenie
az network nsg rule create, aby utworzyć regułę o nazwie allow-http, która zezwala na dostęp przychodzący na porcie 80:az network nsg rule create \ --resource-group "IntroAzureRG" \ --nsg-name my-vmNSG \ --name allow-http \ --protocol tcp \ --priority 100 \ --destination-port-range 80 \ --access AllowNa potrzeby nauki ustaw priorytet na 100. W tym przypadku priorytet nie ma znaczenia. Musisz wziąć pod uwagę priorytet, jeśli nakładają się zakresy portów.
Aby sprawdzić konfigurację, uruchom polecenie
az network nsg rule list, aby wyświetlić zaktualizowaną listę reguł:az network nsg rule list \ --resource-group "IntroAzureRG" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output tableZobaczysz zarówno regułę default-allow-ssh , jak i nową regułę allow-http:
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 Allow allow-http 100 80 Allow
Zadanie 4. Ponowne uzyskiwanie dostępu do serwera internetowego
Po skonfigurowaniu dostępu sieciowego do portu 80 spróbujmy uzyskać dostęp do serwera internetowego po raz drugi.
Uwaga
Po zaktualizowaniu sieciowej grupy zabezpieczeń może upłynąć kilka chwil przed rozpowszechnieniem zaktualizowanych reguł. Ponów próbę następnego kroku z wstrzymaniem między próbami, dopóki nie uzyskasz żądanych wyników.
Uruchom to samo polecenie
curl, które zostało uruchomione wcześniej:curl --connect-timeout 5 http://$IPADDRESSZostanie wyświetlona następująca odpowiedź:
<html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>Jako opcjonalny krok, odśwież kartę przeglądarki, która prowadzi do Twojego serwera internetowego. Zostanie wyświetlona strona główna:
Brawo. W praktyce można utworzyć autonomiczną sieciową grupę zabezpieczeń zawierającą wymagane przychodzące i wychodzące reguły dostępu do sieci. Jeśli masz wiele maszyn wirtualnych pełniących tę samą funkcję, możesz przypisać sieciową grupę zabezpieczeń do każdej maszyny wirtualnej podczas jej tworzenia. Ta technika umożliwia kontrolowanie dostępu do sieci na wielu maszynach wirtualnych w ramach jednego, centralnego zestawu reguł.
Wykonano to ćwiczenie i wszystkie ćwiczenia dla tego modułu. Aby wyczyścić środowisko platformy Azure i uniknąć opuszczania maszyn wirtualnych uruchomionych, gdy nie są używane, usuń grupę zasobów IntroAzureRG .
Czyszczenie
- Na stronie głównej platformy Azure w obszarze Usługi platformy Azure wybierz pozycję Grupy zasobów.
- Wybierz grupę zasobów IntroAzureRG .
- Wybierz pozycję Usuń grupę zasobów.
- Wprowadź polecenie
IntroAzureRG, aby potwierdzić usunięcie grupy zasobów i wybierz pozycję Usuń.