์ด ๊ธฐ์ฌ์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ํ ๋์น์ฑ์ง ๋ชปํ๊ฒ ์ธ๋ถ ํ๋ก์ ์๋ฒ๋ฅผ ํตํด ํธ๋ํฝ์ ์ ๋ถ ๋๋ ์ผ๋ถ๋ฅผ ๋ฆฌ๋๋ ์ ํ ์ ์๋ ํฌ๋ช ํ ํ๋ก์์ ๊ฐ๋ฅ์ฑ์ ๋ฐํ๊ณ ์ถ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์์ํ์ ๋ ๊ตฌํ์ HTTPS ํ๋กํ ์ฝ์ด๋ผ๋ ์ค์ํ ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฌ์ค์ ์ง๋ฉดํ์ต๋๋ค. ์์ ์๋ ํฌ๋ช ํ HTTP ํ๋ก์์ ํน๋ณํ ๋ฌธ์ ๊ฐ ์์์ง๋ง HTTPS ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋กํ ์ฝ ๊ฐ์ญ์ ๋ณด๊ณ ํ๊ณ ๊ฑฐ๊ธฐ์ ํ๋ณต์ด ๋๋ฉ๋๋ค.
Squid ํ๋ก์ ์๋ฒ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ง์นจ์์๋ ์์ฒด ์ธ์ฆ์๋ฅผ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์ ์ค์นํ๋๋ก ์ ์ํ๊ธฐ๋ ํฉ๋๋ค. ์ด๋ ์ต์ํ ์์ ํ ๋์ผ์ค์ด๊ณ ๋นํฉ๋ฆฌ์ ์ด๋ฉฐ MITM ๊ณต๊ฒฉ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋๋ Squid๊ฐ ์ด๋ฏธ ๋น์ทํ ์ผ์ ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด ๊ธฐ์ฌ๋ ์กด๊ฒฝ๋ฐ๋ 3APA3A์ 3proxy๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฆ๋๊ณ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ฒ์ ๋๋ค.
๋ค์์ผ๋ก ์์ค์์ 3proxy๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ , ๊ตฌ์ฑ, NAT๋ฅผ ์ฌ์ฉํ ์ ์ฒด ๋ฐ ์ ํ์ ํ๋ก์, ์ฌ๋ฌ ์ธ๋ถ ํ๋ก์ ์๋ฒ๋ก์ ์ฑ๋ ๋ฐฐํฌ, ๋ผ์ฐํฐ ๋ฐ ๊ณ ์ ๊ฒฝ๋ก ์ฌ์ฉ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ Debian 9 x64๋ฅผ OS๋ก ์ฌ์ฉํฉ๋๋ค. ์์ํ๋ค!
3proxy ์ค์น ๋ฐ ์ผ๋ฐ ํ๋ก์ ์๋ฒ ์คํ
1. ifconfig ์ค์น(net-tools ํจํค์ง์์)
apt-get install net-tools
2. ๋ฏธ๋๋์ ์ปค๋งจ๋ ์ค์น
apt-get install mc
3. ์ด์ 2๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค.
enp0s3 - ์ธ๋ถ, ์ธํฐ๋ท์ ๋ด
๋๋ค.
enp0s8 - ๋ด๋ถ, ๋ก์ปฌ ๋คํธ์ํฌ๋ฅผ ์กฐ์ฌํด์ผ ํจ
๋ค๋ฅธ Debian ๊ธฐ๋ฐ ๋ฐฐํฌํ์์๋ ์ธํฐํ์ด์ค๋ฅผ ์ผ๋ฐ์ ์ผ๋ก eth0 ๋ฐ eth1์ด๋ผ๊ณ ํฉ๋๋ค.
ifconfig -a
์ธํฐํ์ด์คenp0s3: ํ๋๊ทธ=4163 MTU 1500
inet 192.168.23.11 ๋ท๋ง์คํฌ 255.255.255.0 ๋ธ๋ก๋์บ์คํธ 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 ๋ฒ์ ID 0x20 ์ํ
๋ฅด 08:00:27:c2:ba:e4 txqueuelen 1000(์ด๋๋ท)
RX ํจํท 6412๋ฐ์ดํธ 8676619(8.2MiB)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 1726๋ฐ์ดํธ 289128(282.3KiB)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
enp0s8: ํ๋๊ทธ=4098 MTU 1500
์ํ
๋ฅด 08:00:27:79:a7:e3 txqueuelen 1000(์ด๋๋ท)
RX ํจํท 0๋ฐ์ดํธ 0(0.0B)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 0๋ฐ์ดํธ 0(0.0B)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
lo: ํ๋๊ทธ=73 MTU 65536
inet 127.0.0.1 ๋ท๋ง์คํฌ 255.0.0.0
inet6 ::1 prefixlen 128 ๋ฒ์ ID 0x10 ๋ฃจํ txqueuelen 1(๋ก์ปฌ ๋ฃจํ๋ฐฑ)
RX ํจํท 0๋ฐ์ดํธ 0(0.0B)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 0๋ฐ์ดํธ 0(0.0B)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
enp0s8 ์ธํฐํ์ด์ค๋ ํ์ฌ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ํ๋ก์ NAT ๋๋ NAT ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ํ์ฑํํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ณ ์ IP๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ๋ ผ๋ฆฌ์ ์ ๋๋ค.
4. 3proxy ์ค์น๋ฅผ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
4.1 ์์ค์์ 3proxy๋ฅผ ์ปดํ์ผํ๊ธฐ ์ํ ๊ธฐ๋ณธ ํจํค์ง ์ค์น
root@debian9:~# apt-get install build-essential libevent-dev libssl-dev -y
4.2. ์์ค๊ฐ ํฌํจ๋ ์์นด์ด๋ธ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋ ํด๋๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
root@debian9:~# mkdir -p /opt/proxy
4.3. ์ด ํด๋๋ก ๊ฐ์
root@debian9:~# cd /opt/proxy
4.4. ์ด์ ์ต์ 3proxy ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด ๋ณด๊ฒ ์ต๋๋ค. ์์ฑ ๋น์ ์ต์ ์์ ๋ฒ์ ์ 0.8.12(18๋ 04์ 2018์ผ) 3proxy ๊ณต์ ํํ์ด์ง์์ ๋ค์ด๋ก๋ํ์ธ์.
root@debian9:/opt/proxy# wget https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz
4.5. ๋ค์ด๋ก๋ํ ์์นด์ด๋ธ์ ์์ถ์ ํ์ด๋ณด์
root@debian9:/opt/proxy# tar zxvf 0.8.12.tar.gz
4.6. ํ๋ก๊ทธ๋จ์ ๋น๋ํ๋ ค๋ฉด ์์ถ์ ํผ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ธ์.
root@debian9:/opt/proxy# cd 3proxy-0.8.12
4.7. ๋ค์์ผ๋ก, ์๋ฒ๊ฐ ์์ ํ ์ต๋ช ์ด ๋๋๋ก ํค๋ ํ์ผ์ ํ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค(์ค์ ๋ก ์๋ํ๊ณ , ๋ชจ๋ ๊ฒ์ด ํ์ธ๋๊ณ , ํด๋ผ์ด์ธํธ IP๊ฐ ์จ๊ฒจ์ง๋๋ค).
root@debian9:/opt/proxy/3proxy-0.8.12# nano +29 src/proxy.h
์ค ์ถ๊ฐ
#define ANONYMOUS 1
Ctrl+x์ Enter๋ฅผ ๋๋ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
4.8. ํ๋ก๊ทธ๋จ ์กฐ๋ฆฝ์ ์์ํด๋ณด์
root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux
Makelogmake[2]: '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin' ๋๋ ํฐ๋ฆฌ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
make[1]: '/opt/proxy/3proxy-0.8.12/src' ๋๋ ํฐ๋ฆฌ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
์ค๋ฅ๊ฐ ์์ต๋๋ค. ๊ณ์ํ๊ฒ ์ต๋๋ค.
4.9. ์์คํ ์ ํ๋ก๊ทธ๋จ ์ค์น
root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux install
4.10. ๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ฌ ํ๋ก๊ทธ๋จ์ด ์ค์น๋ ์์น๋ฅผ ํ์ธํ์ธ์.
root@debian9:/opt/proxy/3proxy-0.8.12# cd ~/
root@debian9:~# whereis 3proxy
3ํ๋ก์: /usr/local/bin/3proxy /usr/local/etc/3proxy
4.11. ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ๊ตฌ์ฑ ํ์ผ๊ณผ ๋ก๊ทธ๋ฅผ ์ํ ํด๋๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
root@debian9:~# mkdir -p /home/joke/proxy/logs
4.12. ๊ตฌ์ฑ์ด ์์ด์ผ ํ๋ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
root@debian9:~# cd /home/joke/proxy/
4.13. ๋น ํ์ผ์ ๋ง๋ค๊ณ ๊ฑฐ๊ธฐ์ ๊ตฌ์ฑ์ ๋ณต์ฌํฉ๋๋ค.
root@debian9:/home/joke/proxy# cat > 3proxy.conf
3proxy.conf์
๋ง
pidfile /home/joke/proxy/3proxy.pid
n์๋ฒ 8.8.8.8
nscache 65536
์ฌ์ฉ์ ํ
์คํฐ:CL:1234
์๊ฐ ์ด๊ณผ 1 5 30 60 180 1800 16 60
๋ก๊ทธ /home/joke/proxy/logs/3proxy.log D
๋ก๊ทธ ํ์ "- +_L%t.%.%N.%p %E %U %C:%c %R:%r %O %I %h %T"
ํ์ 3
์ธ์ฆ์ด ๊ฐ๋ ฅํจ
ํ๋ฌ์
ํ
์คํฐ ํ์ฉ
์๋ง -p3128
ํ๋ก์ -p8080
์ ์ฅํ๋ ค๋ฉด Ctrl + Z๋ฅผ ๋๋ฅด์ธ์.
4.14. ์์ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ก pid ํ์ผ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
root@debian9:/home/joke/proxy# cat > 3proxy.pid
์ ์ฅํ๋ ค๋ฉด Ctrl + Z๋ฅผ ๋๋ฅด์ธ์.
4.15. ํ๋ก์ ์๋ฒ๋ฅผ ์คํํด ๋ด ์๋ค!
root@debian9:/home/joke/proxy# 3proxy /home/joke/proxy/3proxy.conf
4.16. ์๋ฒ๊ฐ ํฌํธ๋ฅผ ์์ ํ๊ณ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
root@debian9:~/home/joke/proxy# netstat -nlp
netstat ๋ก๊ทธํ์ฑ ์ธํฐ๋ท ์ฐ๊ฒฐ(์๋ฒ๋ง ํด๋น)
Proto Recv-Q Send-Q ๋ก์ปฌ ์ฃผ์ ์ธ๋ถ ์ฃผ์ ์ํ PID/ํ๋ก๊ทธ๋จ ์ด๋ฆ
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 504/3ํ๋ก์ ๋ฃ๊ธฐ
tcp 0 0 0.0.0.0:22 0.0.0.0:* 338/sshd ๋ฃ๊ธฐ
tcp 0 0 0.0.0.0:3128 0.0.0.0:* 504/3ํ๋ก์ ๋ฃ๊ธฐ
tcp6 0 0 :::22 :::* 338/sshd ๋ฃ๊ธฐ
UDP 0 0 0.0.0.0:68 0.0.0.0:* 352/dhํด๋ผ์ด์ธํธ
๊ตฌ์ฑ์ ์์ฑ๋ ๋๋ก ์น ํ๋ก์๋ ํฌํธ 8080์ ์์ ํ๊ณ Socks5 ํ๋ก์๋ ํฌํธ 3128์ ์์ ํฉ๋๋ค.
4.17. ์ฌ๋ถํ ํ ํ๋ก์ ์๋น์ค๋ฅผ ์๋ ์์ํ๋ ค๋ฉด ์ด๋ฅผ cron์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
root@debian9:/home/joke/proxy# crontab -e
์ค ์ถ๊ฐ
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxy.conf
cron์ ์ค ๋ ๋ฌธ์๋ฅผ ํ์ธํ๊ณ ํ์ผ์ ์ ์ฅํด์ผ ํ๋ฏ๋ก Enter ํค๋ฅผ ๋๋ฆ ๋๋ค.
์ crontab ์ค์น์ ๋ํ ๋ฉ์์ง๊ฐ ํ์๋์ด์ผ ํฉ๋๋ค.
crontab: ์๋ก์ด crontab ์ค์น
4.18. ์์คํ ์ ์ฌ๋ถํ ํ๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ํ๋ก์์ ์ฐ๊ฒฐํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ธํ๊ธฐ ์ํด Firefox ๋ธ๋ผ์ฐ์ (์น ํ๋ก์์ฉ)์ ์ธ์ฆ์ ํตํด ์๋ง5์ฉ FoxyProxy ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
root@debian9:/home/joke/proxy# reboot
4.19. ์ฌ๋ถํ ํ ํ๋ก์ ์๋์ ํ์ธํ ํ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ผ๋ก ํ๋ก์ ์๋ฒ ์ค์ ์ด ์๋ฃ๋ฉ๋๋ค.
3 ํ๋ก์ ๋ก๊ทธ1542573996.018 PROXY.8080 00000 ํ
์คํฐ 192.168.23.10:50915 217.12.15.54:443 1193 6939 0 CONNECT_ads.yahoo.com:443_HTTP/1.1
1542574289.634 SOCK5.3128 00000 ํ
์คํฐ 192.168.23.10:51193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443
ํฌ๋ช ํ๋ก์ NAT ๊ตฌ์ฑ ์ค์ ๋ฐ ์คํ
์ด ๊ตฌ์ฑ์์๋ ๋ด๋ถ ๋คํธ์ํฌ์ ๋ชจ๋ ์ฅ์น๊ฐ ์๊ฒฉ ํ๋ก์ ์๋ฒ๋ฅผ ํตํด ์ธํฐ๋ท์์ ํฌ๋ช ํ๊ฒ ์๋ํฉ๋๋ค. ๋ฌผ๋ก ๋ชจ๋ TCP ์ฐ๊ฒฐ์ ํ๋ ์ด์์ ํ๋ก์ ์๋ฒ๋ก ๋ฆฌ๋๋ ์ ๋ฉ๋๋ค(์ค์ ๋ก ์ฑ๋ ํญ์ด ํ์ฅ๋ฉ๋๋ค. ๊ตฌ์ฑ ์ 2๋ฒ!). DNS ์๋น์ค๋ 3proxy(dnspr) ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค. ์์ง ์ ๋ฌ ๋ฉ์ปค๋์ฆ(Linux ์ปค๋์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์)์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ UDP๋ ์ธ๋ถ๋ก "์ด๋"ํ์ง ์์ต๋๋ค.
1. ์ด์ enp0s8 ์ธํฐํ์ด์ค๋ฅผ ํ์ฑํํ ์ฐจ๋ก์ ๋๋ค.
root@debian9:~# nano /etc/network/interfaces
/etc/network/์ธํฐํ์ด์ค ํ์ผ#์ด ํ์ผ์ ์์คํ
์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค๋ช
# ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ทธ๋ค์ ํ์ฑํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ (5) ์ธํฐํ์ด์ค๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์์ค /etc/network/interfaces.d/*
# ๋ฃจํ๋ฐฑ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
์๋ ์ด์ค
iface ๊ทธ๋ฅ ... inet์ ๋ฃจํ๋ฐฑ
# ๊ธฐ๋ณธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
ํซํ๋ฌ๊ทธ ํ์ฉ enp0s3
iface enp0s3 inet dhcp
# ๋ณด์กฐ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
ํซํ๋ฌ๊ทธ ํ์ฉ enp0s8
iface enp0s8 inet ์ ์
192.168.201.254 ์ฃผ์
๋ท ๋ง์คํฌ 255.255.255.0
์ฌ๊ธฐ์๋ enp0s8 ์ธํฐํ์ด์ค์ ์ ์ ์ฃผ์ 192.168.201.254์ ๋ง์คํฌ 255.255.255.0์ ํ ๋นํ์ต๋๋ค.
๊ตฌ์ฑ Ctrl+X๋ฅผ ์ ์ฅํ๊ณ ์ฌ๋ถํ
ํฉ๋๋ค.
root@debian9:~# reboot
2. ์ธํฐํ์ด์ค ํ์ธ
root@debian9:~# ifconfig
ifconfig ๋ก๊ทธenp0s3: ํ๋๊ทธ=4163 MTU 1500
inet 192.168.23.11 ๋ท๋ง์คํฌ 255.255.255.0 ๋ธ๋ก๋์บ์คํธ 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 ๋ฒ์ ID 0x20 ์ํ
๋ฅด 08:00:27:c2:ba:e4 txqueuelen 1000(์ด๋๋ท)
RX ํจํท 61๋ฐ์ดํธ 7873(7.6KiB)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 65๋ฐ์ดํธ 10917(10.6KiB)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
enp0s8: ํ๋๊ทธ=4163 MTU 1500
inet 192.168.201.254 ๋ท๋ง์คํฌ 255.255.255.0 ๋ธ๋ก๋์บ์คํธ 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64 ๋ฒ์ ID 0x20 ์ํ
๋ฅด 08:00:27:79:a7:e3 txqueuelen 1000(์ด๋๋ท)
RX ํจํท 0๋ฐ์ดํธ 0(0.0B)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 8๋ฐ์ดํธ 648(648.0B)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
lo: ํ๋๊ทธ=73 MTU 65536
inet 127.0.0.1 ๋ท๋ง์คํฌ 255.0.0.0
inet6 ::1 prefixlen 128 ๋ฒ์ ID 0x10 ๋ฃจํ txqueuelen 1(๋ก์ปฌ ๋ฃจํ๋ฐฑ)
RX ํจํท 0๋ฐ์ดํธ 0(0.0B)
RX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ํ๋ ์ 0
TX ํจํท 0๋ฐ์ดํธ 0(0.0B)
TX ์ค๋ฅ 0 ์ญ์ 0 ์ค๋ฒ๋ฐ 0 ์บ๋ฆฌ์ด 0 ์ถฉ๋ 0
3. ๋ชจ๋ ๊ฒ์ด ํด๊ฒฐ๋์์ต๋๋ค. ์ด์ ํฌ๋ช ํ๋ก์๋ฅผ ์ํด 3proxy๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf
ํฌ๋ช
ํ๋ก์ ์๋ฒ 1๋ฒ ๊ตฌ์ฑ ์์์
๋ง
pidfile /home/joke/proxy/3proxy.pid
n์๋ฒ 8.8.8.8
nscache 65536
์๊ฐ ์ด๊ณผ 1 5 30 60 180 1800 16 60
๋ก๊ทธ /home/joke/proxy/logs/3proxy.log D
๋ก๊ทธ ํ์ "- +_L%t.%.%N.%p %E %U %C:%c %R:%r %O %I %h %T"
ํ์ 3
ํ๋ฌ์
์ธ์ฆ IP ์ ์ฉ
dnspr
ํ์ฉํ๋ค *
์์ 1000 ์๋ง5 IP_ADDRESS OF EXTERNAL_PROXY 3128 ํ
์คํฐ 1234
ํ๋ฌ๊ทธ์ธ /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
4. ์ด์ ์๋ก์ด ๊ตฌ์ฑ์ผ๋ก 3proxy๋ฅผ ์์ํฉ๋๋ค.
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
5. ๋ค์ crontab์ ์ถ๊ฐ
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
6. ์ด์ ํ๋ก์๊ฐ ๋ฌด์์ ๋ฃ๊ณ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
root@debian9:~# netstat -nlp
netstat ๋ก๊ทธํ์ฑ ์ธํฐ๋ท ์ฐ๊ฒฐ(์๋ฒ๋ง ํด๋น)
Proto Recv-Q Send-Q ๋ก์ปฌ ์ฃผ์ ์ธ๋ถ ์ฃผ์ ์ํ PID/ํ๋ก๊ทธ๋จ ์ด๋ฆ
tcp 0 0 0.0.0.0:22 0.0.0.0:* 349/sshd ๋ฃ๊ธฐ
tcp 0 0 0.0.0.0:888 0.0.0.0:* 354/3ํ๋ก์ ๋ฃ๊ธฐ
tcp6 0 0 :::22 :::* 349/sshd ๋ฃ๊ธฐ
UDP 0 0 0.0.0.0:53 0.0.0.0:* 354/3ํ๋ก์
UDP 0 0 0.0.0.0:68 0.0.0.0:* 367/dhํด๋ผ์ด์ธํธ
7. ์ด์ ํ๋ก์๋ ํฌํธ 888์ TCP ์ฐ๊ฒฐ, ํฌํธ 53์ DNS ์ฐ๊ฒฐ์ ์๋ฝํ ์ค๋น๊ฐ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ์ฐ๊ฒฐ์ ์๊ฒฉ SOCKS5 ํ๋ก์ ๋ฐ DNS Google 8.8.8.8๋ก ๋ฆฌ๋๋ ์ ๋ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ ์ฃผ์ ๋ฐ๊ธ์ ์ํด netfilter(iptables)์ DHCP ๊ท์น์ ๊ตฌ์ฑํ๋ ๊ฒ๋ฟ์ ๋๋ค.
8. iptables-percious ๋ฐ dhcpd ํจํค์ง ์ค์น
root@debian9:~# apt-get install iptables-persistent isc-dhcp-server
9. dhcpd ์์ ํ์ผ ํธ์ง
root@debian9:~# nano /etc/dhcp/dhcpd.conf
dhcpd.conf#dhcpd.conf
#
# ISC dhcpd์ ์ํ ๊ตฌ์ฑ ํ์ผ
#
# ์ง์๋๋ ๋ชจ๋ ๋คํธ์ํฌ์ ๊ณตํต์ ์ธ ์ต์
์ ์โฆ
์ต์
๋๋ฉ์ธ ์ด๋ฆ "example.org";
์ต์
๋๋ฉ์ธ ์ด๋ฆ ์๋ฒ ns1.example.org, ns2.example.org;
๊ธฐ๋ณธ ์๋ ์๊ฐ 600;
์ต๋ ์๋ ์๊ฐ 7200;
ddns-์ ๋ฐ์ดํธ ์คํ์ผ ์์;
# ์ด DHCP ์๋ฒ๊ฐ ๋ก์ปฌ์ ๊ณต์ DHCP ์๋ฒ์ธ ๊ฒฝ์ฐ
# ๋คํธ์ํฌ์์ ๊ถํ ์๋ ์ง์์ด๋ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
๊ถ์ ์๋;
# ๋ด๋ถ ์๋ธ๋ท์ ๊ตฌ์ฑ์ ์ฝ๊ฐ ๋ค๋ฆ
๋๋ค.
์๋ธ๋ท 192.168.201.0 ๋ท ๋ง์คํฌ 255.255.255.0 {
๋ฒ์ 192.168.201.10 192.168.201.250;
์ต์
๋๋ฉ์ธ ์ด๋ฆ ์๋ฒ 192.168.201.254;
์ต์
๋ผ์ฐํฐ 192.168.201.254;
์ต์
๋ธ๋ก๋ ์บ์คํธ ์ฃผ์ 192.168.201.255;
๊ธฐ๋ณธ ์๋ ์๊ฐ 600;
์ต๋ ์๋ ์๊ฐ 7200;
}
11. ์ฌ๋ถํ
ํ๊ณ ํฌํธ 67์์ ์๋น์ค๋ฅผ ํ์ธํฉ๋๋ค.
root@debian9:~# reboot
root@debian9:~# netstat -nlp
netstat ๋ก๊ทธํ์ฑ ์ธํฐ๋ท ์ฐ๊ฒฐ(์๋ฒ๋ง ํด๋น)
Proto Recv-Q Send-Q ๋ก์ปฌ ์ฃผ์ ์ธ๋ถ ์ฃผ์ ์ํ PID/ํ๋ก๊ทธ๋จ ์ด๋ฆ
tcp 0 0 0.0.0.0:22 0.0.0.0:* 389/sshd ๋ฃ๊ธฐ
tcp 0 0 0.0.0.0:888 0.0.0.0:* 310/3ํ๋ก์ ๋ฃ๊ธฐ
tcp6 0 0 :::22 :::* 389/sshd ๋ฃ๊ธฐ
UDP 0 0 0.0.0.0:20364 0.0.0.0:* 393/dhcpd
UDP 0 0 0.0.0.0:53 0.0.0.0:* 310/3ํ๋ก์
UDP 0 0 0.0.0.0:67 0.0.0.0:* 393/dhcpd
UDP 0 0 0.0.0.0:68 0.0.0.0:* 405/dhํด๋ผ์ด์ธํธ
udp6 0 0 :::31728 :::* 393/dhcpd
์์ 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd
12. ๋จ์ ๊ฒ์ ๋ชจ๋ tcp ์์ฒญ์ ํฌํธ 888๋ก ๋ฆฌ๋๋ ์ ํ๊ณ ๊ท์น์ iptables์ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค.
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -p tcp -j REDIRECT --to-ports 888
root@debian9:~# iptables-save > /etc/iptables/rules.v4
13. ์ฑ๋ ๋์ญํญ์ ํ์ฅํ๋ ค๋ฉด ์ฌ๋ฌ ํ๋ก์ ์๋ฒ๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ณ๋ 1000์ด์ด์ผ ํฉ๋๋ค. ์ง์ ๋ ํ๋ก์ ์๋ฒ์ ๋ํด 0.2, 0.2, 0.2, 0.2, 0,1, 0,1์ ํ๋ฅ ๋ก ์ ์ฐ๊ฒฐ์ด ์ค์ ๋ฉ๋๋ค.
์ฐธ๊ณ : ์น ํ๋ก์๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ง5 ๋์ ์ฐ๊ฒฐ์ ์์ฑํด์ผ ํ๋ฉฐ, ์๋ง4์ธ ๊ฒฝ์ฐ ์๋ง4๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค(socks4๋ ๋ก๊ทธ์ธ/๋น๋ฐ๋ฒํธ ์ธ์ฆ์ ์ง์ํ์ง ์์ต๋๋ค!).
ํฌ๋ช
ํ๋ก์ ์๋ฒ 2๋ฒ ๊ตฌ์ฑ ์์์
๋ง
pidfile /home/joke/proxy/3proxy.pid
n์๋ฒ 8.8.8.8
nscache 65536
๋งฅ์ฝ 500
์๊ฐ ์ด๊ณผ 1 5 30 60 180 1800 16 60
๋ก๊ทธ /home/joke/proxy/logs/3proxy.log D
๋ก๊ทธ ํ์ "- +_L%t.%.%N.%p %E %U %C:%c %R:%r %O %I %h %T"
ํ์ 3
ํ๋ฌ์
์ธ์ฆ IP ์ ์ฉ
dnspr
ํ์ฉํ๋ค *
์์ 200 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 ํ
์คํฐ 1234
์์ 200 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 ํ
์คํฐ 1234
์์ 200 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 ํ
์คํฐ 1234
์์ 200 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 ํ
์คํฐ 1234
์์ 100 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 ํ
์คํฐ 1234
์์ 100 ์๋ง5 IP_ADDRESS_EXTERNAL_PROXY#6 3128 ํ
์คํฐ 1234
ํ๋ฌ๊ทธ์ธ /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
NAT + ํฌ๋ช ํ๋ก์ ๊ตฌ์ฑ ์ค์ ๋ฐ ์คํ
์ด ๊ตฌ์ฑ์์๋ ๊ฐ๋ณ ์ฃผ์ ๋๋ ์๋ธ๋ท์ ์ ํ์ ๋๋ ์์ ํฌ๋ช ํ๋ก์์ ํจ๊ป ์ผ๋ฐ์ ์ธ NAT ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค. ๋ด๋ถ ๋คํธ์ํฌ ์ฌ์ฉ์๋ ํ๋ก์๋ฅผ ํตํด ์์ ํ๊ณ ์๋ค๋ ์ฌ์ค์กฐ์ฐจ ์ธ์ํ์ง ๋ชปํ ์ฑ ํน์ ์๋น์ค/์๋ธ๋ท์ ์ฌ์ฉํ์ฌ ์์ ํฉ๋๋ค. ๋ชจ๋ https ์ฐ๊ฒฐ์ด ์ ๋๋ก ์๋ํ๋ฏ๋ก ์ธ์ฆ์๋ฅผ ์์ฑ/๊ต์ฒดํ ํ์๊ฐ ์์ต๋๋ค.
๋จผ์ ํ๋ก์ํ ์๋ธ๋ท/์๋น์ค๋ฅผ ๊ฒฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. pandora.com๊ณผ ๊ฐ์ ์๋น์ค๊ฐ ์ด์๋๋ ๊ณณ์ ์ธ๋ถ ํ๋ก์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด์ ์๋ธ๋ท/์ฃผ์๋ฅผ ๊ฒฐ์ ํ๋ ์ผ๋ง ๋จ์์ต๋๋ค.
1. ํ
root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56(84) ๋ฐ์ดํธ์ ๋ฐ์ดํฐ.
2. Google์ BGP 208.85.40.20์ ์ ๋ ฅํ์ธ์.
์ฌ์ดํธ๋ก ์ด๋ํ์
์ ๊ฐ ์ฐพ๊ณ ์๋ ์๋ธ๋ท์ AS40428 Pandora Media, Inc์์ ์ ์ ์์ต๋๋ค.
v4 ์ ๋์ฌ ์ด๊ธฐ
ํ์ ์๋ธ๋ท์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค!
199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
199.116.164.0/24
199.116.165.0/24
208.85.40.0/24
208.85.41.0/24
208.85.42.0/23
208.85.42.0/24
208.85.43.0/24
208.85.44.0/24
208.85.46.0/23
208.85.46.0/24
208.85.47.0/24
3. ์๋ธ๋ท ์๋ฅผ ์ค์ด๋ ค๋ฉด ์ง๊ณ๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์ฌ์ดํธ๋ก ์ด๋
199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
208.85.40.0/22
208.85.44.0/24
208.85.46.0/23
4. iptables ๊ท์น ์ง์ฐ๊ธฐ
root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X
์ ๋ฌ ๋ฐ NAT ๋ฉ์ปค๋์ฆ ํ์ฑํ
root@debian9:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@debian9:~# iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
root@debian9:~# iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
root@debian9:~# iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.201.0/24 -j MASQUERADE
์ฌ๋ถํ ํ ์ ๋ฌ์ด ์๊ตฌ์ ์ผ๋ก ํ์ฑํ๋๋๋ก ํ๋ ค๋ฉด ํ์ผ์ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค.
root@debian9:~# nano /etc/sysctl.conf
๊ทธ๋ฆฌ๊ณ ํด๋น ์ค์ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ํด์ ํ์ธ์.
net.ipv4.ip_forward = 1
ํ์ผ์ ์ ์ฅํ๋ ค๋ฉด Ctrl+X
5. pandora.com ์๋ธ๋ท์ ํ๋ก์๋ก ๋ํํฉ๋๋ค.
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888
6. ๊ท์น์ ์งํค์
root@debian9:~# iptables-save > /etc/iptables/rules.v4
๋ผ์ฐํฐ ๊ตฌ์ฑ์ ํตํด ํฌ๋ช ํ๋ก์ ์ค์ ๋ฐ ์คํ
์ด ๊ตฌ์ฑ์์ ํฌ๋ช ํ๋ก์ ์๋ฒ๋ ๋ณ๋์ PC์ผ ์๋ ์๊ณ ๊ฐ์ /ํ์ฌ ๋ผ์ฐํฐ ๋ค์ ๊ฐ์ ๋จธ์ ์ผ ์๋ ์์ต๋๋ค. ๋ผ์ฐํฐ๋ ์ฅ์น์ ๊ณ ์ ๊ฒฝ๋ก๋ฅผ ๋ฑ๋กํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ฉฐ ์ถ๊ฐ ์ค์ ์์ด ์ ์ฒด ์๋ธ๋ท์ด ํ๋ก์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์ํ! ๊ฒ์ดํธ์จ์ด๋ ๋ผ์ฐํฐ๋ก๋ถํฐ ๊ณ ์ IP๋ฅผ ๋ฐ๊ฑฐ๋ ์์ฒด์ ์ผ๋ก ๊ณ ์ ๋๋๋ก ๊ตฌ์ฑ๋์ด์ผ ํฉ๋๋ค.
1. ๊ณ ์ ๊ฒ์ดํธ์จ์ด ์ฃผ์ ๊ตฌ์ฑ(enp0s3 ์ด๋ํฐ)
root@debian9:~# nano /etc/network/interfaces
/etc/network/์ธํฐํ์ด์ค ํ์ผ#์ด ํ์ผ์ ์์คํ
์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค๋ช
# ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ทธ๋ค์ ํ์ฑํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ (5) ์ธํฐํ์ด์ค๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์์ค /etc/network/interfaces.d/*
# ๋ฃจํ๋ฐฑ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
์๋ ์ด์ค
iface ๊ทธ๋ฅ ... inet์ ๋ฃจํ๋ฐฑ
# ๊ธฐ๋ณธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
ํซํ๋ฌ๊ทธ ํ์ฉ enp0s3
iface enp0s3 inet ์ ์
192.168.23.2 ์ฃผ์
๋ท ๋ง์คํฌ 255.255.255.0
๊ฒ์ดํธ์จ์ด 192.168.23.254
# ๋ณด์กฐ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
ํซํ๋ฌ๊ทธ ํ์ฉ enp0s8
iface enp0s8 inet ์ ์
192.168.201.254 ์ฃผ์
๋ท ๋ง์คํฌ 255.255.255.0
2. 192.168.23.0/24 ์๋ธ๋ท์ ์ฅ์น๊ฐ ํ๋ก์๋ฅผ ์ฌ์ฉํ๋๋ก ํ์ฉํฉ๋๋ค.
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.23.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888
3. ๊ท์น์ ์งํค์
root@debian9:~# iptables-save > /etc/iptables/rules.v4
4. ๋ผ์ฐํฐ์ ์๋ธ๋ท์ ๋ฑ๋กํ์
๋ผ์ฐํฐ ๋คํธ์ํฌ ๋ชฉ๋ก+ 199.116.161.0 255.255.255.0 192.168.23.2
+ 199.116.162.0 255.255.255.0 192.168.23.2
+ 199.116.164.0 255.255.254.0 192.168.23.2
+ 208.85.40.0 255.255.252.0 192.168.23.2
+ 208.85.44.0 255.255.255.0 192.168.23.2
+ 208.85.46.0 255.255.254.0 192.168.23.2
์ฌ์ฉ๋ ์ฌ๋ฃ/์์
1. 3proxy ํ๋ก๊ทธ๋จ ๊ณต์ ํํ์ด์ง
2. ์์ค์์ 3proxy ์ค์น ์ง์นจ
3. GitHub์ 3proxy ๊ฐ๋ฐ ๋ธ๋์น
์ถ์ฒ : habr.com