Aviso justo, não sou especialista em netfilter (iptables).
Qualquer distro Linux respeitável deve ter o netfilter instalado e habilitado em seu kernel. O Netfilter permite rotear, bloquear e manipular os pacotes que entram e saem do sistema. Tente executar isso como root na máquina do servidor:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 1521
Talvez seja necessário alterar a eth0 para o nome do dispositivo correto para o adaptador de rede local do servidor. Isso deve fazer com que todos os pacotes que chegam na porta 80 sejam recebidos pelo Oracle DBMS na porta 1521.
Eu fui em frente e procurei o que essas opções fazem (porque eu não estou super familiarizado com o gerenciamento manual do netfilter). Leme quebra:
-t nat -A PREROUTING
Isto seleciona a tabela NAT e acrescenta ( -A
) a nova regra à cadeia PREROUTING da tabela NAT. Geralmente, quando você está redirecionando de uma porta para outra, isso pertence à tabela NAT. A cadeia PREROUTING acontece muito cedo quando no processamento de pacotes recebidos pelo Netfilter. É a primeira cadeia para pacotes de entrada, normalmente.
-i eth0 -p tcp -dport 80
Estas são a parte do filtro da regra. Estamos dizendo a qual interface ( -i
) e protocolo ( -p
) você deseja que esta regra afete os pacotes. Neste exemplo, estamos criando uma regra para o tráfego tcp na interface eth0
. Também estamos dizendo qual porta de destino ( -dport
) procurar nos pacotes ... neste caso pacotes com uma porta de destino de 80 (tcp).
Quando você tenta se conectar à porta tcp 80 no servidor com o Oracle DBMS, os pacotes tcp que sua máquina envia terão uma porta de destino de 80 em seus cabeçalhos.
--j REDIRECT --to-ports 1521
Esta é a carne da regra. Aqui você está dizendo que os pacotes que correspondem aos filtros acima devem ser redirecionados ( --j REDIRECT
) para a porta 1521 ( --to-ports 1521
). Quando o netfilter estiver no mesmo sistema que o aplicativo para o qual você deseja redirecionar o tráfego, use REDIRECT
. Quando o aplicativo estiver em outro servidor, você deve usar DNAT
(e especificar o IP e a porta).
Por favor, deixe-me saber se isso funciona.
Essas configurações não são persistentes; para torná-los persistentes, sugiro que você olhe para a instalação de iptables-persistent
. Você pode encontrar mais informações aqui no StackOverflow .