Como eu limitaria as conexões a determinados serviços, para serem acessados apenas por meio de uma conexão proveniente de um subdomínio?

1

Eu tenho uma máquina pessoal rodando o Ubuntu 14.04.4 LTS. Eu uso para hospedar um servidor Teamspeak e Minecraft e também um site.

Estou tentando fazer subdomínios apenas para apontar para os serviços certos. Então, por exemplo

usando panel.example.com apontaria apenas para https://localhost:8000 (Painel CP) Gerenciado para classificar o Painel de CP usando um Redirecionamento de URL DNS em vez de um Registro A

usando mc.example.com apontaria apenas para localhost:25565 (Minecraft Server)

usando ts.example.com apontaria apenas para localhost:9987 (Teamspeak Server)

usando example.com apontaria apenas para o site ( example.com/forums /index.php )

Eu consegui fazer isso pelo menos para conexões que chegam através de um navegador da web usando este httpd.conf :

<VirtualHost *:80>
ServerName mc.example.com
redirect / localhost:25565
</VirtualHost>

<VirtualHost *:80>
ServerName ts.example.com
redirect / localhost:9987
</VirtualHost>

Mas isso só se aplica a conexões provenientes de um navegador da Web, e se eu tentar conectar-me no Teamspeak usando qualquer subdomínio ou o nome de domínio que ele ainda conecta ...

Isso é provavelmente inútil, e eu deveria apenas usar o nome de domínio, mas eu gostaria de ter alguma classificação acontecendo.

Isso é possível?

Pelo que eu posso descobrir, seria algo a ver com o IPTables, mas eu honestamente não tenho ideia. Algo assim?

iptables coming from any ip:25565 to anything else than localhost:25565 Drop
iptables coming from any ip:9987 to anything else than localhost:9987 Drop
iptables coming from any ip:80 to anything else than localhost:80/8000 Drop

Estou correto?

    
por SteelShot 12.06.2016 / 20:38

1 resposta

1

As regras IPTABLE que você criou rejeitarão todo o tráfego, removê-las. Essas regras do apache também são inúteis.
Eu acho que a única maneira de fazer o que você quer é adicionar 3 adaptadores de rede virtual ao seu servidor Linux, então cada adaptador teria um endereço IP externo válido. Você configuraria o DNS para apontar cada nome de domínio para apontar para um dos 4 endereços IP.

O Minecraft deve se ligar ao externalIp1: 25565, o Teamspeak se associar ao externo IP2: 9987, a ligação CPannel ao external IP3 e, por fim, o Apache ao external IP4: 80.

Quando digo "ligação", quero dizer que o aplicativo deve estar configurado para escutar em um IP específico, em vez de ANY IP (que é o comportamento padrão da maioria dos aplicativos).

    
por 12.06.2016 / 21:19