SSH 포트 포워딩을위한 인터페이스 선택


24

3 개의 IP 주소 100.200.130.121, 100.200.130.122 및 100.200.130.123으로 hub-server.tld라고하는 서버가 있습니다. 방화벽 뒤에 3 개의 서로 다른 시스템이 있지만 SSH를 사용하여 하나의 시스템을 각 IP 주소로 전달하려고합니다. 예를 들어, machine-one은 100.200.130.121의 포트 22에서 SSH를 수신해야하지만 machine-two는 100.200.130.122에서 동일하게 수행해야하며, 모든 머신에서 동일 할 수있는 포트의 다른 서비스에 대해서도 동일해야합니다.

SSH 매뉴얼 페이지에 -R [bind_address:]port:host:hostport게이트웨이 포트가 활성화되어 있지만 -R특정 IP 주소와 함께 사용할 때 서버는 모든 인터페이스에서 포트를 계속 수신합니다.

기계 하나 :

# ssh -NR 100.200.130.121:22:localhost:22 root@hub-server.tld

hub-server.tld (포트 2222의 SSH 수신) :

# 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

특정 IP 주소의 SSH 만 연결을 machine-one으로 전달하는 방법이 있습니까? 다른 IP 주소의 포트 22를 동시에들을 수 있습니까, 아니면 iptables로 무언가를 수행해야합니까? 주석 / 기본값이 아닌 ssh 구성의 모든 줄은 다음과 같습니다.

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

답변:


37

보낸 사람 sshd_config(5):

게이트웨이 포트

  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”.

clientspecified대신 로 설정하려고합니다 yes.


좋아 고마워! ssh (1) 매뉴얼 페이지에 clientspecified"enabled"라고 말하지 않고 필요하다고 명시하고 싶습니다. "원격 bind_address 지정은 서버의 GatewayPorts 옵션이 활성화 된 경우에만 성공합니다 (sshd_config (5) 참조)". 그로부터 나는 그것이로 설정되어야한다고 생각했다 yes.
Eric Pruitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.