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
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
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.
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
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.
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.