본문 바로가기
서버/리눅스 서버

17. 우분투 / 데비안 아파치 서버의 프록시 패스를 이용해 방화벽 우회하기

by ㅋㅋ잠자 2015. 5. 15.
반응형

안녕하세요. 도정진입니다.

   

특이한 네트워크 환경에서 특정 포트로만 통신이 가능한 경우. 80번 포트나 443 HTTPS 포트만 사용이 가능한 경우 아파치 프록시를 이용하여 방화벽을 우회할 수 있습니다.

   

   

   

제한된 네트워크 ---------------------- 아파치 서버 ------------------------- 외부연결

   

제한된 네트워크에서 80번 포트로 아파치 서버에 요청을 보내면 아파치 서버에 설정된 방식대로 80번 이외의 포트로도 연결이 가능하게 해주는 것입니다.

   

   

긴말 없이 바로 시작하겠습니다.

   

테스트 환경은 우분투 14.04 64비트 입니다.

   

그리고 자기 소유의 도메인이 있어야 합니다. 아직 정확하게 프록시에 대해서 모르기 때문에 도메인이 꼭 필요한지는 잘 모르겠습니다. 서브 도메인 설정이 가능한 도메인이 필요합니다.

   

   

   

   

1. 아파치 모듈 활성화 하기

   

aptitude install -y libapache2-mod-proxy-html libxml2-dev

   

a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html

   

   

이렇게 모듈 활성화가 간단히 끝났습니다.

   

   

   

   

2. 기본설정하기

   

기본설정은 아래의 위치에서 합니다.

   

   

/etc/apache2/sites-enabled 에 가시면 conf 파일을 마음에 드는것으로 하나 만들어 주고 가상호스트를 생성한다는 개념으로 하시면 됩니다.

   

위 설정파일은 일종의 예시 입니다.

   

<Virtualhost 192.168.0.2:80>

ProxyRequests Off

ServerName iptime.djjproject.com

   

<Proxy *>

 

Order Deny,allow

Allow from all

</Proxy>

 

ProxyPass / http://192.168.0.1/

ProxyPassReverse / http://192.168.0.1/        

   

   

</Virtualhost>

   

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

   

그럼 iptime.djjproject.com 으로 접속을 하게 되면 -> 192.168.0.1 의 페이지가 열리는 것입니다. 열리는 페이지는 아파치 서버가 위치한 네트워크 관점에서 생각하시면 됩니다.

   

   

   

   

3. ShellinAbox 설정해보기

   

실제로 ShellinAbox 의 경우에 4200 포트를 사용하고 이 포트 마저도 막혀있는 경우가 있습니다. 한편 몇몇 도메인으로의 HTTPS 연결이 안되도록 설정된 곳이 있는데 보안에 취약함에도 불구하고 HTTPS 보안을 사용안함으로 설정하였습니다.

   

대신에 기본적인 보안을 추가하여 2차 보안으로 설정을 해서 조금이라도 보안성을 높이는게 좋을 것 같습니다.

   

<Virtualhost 192.168.0.2:80>

ProxyRequests Off

ServerName terminal.djjproject.com

   

<Proxy *>

        AuthUserFile /etc/apache2/passwd

        AuthName EnterPassword

        AuthType Basic

        require valid-user

   

        Order Deny,allow

        Allow from all

        </Proxy>

 

ProxyPass / http://localhost:4200/

ProxyPassReverse / http://localhost:4200/        

   

   

</Virtualhost>

   

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

   

   

가상호스트 설정 파일은 이렇게 구성이 되고 2번째의 설정과 비슷합니다. 단지 프록시 설정에 아파치의 기본 인증을 추가해 놓은 것입니다. 기본적으로 쉘인어박스는 4200포트를 사용하기 때문에 위의 가상호스트 프록시 설정도 그렇게 하시면 됩니다.

   

그리고 HTTPS 연결까지 허용이 되지 않는다면 쉘인어박스의 설정을 바꾸어 SSL 사용을 하지 않도록 설정해야 합니다.

   

   

/etc/default 로 이동하면 shellinabox 라는 파일이 있는데 맨 및줄에 --disable-ssl 이라고 추가를 해주시면 됩니다.

   

그럼 브라우저에서 terminal.djjproject.com 으로 이동하게 되면 아래처럼 80번 포트만으로 운용이 가능하게 됩니다.

   

   

   

   

감사합니다. ㅎㅎ

반응형

댓글