SOCKS

IT 위키

Socket Secure

클라이언트와 서버 사이에서 TCP/UDP 연결을 대신 중계해 주는 프록시 프로토콜

  • TCP 1080번 포트를 기본으로 사용한다.
  • RFC 1928 (SOCKS5)
  • HTTP 프록시가 웹 트래픽만 다루는 것과 달리 프로토콜을 가리지 않는다.

동작 계층

[편집 | 원본 편집]

OSI 기준으로 세션 계층(5계층) 에서 동작한다. 응용 계층 프로토콜의 내용을 해석하지 않고 연결 자체를 중계하기 때문에, 메일·FTP·게임 등 어떤 TCP 통신에도 쓸 수 있다.

응용 계층에서 동작하는 HTTP 프록시는 요청 헤더를 읽고 해석하지만, SOCKS 는 목적지 주소와 포트만 받아 그대로 연결을 이어 준다.

SOCKS4 와 SOCKS5

[편집 | 원본 편집]
구분 SOCKS4 SOCKS5
인증 없음 (사용자 ID만 전달) 지원 (없음/사용자명·비밀번호/GSS-API)
UDP 불가 지원
IPv6 불가 지원
도메인 이름 해석 클라이언트가 직접 해석 프록시가 대신 해석 가능

SOCKS5 가 도메인 이름을 대신 해석해 준다는 점은 중요하다. 클라이언트의 DNS 질의가 밖으로 나가지 않으므로 접속 흔적이 덜 남는다.

활용과 보안

[편집 | 원본 편집]
  • 방화벽 내부에서 외부로 나가는 통로를 한 곳으로 모으는 데 쓴다.
  • SSH 의 동적 포트 포워딩(`ssh -D`)이 로컬 SOCKS 프록시를 만들어 준다.
  • 인증 없는 개방 SOCKS 프록시는 스팸 발송과 공격 경유지로 악용되므로 반드시 인증을 걸어야 한다.
  • 트래픽 자체는 암호화하지 않는다. 기밀성이 필요하면 TLSVPN 을 함께 써야 한다.

같이 보기

[편집 | 원본 편집]