
네트워크와 보안에 대한 기본적인 이해를 해보겠다.
Socket Secure의 약자
클라이언트와 서버 사이에서 중계 역할을 하는 프록시 서버를 위한 프로토콜
나 (client)
특정 서버에 편지 데이터를 보내고 싶다
우체국 (SOCKS 프록시 서버)
내 편지 데이터를 받아서, Target server로 안전하게 전달한다
받는 사람 (Target Server)
편지를 받았을 때, 우체국 SOCKS 에서 온 것으로 인식하지, 나에게서 직접 온 걸 알지 못한다.
SOCKS는 클라이언트의 요청을 대신 받아서 목적지 서버로 전달해주는 역할을 한다
클라이언트의 실제 IP 주소를 숨기거나, 방화벽과 같은 네트워크 제한을 우회하는 데 사용한다.
미리 정해진 보안 규칙에 따라 네트워크 트래픽을 감시하고 제어하는 보안 시스템
허가된 통신(트래픽)은 통과시키고, 위험하거나 허가되지 않은 통신은 막는 역할
규칙에 맞는 안전한 데이터만 내 컴퓨터 또는 내부 네트워크로 들어오고 나갈 수 있게 지켜준다
클라이언트를 대신해서 다른 서버와 통신해주는 대리인 서버
OSI 7계층에서 Layer 5, 즉 세션 계층에서 동작한다.

클라이언트는 목적지 서버에 직접 연결하는 대신에, SOCKS 프록시 서버에 연결을 요청한다.
SOCKS 프록시 서버는 클라이언트의 요청을 받고, 클라이언트를 대신해서 목적지 서버와 연결(TCP/UDP)를 맺는다
양쪽 연결이 수립되면, SOCKS 프록시는 클라이언트와 서버 사이에 오가는 모든 데이터를 그대로 전달(Relay)해주는 터널 역할을 한다.
SOCKS는 내부 데이터(Payload)를 검사하거나 해석하지 않는다.
HTTP, FTP, SMTP, 게임 트래픽 등 어떤 종류의 데이터든 가리지 않고 단순히 전달만 해준다.
이를, 범용 프록시라고 부른다.
| 특징 | SOCKS4 | SOCKS5 (현재 표준) |
|---|---|---|
| 지원 프로토콜 | TCP만 지원 | TCP 및 UDP 지원 (온라인 게임, 스트리밍에 유리) |
| 인증 | 지원 안 함 | 다양한 인증 방식 지원 (ID/PW 기반 등으로 보안 강화) |
| DNS 해석 | 클라이언트에서만 가능 | 클라이언트 또는 프록시 서버 측에서 DNS 해석 가능 |
| IP 주소 | IPv4만 지원 | IPv4 및 IPv6 지원 |
SOCKS5는 UDP를 지원하고 인증 기능이 추가되어 SOCKS4보다 훨씬 유연하고 안전하게 사용할 수 있다.
실무에선 거의 SOCKS5를 사용한다.
| 구분 | SOCKS 프록시 | HTTP 프록시 |
|---|---|---|
| 작동 계층 | Layer 5 (세션 계층) | Layder 7 (응용 계층) |
| 프로토콜 이해 | 이해 못함 (범용적) 단순히 데이터 패킷을 전달 | 이해함 (HTTP 전용) HTTP 헤더를 읽고, 캐싱, 필터링 등 가능 |
| 주요 용도 | 웹 트래픽, FTP, 게임, 토렌트 등 모든 종류의 트래픽 | 웹 브라우징(HTTP/HTTPS) 트래픽 |
HTTP 프록시는 웹 서핑에 특화된 프록시이고,
SOCKS는 프로토콜 종류를 가리지 않는 만능 프록시이다.
네트워크 트래픽은 특정 네트워크를 통해 오고 가는 데이터의 양을 의미
컴퓨터의 네트워크 트래픽은 내 컴퓨터에서 인터넷으로 보내거나 (업로드), 인터넷에서 내 컴퓨터로 들어오는 (다운로드) 모든 데이터의 흐름이다.
인터넷을 사용하는 모든 활동이 네트워크 트래픽을 발생 시킨다.
| 구분 | SOCKS 프록시 | VPN (Virtual Private Network) |
|---|---|---|
| 작동 계층 | 특정 응용 프로그램에 설정 (브라우저, 특정 게임 클라이언트) | OS 수준에서 작동 컴퓨터의 모든 네트워크 트래픽에 적용 |
| 암호화 | 프로토콜 자체는 암호화를 제공하지 않음 | 연결의 모든 트래픽을 기본적으로 암호화 |
| 설정 복잡도 | 비교적 간단 | 더 복잡하지만 강력한 보안 제공 |
SOCKS는 특정 앱만 우회 시키고 싶을 때 쓰는 간편한 방법이고,
VPN은 내 컴퓨터의 모든 인터넷 활동을 안전한 터널로 감싸는 보안 솔루션이다.
가상 사설망 Virtual Private Network
인터넷과 같은 공용 네트워크를 마치 전용선처럼 안전하게 사용할 수 있도록 만들어주는 기술
데이터를 암호화하여 외부에서 엿볼 수 없는 가상의 터널을 만들어 통신한다.
특정 프로토콜에 구애받지 않고 동작하는 Layer 5 프록시 프로토콜
클라이언트의 요청을 중계하여 IP를 숨기거나 네트워크 제한을 우회하는데 사용된다
Layder 5 (세션 계층), 프로토콜 독립적 (범용성), SOCKS5, UDP 지원, 인증 가능
방화벽 우회, 트래픽 중계, 익명성 보장을 위해 사용
지역 제한 콘텐츠 테스트
SOCKS 프록시를 특정 국가에 있는 서버로 설정하여, 마치 그 국가에서 접속하는 것처럼 웹사이트나 앱의 동작을 테스트할 수 있다.
내부망/외부망 접속 환경 시뮬레이션
사내 방화벽 정책에 따라 특정 서비스가 어떻게 동작하는지 테스트할 때, SOCKS를 통해 접속 경로를 제어하며 확인할 수 있다.
방화벽 우회 접속
보안 정책상 직접 접속이 막힌 내부 서버에 접근해야 할 때, 특정 SOCKS 프록시를 통해서만 접속을 허용하는 우회 경로를 만들어 보안을 유지하며 접근성을 제공한다. (Bastion Host를 SOCK 프록시로 활용)
IP 주소 익명화
외부 서비스의 API를 호출하거나 데이터를 수정할 때, 우리 회사의 실제 IP가 아닌 프록시 서버의 IP를 사용해 요청을 보낸다.