IP 0.0.0.0 주소가 가지는 의미?

지금부터 내가 싸지르는 글은 서버 개발자를 위한 글이 아니다.
그냥 당신이 어느정도 컴퓨터 좀 다룰 줄 아는 모든 이들을 대상으로 쓰는 유용한 팁 글이다.
마음을 비우고 차분히 읽어보기 바란다.

일단 먼저 이론부터 보자면, IP 주소 0.0.0.0 은 유효한 주소다.
근데 이론만이다.

하지만 실제로 0.0.0.0 주소는 당연하겠지만 할당 가능한 IP 주소가 아니며, 논리적 용도로 사용한다.
위키페디아 0.0.0.0 문서를 보면 여러 의미로 사용되곤 한다.
문서 상에서는 메타 주소라 칭하고 있다. 그렇다. 우리식 대로는 물리적 주소가 아닌, 논리적 주소라 해석해도 손색이 없다.

하지만 한국에서는 0.0.0.0 얘기를 꺼내기 시작하면, TCP/IP 이론부터 들고 일어나 서버쪽 공부를 시키게 될 것이다.
당장에 구글 한국어 검색이나 네이버를 뒤지면 이런 얘기들 뿐이다.
서버에 관심 없거나 모르는 사람을 위해, 서버측 이론을 당장 한 마디로 함축하면,
0.0.0.0 주소는 “나는 어떤 IP 주소로 서비스할 지 모르니 아무 IP 대역 다 서비스 해 줘.” 라는 뜻이 되겠다.
여기서 다른 방향으로 넘어가면, 서버 프로그램이 0.0.0.0 주소를 어떻게 사용하느냐 나름이겠지만, 묵시적 규칙으로 대부분 이렇게 사용한다.

하지만 네트워크 클라이언트에서도 0.0.0.0 주소를 사용하기도 한다.
당장 OS 상관없이 가장 빠르고 쉽게 접할 수 있는 가장 대표적인 예로 HOSTS 파일이 있다.
자, 하지만 서버와는 달리 0.0.0.0 의 쓰임새도 없다. 할당할 IP가 없다. 그렇다면 뭐다? 없다.
그렇다. HOSTS 파일의 0.0.0.0 IP 주소는 “어느 IP 주소도 할당하지 마라.” 라는 뜻으로 보면 된다.
만약 우리가 HOSTS 파일에 0.0.0.0 naver.com 줄을 추가하여 저장 후 브라우저를 킨다면?
네이버 접속하자마자 바로 페이지를 찾을 수 없다고 뜰 것이다. 1초의 망설임도 없이 컴퓨터는 접속 오류를 내뱉을 것이다.
왜냐, 0.0.0.0 이 가지는 라우터도 없고, 물리적 할당 공간도 모르며, 어디로 접속해야 할 지 아예 정해지지 않았기 때문이다.
그래서 HOSTS 파일 작성 시, 원치 않는 도메인을 바인딩하려고 할때 (주로 광고나… 어둠의 유지용) 127.0.0.1 대신 사용하라는 것이다.
127.0.0.1 주소는 다들 아시다시피 로컬 IP 주소다. 만약 이 주소로 바인딩을 시도하면, 컴퓨터는 자신의 컴퓨터를 “가상 루프백 네트워크 드라이버”를 통해 접속하려 할 것이다.
그러다가 접속할 수 없으면 접속 오류가 뜬다. 그렇기 때문에 HOSTS 에서는 원치 않는 도메인을 127.0.0.1 대신 바로 접속을 중지해버리는 0.0.0.0 주소를 권장하는 것이다.

네트워크 클라이언트에서도 0.0.0.0 주소는 요긴한 기능으로 사용하기도 한다. 상기 위키페디어를 가면 알겠지만,
당신의 랜 카드에 IP를 할당해야 하는데, 모르겠다? 그냥 자동으로 받고 싶다? 그러면 우리가 보기에는 DHCP 사용에 체크하거나 설정할 것이다.
그러면 네트워크 연결 프로그램은 이걸 할당 IP 주소를 내부적으로 0.0.0.0 으로 설정한 다음, 접속 가능한 게이트웨이로부터 자동으로 IP를 받는 서버로 IP를 할당받으려 할 것이다.
그러지 못하면 169.254.xxx.xxx 라는 듣도보도 못한 IP 주소를 받고 네트워크 활동을 못하는 참사가 일어나겠지.
어쨌든, 네트워크 연결 프로그램에서는 0.0.0.0 주소의 의미는 “나는 어떤 IP 주소를 할당받을 지 모르겠으니 자동으로 받아 주시오.” 뜻이 되겠다.

지금까지 IP 얘기는 IPv4 기준이었고, IPv6 에서 같은 역할을 담당하는 주소는 콜론 2개 딸랑 :: 쓰면 된다. 참으로 간편하지 아니한가?

올바르지만 올바르지 않는 0.0.0.0 IP의 세계는 결국 앱이 정하는 기준에 따른다고 보면 된다. 전체적으로는 “몰라, 안써!” 의미가 되겠다. 하지만 이 의미가 유용하게 쓰이기도 한다는 점을 알아두기 바란다.
끗.

composite / 2018년 5월 8일 / Piss Development / 0 Comments

Cloudflare 로 호스팅하는 웹 사이트의 진짜 IP 뽀려내기.

요즘 한국인도 CloudFlare 를 많이 이용하는데,

주로 해외에 효율적인 캐싱 서비스로 트래픽 조절을 할 수 있는 서비스라서 이용한다.

물론 뉴스타파같이 국내에 중점을 두는 사이트도 있고,

아이폰 탈옥툴 처럼 엄연히 불법은 아니지만 만든이를 숨기고자 하는 서비스도 있다.

(애플에서는 탈옥은 불법 아니지만 탈옥폰에 대해서 지원하지 않는다고 명시하고 있다.)

뭐 가장 큰 특징이 바로 CloudFlare 의 효율적인 캐시 정책과 DDOS 같은 무식한 공격에 방어하는 효과가 뛰어나서이다.

(실제로 Cloudflare 를 통해 호스팅한 사이트가 DDOS 공격을 받았는데 접속이 오래 걸렸을 뿐 서버가 뻗은 적이 없다고 하여 CloudFlare 서비스가 인기를 끈 원인이기도 했다.)

미국에도 한국의 보수(…)처럼 익명성을 혐오하는 이들이 있다. 좋게 보면 파수꾼일 수 있고, 나쁘게 보면 파파라치일 수 있다.

한국의 익명성은… 실명제하고 별 다를 거 없더라.

어쨌든 미국의 익명성을 반대하는 사람들은 불법적이라던가 등의 사이트가 하필 CloudFlare 에 호스팅을 해서, 이를 신고할 증거로 쓰지 못하기 때문에 애먹는(?)다고 한다.

그래서 몇몇 유저들이 CloudFlare 호스팅 하는 사이트의 진짜 IP 를 알아내는 방법을 “공유”하고 있다.

참고로 해킹 기술이 아니며, 그냥 네트워크 관리자라면 “아하 이거?” 할 수 있는 툴로 사용하는 방법이거나, 구글 검색으로 쉽게 접할 수 있는 별거 아닌 도구들이다.

물론 해킹으로 가능할 지는 모르겠지만, 불법이고, 이를 CloudFlare 가 인지하면 당신 고소미 먹으므로 알아서 해라.

어쨌든, 소개한다.

1. Uncovering bad guys hiding behind CloudFlare – CloudFlare Watch (현재 사이트 작동 안함)

http://www.cloudflare-watch.org/cfs.html (사이트 작동 안해서 링크 일부러 안적용)

Daniel Brandt 가 만든 이 사이트는 공공정보연구(Public Infomation Research) 프로젝트의 일환으로 “Cloudflare” 가 범죄 사이트도 수용하고 호스팅해줘서 “CrimeFlare” 라는 별칭을 만드는 등 CloudFlare 서비스에 반발하기 위해 만든 사이트라고 한다.

네임서버 히스토리 등의 공개적인 네임서버 IP 정보를 수집하여 CloudFlare 외 IP를 모두 솎아내서 정리했다는 이 사이트는 반익명성 네티즌에게 엄청난 호응을 얻었으나, 당연히 익명성을 요구하는 다수의 네티즌들에게는 반발의 대상이었고, 자금이 부족했던지 올해 초에 결국 사이트 자체가 폐쇄되었다.

그가 만들었던 동기 원문은 여기 살아있고, 영어다. 볼 사람 보라고.

http://cryptome.org/2012/07/cloudflare-watch.htm

  1. ping

물론 그냥 domain.com 만 핑걸면 cloudflare 만 잡힌다 하지만 CloudFlare 는 다이렉트로 접속하는 IP가 있다.

direct.domain.com : CloudFlare 기본 세팅할 때 다이렉트로 IP로 접속하라고 세팅한 IP. 뭘 좀 안다면 당연히 이는 삭제 대상인데, 실수라던가 귀찮아서 삭제 안할 경우 진짜 IP가 잡힐 수도 있다.

mail.domain.com : 주로 MX 레코드로, 이는 대부분 잡히지만 아닐 수도 있다. 뉴스타파가 잡히긴 했지만 메일 서버가 미국으로 잡히고, 메일 서비스는 심지어 무료로 제공하는 곳도 있기 때문에 신빙성이 적다.

그 외 알려진 서브도메인 알아서 하도록. 여기까지. 그래도 안잡히거나 CloudFlare IP만 잡히면 포기하자.

3. http://network-tools.com/

이 사이트는 해당 호스트에 대한 DNS 정보와 Traceroute 등등 호스트에 대해 공개된 정보를 보여주는 사이트이다.

도메인 Traceroute 및 DNS 정보, 도메인 정보와 IP whois 를 지원한다. 걍 IP나 도메인 누르고 GO 누르면 끝.

4. http://toolbar.netcraft.com/site_report?url=(도메인)

얘도 네트워크관리자라면 아 할 툴인데. 이녀석은 주로 DNS 내역을 보는 사이트이다. 따라서 오래된 도메인이라면 진짜 IP 대역도 볼 수 있는데, 뉴스타파는 신생 사이트고 처음부터 CloudFlare 를 채용했기 때문에 여기서 볼 수 없을 것이다.

그리고 그 오래된 IP가 접속되고, 올바른 곳인지는 나도 모른다. 알아서 판단하라.

5. # nmap -sV -sS -F <target>

nmap 은 DNS를 어떻게든 알아내는 DNS-brute 기능이 내장된 리눅스 유틸이다. 윈도우 사용자는 걍 구글링 해서 온라인 쓰던가.

어쨌든 이걸로 해당 호스트를 검색하면 해당 호스트의 레코드를 최대한 볼 수 있으며, 그 중 진짜 IP 대역이 있을 수도 있다.

물론 찾고 알아보고 발견하는 것은 각자의 몫이니 더이상 자세한 얘기는 생략한다.

내가 이 글을 올리는 이유는 내 친구를 포함해 CloudFlare 를 통해 웹 서비스 등을 이용하는 관리자라면 어떻게 보안성을 구축하고 운영할 것인지에 대한 참고사항이다. 이걸로 IP 잡고 뽀록내서 잡아서 뭐하게? 예를 들어 와레즈다? 불법 자료 공유한 정황을 증거로 남기면 된다. 그러면 경찰이 알아서 추적해서 잡아준다. 바보 아니다. 설령 반익명성 네티즌이라 해도 이거 쓰는 목적에 따라 범죄행위일 수도 있다. 무단 서버 침입일 수도 있기 때문이다.

CloudFlare 라도 항상 안전한 웹 사이트 운영은 힘들다. 이를 잘 알고 대비를 해 두면 당신의 서버는 안전할 것이다.

composite / 2014년 5월 13일 / 미분류 / 1 Comment