Você pode usar o iptables para encaminhar uma porta para outra. Isso funcionará apenas para conexões externas, porque as tabelas nat que a seguinte solução usa não são consultadas quando o tráfego é local (ou seja, de 127.0.0.1 para 127.0.0.1 e assim por diante).
Isso também requer que você habilite o encaminhamento em seu kernel, o que pode ou não ser um problema de segurança que você não deseja enfrentar.
Comece ativando o encaminhamento, se ele já não estiver com sysctl net.ipv4.ip_forward=1
ou echo 1 > /proc/sys/net/ipv4/ip_forward
. Neste caso você provavelmente também deve fazer todas as políticas do iptables serem DROP ao invés do padrão ACCEPT (isso depende da distribuição GNU / Linux que você usa, no entanto) e permitir apenas o tráfego que você deseja passar ao invés de deixar tudo fluir livremente .
Em seguida, você pode adicionar uma regra à tabela nat PREROUTING para redirecionar o tráfego destinado à porta X para a porta Y. Por exemplo, para redirecionar o tráfego de entrada para a porta TCP 2222 para a porta do servidor SSH, TCP 22, use: iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22
.
Mais informações sobre o redirecionamento de portas e pontos mais específicos estão disponíveis em vários mecanismos de pesquisa e, por exemplo, aqui .