Po przeczytaniu tego samouczka będziesz mógł łatwo otwierać porty w określonych dystrybucjach Linux i uniwersalny sposób otwarcia ich we wszystkich dystrybucjach.
Zapory ogniowe opisane w tym dokumencie obejmują NFTables, UFW (Debian/Ubuntu) i IPTables.
Każdy krok wyjaśniony w tym artykule zawiera zrzuty ekranu, co ułatwia każdemu użytkownikowi Linux ich implementacja.
Notatka: Upewnij się, że usługi dla otwartych portów są aktywne."
Jak otwierać porty za pomocą NFTables
Nftables to wymiana iptables. Dzisiaj NFABLES stał się ważniejszy niż zaprzestana zapora IPTABLES.
Nowe wersje dystrybucji, takie jak Debian, już przynoszą nftables.
Nadal możesz używać IPTables i jego frontend UFW (nieskomplikowana zapora), która upraszcza wszystkie zadania. Oba są również wyjaśnione w tym samouczku po tym rozdziale poświęconym NFTABLES.
Aby rozpocząć, upewnij się, że NFTABLES i wszystkie zależności są zainstalowane. W dystrybucjach Linux opartych na debian uruchom polecenie pokazane na zrzucie ekranu poniżej.
sudo apt instaluj nftables
Podczas procesu instalacji zostaniesz poproszony o potwierdzenie w celu ponownego uruchomienia niektórych programów i usług. Naciskać WCHODZIĆ.
W przypadku aktualizacji biblioteki glib, naciśnij TAK Jeśli poproszono go o jego zaktualizowanie.
Zapytany, czy ponownie uruchom usługi, naciśnij WCHODZIĆ.
Po zainstalowaniu nftables możesz zacząć pisać swoją zaporę i definiować porty, aby pozostać otwarte.
sudo nftablesruleles.tekst
Below you can see a simple Nftables firewall with a restrictive policy, dropping all traffic except for the defined open ports 80, 443, 53 and 22. Wszystkie wiersze wykonywalne są wyjaśnione w komentarzach.
#Pierwsze dwa linie wykonywalne definiują sieć lokalną (LinuxhinTnet) i #Some Ports (80 443,22), aby umożliwić ruch w poniższych zasadach.
Zdefiniuj Linuxhintnet = 192.168.0.0/16
Zdefiniuj zezwolenie = 80,443,53,22
#Zadeklaruję nową tabelę zawierającą łańcuchy i zasady. Nazwałem tę tabelę #„Restictive”; Nazwa jest dowolna. „INET” stosuje reguły zarówno do #IPv4, jak i IPv6. W przypadku IPv6 używa tylko „IP6” lub używa „IP” IPv4.
Dodaj tabelę INET Restrykcyjnie
# Po zdefiniowaniu tabeli poniżej dodałem trzy łańcuchy, przychodzące, przekierowujące i wychodzące. Ich nazwiska są również arbitralne. Wszystkie z nich upuszczają przychodzące, wychodzące i przekazujące ruch jako domyślną politykę.
Dodaj łańcuch INET Restrictive Incoming Typ Filtr Hook Priorytet wejściowy 0; spadek polityki;
Dodaj łańcuch INET Restrictive przekierowanie Typ Filtr Hook Priorytetem do przodu 0; spadek polityki;
Dodaj łańcuch INET Restrictive wychodzący Typ Filtr Hook Outoid Oresityt 0; spadek polityki;
# Poniżej dodano dwie reguły umożliwiające ruch w pętli.
Dodaj regułę INET Restrictive Incoming IifName LO Counter Zaakceptuj
Dodaj regułę INET Restrictive Incoming Oifname LO Counter Zaakceptuj
# Dodałem również zasady, aby umożliwić ruch za pośrednictwem portów, które zdefiniowałem w zmiennej #Allowports.
Dodaj regułę INET Restrictive Incoming TCP Sport $ Aldports Counter Accept
Dodaj regułę INET Restrictive wychodzący TCP DPORT $ ALLAMPORTS Counter Zaakceptuj
Dodaj regułę INET Restrictive Incoming UDP Sport $ Aldports Counter Zaakceptuj
Dodaj regułę INET Restrictive wychodzący UDP DPORT $ ALLAMPORTS ACADE
Poniżej możesz zobaczyć zrzut ekranu zapory.
Po zapisaniu pliku wykonaj zaporę za pomocą następującego polecenia, gdzie „nftablesruleles.tekst”Musi zostać zastąpiony nazwą pliku utworzoną.
sudo nft -f nftablesruleles.tekst
Aby zobaczyć aktywne zasady zapory ogniowej:
Sudo NFT Listset
Jeśli chcesz spłukać reguły zapory, uruchom polecenie pokazane poniżej.
Sudo NFT RUSHET
Teraz zbadajmy najprostszą opcję z UFW.
Jak otwierać porty z UFW (nieskomplikowana zapora)
W tej sekcji wyjaśniono, jak otwierać porty w dystrybucjach Linux opartych na Debian, takich jak Ubuntu za pomocą UFW (nieskomplikowana zapora zapory), która, jak sama nazwa wskazuje, jest łatwym w użyciu frontend IPTABLES do tworzenia reguł zapory, w tym te musimy otworzyć porty. W Debian/Ubuntu Linux.
Notatka: Aby otworzyć porty, oprócz zasad zapory, upewnij się, że usługa, którą chcesz włączyć, jest aktywna.
Jeśli UFW nie jest zainstalowane w systemie, możesz go uzyskać za pomocą menedżera pakietów Apt, uruchamiając następujące polecenie.
sudo apt instal UFW
Po zainstalowaniu UFW musisz włączyć go, wykonując pokazane na zrzucie ekranu poniżej.
sudo ufw włącz
Po zainstalowaniu UFW możesz otworzyć port, określając go, jak pokazano poniżej.
Sudo UFW zezwalaj
Na przykład, aby otworzyć port 22, uruchom następujące polecenie.
sudo ufw pozwól 22
Możesz także otworzyć port, określając usługę lub protokół zamiast numeru portu, jak pokazano na poniższym obrazku.
sudo ufw pozwól ssh
Dodając regułę taką jak poprzednia, możesz sprawdzić, czy port został pomyślnie otwarty, uruchamiając następujące polecenie.
status sudo UFW
Ale nawet jeśli zapora umożliwia ruch, musisz sprawdzić, czy żądana usługa działa, a port jest otwarty; Możesz wykonać polecenie pokazane poniżej.
sudo netstat -tulpn | Grep Słuchaj
Jak widać na powyższym obrazie, port słucha.
Dzięki UFW (i wszystkich zaporach) możesz określić protokół, za pomocą którego umożliwiasz ruch w określonym porcie. Po prostu dodaj slash po numerze portu lub nazwie usługi, a następnie protokół. W poniższym przykładzie port 80 znajduje się w protokole TCP.
sudo ufw zezwalaj na 80/tcp
Poniższy przykład umożliwia ruch UDP przez port 1025.
sudo ufw pozwól 1025/UDP
Aby umożliwić ruch przez port z określonego adresu IP, użyj następującej składni, w której adres IP i numer portu muszą zostać zastąpione żądanym IP/portem.
sudo ufw zezwala na 172.64.175.28 do dowolnego portu 21
Notatka: Aby zamknąć port za pomocą UFW, wymień „pozwól” „odmów”, jak pokazano poniżej.
sudo ufw odmów
Aby zamknąć port 22, uruchom:
sudo ufw zaprzecz 22
Lub
sudo ufw zaprzecz ssh
Notatka: Aby zamknąć port 22, upewnij się, że wyłączenie usługi SSH jest wyłączone, uruchamiając poniższe polecenie.
Sudo Systemctl Stop 22
Ponownie sprawdzam, czy moje reguły zostały odpowiednio dodane, uruchamiając UFW, a następnie status opcja.
status sudo UFW
To najłatwiejszy sposób na otwarcie portów w Linux.
Porty otwierające we wszystkich rozkładach Linux (IPTables)
Ta sekcja pokazuje, jak otwierać porty za pomocą iptables, zapora za wcześniej wyjaśnioną frontendą UFW.
Poniższa zasada pozwala na ruch przychodzący (wejściowy) TCP przez port 22. Wymień „22” na numer portu, który musisz otworzyć.
sudo iptables -a wejście -p tcp - -dport 22 -j Zaakceptuj
sudo iptables -s Polecenie pozwala zobaczyć aktywne reguły zapory. Jak widać powyżej, dodana linia jest aktywna.
Poniższa linia umożliwia ruch wychodzący (wyjściowy) przez port 22.
sudo iptables -a wyjściowe -p tcp -dport 22 -j Zaakceptuj
Możesz zdefiniować zakres portów, aby otworzyć się, wdrażając dwukropek między portami początkowymi i końcowymi, jak pokazano poniżej.
sudo iptables -a wejście -p tcp - -destination -port 21:25 -J Zaakceptuj
Aby zapisać reguły, wykonaj polecenie pokazane na poniższym rysunku.
sudo iptables-save
Aby wypłukać reguły iptables, wykonaj flagę IPTABLES, a następnie flagę -f (spłukiwanie).
sudo iptables -f