인터넷2019. 2. 14. 23:16

sni 차단을 우회하기 위한 mtu 설정 방법입니다.

 

2019년 02월 11일부터  dns 차단에 이어서 sni 차단(https 차단)이 시작되었습니다.

여러 우회 방법들이 있는데 그중 mtu 설정을 변경해서 우회하는 방법입니다.

 

MTU(Maximum Transmission Unit)는 통신을 할 때 전송하는 패킷의 최대 전송 단위를 의미합니다.

통신을 할 때 전체 데이터의 양이 많기 때문에 한 번에 전송할 수 없어서 잘라서 전송을 해야 되는데 이때 자르는 단위가 mtu 값입니다.

일반적으로 mtu 값이 클 경우 한 번에 더 많은 양을 처리하기 때문에 속도에 이득이 있지만 회선이 불안정한 경우 손실이 생길 위험이 증가하게 됩니다.

요즘은 회선 상태가 좋기 때문에 기본값으로 1500을 많이 사용합니다.

 

sni 차단을 우회하는 원리를 간단히 설명하면 내용을 작은 단위로 잘라서 패킷의 내용이 노출되더라도 필터링에 걸리지 않도록 하는 방법입니다.

예를 들어 mtu가 1500일 때 "rootblog"라는 내용을 한 번에 보낼 수 있었다면 500으로 설정하면 "roo", "tbl", "og"로 나눠 보내게 되고 내용이 노출돼도 무슨 내용인지 알 수 없어서 필터링을 못하게 되는 원리입니다.

 

우회가 가능한 mtu 값은 크롬이 400이하 엣지나 기타 브라우저가 220 이하로 알려져 있습니다.

웹 브라우저 별로 패킷의 헤더 내용과 처리가 조금씩 다르기 때문에 생기는 현상으로 보이는데 윈도우 기본 설정으로는 220까지 설정을 할 수 없어서 지금 설명하는 방법은 크롬 브라우저를 위한 설정이라고 보면 됩니다.

 

 

※ mtu 400으로 설정하기

윈도우10 RS5 에서 진행을 했습니다.

다른 버전의 윈도우도 동일한 방법을 사용하면 됩니다. 

 

관리자 권한으로 명령 프롬프트를 실행합니다.

 

 

 

netsh interface ipv4 show interfaces 명령어를 입력해서 네트워크 장치의 정보를 확인합니다.

여기서 이더넷이라고 나온 장치의 색인 숫자를 확인합니다.

네트워크 장치가 여러개 일경우 실제 인터넷 연결에 사용되는 장치를 선택하면 됩니다.

위 명령어로 mtu 기본값도 확인이 가능합니다.

 

netsh interface ipv4 set subinterface "이더넷 색인번호" mtu=400 store=persistent 를 입력합니다.

" " 안에 위에서 찾은 이더넷 장치의 색인 번호를 입력하면 됩니다.

제 경우에는 스샷처럼 12였습니다.

참고로 뒤에 store= 부분은 설정의 지속성을 결정하는 옵션입니다.

store=persistent를 사용하면 영구적인 설정으로 다음 부팅 시에도 설정이 유지됩니다.

store=active를 사용하면 임시 설정으로 컴퓨터를 끄거나 재부팅을 하면 설정이 최기화 됩니다.

 

다시 netsh interface ipv4 show interfaces 명령어를 사용해서 설정이 잘 변경 됬는지 확인합니다.

MTU 값이 400으로 변경 됐으면 성공입니다.

 

위 설정을 하고 크롬으로 안열리던 페이지가 열리는지 확인을 해봅니다.

이 방법이 100% 성공하는 것은 아니기 때문에 안된다면 다른 우회 방법을 찾아서 시도해야 합니다.

 

 

※ 설정 복구

mtu 값이 작으면 통신장비에 부하가 가중되고 속도가 느려질 수 있습니다.

네트워크를 사용하는 특정 작업 특히 게임의 경우 멀티 플레이시에 문제가 생길 수 있으니 필요할 때만 설정해서 사용하고 평상시에는 원상 복귀하는 걸 권장합니다. 

 

 

복구 방법은 설정할 때와 동일 합니다.

명령프롬프트를 관리자 권한으로 실행합니다.

netsh interface ipv4 set subinterface "이더넷 색인번호" mtu=1500 store=persistent

를 입력해주면 원래 설정으로 돌아갑니다.

 

 

https://rootblog.tistory.com/127

△ 윈도우10 네트워크 설정 초기화 하기

윈도우10의 경우 만약 위 설정을 해서 이상이 생기고 복구가 안 될 경우 위 페이지를 참고해서 네트워크 설정 전체를 초기화 보길 바랍니다.

 

 

 

※ 에러 해결

 

위 스샷처럼 명령어를 입력했는데 "매개 변수가 틀립니다."라고 에러가 나는 경우 해결 방법입니다.

에러가 나는 원인은 mtu의 사용가능한 최저 설정값보다 낮은 값을 입력해서 생기는 에러입니다.

사용 가능한 mtu의 최저 값을 수정해서 해결할 수 있습니다.

 

 

 

netsh interface ip set global minmtu=352 를 입력합니다.

mtu의 최저 값을 352로 설정하는 명령어 입니다.

참고로 사용가능한 mtu 최저 값의 설정 범위는 352~576 입니다. 

 

위 설정을 한 후 mtu 값을 400으로 설정하면 정상적으로 설정이 가능해지는걸 확인할 수 있습니다.

 

 

※ 배치파일 만들기 

편의를 위한 배치파일을 만드는 방법입니다.

선택 사항으로 필요한 경우만 만들면 됩니다.

배치 파일을 만들기 전에 위 설정을 적용해서 실제 동작이 가능한지 우선 확인을 합니다.

 

mtu_400.bat

@netsh interface ipv4 set subinterface "이더넷 색인번호" mtu=400 store=persistent 

 

mtu_1500.bat 

@netsh interface ipv4 set subinterface "이더넷 색인번호" mtu=1500 store=persistent

 

400설정과 1500 설정 두개의 파일을 만듭니다.

메모장을 열어서 위 내용을 복사한 후 이더넷 색인 번호를 맞는 내용으로 치환해 줍니다.

파일 이름은 위와 다른 아무 이름으로 해도 상관 없지만 확장자는 꼭 .bat로 저장합니다.

 

 

※ 공유기에서 mtu 설정 변경

 

 

공유기에서 mtu 설정 변경을 테스트해봤습니다.

결과는 위 스샷처럼 400으로 설정 시 무한 인터넷 연결 시도를 하고 인터넷 연결이 되지 않았습니다.

mtu 1000 까지는 연결이 됬지만 우회가 안되기 때문에 의미는 없었습니다. 

 

통신사와 공유기에 따라 다른 결과가 나올 수도 있으니 테스트가 가능한 경우 한번 시도해봐도 좋을 거 같습니다.

 

 

※ 다른 SNI 차단 우회

 

https://rootblog.tistory.com/143
△ GoodByeDPI GUI 사용법

 

https://rootblog.tistory.com/132
△ 파이어폭스 - Esni 설정

 




Posted by 천지무료

댓글을 달아 주세요

  1. 늘 잘 보고 있습니다 많이 배워갑니다.

    2019.04.16 18:26 신고 [ ADDR : EDIT/ DEL : REPLY ]