국내에서 미국(US) 프록시를 이용하여 미국쪽 서비스에 접근하려는 경우는 너무 흔하게 많이 알고있고

불순한 의도(?)에 의해 많이 하고있다.


하지만 오늘 소개할 방법은 기존의 방법을 사용할 수 없는 환경에서

미국(US) 프록시가 아닌 우리나라(S.Korea) 프록시를 이용하여 해외에 접속해보고자 한다.


또한 왜 이 짓을 해야하는지도 한번 알아보자.


# 문제상황

1. 목표 시스템은 PHP 환경이며, fopen, file_get_contents이 URL을 통해 외부자료를 참조하는 것을 막았다.

2. 외부와 연결이 가능한 것은 cURL 뿐이지만, 공교롭게도 서버 설정이 해외 접속을 완전히 차단하고 있다.

3. 나는 REST(URL을 이용한 GET/POST 전송) 환경으로 미국(US)에 소재한 서버에서 데이터를 받아와야한다.


# 해결하기

이러한 상황에서 프록시를 사용한다면 일반적으로 사용하는 미국(US) 프록시에 의한 우회를 생각하기 쉽다.


그런데 뭔가 이상하다. 모든 해외 접속을 차단했는데 미국 프록시를 사용할 수 있을까?

지나가던 개가 웃는다.


그럼 어떤 식으로든 서버 측에서는 한국에 소재한 컴퓨터(IP 주소)끼리만 통신할 수 있다는 뜻이다.


<우리가 받아야 할 자료, 서버위치: 미국(US)>


{ "foo": true, "bar": false, "blah": "blah blah" }


<서버측에서 PHP와 cURL로 요청하는 예시, 서버위치: 한국(S.Korea)>


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, (목표 주소));
(생략)

$result = curl_exec($ch);
curl_close($ch);


이런 환경에서 아무리 국내 서버에서 요청을 해봤자, 헛수고에 불과할 뿐이다.


그렇다면 어떤 방법을 쓰면 될까?

내 서버가 해외에 접속할 수 없다면, 해외에 접속할 수 있는 컴퓨터를 거치면 된다.


이를 위해 cURL 요청 시 아래와 같은 내용을 하나 추가한다.


curl_setopt($ch, CURLOPT_PROXY, "(해외접속이 가능한 국내 프록시 주소)");


이로써 미국(US) 서버와 한국(S.Korea) 서버 간의 접속은 성립된다.


# 언제 쓰는거?

소셜 네트워킹이나 다른 기능을 지원하는 서비스와

자신의 서버(웹호스팅)을 연결할 때 해외 접속이 완전 차단된 환경에서 사용하게 된다.


이러한 방법을 통해 해외 접속이 지원되는 환경으로 갈아타지 않고도 즉석에서 적용이 가능하다.

하지만 임시방편에 불과함으로 서비스 트랜젝션이 상승할 시에는 해외접속이 지원되는 온전한 서버로 갈아타야한다.


# 응용 분야

국내에서 외국이 아닌 국내 프록시를 사용하는 이유 중에 하나는 부하 분산이다.

이 글에서는 단순히 해외 접속용도만을 다루었지만 부하 분산을 위한 프록시 서버 사용법에 대해서도

알아볼 분들은 찾아서 알아보면 좋겠다. 키워드: 로드 밸런싱, 로드 밸런서


by 광은통신 웃는하루 2015.09.30 06:35

공유기와 허브의 차이에 대해 찾다보면

써보지 않은 사람들이 보기에는 매우 난해하게 설명이 되어있다.


"공유기는 IP를 할당안받고도 쓸 수 있고, 허브는 IP 할당받아야 쓸 수 있다."

"공유기는 포트 수가 적은 편이고 허브는 많은 편이다."


What the fuck? 설명에다가 뭔 멍멍이 소리를 써놓고 있는지 당최 알 수가 없다.


공유기도 IP 할당받아야 쓸 수 있고, 공유기도 포트 수 늘리려면 제조사가 마음만 먹으면

얼마든지 늘릴 수 있다.

그럼에도 저런 식으로 난해하게 된 설명은, 초보자에게 혼란만 야기시킬 뿐이다.


** 공유기와 허브의 가장 확실한 차이는 네트워크의 위상차이다!


공인 IP를 단 하나만 가지고 있다면 4가지 중 어느 구성으로 네트워크를 구축하는 것이 맞을까?

1. 30대의 컴퓨터가 있고, 30대의 컴퓨터를 모두 허브로 연결한다.

2. 30대의 컴퓨터가 있고, 30대의 컴퓨터를 모두 공유기로 연결한다.

3. 30대의 컴퓨터가 있고, 공유기를 거친 후 허브로 30대의 컴퓨터를 연결한다.

4. 30대의 컴퓨터가 있고, 허브를 거친 후 공유기로 30대의 컴퓨터를 연결한다.


공유기와 허브의 가장 큰 차이는 위와 같은 간단한 질문에서 시작한다.

저 질문에 대한 해석을 해보자.


1번과 2번, 3번과 4번은 물리적 토폴로지(위상도) 구성이 같다. 다만 논리적 토폴로지의 차이를 보인다.

이 말을 듣고 어렵게 느껴지는 것이 당연하다. 아래의 표로 확인해보자.


사례 

 물리적 토폴로지

 논리적 토폴로지

 30대의 컴퓨터가 있고, 30대의 컴퓨터를 모두 허브로 연결한다.

 중앙 네트워크에 30대의 컴퓨터가 연결된 구조.

 중앙 네트워크에 30대의 컴퓨터가 연결된 구조. 30대의 컴퓨터는 각각 공인 아이피를 가지며, 이때 필요한 공인 아이피의 수는 30개이다.

 30대의 컴퓨터가 있고, 30대의 컴퓨터를 모두 공유기로 연결한다.

 중앙 네트워크에 30대의 컴퓨터가 연결된 구조.

 중앙 네트워크에 30대의 컴퓨터가 연결된 구조. 30대의 컴퓨터는 각각 사설 아이피를 가지며, 이때 필요한 공인 아이피의 수는 1개이다.

 30대의 컴퓨터가 있고, 공유기를 거친 후 허브로 30대의 컴퓨터를 연결한다.

 중앙 네트워크 하위에 존재하는 장비를 거쳐 30대의 컴퓨터가 연결된 구조.

 중앙 네트워크에 1대의 컴퓨터가 연결된 구조. 30대의 컴퓨터는 각각 사설 아이피를 가지며, 이때 필요한 공인 아이피의 수는 1개이다.

 30대의 컴퓨터가 있고, 허브를 거친 후 공유기로 30대의 컴퓨터를 연결한다.

 중앙 네트워크 하위에 존재하는 장비를 거쳐 30대의 컴퓨터가 연결된 구조.

 중앙 네트워크에 n+1대의 컴퓨터가 연결된 구조. 30대의 컴퓨터는 n+1 중 n을 제외한 1대의 컴퓨터가 중앙 네트워크에 연결된 구조. 30대의 컴퓨터는 각각 사설 아이피를 가지며, 이때 필요한 공인 아이피의 수는 n+1개이다.

 30대의 컴퓨터가 있고, 허브 2포트에 공유기 한대씩 연결시켜 각각 15대 씩 연결한다.

중앙 네트워크 하위에 존재하는 장비 2대를 거쳐 30대의 컴퓨터가 연결된 구조.

 중앙 네트워크에 n+2대의 컴퓨터가 연결된 구조. 30대의 컴퓨터는 n+2 중 n을 제외한 2대의 컴퓨터가 중앙 네트워크에 연결된 구조. 30대의 컴퓨터는 15대 씩 한 묶음으로 각각 다른 사설 IP 대역에 따라 아이피를 가지며, 이때 필요한 공인 아이피의 수는 n+2개이다.


내가 써놓고 보지만 참 누가봐도 어렵게 썼다.


즉 결론은,

허브로 연결된 컴퓨터끼리는 상위 네트워크의 허브로 연결되지 않은 컴퓨터들과 위상이 같고

공유기로 연결된 컴퓨터끼리는 상위 네트워크의 공유기로 연결되지 않은 컴퓨터들과 위상이 한단계 차이가 난다.

라는 것이다.


그렇기에 허브는 컴퓨터가 1대 연결될 때마다 공인 아이피를 요구하는 것이고, 공유기는 1개의 공인 아이피만으로 여러대의 컴퓨터를 연결할 수 있는 것이다.


공유기와 허브 차이를 어려워하시는 분들이 있어서 작성해보았다.

이러한 공유기와 허브의 차이를 익혀두면 TCP/IP의 패킷을 조작하는 각종 해킹 기술에 대한 이해도

수월하기 때문에 알아두면 도움이 된다.


by 광은통신 웃는하루 2015.08.03 07:10

<문제 상황>

Vmware ESXi 사용자가 Vmware vSphere를 통해 로컬에서 원격 Datastore로

파일 업로드를 진행할 시 "Failed to login to NFC server" 오류가 뜬다.


<해결 방법>

네트워크 문제가 주가 되는 오류이므로, vSphere에 설정된 네트워크 설정을 다시 확인해본다.

포트 차단이 문제가 되는 경우가 있으므로, 902번 포트를 열어놓도록 하자.


<참고 문서>

http://www.veeam.com/kb1198

by 광은통신 웃는하루 2015.07.16 01:12

<문제 상황>

CentOS 6에서 Snorts를 설치하던 중

Dynamic Preprocessor와 Dynamic Rules를 찾을 수 없는 문제가 발생한다.

 

관련 키워드: snort_dynamicpreprocessor, white_list.rules, black_list.rules

 

<해결 방안>

 

1. snort_dynamicpreprocessor 문제

Snort는 preprocessor라는 기능을 지원하는데 이때 컴파일 된 라이브러리를 /usr/local/lib에 담게된다.

일반적으로 CentOS 환경이라면 제공되는 rpm 파일을 통해 설치하지만, 실제 진행하면 라이브러리가 설치가 안되는 모양이다.

 

그럴땐 rpm(yum)을 통해 필요한 내용을 모두 설치한 다음, 코드 컴파일로 daq와 snort 설치를 한번 더 해주자.

 

# wget https://www.snort.org/downloads/snort/daq-2.0.4.tar.gz
# wget https://www.snort.org/downloads/snort/snort-2.9.7.2.tar.gz

# tar xvfz daq-2.0.4.tar.gz
# cd daq-2.0.4
# ./configure
# make
# sudo make install

# tar xvfz snort-2.9.7.2.tar.gz
# cd snort-2.9.7.2
# ./configure --enable-sourcefire
# make
# sudo make install

 

2. dynamic rules 문제

Snort의 preprocessor 중에는 reputation 항목이 존재한다. (/etc/snort/snort.conf 참고)

 

여기서 화이트 리스트, 블랙 리스트 룰을 불러오는 내용이 있는데

초기 상태의 snort 설치에서 이런 룰이 준비되어 있을리 만무하다. 있는게 수상한거다(?)

이럴 땐 공란 파일하나 만들어주자.

 

# touch /etc/snort/rules/while_list.rules

# touch /etc/snort/rules/black_list.rules

 

다 되었다면 정상 작동되는지 테스트해보자. 아래처럼 결과가 나오면 성공한 것이다.

# snort -T -i eth0 -u snort -g snort -c /etc/snort/snort.conf

 

(앞 내용 생략)

        --== Initialization Complete ==--

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.7.2 GRE (Build 177)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.4.0
           Using PCRE version: 7.8 2008-09-05
           Using ZLIB version: 1.2.3

           Rules Engine: SF_SNORT_DETECTION_ENGINE  Version 2.4  <Build 1>
           Preprocessor Object: SF_MODBUS  Version 1.1  <Build 1>
           Preprocessor Object: SF_REPUTATION  Version 1.1  <Build 1>
           Preprocessor Object: SF_DNS  Version 1.1  <Build 4>
           Preprocessor Object: SF_SSLPP  Version 1.1  <Build 4>
           Preprocessor Object: SF_POP  Version 1.0  <Build 1>
           Preprocessor Object: SF_SIP  Version 1.1  <Build 1>
           Preprocessor Object: SF_DCERPC2  Version 1.0  <Build 3>
           Preprocessor Object: SF_GTP  Version 1.1  <Build 1>
           Preprocessor Object: SF_DNP3  Version 1.1  <Build 1>
           Preprocessor Object: SF_SSH  Version 1.1  <Build 3>
           Preprocessor Object: SF_SDF  Version 1.1  <Build 1>
           Preprocessor Object: SF_IMAP  Version 1.0  <Build 1>
           Preprocessor Object: SF_SMTP  Version 1.1  <Build 9>
           Preprocessor Object: SF_FTPTELNET  Version 1.2  <Build 13>

Snort successfully validated the configuration!
Snort exiting

 

이제 Snort를 하나씩 즐겨보면 된다.

 

by 광은통신 웃는하루 2015.04.28 12:51

 

CentOS에 팀뷰어 설치를 시도하던 중 아래의 오류를 확인하였다.

 

# rpm -Uvh teamviewer_10.0.41499.i686.rpm
warning: teamviewer_10.0.41499.i686.rpm: Header V4 DSA/SHA1 Signature, key ID ********: NOKEY
error: Failed dependencies:
        libXinerama.so.1 is needed by teamviewer-10.0.41499-0.i686
        libXrandr.so.2 is needed by teamviewer-10.0.41499-0.i686

 

 

아래는 해결 방법이다.

 

1. 위 오류가 발생하는 경우 사용중인 CentOS 플랫폼은 x64이다.

    팀뷰어 배포는 x86(i686)에 맞춰져 있으므로 그에 맞는 의존 라이브러리를 설치하자.

 

- libXinerama.so.1 검색 결과

http://www.rpmfind.net/linux/rpm2html/search.php?query=libXinerama.so.1

 

- libXrandr.so.2 검색 결과

http://www.rpmfind.net/linux/rpm2html/search.php?query=libXrandr.so.2

 

플랫폼은 i686으로 받으면 된다.

 

2. 의존 패키지 설치

기존의 설치 방법과 동일하다. 아래는 진행 예시이다. 파일은 주소 따서 wget으로 받아 진행하면 된다.

 

 

by 광은통신 웃는하루 2015.04.24 10:34

MySQLi는 웹호스팅을 PHP5, MySQL5.x로 이용하면 당연히 따라오는 것이라고 생각하시는 분들이 많습니다.
허나, 그렇지가 않더군요. 그래서 지원하는 호스팅과 지원하지 않는 호스팅을 써봅니다.
MySQLi의 일반적인 지원 조건은 PHP 5.X 이상, MySQL 4.1 이상이라고 합니다.
개인이 이용하기에 부담이 가는 금액의 호스팅 업체는 조사에서 제외되었습니다.

카페24(cafe24.com) - PHP5, MySQL5.X 지원, MySQLi 지원함.
마루호스팅(maru.net) - PHP 5.2.6 , MySQL 5.0.22 지원, MySQLi 지원함.
이로긴(elogin.co.kr) - PHP 5.0, MySQL 4.1 지원, MySQLi 지원함.
마이넷(mynet.co.kr) - 요청에 따라 PHP 5.X, MySQL 4.X 지원, MySQLi 지원하지 않음.
미리내(mireene.com) - PHP 5.X, MySQL 5.X 지원, MySQLi 지원하지 않음.
호스트먼트(hostment.com) - MySQL 5.X를 시험적으로만 운영함, MySQLi 미지원 예상.
웹제로(webzero.kr) - PHP 4.X, MySQL 4.X 지원, MySQLi 일반적인 조건 미만.
메일플러그(mailplug.com) - PHP4.X, MySQL4.X 지원, MySQLi 일반적인 조건 미만.
나누미넷(nanuminet.com) - PHP 4.3, MySQL 4.0 지원, MySQLi 일반적인 조건 미만.
by 광은통신 웃는하루 2009.09.29 18:16
| 1 |