SSH 데몬은 어떤 아웃바운드 포트를 사용합니까?

SSH 데몬은 어떤 아웃바운드 포트를 사용합니까?

요새 SSH 서버를 만들고 있습니다. IP 테이블에서 다음 규칙을 사용하면 서버에 제대로 연결할 수 있습니다.

참가 규칙

  • 내 클라이언트 IP의 포트 22에서 트래픽을 허용합니다.
  • 다른 모든 트래픽 차단

아웃바운드 규칙

  • 내 클라이언트 IP에 대한 모든 트래픽을 허용합니다.
  • 다른 모든 트래픽 차단

내 이해는 유효한 클라이언트가 호출하면 서버가 SSH 연결을 완료하기 위해 아웃바운드 포트를 무작위로 선택한다는 것입니다.

  1. 시스템은 어떤 범위의 정수 중에서 이 포트를 선택합니까?
  2. 사용할 포트 범위를 시스템에 알릴 수 있습니까?

답변1

귀하의 이해가 잘못되었습니다 :-). 클라이언트는 "tcp-high port"를 선택하여 서버 대상 포트 22로 트래픽을 시작합니다. 서버는 클라이언트가 시작한 소스 포트에 응답합니다.

예를 들어 클라이언트는 서버 대상 포트 22에 연결하기 위해 소스 포트로 포트 12345를 선택합니다. 서버는 포트 22에서 포트 12345의 클라이언트로 트래픽을 보내려고 시도합니다.

tcp-high 포트 범위는 > 1024~65535입니다.

따라서 클라이언트에 대한 RELATED 및 ESTABLISHED 트래픽을 허용해야 합니다. 예를 들어:

IPTABLES -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

위의 규칙이 "나머지 모두 차단" 규칙 앞에 와야 합니다.

관련 정보