카테고리 보관물: config

VirtualBox 호스트 전용 어댑터 설정

VirtualBox에서 기본으로 vm을 설치하면 NAT 네트워크로 연결이 되서 그냥 ssh client로 접속하는데 꽤 불편하다.

호스트 전용 어탭터 설정을 통해 내부 고정 IP로 세팅하는 방법을 기술해본다.

Windows 기준이지만 mac도 거의 동일하다.

VirtualBox 환경설정에서 어댑터 추가

VirtualBox- 파일 – 환경설정 – 네트워크 – 호스트 전용 네트워크 메뉴에서

호스트 전용 어댑터를  버튼으로 신규 호스트 전용 어댑터를 생성한다.

편집()을 클릭하여 아래와 같이 IP 주소를 확인한다.

예제는 192.168.253.1 인 것을 볼 수 있다.

또 DHCP 기능은 사용하지 않으므로 체크되지 않는 것을 확인한다.

VM 설정에서 어댑터 추가

VM설정에서 환경설정에서 추가한 어댑터를 추가한다. VM이 종료된 상태에서 작업을 진행해야 한다.

어댑터2번에 신규로 추가한 #2번 의 호스트 전용 어댑터를 추가한다.

GUEST OS를 시작한다.

GUEST OS 네트워크 설정

ifconfig으로 현재 어댑터 정보를 확인해본다.

$ ifconfig -a
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:ec:8e:1c  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feec:8e1c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1596 (1.5 KB)  TX bytes:7105 (7.1 KB)

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:86:ed:d1  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10303 (0.0 KB)  TX bytes:0 (0.0 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:164 errors:0 dropped:0 overruns:0 frame:0
          TX packets:164 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:12080 (12.0 KB)  TX bytes:12080 (12.0 KB)

enp0s3 로 현재 nat 어댑터로 구성이 되어 있고 신규로 enp0s8 어댑터에 대해서 호스트 전용 네트워크를 설정한다.

$ sudo vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo  
iface lo inet loopback

# The primary network interface
auto enp0s3  
iface enp0s3 inet dhcp

# The host-only network interface 신규로 추가
auto enp0s8  
iface enp0s8 inet static  
address 192.168.253.101  
netmask 255.255.255.0  
network 192.168.253.0  

설정이 완료 됐으면 network service를 재시작한다.

$ sudo systemctl restart networking
or  
$ sudo /etc/init.d/networking restart

설정이 완료됐으면 host OS에서 ping을 날려보면

C:\Users\hkwon>ping 192.168.253.101

Ping 192.168.253.101 32바이트 데이터 사용:  
192.168.253.101의 응답: 바이트=32 시간<1ms TTL=64  
192.168.253.101의 응답: 바이트=32 시간<1ms TTL=64  
192.168.253.101의 응답: 바이트=32 시간<1ms TTL=64  
192.168.253.101의 응답: 바이트=32 시간<1ms TTL=64

192.168.253.101에 대한 Ping 통계:  
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 0ms, 평균 = 0ms

ssh 클라이언트로 접속 해서 이제 작업하면 된다~

Windows 10에서 Tomcat과 IIS 연동하기

ISAPI(Internet Server Application Programming Interface) 확장 모듈을 사용해서 특정 URL 또는 특정 확장자(*.jsp, *.do)에 대한 요청이 오면 Tomcat으로 요청을 돌리도록 설정하게 됩니다.

1. 연동 설정에 사용된 소프트웨어는 다음과 같습니다.

모두 64bit 또는 32bit에 맞춰야 합니다.

– Windows 10 64bit

– IIS(Internet Information System)

– JDK 10(7 이상이면 가능)

– Tomcat 8.5.32

– Tomcat Connector 1.2.43(ISAPI 모듈)

2. 기본 소프트웨어 설치하기

– IIS 의 설치는 Windows 10에 IIS 설치하기 를 참조하세요.

– JDK의 설치는 윈도우에 JDK 8 설치하기를 참조하세요.

– Tomcat의 설치는 Windows 10에 Tomcat 설치하기를 참조하세요.

3. IIS에 ISAPI 설치하기

Windows 기능 켜기/끄기 에서 “ISAPI 필터”와 “ISAPI 확장”을 체크하고 “확인” 버튼을 눌러 설치합니다. (Windows 기능 켜기/끄기의 실행은 IIS 설치 글에서 확인하세요.)

4. Tomcat Connector 설치하기

4.1. http://tomcat.apache.org 사이트 왼쪽의 Download에서 Tomcat Connectors 를 클릭해서 들어갑니다.

4.2. Tomcat Connectors JK 1.2 항목에서 “Binary Releases for selected versions” 를 클릭해서 들어갑니다.

4.3. 바이너리 인덱스 페이지에서 “windows” 를 클릭해서 들어갑니다.

4.4. 윈도우즈 바이너리 페이지에서 “tomcat-connectors-1.2.43-windows-x86_64-iis.zip” 파일을 다운로드 받습니다.

4.5. 다운받은 압축파일의 압축을 풀면 나오는 “isapi_redirect.dll” 파일이 필요한 파일 입니다.

설치는 임의의 위치를 정해서 파일을 복사해 두면 됩니다. 폴더 위치른 다음과 같이 정했습니다.(자신이 원하는 위치에 두면 됩니다.) 여기서는 D:\util 폴더 아래에 Tomcat Connector 폴더, 그 아래 bin 폴더를 만들고 dll 파일을 두었습니다.

D:\util\Tomcat Connector\bin\isapi_redirect.dll 

Tomcat Connector 폴더 아래에 그외에 설정파일을 둘 conf 폴더와 로그 파일을 둘 log 폴더를 만들었습니다.

5. Tomcat Connector 설정파일 만들기

바이너리 배포파일내에 설정 파일은 포함되어 있지 않습니다. 커넥터가 어떻게 동작할지 지정하는 설정파일을 만들어야 합니다.

5.1. isapi_redirect.properties 파일을 작성합니다.

D:\util\Tomcat Connector\bin 폴더 아래 생성합니다. 이 파일은 isapi_redirect.dll 파일과 같은 곳에 있어야 합니다. 만약 Tomcat Connector의 설치 위치를 이 글에서와 다르게 했다면 이파일의 위치는 dll 파일과 같은 폴더에 있으면 됩니다. 파일 내용중 #으로 시작하는 라인은 주석(Comment) 입니다.

# IIS가 필터를 찾는 위치 입니다. 나중에 IIS관리자에서 가상디렉토리로 /jakarta 를 만들것입니다.

extension_uri=/jakarta/isapi_redirect.dll

# 로그 파일의 저장 와 로그파일의 이름 입니다. 경로는 절대경로로 기입합니다.

log_file=D:\util\Tomcat Connector\log\isapi_redirect.log

# 로그 레벨 : debug, info, warn, error, trace

log_level=info

# IIS에서 redirect할 서버들의 정보를 지정한 파일입니다. 여러 Tomcat 서버로 부하를 분산할 수 있습니다.

worker_file=D:\util\Tomcat Connector\conf\workers.properties

# Tomcat 서버(Worker)로 요청을 보낼 URI 를 지정하는 파일 입니다.

worker_mount_file=D:\util\Tomcat Connector\conf\uriworkermap.properties

5.2. workers.properties 파일을 작성합니다.

D:\util\Tomcat Connector\conf 폴더 아래 생성합니다. 이 파일에 IIS에 연결될 Tomcat 서버들의 정보를 설정하게 됩니다. 이 글에서는 하나의 Tomcat 서버만을 사용하지만 여러개의 Tomcat 서버를 두고 부하를 분산하는 것도 가능합니다.

# Tomcat 서버를 지정합니다. 콤마로 분리해서 여러개를 지정할 수 있습니다.

worker.list=worker1

# Tomcat과 통신하는 프로토콜을 지정합니다.

worker.worker1.type=ajp13

# Tomcat 서버의 IP 주소 입니다.

worker.worker1.host=localhost

# Tomcat 서버의 ajp13 통신 포트 입니다. Tomcat의 server.xml 에 지정되어 있습니다.

worker.worker1.port=8009

workers.properties 파일의 자세한 설정방법은 workers.properties configuration 를 참조하세요.

5.3. uriworkermap.properties

D:\util\Tomcat Connector\conf 폴더 아래 생성합니다. 특정 URI로 들어온 요청을 Tomcat으로 보내도록 지정합니다.

# 확장자가 jsp인 요청을 Tomcat으로 reidrect 합니다.

/*.jsp=worker1

– uri 패턴은 대소문자를 구분합니다.

– # 으로 시작하는 행은 주석 입니다.

– 패턴과 Worker명 사이의 = 기호 앞과 뒤의 공백은 무시됩니다.

– 패턴 매칭 기호로 ?, *, |, !등을 사용할 수 있습니다.

uriworkmap.properties 파일의 자세한 설정 방법은 uriworkermap.properties configuration 를 참조하세요.

6. IIS에 테스트용 웹사이트 만들기

6.1. IIS관리자에서 왼쪽 트리에서 “사이트”를 클릭하고 화면 오른쪽 위의 작업에서 “웹 사이트 추가…“를 클릭합니다.

6.2. 사이트 정보를 입력합니다.

– 사이트 이름은 “Tomcat IIs 연동” 으로 입력합니다.

– 응용프로그램 이름은 기본값으로 사이트 이름과 같은 풀이 생성 되는데, 여기서는 “선택” 버튼을 클릭하여 DefaultAppPool을 선택했습니다.

– 실제 경로는 설치된 Tomcat의 웹 루트 폴더로 지정했습니다. 여기서는 D:\util\Apache Software Foundation\Tomcat 8.5\webapps\ROOT 입니다. IIS 웹 루트와 연동된 Tomcat의 웹 루트가 반드시 같을 필요는 없습니다.

– 포트는 8090으로 지정했습니다. Tomcat 설치시 웹 포트가 8080으로 설치 했다면 그 포트와 충돌하지 않도록 다른 포트로 지정하면 됩니다. 연동이 완료되면  Tomcat의 웹 포트는 닫아 버려도 상관이 없습니다.

– 호스트 이름은 비워 뒀습니다. 테스트용 개인 PC에 도메인이 없기 때문입니다.

– “웹 사이트 즉시 시작” 에 체크했습니다.

사이트가 생성이 되었습니다.

아직은 Tomcat연동이 완료되지 않아서 jsp 호출을 처리하지 못합니다.

7. IIS에서 Tomcat 연동 설정하기

7.1. ISAPI 및 CGI 제한 설정하기

IIS관리자의 왼쪽 컴퓨터 이름을 클릭하여 가운데 화면에서 “ISAPI 및 CGI 제한“을 더블 클릭합니다.

화면 오른쪽의 “추가…” 를 눌러 제한을 추가합니다.

– ISAPI 또는 CGI 경로 에는 isapi_redirect.dll 을 선택합니다.

– 설명에는 Tomcat 을 입력합니다.(임의로 넣어도 됩니다.)

– 확장 경로 실행 허용에 체크합니다.

7.2. 가상디렉토리 추가

Tomcat IIS 연동 사이트에 마우스 오른쪽 키를 클릭해서 팝업 메뉴에서 “가상 디렉터리 추가…“를 선택합니다.

가상 디렉터리 추가 창에서 다음과 같이 입력합니다.

– 별칭은 jakarta를 입력합니다. isapi_redirect.properties에서 지정한 이름 입니다.

– 실제 경로는 Tomcat Connector의 bin 폴더를 지정합니다.

7.3 ISAPI 필터 설정하기

Tomcat IIS 연동 사이트를 클릭하고 가운데 화면 아이콘중에서 ISAPI 필터를 더블클릭합니다.

화면 오른쪽 위의 “추가…” 버튼을 클릭하여 정보를 입력합니다.

– 필터 이름에 “Tomcat” 을 입력합니다.(임의로 입력해도 됩니다.)

– 실행파일에 isapi_redirect.dll 파일을 지정합니다.

7.4. 처리기 매핑을 설정합니다.

Tomcat IIS 연동 사이트를 클릭하고 가운데 화면 아이콘중에서 처리기 매핑을 더블클릭합니다.

사용 안 함에 있는 ISAPI-dll 을 클릭하고 화면 우측의 “기능 사용 권한 편집…“을 클릭하여 설정을 합니다.

사용권한에서 읽기, 스크립트, 실행에 모두 체크합니다. 기본적으로 읽기와 스크립트에는 체크가 되어 있을 것입니다.

8. 서비스를 재시작합니다.

시작버튼을 눌러 Windows 관리도구 -> 서비스를 실행해서 “World Wide Web Publishing 서비스“를 재시작합니다.

Tomcat 도 시작이 되어 있어야 합니다.

9. 연동 결과 확인

IIS 사이트의 포트인 8090으로 jsp 파일이 서비스 되는 것을 확인할 수 있습니다.



출처: https://offbyone.tistory.com/322 [쉬고 싶은 개발자]

SNI 암호화 및 Https 차단 우회 방법

정부는 불법 사이트를 차단하기 위해 https를 사용하는 사이트들을 검열한다고 발표했다. 그리고 몇달뒤 SNI 검열을 실시한다고 밝혔다.

그러나 다행히 차단 기술이 나오기도 전에 벌써 무력화되었다. 내가 5월에 DNS 우회에 대한 글을 올리고 5개월 동안, 애플을 비롯한 4개의 IT 기업이 합동으로 우회 기술을 개발했다. 현재 시범 적용 중이다.

정부나 웹툰 업계 종사자에게는 미안한 말이지만 미국의 개발자들에게 “제3자가 패킷을 들여다보고 변조하는 행위”는 그저 막아야 할 보안 취약점에 지나지 않는다.

그 주체가 정부든 해커든 상관없이 말이다.

아무튼 이 글은 미국에서 개발된 Encrypted SNI(암호화된 SNI)를 사용하는 방법을 기술한다.

ESNI를 사용하기 위해서는 몇가지 조건이 있다.

1) 접속하려는 사이트가 클라우드플레어를 사용할 것

현재는 서버 측에서 ESNI를 지원하는 DNS가 클라우드플레어 밖에 없다.

국내 성인 사이트와 마루마루, E-hentai, 냐토렌트는 클라우드플레어를 사용한다.

반대로 hitomi, xvideos, xhamster, pornhub를 비롯한 대다수의 서양 성인 사이트는 클라우드플레어를 사용하지 않는다.

사이트에서 ESNI를 지원하기 위해서는 클라우드플레어 CDN을 사용하고 그곳에서 제공하는 보안 인증서를 사용하면 된다.
그러니까 Let’ Encrypt 같은거 쓰지말고 SSL 설정을 Full로 하라고

클라우드플레어를 사용하는 사이트는 모두 ESNI가 자동으로 적용되는 시범 대상이다.

2) 파이어폭스를 사용할 것

아직 표준화도 안된 따끈따끈한 신기술이라 지원하는 곳이 파이어폭스 밖에 없다. 다른 브라우저가 지원하게 되면 그때 다시 포스팅 하겠다.

귀찮은데 언젠간 크롬이 지원하겠지.”
이딴 생각 하지 말자. 크롬이 지원하려면 2~3년은 걸리고 차단은 빠르면 2달안에 시작된다. 그냥 딸 칠때면 파이어폭스를 쓰자.

※ beta 말고 아래에 있는 보라색꺼

여기서 Firefox Nightly를 다운받아 설치한다. PC/안드로이드/ios를 지원한다. 모바일은 플레이 스토어에서 설치할 수 있다.

일종의 베타 테스트 버전인데 신기술을 미리 체험해볼 수 있는 대신 안전성은 떨어진다.

※ 가끔 “이 연결은 신뢰할 수 없습니다.” 라는 에러 페이지가 뜨는데 오류니까 그냥 새로고침 하면 정상적으로 접속된다.

참고로 정식 버전에 ESNI가 도입되는 건 12월 11일이라고 한다.
https://wiki.mozilla.org/Release_Management/Calendar

Nightly는 안정된 버전이 아니라 잘되다 갑자기 ESNI가 작동하지 않을 수 있다.

너무 걱정하지 말고 최소 베타 버전 때까지는 기다린다고 생각해야 마음이 편하다.

잘 작동되다 갑자기 작동이 안되더니 플레이 스토어에 올라온 업데이트를 적용했더니 또 잘되고 그런다.

설치가 끝났으면 파이어폭스를 켜고 주소창에 about:config라고 치고 들어간다.

가끔 PC에서는 이런 창이 뜨기도 하는데 무시하고 파란 버튼을 눌러주자.

이런 설정 페이지가 나온다. 여기서 각종 기능들을 켜고 끌 수 있다.

ESNI를 켜기 전에 먼저 DNS over https(줄여서 Doh)를 켜야 한다. ESNI는 DNS를 사용하기 때문에 DNS 암호화가 없다면 반쪽짜리 기술이 된다. 그리고 겸사겸사 정부의 DNS 차단도 뚫어준다.

여기 있는 방법을 Firefox Nightly에서 똑같이 따라하면 된다.

한가지 주의해야 할 점은 network.trr.mode 은 3이 아니라 2로 설정해주자.

network.trr.uri와 network.trr.BootstrapAddress가 서로 다른 서버인 경우 제대로 작동하지 않는다.

전자는 https://mozilla.cloudflare-dns.com/dns-query
후자는 1.1.1.1로 설정해주자.

Doh 적용이 끝났다면 이제 ESNI를 켤 시간이다.

설정 페이지 검색창에 esni로 검색한다.

그러면 network.security.esni.enabled 라는게 나온다. 저렇게 false 로 되어 있는 걸

클릭해서 켜기 버튼을 누르고 이렇게 true로 바꿔주자.

이제 ESNI가 파이어폭스에 적용되었다.

마지막으로 ESNI가 제대로 작동하는지 시험해봐야 한다.

파이어폭스로 클라우드플레어가 제공하는 체크 페이지에 접속한다.

저 Check My Browser라는 주황색 버튼을 눌러준다.

Secure Dns/Dnssec/TLS 1.3/Encrypted SNI 이렇게 네가지 기능이 정상적으로 작동하는지 체크해준다.

만약 Encrypted SNI에서 저렇게 뜨면 축하한다. 이제 아무도 네가 유해사이트에 들어가는 걸 막을 수 없다.

VPN이나 프록시 처럼 아이피를 우회하지 않고도 그 망할 파란 사이트를 보지 않아도 된다.

만약 ESNI가 제대로 실행이 안된다면?

이걸 한번 점검해보자.

1)내가 설치한 파이어폭스가 Nightly가 맞는가?

2)Doh를 적용했는가?

3)혹시 Nightly의 업데이트가 올라왔는가?

잠깐 또 안되다가 플레이 스토어에 올라온 업데이트를 받았더니 제대로 작동한다.

PC는 브라우저에서 바로 업데이트를 할 수 있다.

4)ESNI가 정말 true로 설정되어 있는가?

5)Adguard나 프록시를 사용 중인가?

만약 Doh나 DNSSEC가 작동을 안한다면?

모바일 데이터면 DNSSEC가 작동하지 않는 경우가 있다.

PC면 여기서 시크릿 DNS를

안드로이드면 Intra라는 어플을 쓰면 된다.

이러면 DNS 차단 우회는 되서 esni만 초록불 들어와도 문제없다.

———————————————–

나는 어떤 목적이든 간에 정부의 인터넷 검열을 혐오한다.

노태우 군사정권부터 시작해서 좌우에 상관없이 이 나라의 정치인들은 인터넷을 통제하기 위해 수많은 노력을 해왔다. 솔직히 말해 윗대가리들 본성이 아닐까 하는 생각도 든다.

이제 그 노력을 무용지물로 만들 때가 왔다.

정부가 토렌트를 족치고 불법 웹툰 사이트를 족치든 말든 아무 상관 안한다. 다만 나는 그 방식이 인터넷 검열이란 점이 마음에 들지 않는다.

최근에는 성인 사이트에도 차단을 한다는 소리가 들린다. 명분은 불법 몰카를 막기 위해서라는데(일단 나는 몰카나 리벤지 포르노 단속에는 적극 찬성한다. 그런 쓰레기 같은 건 왜 보는 걸까나…) 여태 정부가 해온 일들을 보면 일반 성인 사이트나 외국인이 운영하는 사이트도 차단할 확률이 100%다.

OECD 가입국 중에서 포르노를 금지하는 국가는 대한민국 하나밖에 없다. 나는 이 나라에서 (몰카와 리벤지 포르노, 실제 동물이 등장하는 수간물과 실제 아동청소년이 등장하는 아동 포르노를 제외한)모든 포르노가 합법화되기를 바란다. 성매매, 낙태, 성차별 같은 성에 대한 수많은 담론이 오가고 있지만 유독 포르노 합법화에 대해 입을 여는 사람은 아무도 없다.

얼마전 외국인 엔지니어에게 한국은 정부가 야동 사이트를 차단한다고 말했더니 “Poor society” 라는 답변을 들었다. 맞다. 이 나라는 Poor society다.

중국에서 유튜브와 구글을 차단한다고 들었을때 우리가 느끼는 생각을, 서양인들은 한국을 보며 똑같이 느낀다.

정부가 Https 차단을 발표했을때 너무 화가 나서 해외 VPN 창업이라도 해볼까 하는 생각도 해봤다. 나는 정부의 유해사이트 차단에 엿을 먹이기 위해서라면 무슨 짓이든 할 것이다.

ps. 자랑은 아니지만 ESNI에 이렇게 자세한 정보 몇 없음. 이 글을 퍼가든 아니면 참고해서 새로 글을 쓰든 상관없으니 이 사실을 널리 퍼뜨려주ㅅ…

결론

또 세금낭비!