web-dev-qa-db-fra.com

Sélection de l'interface pour le transfert de port SSH

J'ai un serveur que nous allons appeler hub-server.tld avec trois adresses IP 100.200.130.121, 100.200.130.122 et 100.00.130.123. J'ai trois machines différentes qui sont derrière un pare-feu, mais je souhaite utiliser SSH pour transférer une machine à chaque adresse IP. Par exemple: une machine-one devrait écouter SSH sur le port 22 sur le 100.200.130.121, tandis que la machine-deux devrait faire la même chose sur 100.200.130.122, puis sur différents services sur des ports pouvant être identiques sur toutes les machines.

La page Homme SSH a -R [bind_address:]port:Host:hostport Répertorié J'ai des ports de passerelle activés, mais lorsque vous utilisez -R Avec une adresse IP spécifique, Server écoute toujours sur le port sur toutes les interfaces:

machine-One:

# ssh -NR 100.200.130.121:22:localhost:22 [email protected]

hub-server.tld (écoute pour SSH sur le port 2222):

# netstat -tan | grep LISTEN
tcp        0      0 100.200.130.121:2222        0.0.0.0:*                   LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::80                       :::*                        LISTEN

Existe-t-il un moyen de faire valoir SSH uniquement des connexions sur une adresse IP spécifique à la machine-one afin que je puisse écouter le port 22 sur les autres adresses IP en même temps, ou devrai-je faire quelque chose avec iptables? Voici toutes les lignes de ma configuration SSH qui ne sont pas des commentaires/par défaut:

Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
ClientAliveInterval 30
ClientAliveCountMax 1000000
UseDNS no
Subsystem       sftp    /usr/libexec/openssh/sftp-server
24
Eric Pruitt

De sshd_config(5):

Gatewayports

  Specifies whether remote hosts are allowed to connect to ports forwarded 
  for the client.  By default, sshd(8) binds remote port forwardings to the
  loopback address. This prevents other remote hosts from connecting to 
  forwarded ports.  GatewayPorts can be used to specify that sshd should 
  allow remote port forwardings to bind to non-loopback addresses, thus 
  allowing other hosts to connect.  The argument may be “no” to force remote 
  port forwardings to be available to the local Host only, “yes” to force 
  remote port forwardings to bind to the wildcard address, or 
  “clientspecified” to allow the client to select the address to which the 
  forwarding is bound.  The default is “no”.

Vous souhaitez définir ceci sur clientspecified au lieu de yes.

37
mgorven