SSH 연결을 설정할 때 로컬 포트를 어떻게 지정합니까?


13

IDC에 두 대의 서버가 호스팅되어 있습니다. 포트 20 / 21 / 22 / 23 / 3389 / 33101-33109 만 사용하여 두 서버 간의 연결을 설정할 수 있습니다. IDC 네트워크 장치는 소스 또는 대상 포트가 20 / 21 / 22 / 23 / 80 / 3389 / 33101-33109 목록 / 범위에없는 다른 패킷을 차단합니다. 그러나 SSH의 소스 포트는 무작위입니다.

명령을 사용하면 원격 포트를 쉽게 지정할 수 있습니다.ssh username@server -p remote_port

ssh예를 들어 포트 33101을 사용하여 SSH 연결을 설정할 수 있도록 로컬 소스 포트를 지정 하는 명령 매개 변수 또는 다른 방법이 있습니까?

내 네트워크 토폴로지는 다음과 같습니다.
네트워크 토폴로지

답변:



2

일회성 또는 어쨌든 상황에 따라 ProxyCommand 접근 방식은 매우 편리한 방법입니다.

반면에 여러 개의 동시 연결이 필요하거나 일상적인 작업에이 명령을 자주 사용해야하는 경우 서버에서 NAT (Network-Address-Translation) 규칙을 설정하는 것이 좋습니다.

이를 위해서는 root먼저 단일 NAT 규칙 하나를 적용하기 위해 서버에서 수퍼 유저 (일반적으로 ) 액세스가 필요합니다. 이주의 수도 귀하의 "서버가"실제로 (A 도커 같은) 컨테이너 경우, 수퍼 유저 권한이 경우에도 NAT 규칙을 적용 전혀 허용 (또는 효과)하지 않고 기계.

iptables제품군 이 포함 된 일반적인 Linux 시스템에 대해 샘플 사례에 대해 서버 1에 적용 할 NAT 규칙은 다음과 같습니다.

iptables -t nat -I POSTROUTING -d <server2-ip-address> -p tcp --dport <server2-port> -j SNAT --to :33101-33109

이 명령은 Linux 커널에게 server2-ip-address 의 포트 server2-port 로 연결 하여 해당 시점에 사용 가능한 33101-33109 범위에서 선택한 소스 포트를 사용하여 나가도록 지시합니다.

해당 규칙이 설정되면 평소와 같이 서버 2에 연결합니다.

ssh username@server2 -p remote_port

sshNAT 규칙에 지정된 범위의 사용 가능한 포트가있는 한이 명령을 필요한만큼 동시에 사용할 수도 있습니다 .

그러나 netstat서버에서 실행 되는 (또는 동등한 명령) 서버 에 전달 된 실제 트래픽이 수정 된 소스 포트 번호를 가지고 있더라도 연결의 로컬 주소가 수정되지 않고 임의로 선택된 소스 포트 번호 인 것으로보고합니다.

NAT 규칙을 실행 취소하려면 명령 -D대신 옵션을 제외하고 명령이 동일 합니다 -I.

부팅시 NAT 규칙을 자동으로 적용하려면 서버에있는 Linux 배포판과 방화벽 구성이 이미 있는지 여부에 따라 다릅니다.

나는 BSD와 같은 시스템에 대한 경험이 없지만 동등한 것이 있다고 믿습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.