Jak otwierać porty w systemie Linux?
Linux Ubuntu Podstawy Ubuntu Bohater / / March 02, 2022
Ostatnia aktualizacja
Jeśli chcesz zezwolić na połączenia zewnętrzne z komputerem lub serwerem, musisz otworzyć odpowiedni port. Użytkownicy Linuksa mogą otwierać porty, korzystając z tego przydatnego przewodnika.
Chcesz połączyć się z zewnętrznym komputerem lub serwerem — albo potrzebujesz innego komputera lub serwera, aby połączyć się z Tobą? Jeśli używasz Linuksa, musisz upewnić się, że właściwy port jest otwarty.
Podczas gdy inne systemy operacyjne zwykle mają do tego jakieś narzędzie graficzne, Linux nie jest taki prosty. Poniżej przeprowadzimy Cię przez proces otwierania portów w systemie Linux.
Co to jest port i dlaczego powinienem go otwierać?
Port to punkt końcowy w sieci. Pomyśl o tym jak o drzwiach prowadzących do konkretnego pokoju lub świata zewnętrznego, ale na komputerze. Wszystko, co robisz w Internecie, korzysta z określonego portu lub serii portów.
Załóżmy na przykład, że chcesz uruchomić własny serwer Minecraft. Aby to zrobić, musisz otworzyć port, aby użytkownicy mogli się z nim połączyć. To samo dotyczyłoby uruchomienia własnego serwera WWW, poczty lub FTP.
Porty są ujednolicone we wszystkich podłączonych do sieci urządzenia. Pierwsze 1024 porty (od 0 do 1023) są określane jako dobrze znane numery portów. Są one zarezerwowane dla najczęściej używanych usług, takich jak HTTP i HTTP (odpowiednio port 80 i 443) oraz SSH (port 22).
Numery portów powyżej 1024 są określane jako porty efemeryczne, i są zazwyczaj dostępne do użytku w grach online, na prywatnych serwerach internetowych i tak dalej. Numery portów od 1024 do 49151 są nazywane zarejestrowany lub porty użytkownika, natomiast te od 49152 do 65535 są znane jako dynamiczny lub porty prywatne.
Wyświetlanie listy otwartych portów w systemie Linux
Zanim zaczniesz próbować otworzyć port w systemie Linux, upewnij się, że nie jest on już używany. Możesz to osiągnąć za pomocą netstat polecenie, zawarte w większości dystrybucji Linuksa. Jeśli Twoja dystrybucja nie ma netstat, możesz użyć SS zamiast.
netstat -Intu.
Spowoduje to wydrukowanie wszystkich gniazd nasłuchujących (-I) wraz z numerem portu (-n). Zawiera porty TCP (-T) oraz UDP (-u). Jeśli Twój system nie ma netstat, po prostu użyj SS o tych samych parametrach.
ss -Intu.
Jak otwierać porty w systemie Linux?
Na potrzeby tego przykładu założymy, że chcemy otworzyć port 4000 na połączenia TCP. Najpierw musimy się upewnić, że port nie jest już używany. Robimy to poprzez netstat lub SS.
netstat -na | grep: 4000. ss-na | grep: 4000.
Zakładając, że wyjście jest puste, możemy dodać odpowiednie reguły portów do zapory systemowej. Metody na to będą się różnić w zależności od twojej dystrybucji i tego, czy używa nowszej ufw zapora lub zapora ogniowa. Ubuntu sprzyjaufw, dopóki CentOS zazwyczaj używazapora ogniowa zamiast. Oczywiście nadal istnieją pewne dystrybucje Linuksa wykorzystujące starsze iptables zapora.
Dla użytkowników Ubuntu i innych systemów opartych na zaporze ufw
Zamiast używać starszego iptables firewall, Ubuntu i niektóre inne dystrybucje używają ufw. W tych systemach następujące polecenie otworzy port.
sudo ufw zezwalaj na 4000.
Pomiń kilka następnych kroków i przetestuj nowo otwarty port, aby upewnić się, że działa.
Jak otwierać porty w systemie Linux za pomocą CentOS i innych systemów opartych na firewallu
Jeśli twój system używa zapora ogniowa, najlepiej jest użyć firewall-cmd polecenie, aby zaktualizować reguły.
sudo firewall-cmd --add-port=4000/tcp.
Nie będzie to trwała zmiana, ale omówimy, jak utrzymać reguły po ponownym uruchomieniu, gdy przetestujemy port.
Dla innych dystrybucji Linuksa
Jeśli Twój system Linux nie ma ufw lub zapora ogniowa, będziesz musiał użyć iptables. Jeśli nie jest zainstalowany, pobierz go za pomocą wybranego menedżera pakietów. Po zainstalowaniu to polecenie otworzy port 4000:
sudo iptables -A WEJŚCIE -p tcp --dport 4000 -j AKCEPTUJ. restart usługi sudo iptables.
Jeśli twój system używa systemowy, zamień drugie polecenie na:
sudo systemctl restart iptables.
Testowanie nowo otwartych portów pod kątem połączeń
Następnie powinniśmy przetestować port, aby upewnić się, że akceptuje połączenia. Robimy to za pomocą netcata (nc), aby nasłuchiwać portu, a następnie próbować połączyć się z nim za pomocą telnetu.
Najpierw otwórz okno terminala i wydaj to polecenie:
sudo ls | nc -l -p 4000.
Zostaw to włączone (nasłuchuj) i otwórz drugie okno terminala. W tym oknie użyjesz telnetu do przetestowania łączności. Jeśli telnet nie jest zainstalowany, zrób to za pomocą swojego menedżera pakietów.
telnet [nazwa hosta/adres IP] [numer portu]
Zastępować [nazwa hosta/adres IP] z adresem IP twojego systemu, i [numer portu] z numerem portu, który otworzyłeś.
lokalny host telnet 4000.
Powinieneś zobaczyć wyjście takie jak poniżej, wskazujące na otwarte połączenie z nc.
Możemy również pokazać, że port jest otwarty za pomocą nmap. Ponownie, jeśli polecenie nie jest jeszcze zainstalowane, użyj swojego menedżera pakietów, aby je pobrać.
nmap localhost -p 4000.
Zauważ, że nmap wyświetli tylko otwarte porty, które nasłuchują połączeń. Dlatego używamy netcata do testowania, aby nasłuchiwać na tym porcie. W przeciwnym razie port nie zarejestruje się jako otwarty.
Nie mogę połączyć się z portem, który właśnie otworzyłem, co teraz?
Jeśli wykonasz wszystkie powyższe kroki i nie możesz nawiązać połączenia z portem, dokładnie sprawdź pisanie. Jeśli masz pewność, że wszystko wpisałeś poprawnie, prawdopodobnie będziesz musiał ponownie skonfigurować router sieciowy, aby umożliwić ruch.
Ponieważ każdy router sieciowy ma inne ekrany konfiguracyjne, należy zapoznać się ze stronami pomocy technicznej lub instrukcją obsługi danego sprzętu. Musisz sprawdzić ustawienia przekierowania portów lub mapowania portów, a także wbudowaną zaporę sieciową, z której może korzystać router.
Jak na stałe otworzyć port w systemie Linux?
Po przetestowaniu otwartego portu i upewnieniu się, że działa, prawdopodobnie będziesz chciał, aby zmiana była trwała. W przeciwnym razie zmiany mogą nie pozostać po ponownym uruchomieniu. Jeśli jesteś użytkownikiem Ubuntu lub w inny sposób użyj ufw firewall, nie musisz się tym martwić. ten ufw reguły nie resetują się po ponownym uruchomieniu.
Dla użytkowników firewalld
Utrzymanie reguły portu po ponownym uruchomieniu jest łatwe dzięki zapora ogniowa. Po prostu dodaj -stały flagę do początkowego polecenia i zostanie ona uwzględniona w regułach zapory systemu Linux podczas uruchamiania.
sudo firewall-cmd --add-port=4000/tcp --permanent.
Jeśli nadal używasz iptables
ten iptables firewall jest o wiele bardziej kłopotliwy (może to dobry powód do uaktualnienia do zapora ogniowa lub ufw). Aby „na stałe” otworzyć port w iptables, możesz zainstalować iptables-trwałe pakiet do pomocy.
Po pierwszej instalacji iptables-trwałe w systemie opartym na Debianie, zapisze twoje obecne reguły w obu /etc/iptables/rules.v4 lub /etc/iptables/rules.v6. Aby dodać nowe reguły, wydasz następujące polecenie:
sudo iptables-save > /etc/iptables/rules.v4.
LUB
sudo iptables-save > /etc/iptables/rules.v6.
Dla tych, którzy korzystają z dystrybucji Linuksa opartych na RPM, sprawa jest nieco inna. Pakiet nazywa się usługi-iptables, a pliki zapisu są /etc/sysconfig/iptables oraz /etc/sysconfig/ip6tables.
W dystrybucjach opartych na RPM istnieje również inne polecenie używane dla portów IPv6. Zapisywanie reguł odbywa się za pomocą jednego z tych dwóch poleceń:
sudo iptables-save > /etc/sysconfig/iptables. sudo ip6tables-save > /etc/sysconfig/iptables.
Upewnij się, że monitorujesz wykorzystanie portu
W miarę upływu czasu potrzeby serwera mogą się zmieniać. Tak jak powinieneś bądź na bieżąco z kontami użytkowników na komputerze z systemem Linux powinieneś również regularnie kontrolować otwarte porty. Zamknij wszystkie otwarte porty, które nie są już potrzebne. Wraz z regularnie Twoje hasło jest zmieniane, jest to dobra praktyka bezpieczeństwa, która pomoże uniknąć włamań do systemu i luk w zabezpieczeniach.