Esta dica é para quem precisa fazer
NAT com o
iptables dos pacotes do
Citrix Metaframe e para eu mesmo não esquecer, se bem que acho difícil esquecer o que eu realmente chamaria de "o pulo do gato" do Citrix Metaframe após apanhar por uma semana sem uma resposta clara para minha necessidade.
"Herdei" um servidor Citrix Metaframe na empresa onde trabalho que foi instalado em 2002 por uma empresa especializada no assunto, porém esse servidor nos últimos meses já vinha se arrastando e após a migração do ERP da empresa ele parou de vez. Travamentos ocorriam diariamente e foi necessário realizar a substituição do hardware e do sistema operacional, Windows 2000.
Então sobrou para mim a missão, gastar uma grana alta da empresa em horas técnicas de uma empresa que não vou revelar o nome por questões de ética ou economizar essa grana para gastar com outros servidores? Como bom linuxer, escolhi economizar para outros servidores. ;-)
Chega de falação, vamos colocar o servidor pra funcionar através de NAT, com o servidor Citrix Metaframe já instalado e devidamente funcional na LAN, acerte seu firewall:
iptables -A FORWARD -i eth1 -s yyy.yyy.yyy.yyy/32 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -d xxx.xxx.xxx.xxx -p tcp -m multiport --dport 80,1494 -j DNAT --to-destination yyy.yyy.yyy.yyy
Explicação:
- Linha 1: se sua política de INPUT e FORWARD padrão for DROP ao iniciar seu firewall -- particularmente eu acho o recomendado (iptables -P INPUT DROP ; iptables -P FORWARD DROP), você precisará liberar o FORWARD para seu servidor metaframe, designado pelo endereço local yyy.yyy.yyy.yyy. No exemplo, a eth1 representa a interface local;
- Linha 2: não é necessário fazer INPUT nas portas 80 e 1494 do firewall, pois ele vai apenas redirecionar as conexões recebidas nessas portas. Então, na linha 2, estou indicando que todos os pacotes que chegarem na interface de internet eth0 com destino ao IP de internet xxx.xxx.xxx.xxx com protocolo TCP nas portas 80 e 1494 devem ser redirecionadas para o IP yyy.yyy.yyy.yyy (IP local) do servidor. O parâmetro "-m multiport" especifica as conexões em mais de uma porta. Em alguns casos é necessário ativá-lo no kernel, o que requer a recompilação do mesmo e isso já é outro assunto. Caso o servidor não aceite a opção "-m multiport" pode-se utilizar "-m tcp" e especificar a segunda porta em outra linha de comando.
Feita a configuração do firewall iptables vamos aos segredos do Citrix:
1. Crie um arquivo de configuração a partir de sua aplicação já publicada e devidamente configurada (não explicarei essa parte pois o escopo da dica é fazer a conexão através de NAT). Com o arquivo .ica devidamente funcional na LAN, adicione a seguinte linha ao arquivo, na seção [WFClient]:
UseAlternateAddress=1
Salve e feche o arquivo.
2. Agora o grande pulo do gato, que me deixou 3 noites sem dormir, no servidor. Abra o prompt de comando e vá até a pasta "C:\Program Files\Citrix\system32". Execute o seguinte comando:
> altaddr /set xxx.xxx.xxx.xxx
Onde xxx.xxx.xxx.xxx é o IP de internet.
Pronto, é só reiniciar o servidor Metaframe e fazer o teste remoto, está configurado o NAT do iptables para o Citrix.
Nenhum comentário foi encontrado.