Mnohokrát po instalaci nějaké aplikace nebo přístupu k vestavěné službě mimo systém pomocí jiných zařízení potřebujeme otevřít síťový port. Je to komunikační koncový bod definovaný softwarovou vrstvou k identifikaci a přístupu k určitému procesu nebo typu síťové služby. Například služba SSH (Secure Shell Protocol), výchozí port pro ni je 22, který můžeme použít pro vzdálený přístup k libovolnému konkrétnímu počítači. Stejně tak CPanel, NextCloud, Apache a další různé nástroje a software přicházejí s vlastním číslem portu. Pokud však máte nainstalovaný firewall, pak by většina portů byla ve výchozím nastavení zablokována a abychom s nimi mohli komunikovat, musíme je nejprve otevřít.
Řekněme, že chcete otevřít port 80 nebo 443 v AlmaLinux 8, jak to tedy udělat? Abychom vám s tím pomohli, zde je tutoriál.
Další informace:
- Jak nainstalovat firewall v systému Almalinux 8 nebo Rocky Linux včetně CentOS a RHEL 8
- Otevřít a zavřít porty jako 80, 443, 3603, 22 atd. na Almalinuxu pomocí brány Firewalld.
- Znovu načtěte konfiguraci brány firewall.
- Jak zobrazit seznam otevřených portů nebo služeb
Příkaz k otevření portů v AlmaLinux 8 nebo Rocky
Zkontrolujte, zda je firewall spuštěn nebo ne
Jediná věc, kterou musíme zajistit, aby firewalld byl na našem AlmaLinuxu a fungoval správně před otevřením a zavřením jakéhokoli portu v systému.
Kontrola stavu:
sudo systemctl status firewalld
Pokud neběží, použijte níže uvedené příkazy:
sudo systemctl start firewalld sudo systemctl enable firewalld
No, ti, kteří nemají firewall nainstalovaný a chtějí ho, mohou spustit:
sudo dnf update sudo dnf install firewalld
Seznam všech otevřených portů a služeb
Před otevřením kteréhokoli konkrétního portu se přesvědčte, že již není aktivní ve firewallu a nebyl mu povolen přístup přes veřejná připojení pro daný běh-
sudo firewall-cmd --list-all
Na níže uvedeném snímku obrazovky tedy jasně vidíme, že port 443 nebo 3602 nesmí komunikovat externě.
FirewallD také přichází s některými předkonfigurovanými službami, pro ně a jejich porty firewall standardně umožňuje veřejnou komunikaci. A několik z nich je SSH, Plex, Cockpit atd. Seznam všech takových služeb můžete zkontrolovat pomocí příkazu-
firewall-cmd --get-services
Výstup: Toto jsou služby, které jsou k dispozici firewallem jako předkonfigurované a lze je otevřít pouze pomocí jejich názvu se syntaxí příkazu uvedenou v dalších krocích tohoto návodu.
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
Seznam zón
I když pro přístup k jakékoli službě jsme tuto službu pouze povolili veřejně zónu, ale jen pro informaci můžete zkontrolovat i další dostupné zóny, pokud chcete některou z nich použít.
firewall-cmd --get-zones
Výstup-
block dmz drop external home internal nm-shared public trusted work
K otevření portu nebo služby použijte příkaz firewalld
Nyní je výchozí zóna pro přístup ke službě z vnější sítě veřejná a pomocí níže uvedeného příkazu syntaxe , můžete otevřít jakýkoli port nebo službu na serveru AlmaLinux nebo Rocky.
Pro otevření jakékoli služby, která je předdefinována v firewalld
jako je HTTP nebo OpenVPN , musíte nahradit název služby v níže uvedené syntaxi příkazu-
sudo firewall-cmd --zone=public --permanent --add-service=service-name
Řekněme, že chcete otevřít http
nebo openvpn
, pak lze použít stejnou výše uvedenou syntaxi jako
sudo firewall-cmd --zone=public --permanent --add-service=openvpn
Stejně tak porty těchto služeb nejsou předdefinované a uživatelé je mohou otevřít ručně pomocí tohoto příkazu. Nahraďtetyp-číslo-portu v níže uvedené syntaxi s portem, který chcete otevřít. Můžete také změnit TCP na UDP podle požadavků.
sudo firewall-cmd --zone=public --permanent --add-port type-port-number/tcp
Příklad – Řekněme, že chcete otevřít 3602
sudo firewall-cmd --zone=public --permanent --add-port 3602/tcp
Znovu načíst bránu firewall
Není sice nutné znovu načítat firewall, ale aby bylo zajištěno, že úspěšně vyprázdnil předchozí nastavení a rozpoznal nově přidanou službu nebo port pro veřejnou zónu, nechte jeho službu znovu načíst.
sudo firewall-cmd --reload
Můžete zkontrolovat, zda je port nebo služba úspěšně aktivní nebo ne, jejich výpisem.
firewall-cmd --list-all
Kroky k zablokování nebo uzavření portů/služeb v AlmaLinux nebo Rocky Linux 8
Krok 1: Pro zablokování jakékoli již otevřené služby nebo portu můžeme použít stejný příkaz, který jsme použili výše k jejich otevření. Pokud si však nejste jisti, které z nich jsou aktivní, můžete znovu použít příkaz a vypsat je všechny-
sudo firewall-cmd --list-all
Krok 2: Nyní řekněme, že chcete uzavřít port číslo 443 nebo zablokujte službu ssh ve firewallu. Syntaxe bude stejná, jakou jsme použili k jejich otevření, ale místo použití možnosti přidat používáme odebrat tentokrát.
Syntaxe pro odstranění některé služby-
firewall-cmd --zone=public --permanent --remove-service service-name
Například – Pokud chceme zablokovat službu ssh
firewall-cmd --zone=public --permanent --remove-service ssh
Syntaxe pro blokování některých čísel portu:
firewall-cmd --zone=public --permanent --remove-port type-number
Příklad – Pojďme zablokovat port 443
sudo firewall-cmd --zone=public --permanent --remove-port 443
Znovu načíst bránu firewall:
sudo firewall-cmd --reload
Závěrečné myšlenky:
Tímto způsobem nemůžeme pouze kontrolovat otevřené porty a služby, ale také jim můžeme povolit a zablokovat komunikaci zvenčí našeho Almalinux Linuxu včetně Rocky, CetnOS nebo RHEL 8.