본문 바로가기

Programming/Network

IP 우회 관련 개념 정리(프록시, VPN, Referer, User Agent)

웹 크롤링 시 봇으로 인식되어 페이지 접속을 차단 당하는 경우가 발생한다.
해결책으로 IP, User-Agent, Referer을 변경하여 Organic Search Traffic으로 인식하게 하면 된다.


관련 배경 지식으로 Proxy Server, VPN, Referer, User Agent의 내용을 가져와 정리한다.




1. 프록시 서버(Proxy server)

  - 클라이언트와 서버 사이에서 데이터를 전달해 주는 서버.
  - 웹 캐시 기능 있는 경우가 많으며, 방식에 따라 클라이언트의 IP 주소가 서버에게 노출 가능성 있음.
  - 과거에는 인터넷 속도 향상을 위해 쓰였지만, 지금은 아이피 주소 우회를 위해 사용되는 경우가 많음.
  - 인터넷 검열이 심한 국가에서 우회하기 위해 사용.
  - 특정 국가로부터의 접속을 막아 놓은 웹사이트는 막혀 있지 않은 국가의 프록시 서버를 이용해서 우회하면 접속 가능.
  - 좀 더 확장하여 한곳이 아닌 여러 서버를 거치도록 확장한 것이 Tor.
  - IP 추적 자체는 약간의 기술력만 있으면 충분히 가능하지만 개인정보보호대상이기 때문에 개인이 추적하면 고소 대상.
  - 국내에서는 프록시 서버에 접속한 사람의 IP를 무조건 기록해야하므로 국내 경찰이 수사에 착수하면 바로 추적당함.
  - 외국에 소재한 프록시 서버의 경우에는 외국의 정식 수사기관이 개입하면 추적 가능.


참고 : 리버스 프록시

  - 보통 클라이언트가 서버에 접속하기 위해 프록시 서버를 거치는것과 반대로 서버측에서 미리 프록시를 이용하는 경우.
  - NAT 환경 또는 보안을 위해 분리된 인터넷망에 서버가 있을 경우 내부 네트워크 서버와 클라이언트 중계, 로드밸런싱.
  - 클라우드플레어 서비스, NGINX 등이 리버스 프록시로 자주 이용됨.




2. 가상 사설망(Virtual Private Network / VPN)

  - 확장성이 뛰어난 인터넷을 인트라넷처럼 사용할 수 있도록 하는 기술로 인터넷망을 인트라넷망으로 중계해주는 역할.
  - 단말기가 VPN으로 인트라넷에 접속한 경로를 보면 인터넷과 인트라넷 사이 부분은 전부 라우터까지로만 보임.
  - 라우터까지의 모든 통신 기록이 암호화되므로 패킷을 열어보기 힘듬.
  - 패킷 도착지가 라우터 주소에서 끊겨기기 때문에 어느 사이트에 접속하는지도 알 수 없음.
  - 하지만, 어디까지나 단말기와 VPN 서버 사이의 통신을 암호화하는 기술이지 그 밖의 다른 암호화나 보안을 제공 안 함.
  - VPN은 실제 단말기의 IP주소만 가려주며, 노로그라도 VPN서버의 데이터센터는 로그를 남길 수 있음.
  - IP가 숨겨져도 하드웨어 정보, 쿠키, 브라우저 핑거프린팅, 계정정보 같은 다른 식별정보는 전혀 숨겨지지 않음.
  - VPN 회사들이 체험판 VPN에 접속한 로그를 기록하고 광고업체나 수사기관에 제공하는 것은 무료, 유료 모두 사실.
  - 인터넷에 널려있는 각종 VPN 리뷰는 과반수가 VPN 업체와 제휴를 맺고 뒷광고를 하는 곳, 되도록이면 거를 것.
  - 개인정보를 지키고 싶다면 무료 VPN은 아예 쳐다보지도 말고, 잠깐 동안 IP 우회의 용도로만 쓰는 것을 추천.
  - 대한민국의 경우 실질적으로 쓸 수 있는 서버가 대한민국 외에는 타이완, 홍콩, 마카오, 싱가포르, 일본, 미국 정도.




3. HTTP 리퍼러(HTTP referer)

  - 웹 서핑 시, 하이퍼링크를 클릭하면 현재 웹페이지에서 접속하는 웹사이트로 알려주는 방문 요청 관련 정보.
  - HTTP 프로토콜에는 referer 라는 헤더값이 있는데, 브라우저가 서버로 이 헤더값을 설정해서 보냄.
  - 웹 사이트의 서버 관리자가 사이트 방문객이 어떤 경로로 자신의 사이트에 방문했는지 로그 분석, 접근 제어로 사용.
  - 리퍼러는 조작 또한 가능하기 때문에 리퍼러 정보를 사용할 때에는 보안에 항상 주의가 필요함.
  - 웹서버 중 일부는 자신의 페이지에 올바른 referer 정보를 송신하지 않는 브라우저에 대해 엑세스를 블록.
 



4. 사용자 에이전트(User Agent)

  - 사용자를 대신하여 일을 수행하는 웹 브라우저의 식별 정보
  - 모바일 페이지나 데스크탑용 페이지로 연결 시 필요한 정보를 웹 헤더 형태로 확인.
  - 시간이 지날수록 브라우저가 많아지고 호환성 문제가 늘어나 이 문제들을 해결하기 위해 만든 것.
  - e.g. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29




크롤링 차단 해결 관련 내용 출처 :
https://pcmc.tistory.com/entry/190328-Crawler-Bot-Detection-Avoid-크롤러-탐지-우회?category=809836 [개발하자:티스토리]

프록시 서버 관련 내용 출처 :
https://namu.wiki/w/%ED%94%84%EB%A1%9D%EC%8B%9C%20%EC%84%9C%EB%B2%84

가상 사설망 관련 내용 출처 :
https://namu.wiki/w/%EA%B0%80%EC%83%81%20%EC%82%AC%EC%84%A4%EB%A7%9D?from=VPN

HTTP 리퍼러 관련 내용 출처 :
https://ko.wikipedia.org/wiki/HTTP_%EB%A6%AC%ED%8D%BC%EB%9F%AC

사용자 에이전트 관련 내용 출처 :
https://namu.wiki/w/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8