Udostępnianie usług z VM (DNAT)¶
W typowym środowisku maszyny wirtualne mają przypisane prywatne adresy IP, a udostępniane przez nie usługi (np. strona internetowa) chcemy udostępnić w ogólnodostępnej sieci, a więc pod publicznym adresem IP. W tym celu należy skonfigurować regułę Destination NAT (DNAT).
Potrzebne będą:
Środowisko z Edge NSX-T (to typowy przypadek). Jak sprawdzić czy posiadam NSX-V czy NSX-T?
Maszyna wirtualna (w tym przykładzie: maszyna o adresie
10.0.0.100
) z uruchomioną usługą (w tym przykładzie: strona internetowa HTTP, port80
).Jeśli na maszynie uruchomiony jest wewnętrzny firewall (jak to ma miejsce np. w szablonach systemów Centos Stream i Rocky), to należy odblokować ruch na danym porcie.
Maszyna musi być podłączona do sieci typu Routed (w tym przykładzie: sieć o adresacji
10.0.0.0/24
).
Firewall na Edge skonfigurowany tak, żeby przepuszczać ruch udostępnianej usługi.
Ostrzeżenie
Jeśli zamierzasz udostępnić usługę SSH koniecznie zmień domyślne hasło lub wyłącz możliwość logowania się po nim. Dotyczy to użytkownika root
, a w przypadku systemów z rodziny Ubuntu również użytkownika ubuntu
.
Udostępnianie usług na typowym porcie¶
Poniższa instrukcja dotyczy sytuacji gdy usługa jest udostępniana na maszynie wirtualnej pod typowym (powszechnie używanym) numerem portu.
Wchodzimy do ustawień Edge: z głównego menu wybieramy Networking, następnie poniżej Edge Gateways. Klikamy na nazwę routera Edge widoczną na liście (jeśli widnieje kilka, należy wybrać router podłączony do sieci, w której chcemy udostępnić usługę - tu: internet).
Przechodzimy do zakładki NAT. W przykładzie poniżej widoczna jest stworzona wcześniej reguła SNAT. Aby stworzyć regułę DNAT klikamy NEW.
W formularzu uzupełniamy:
Name: nadajemy nazwę regule, np.
Public www
Interface Type:
DNAT
External IP: adres publiczny, pod którym dostępna będzie usługa. W zależności od ustawień środowiska, po rozwinięciu listy dostępny może być przycisk Public-IPSpace-1: Request
External Port (opcjonalnie): numer portu pod jakim usługa będzie widoczna w internecie, jeśli inny niż używany na VM
Internal IP: adres prywatny VM, np.
10.0.0.100
Application: port na jakim usługa dostępna jest na VM - patrz opis poniżej
Po wciśnięciu ikony ołówka pod Application otwiera się okno Select Application. Jeśli nie wybierzemy Choose a specific application, to przekierowywane do maszyny będą wszystkie porty, łączenie z np. portem 22 (SSH), co może być szczególnie niebezpieczne jeśli nie zmienimy hasła domyślnie ustawionego w systemie operacyjnym. Powoduje to również, że znajdujące się niżej na liście reguły DNAT odnoszące się do tego adresu nie będą używane.
Ostrzeżenie
Uwaga: przekierowanie wszystkich portów (nie wybranie konkretnej aplikacji w polu Application) powoduje zignorowanie pola External Port. W takim wypadku zostaną przekierowane wszystkie połączenia przychodzące na dany publiczny adres IP, nawet jeśli zawartość pola External Port sugeruje co innego.
Zaznaczamy Choose a specific application.
Aby odnaleźć pożądany typ usługi (i związany z nim numer portu) wciskamy symbol filtrowania w nagłówku tabeli i wpisujemy odpowiednią frazę (w tym wypadku: przy nazwie wpisano HTTP
). Zaznaczamy odpowiedni wpis na liście i potwierdzamy Save.
Po powrocie do okna Add NAT Rule wciskamy Save. Reguła zostanie utworzona i można przetestować jej działanie, w tym przykładzie: wklejając publiczny adres IP do przeglądarki.
Nietypowy numer portu¶
Udostępnimy w internecie usługę, która na maszynie wirtualnej uruchomiona jest pod nietypowym numerem portu - w tym przypadku 81
. Będzie to wymagało stworzenia Application Port Profile.
Na ekranie Edgde otwieramy Application Port Profile. W pierwszej kolejności należy sprawdzić, czy numer jest rzeczywiście nietypowy, bo dla wielu przypadków istnieją już odpowiednie wpisy. W części Default Applications wciskamy przycisk filtrowania przy nagłówku Protocol and Destination Ports. Przeglądamy listę (uwaga, tabela może być rozłożona na kilka stron - należy je przewinąć strzałkami na jej dole). Jeśli znajdziemy interesujący nas port - można od razu przejść do instrukcji Udostępnianie usług na typowym porcie.
Jeśli na liście nie było interesującego nas numeru, przechodzimy do stworzenia profilu. W części Custom Applications wciskamy New.
W wyświetlonym formularzu nadajemy nazwę (Name) i podajemy numer portu (Ports). Jeśli interesuje nas protokół UDP, to istnieje również możliwość zmiany w polu Protocol. Zatwierdzamy przyciskiem Save.
Po utworzeniu profilu możemy wykonać instrukcje Udostępnianie usług na typowym porcie. Utworzony przed chwilą wpis powinien pojawić się na liście wyboru aplikacji.