Proxy 테스트 할때 ICP 회피 할려다 하다 보니...  생각난 방법이다.

도메인으로 접속해야만 하는 경우 ICP가 없으면 17년 6월부터 사이버 보안법 때문에 vendor 차원에서 짤없이 차단이다.

그냥 IP로 접속하면 되겠지만, 본 경우는 WebServer는 vhost설정이 되어 있어서 IP로 접속할 수 없고 실제로 도메인으로 접속해야하는 경우다. 

즉, 테스트 서버는 IP로 접속해야 하고, 실제 대상 웹서버에는 도메인을 달고 들어가야 하는 경우.

방법은 간단하게 접속시 Host를 바꿔치기 하면 된다.

location / {
  proxy_pass http://origin.opencloud.kr;
proxy_set_header Host www.opencloud.kr;
}



약간의 응용을 하면 조건을 걸 수도 있다. 특정 도메인으로 접속시에만 호스트 바꾸기

poc.opencloud.kr로 접속 했을 경우에만 test.opencloud.kr로 host를 바꾸고, 나머지는 원래 접속한 도메인으로 보내는 방법

set $my_host $http_host;
if ($http_host = "poc.opencloud.kr") {
  set $my_host "test.opencloud.kr";
}
location / {
  proxy_pass http://origin.opencloud.kr;
proxy_set_header Host $my_host; }


정확하게는 Reverse Proxy 형태의 포트 포워딩 되시겠다.

방법은 여러가 지가 있겠으나... 일단 TCP 레벨이 가능한 아래 2가지를 먼저 해본다.

NGINX/HAProxy를 쓰는 방법

IPTables(CentOS6) 또는 FirewallD(CentOS7)를 쓰는 방법

NGINX 설정

sudo su -
yum install -y nginx nginx-mod-stream
vi /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

stream {
    server {
        listen     443;
        proxy_pass s3.ap-northeast-2.amazonaws.com:443;
    }
}
#자동 시작 설정 및 서비스 시작
systemctl enable nginx
systemctl start nginx

#동작 테스트
curl -v --insecure https://localhost

+ Recent posts