Skip to main content
  • »
  • NETWORKING »
  • Jak otwierać porty w systemie Linux na NSIS Cloud

Jak otwierać porty w systemie Linux na NSIS Cloud

Firewall to oprogramowanie lub firmware, które egzekwuje zestaw reguł określających, które pakiety danych mogą wchodzić do sieci lub ją opuszczać. Odpowiada ono za zarządzanie regułami Allow i Deny dla portów oraz protokołów.

W tym artykule wyjaśniamy, jak otwierać porty w dwóch dystrybucjach Linuxa:

  • Ubuntu z użyciem UFW

  • CentOS 9 z użyciem firewalld

Niezależnie od użytego narzędzia zapory sieciowej, efekt końcowy jest taki sam: kontrolowany i bezpieczny dostęp do sieci.

Zakres artykułu

Wymagania wstępne

Nr 1 Konto

Musisz posiadać konto hostingowe na NSIS Cloud z dostępem do interfejsu Horizon: https://horizon.cloudferro.com/.

Nr 2 Utworzenie maszyn wirtualnych

Aby przetestować konfigurację zapory sieciowej, utwórz jedną maszynę wirtualną z Ubuntu oraz jedną maszynę wirtualną z CentOS 9 w swoim projekcie chmurowym NSIS Cloud. Przypisz do każdej maszyny publiczny adres IPv4, aby możliwe było połączenie przez SSH.

Poniższe artykuły mogą posłużyć jako materiały referencyjne:

Nr 3 Security Group z dostępem SSH

Upewnij się, że dla obu maszyn wirtualnych port 22/tcp jest dozwolony w przypisanej security group, aby połączenia SSH działały poprawnie.

Nr 4 Uprawnienia sudo

Musisz mieć możliwość wykonywania poleceń z użyciem sudo na obu systemach.

Ubuntu

Ubuntu domyślnie zawiera usługę UFW (Uncomplicated Firewall). Zapewnia ona uproszczony i przyjazny dla użytkownika interfejs do zarządzania regułami zapory sieciowej.

W większości przypadków UFW jest już zainstalowany w systemach Ubuntu. Jeśli pakiet nie jest obecny, zainstaluj go za pomocą poniższego polecenia:

sudo apt install ufw

Sprawdzanie statusu usługi

Sprawdź aktualny status usługi UFW:

sudo systemctl status ufw

Aktywowanie zapory sieciowej

Aktywuj UFW, aby reguły zapory były egzekwowane:

sudo ufw enable
Installing UFW on Ubuntu

Rozpoczęcie pracy z UFW na Ubuntu

Otwieranie portów

UFW umożliwia otwieranie portów poprzez podanie konkretnych numerów portów lub przy użyciu symbolicznych nazw usług. Nazwy symboliczne to predefiniowane aliasy, które mapują popularne usługi na ich standardowe porty i protokoły, co ułatwia czytanie i utrzymanie reguł.

Otwieranie konkretnego portu TCP

Aby zezwolić na ruch przychodzący na konkretnym porcie TCP, użyj następującej składni:

sudo ufw allow <port>/tcp

Przykład (zezwolenie na DNS przez TCP na porcie 53):

sudo ufw allow 53/tcp

Użycie symbolicznych nazw usług

UFW zawiera listę znanych nazw usług odpowiadających popularnym kombinacjom portów i protokołów. Po użyciu nazwy usługi, UFW automatycznie stosuje właściwy port i protokół.

Przykład:

sudo ufw allow https

Polecenie to zezwala na ruch HTTPS (port TCP 443).

Najczęściej używane symboliczne nazwy usług

Poniższa tabela przedstawia najczęściej używane symboliczne nazwy usług obsługiwane przez UFW:

Nazwa serwisu

Port / Protokół

Typowe zastosowanie

ssh

22 / tcp

Bezpieczny dostęp zdalny

http

80 / tcp

Ruch sieciowy WWW (nieszyfrowany)

https

443 / tcp

Bezpieczny ruch WWW

ftp

21 / tcp

Transfer plików

dns

53 / tcp, udp

Rozwiązywanie nazw domen

Zezwalanie na ruch TCP i UDP

Jeżeli dana usługa wymaga zarówno TCP, jak i UDP, możesz zezwolić na port bez określania protokołu.

Przykład (ruch sterujący FTP na porcie 21):

sudo ufw allow 21

Przykładowe konfiguracje

Poniżej przedstawiono kilka typowych kombinacji reguł zapory stosowanych na serwerach.

Zezwolenie tylko na SSH i HTTPS:

sudo ufw allow ssh
sudo ufw allow https

Zezwolenie na serwer WWW (HTTP i HTTPS):

sudo ufw allow http
sudo ufw allow https

Zezwolenie na DNS i ograniczenie dostępu do konkretnego portu aplikacji:

sudo ufw allow dns
sudo ufw allow 1112/tcp
Allowing ports using UFW

Zezwalanie na ruch z określonego adresu IP

Aby zezwolić na ruch przychodzący wyłącznie z określonego adresu IPv4:

sudo ufw allow from 190.34.21.113

Weryfikacja konfiguracji

Wyświetl aktywne reguły zapory:

sudo ufw status verbose

Dane wyjściowe są prezentowane w formie tabeli z trzema głównymi kolumnami.

UFW status output showing allowed and denied rules

Wyjaśnienie:

To

Port docelowy i protokół

Action

Informacja, czy ruch jest dozwolony czy blokowany

From

Adres źródłowy (np. Anywhere lub konkretny adres IP)

CentOS 9

CentOS 9 korzysta z firewalld, bardziej zaawansowanego narzędzia do zarządzania zaporą sieciową opartego na strefach. Strefy określają poziomy zaufania dla interfejsów sieciowych.

firewalld działa jako kontroler frontendowy dla iptables i umożliwia trwałe zarządzanie regułami.

Instalacja firewalld

Zainstaluj pakiet firewalld:

sudo dnf install firewalld

Uruchamianie i włączanie usługi

Uruchom usługę firewalld:

sudo systemctl start firewalld

Włącz ją, aby uruchamiała się automatycznie podczas startu systemu:

sudo systemctl enable firewalld

Sprawdzanie stanu usługi

Sprawdź, czy firewalld działa:

sudo firewall-cmd --state
Installing firewalld on CentOS 9

Rozpoczęcie pracy z firewalld

Zrozumienie poleceń firewalld

Podczas pracy z firewalld zauważysz użycie dwóch typów poleceń: poleceń systemctl oraz firewall-cmd. Jest to zamierzone i nie stanowi niespójności.

  • firewalld to usługa zapory sieciowej działająca w systemie

  • firewall-cmd to klient wiersza poleceń służący do jej konfiguracji

Zarządzanie usługą a konfiguracja zapory

Polecenia systemctl służą do zarządzania samą usługą firewalld. Kontrolują one, czy daemon zapory działa oraz czy uruchamia się automatycznie.

Przykłady:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Konfiguracja reguł zapory

Polecenia firewall-cmd komunikują się z działającym daemonem firewalld. Służą do konfigurowania reguł, stref, portów i usług.

Przykład:

sudo firewall-cmd --state

Praca ze strefami

Domyślną strefą jest public. Aby zmienić ją na inną strefę o nazwie work, wykonaj:

sudo firewall-cmd --set-default-zone=work

Otwieranie portu TCP

Zezwól na ruch TCP na porcie 1112 na stałe w strefie public:

sudo firewall-cmd --zone=public --add-port=1112/tcp --permanent

Zastosowanie zmian

Przeładuj firewalld, aby zastosować konfigurację:

sudo firewall-cmd --reload

Przegląd aktywnych reguł

Możesz wyświetlić aktywne porty i usługi przypisane do strefy za pomocą firewall-cmd.

Wyświetlenie aktywnej strefy i jej reguł:

sudo firewall-cmd --get-active-zones

Lista wszystkich dozwolonych usług i portów w strefie public:

sudo firewall-cmd --zone=public --list-all

Jeśli chcesz wyświetlić tylko porty dozwolone w strefie:

sudo firewall-cmd --zone=public --list-ports

Jeśli chcesz wyświetlić tylko usługi dozwolone w strefie:

sudo firewall-cmd --zone=public --list-services

Polecenia te umożliwiają szybkie sprawdzenie, które porty i usługi są aktualnie dozwolone przez firewalld.

Firewalld list of active rules

Zezwalanie na SSH z określonego adresu IP

Aby zezwolić na dostęp SSH wyłącznie z określonego adresu IPv4, użyj rich rule:

sudo firewall-cmd \
  --zone=public \
  --add-rich-rule 'rule family="ipv4" source address="192.168.13.44" port port="22" protocol="tcp" accept' \
  --permanent

Przeładuj firewalld, aby aktywować regułę:

sudo firewall-cmd --reload

Podsumowanie

  • UFW jest domyślną zaporą sieciową w Ubuntu i oferuje prosty model konfiguracji.

  • firewalld jest domyślną zaporą sieciową w CentOS 9 i wykorzystuje zarządzanie oparte na strefach.

  • Zawsze weryfikuj reguły zapory po wprowadzeniu zmian, aby uniknąć przypadkowej utraty dostępu, zwłaszcza podczas pracy przez SSH.

Co można zrobić dalej

Porty można również otwierać z poziomu interfejsu Horizon przy użyciu security groups. Podstawowe informacje znajdziesz w tym artykule: Jak używać grup bezpieczeństwa w Horizon na NSIS Cloud.

W tym artykule opisano, jak uzyskać dostęp do wnętrza maszyny wirtualnej za pomocą konsoli w Horizon: Jak uzyskać dostęp do maszyny wirtualnej z konsoli OpenStack na NSIS Cloud.