Em Linux a firewall depende da distribuição: ufw em Ubuntu e Debian, firewalld em AlmaLinux e Rocky. Os dois fazem o mesmo; mudam os comandos.
Antes de mais: se vais ativar a firewall pela primeira vez, abre a 22 (SSH) antes de a ligar. É a forma mais rápida e mais tola de ficares trancado fora do teu próprio servidor. Se te acontecer, ainda podes entrar pelo separador VNC do painel.
Ubuntu e Debian (ufw)
# Primeiro, SEMPRE
ufw allow 22/tcp
# A tua porta, nos dois protocolos
ufw allow 30120/tcp
ufw allow 30120/udp
# Um intervalo
ufw allow 7777:7778/udp
# Ativar (se não estava) e ver como ficou
ufw enable
ufw status numbered
Para remover uma regra, vê o número em ufw status numbered e apaga com ufw delete 3. Também serve ufw delete allow 30120/udp.
AlmaLinux e Rocky (firewalld)
# Primeiro, SEMPRE
firewall-cmd --permanent --add-service=ssh
# A tua porta, nos dois protocolos
firewall-cmd --permanent --add-port=30120/tcp
firewall-cmd --permanent --add-port=30120/udp
# Um intervalo
firewall-cmd --permanent --add-port=7777-7778/udp
# Aplicar e confirmar
firewall-cmd --reload
firewall-cmd --list-all
--permanent é o que faz a regra sobreviver a um reinício; sem isso perde-se. E --reload é o que a aplica: sem recarregar, não acontece nada. Para a remover, o mesmo comando com --remove-port.
Confirmar que o teu servidor está à escuta
Com o servidor de jogos a correr:
ss -lntup | grep 30120
Tens de ver uma linha com LISTEN (para TCP) ou UNCONN (para UDP, que é o normal). Se não aparecer nada, a firewall não é o teu problema: o servidor não está a correr ou está à escuta noutra porta.
Repara também no endereço: se aparecer 127.0.0.1:30120 em vez de 0.0.0.0:30120, o teu servidor só aceita ligações locais e, por muitas regras que abras, não entra ninguém. Isso corrige-se na configuração do jogo, não na firewall.
Portas que NÃO deverias abrir
- A da base de dados (3306 do MySQL, 5432 do PostgreSQL). Se o jogo e a base de dados estão na mesma máquina, não é preciso abri-la à Internet: ligam-se por
localhost. Um MySQL aberto ao mundo é um convite. - Painéis de administração como o do txAdmin. Melhor por túnel SSH:
ssh -L 40120:localhost:40120 root@O_TEU_IPe abres no teu browser emlocalhost:40120. - O RCON, a não ser que precises mesmo dele de fora. E se o abrires, que a palavra-passe seja longa e única.
Se continuar a não funcionar
- O servidor está à escuta, e em
0.0.0.0? Ossde cima. - Protocolo certo? Muitos jogos funcionam por UDP; abre os dois e tiras a dúvida.
- Estás a testar de fora? A partir do próprio servidor funciona sempre.
- Revê os filtros do separador Segurança do teu serviço no painel: aí está a filtragem AntiDDoS da rede, que é uma camada diferente da firewall do sistema.