차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
dpi_deep_packet_inspection_우회 [2021/01/13 03:27] – koov | dpi_deep_packet_inspection_우회 [2023/02/02 02:19] (현재) – [ISP체크] koov | ||
---|---|---|---|
줄 21: | 줄 21: | ||
===== notsodeep을 이용한 방법 ===== | ===== notsodeep을 이용한 방법 ===== | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | '' | ||
+ | </ | ||
+ | |||
참고: https:// | 참고: https:// | ||
줄 27: | 줄 32: | ||
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
+ | # Debian 계열 | ||
sudo apt-get install libnetfilter-queue-dev libc6-dev | sudo apt-get install libnetfilter-queue-dev libc6-dev | ||
+ | |||
+ | # RedHat 계열 | ||
+ | yum install libnetfilter_queue-devel compat-glibc | ||
</ | </ | ||
</ | </ | ||
줄 58: | 줄 67: | ||
</ | </ | ||
'' | '' | ||
+ | |||
+ | ==== firewalld rule ==== | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | firewall-cmd --permanent --direct --passthrough ipv4 -I INPUT 1 -p tcp --tcp-flags SYN,ACK SYN,ACK --sport 443 -j NFQUEUE --queue-num 200 --queue-bypass | ||
+ | firewall-cmd --permanent --direct --passthrough ipv4 -t raw -I PREROUTING 1 -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass | ||
+ | |||
+ | firewall-cmd --reload | ||
+ | </ | ||
+ | </ | ||
+ | |||
줄 74: | 줄 94: | ||
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK --sport 443 -j NFQUEUE --queue-num 200 --queue-bypass | iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK --sport 443 -j NFQUEUE --queue-num 200 --queue-bypass | ||
iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass | iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass | ||
- | iptables-save > / | + | |
- | systemctl enable iptables | + | apt install |
- | systemctl start iptables | + | |
- | systemctl start notsodeep.service | + | netfilter-persistent save |
</ | </ | ||
</ | </ | ||
- | ===== zapret을 이용한 방법 ===== | + | ===== zapret을 이용한 방법(추천) |
+ | <WRAP center round important 60%> | ||
+ | '' | ||
+ | </ | ||
링크 : https:// | 링크 : https:// | ||
- | 러시아어로 되어있음 | ||
- | ==== zapret 프로젝트를 clone받음 ==== | + | 아래 내용은 '' |
- | <WRAP prewrap> | + | |
- | <code bash> | + | |
- | git clone https:// | + | |
- | </ | + | |
- | </ | + | |
- | ==== 라이브러리 의존성 | + | ==== 필요 패키지 |
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | apt install | + | root@dpi: |
</ | </ | ||
</ | </ | ||
- | ==== 바이너리 빌드 | + | ==== zapret 프로젝트를 clone받음 |
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | cd zapret | + | root@dpi:~# git clone https:// |
- | cd nfq | + | Cloning into ' |
- | make | + | remote: Enumerating objects: 4171, done. |
- | cd tpws | + | remote: Counting objects: 100% (782/782), done. |
- | make | + | remote: Compressing objects: 100% (416/416), done. |
+ | remote: Total 4171 (delta 370), reused 769 (delta 365), pack-reused 3389 | ||
+ | Receiving objects: 100% (4171/ | ||
+ | Resolving deltas: 100% (2208/ | ||
</ | </ | ||
</ | </ | ||
- | ==== 설치 | + | ==== ISP체크 |
+ | 일단 현재 본인의 ISP에서 차단을 우회하는 방식을 찾아야 한다. | ||
+ | 먼저 '' | ||
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | sudo cp -r zapret /opt | + | root@dpi:~# cd zapret/ |
- | cd /opt/zapret | + | root@dpi:~/zapret# ./ |
- | sudo cp /opt/zapret/init.d/debian7/zapret /etc/init.d/ | + | x86_64 is OK |
- | sudo /etc/init.d/ | + | installing binaries ... |
- | sudo /opt/zapret/nfq/ | + | linking : ../binaries/x86_64/ip2net => /root/zapret/ip2net |
- | </code> | + | linking : ../binaries/x86_64/mdig => /root/zapret/mdig |
- | </WRAP> | + | linking : ../binaries/x86_64/nfqws => / |
+ | linking : ../binaries/x86_64/tpws => / | ||
- | ==== 실제 우회 규칙 적용하기 ==== | ||
- | * '' | + | ### 본인의 ISP에서 차단/ |
- | * https://raw.githubusercontent.com/ | + | root@dpi:~/zapret# ./blockcheck.sh |
- | * iptables 명령에 대한 설명은 다음 문서를 참조 | + | ... |
- | * [[https://terzeron.com/ | + | * SUMMARY |
+ | ipv4 xvideos.com curl_test_http | ||
+ | ipv4 xvideos.com curl_test_http : nfqws --hostcase | ||
+ | ipv4 xvideos.com curl_test_https_tls12 : working without bypass | ||
- | === window size 축소 === | + | press enter to continue |
- | * '' | + | |
- | <WRAP prewrap> | + | |
- | <code bash> | + | |
- | sudo nfqws | + | |
- | iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass | + | |
- | iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass | + | |
</ | </ | ||
</ | </ | ||
- | === Host: 헤더 항목 변경 === | + | 체크가 될때 사이트 주소는 본인 ISP에서 warning으로 차단되는 사이트 아무거나 넣어주면 된다. |
- | | + | 위 테스트는 |
- | <WRAP prewrap> | + | |
- | <code bash> | + | |
- | sudo nfqws | + | |
- | iptables -t mangle -I POSTROUTING -p tcp --dport 80 -j NFQUEUE --queue-num 200 --queue-bypass | + | |
- | iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m set --match-set zapret dst -j NFQUEUE --queue-num 200 --queue-bypass | + | |
- | iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m set --match-set zapret dst -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:5 -j NFQUEUE --queue-num 200 --queue-bypass | + | |
- | </ | + | |
- | </ | + | |
- | === TPROXY 사용하는 방법 | + | ==== 설치 ==== |
- | <WRAP prewrap> | + | 이후 이전 과정에서 확인한 우회 방식으로 설치를 진행한다. |
- | <code bash> | + | |
- | sysctl -w net.ipv4.ip_forward=1 | + | |
- | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | |
- | + | ||
- | ip -f inet rule add fwmark 1 lookup 100 | + | |
- | ip -f inet route add local default dev lo table 100 | + | |
- | + | ||
- | # prevent loop | + | |
- | iptables | + | |
- | iptables | + | |
- | iptables | + | |
- | + | ||
- | iptables | + | |
- | iptables | + | |
- | </ | + | |
- | </ | + | |
- | === DNAT 사용하는 방법 === | ||
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | # run tpws as user " | + | root@dpi: |
- | sudo -u twps | + | |
- | sysctl -w net.ipv4.conf.eth1.route_localnet=1 | + | |
- | iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1: | + | |
- | iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner ! --uid-owner tpws -j DNAT --to 127.0.0.1: | + | |
</ | </ | ||
</ | </ | ||
+ | 이후 해당 사이트로 우회 접근 되는지 확인해보도록 한다. | ||