O mais rápido tunelamento de ssh X em uma rede local segura

3

Eu li em alguns sites, por exemplo (1) que a cifra ssh padrão não é necessariamente a o mais rápido.

Eu trabalho em uma rede local totalmente segura. Assumindo que a segurança não é um problema e que eu apenas me preocupo com latência e velocidade, quais parâmetros ssh um usuário pode ajustar para obter o tunelamento X mais rápido?

    
por Amelio Vazquez-Reina 12.10.2012 / 00:30

2 respostas

6

Se você está em uma rede segura, por que criptografar? Você pode redirecionar diretamente X sem ssh e obter melhor velocidade e latência.

Veja, por exemplo, este tutorial (antigo, mas ainda válido) ; aqui você pode usar o mecanismo Xhost (inseguro):

Uma pequena teoria

A palavra mágica é DISPLAY . No sistema X window, um display consiste (simplificado) de um teclado, um mouse e uma tela. Uma exibição é gerenciada por um programa do servidor, conhecido como um servidor X. O servidor serve para exibir recursos para outros programas que se conectam a ele.

Um display é indicado com um nome, por exemplo:

DISPLAY=light.uni.verse:0
DISPLAY=localhost:4
DISPLAY=:0

A exibição consiste em um nome de host (como light.uni.verse e localhost ), dois pontos ( : ) e um número de sequência (como 0 e 4 ). O nome do host da exibição é o nome do computador em que o servidor X é executado. Um nome de host omitido significa o host local. O número de seqüência geralmente é 0 - pode ser variado se houver vários monitores conectados a um computador.

Se você se deparar com uma indicação de exibição com um .n extra anexado a ela, esse é o número da tela. Um monitor pode ter várias telas. Normalmente há apenas uma tela, com o número n = 0 , então esse é o padrão.

Outras formas de DISPLAY existem, mas as opções acima serão válidas para nossos propósitos.

Dizendo ao cliente

O programa cliente (por exemplo, seu aplicativo gráfico) sabe para qual monitor conectar-se, inspecionando a variável de ambiente DISPLAY .

Nosso computador é conhecido por fora como light e estamos no domínio uni.verse . Se estivermos executando um servidor X normal, a exibição é conhecida como light.uni.verse:0 . Queremos executar o programa de desenho xfig em um computador remoto, chamado dark.matt.er , e exibir sua saída aqui em light .

Suponha que você já tenha telnet / rsh / ssh -ed no computador remoto, dark.matt.er .

Se você tem sh em execução no computador remoto:

dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &

ou, alternativamente:

 dark$ DISPLAY=light.uni.verse:0 xfig &

Dizendo ao servidor

O servidor não aceitará conexões de qualquer lugar. Você não quer que todos possam exibir janelas na tela. Ou leia o que você digita - lembre-se de que o seu teclado faz parte do seu monitor!

Poucas pessoas parecem perceber que permitir o acesso ao seu monitor representa um risco de segurança. Alguém com acesso ao seu monitor pode ler e gravar suas telas, ler as teclas pressionadas e ler as ações do mouse.

A maioria dos servidores conhece duas maneiras de autenticar conexões: o mecanismo de lista de hosts ( xhost ) e o mecanismo de magic cookie ( xauth ). Em seguida, há ssh , o shell seguro, que pode encaminhar conexões X.

Observe que alguns servidores X podem ser configurados para não escutar na porta TCP usual com o argumento -nolisten tcp . Notavelmente, a configuração padrão do Debian GNU / Linux é desabilitar a escuta do servidor X na porta TCP. Se você deseja usar o X remoto em um sistema Debian, você deve reativá-lo alterando a maneira como o servidor X é iniciado. Veja /etc/X11/xinit/xserverrc para começar.

Xhost

Xhost permite acesso com base em nomes de host. O servidor mantém uma lista de hosts que podem se conectar a ele. Também pode desabilitar a verificação de host completamente. Cuidado: isso significa que nenhuma verificação é feita, então cada host pode se conectar!

Você pode controlar a lista de hosts do servidor com o programa xhost . Para usar esse mecanismo no exemplo anterior, faça:

 light$ xhost +dark.matt.er

Isso permite todas as conexões do host dark.matt.er. Assim que seu cliente X fizer sua conexão e exibir uma janela, por segurança, revogue as permissões para mais conexões com:

 light$ xhost -dark.matt.er

Você pode desativar a verificação de host com:

 light$ xhost +

Isso desativa a verificação de acesso ao host e permite que todos se conectem. Você nunca deve fazer isso em uma rede na qual você não confia em todos os usuários (como a Internet). Você pode reativar a verificação de host com:

 light$ xhost -

xhost - por si só não remove todos os hosts da lista de acesso (isso seria completamente inútil - você não seria capaz de se conectar de qualquer lugar, nem mesmo de seu host local).

Xhost é um mecanismo muito inseguro. Não distingue entre usuários diferentes no host remoto. Além disso, nomes de host (endereços, na verdade) podem ser falsificados. Isso é ruim se você estiver em uma rede não confiável (por exemplo, já com acesso discado PPP à Internet).

    
por 12.10.2012 / 09:55
3

"blowfish" é o mais rápido disponível de acordo com a man page do proto 1, e para o proto 2 existem:

aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour

Eu acredito que o blowfish-cbc seria o mais rápido entre todos eles, mas na verdade ele precisa de testes.

Obviamente, você dificilmente precisará de Compression .

Há também a opção IPQoS , que por padrão é "lowdelay" para sessões interativas e "throughput" para sessões não interativas.

    
por 12.10.2012 / 00:38

Tags