Consultar DNS sobre TCP através de um encaminhamento local SSH
Encaminhe uma porta TCP local sem privilégios para um servidor DNS remoto e solicite explicitamente DNS sobre TCP com dig.
O encaminhamento local do OpenSSH transporta TCP. O DNS também pode usar TCP, desde que a ferramenta de consulta e o serviço DNS remoto utilizem esse transporte.
Para um servidor DNS acessível a partir do host SSH, abra um encaminhamento que escute apenas em loopback:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Depois envie uma consulta TCP DNS explícita a partir da máquina local:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Substitua o servidor DNS, o host SSH e o nome consultado pelos valores pretendidos. O lado do servidor SSH deve conseguir alcançar dns.internal:53 e a política de encaminhamento deve permiti-lo.
A porta local está acima do intervalo de portas privilegiadas. Uma consulta a uma porta local 1053 não exige vincular a porta DNS do sistema 53.
Isto não redireciona automaticamente as consultas DNS UDP comuns. Um tubo de bytes UDP-para-TCP em bruto não é suficiente, porque DNS sobre TCP acrescenta um campo de comprimento e enquadramento de fluxo. A integração com o resolvedor do sistema requer um encaminhador DNS adequado ou uma configuração TCP explicitamente suportada.
Por fim, obter um endereço por esta via não encaminha a ligação web seguinte através de SSH. A consulta DNS e o transporte até ao destino continuam a ser escolhas separadas.