ื”ืจืคืชืงื” ื™ืฉืจ

ื”ืจืคืชืงื” ื™ืฉืจ

ื›ื™ืฆื“ Spotify ื™ื›ื•ืœื” ืœืขื–ื•ืจ ืœืš ืœืœืžื•ื“ ื“ืžื•ื ื™ื, RFCs, ืจืฉืชื•ืช ื•ืœืงื“ื ืงื•ื“ ืคืชื•ื—. ืื• ืžื” ืงื•ืจื” ืื ืืชื” ืœื ื™ื›ื•ืœ ืœืฉืœื, ืื‘ืœ ืืชื” ื‘ืืžืช ืจื•ืฆื” ื›ืžื” ืžื•ืฆืจื™ ืคืจื™ืžื™ื•ื.

ื”ื—ืœ

ื‘ื™ื•ื ื”ืฉืœื™ืฉื™ ื”ื‘ื—ื™ื ื• ืฉืกืคื•ื˜ื™ืคื™ื™ ืžืฆื™ื’ื” ืคืจืกื•ืžื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื”ืžื“ื™ื ื” ืฉืœ ื›ืชื•ื‘ืช ื”-IP. ืขื•ื“ ืฆื•ื™ืŸ ื›ื™ ื‘ื—ืœืง ืžื”ืžื“ื™ื ื•ืช ืœื ื™ื•ื‘ื ืคืจืกื•ื ื›ืœืœ. ืœื“ื•ื’ืžื”, ื‘ืจืคื•ื‘ืœื™ืงื” ืฉืœ ื‘ืœืืจื•ืก. ื•ืื– ื ืจืงืžื” ืชื•ื›ื ื™ืช "ืžื‘ืจื™ืงื”" ืœื”ืฉื‘ื™ืช ืคืจืกื•ื ื‘ื—ืฉื‘ื•ืŸ ืฉืื™ื ื• ืคืจื™ืžื™ื•ื.

ืงืฆืช ืขืœ Spotify

ื‘ืื•ืคืŸ ื›ืœืœื™, ืœืกืคื•ื˜ื™ืคื™ื™ ื™ืฉ ืžื“ื™ื ื™ื•ืช ืžื•ื–ืจื”. ืื—ื™ื ื• ืฆืจื™ืš ืœื”ืชืคืชืœ ืœืžื“ื™ ื›ื“ื™ ืœืงื ื•ืช ืคืจื™ืžื™ื•ื: ืœืฉื ื•ืช ืืช ื”ืžื™ืงื•ื ื‘ืคืจื•ืคื™ืœ ืฉืœื• ืœื—ื•"ืœ, ืœื—ืคืฉ ื›ืจื˜ื™ืก ืžืชื ื” ืžืชืื™ื ืฉืืคืฉืจ ืœืฉืœื ืขืœื™ื• ืจืง ื‘ืคื™ื™ืคืืœ, ืฉืžืชื ื”ื’ืช ืžื•ื–ืจ ืœืื—ืจื•ื ื” ื•ืจื•ืฆื” ืฉืœืœ ืžืกืžื›ื™ื. ื‘ืื•ืคืŸ ื›ืœืœื™, ื–ื• ื’ื ื”ืจืคืชืงื”, ืื‘ืœ ื‘ืกื“ืจ ืื—ืจ. ืœืžืจื•ืช ืฉืจื•ื‘ ื”ืื ืฉื™ื ืขื•ืฉื™ื ื–ืืช ืœืžืขืŸ ื”ื’ืจืกื” ื”ื ื™ื™ื“ืช, ืื ื™ ืœื ืžืขื•ื ื™ื™ืŸ ื‘ื–ื”. ืœื›ืŸ, ื›ืœ ืžื” ืœืžื˜ื” ื™ืขื–ื•ืจ ืจืง ื‘ืžืงืจื” ืฉืœ ื’ืจืกืช ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื”. ื™ืชืจ ืขืœ ื›ืŸ, ืœื ืชื”ื™ื” ื”ืจื—ื‘ื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช. ืคืฉื•ื˜ ื—ื•ืชืš ื›ืžื” ืžื”ื ื•ืกืคื™ื.

ืœืžื” ื–ื” ื›ืœ ื›ืš ืžืกื•ื‘ืš?

ื•ื—ืฉื‘ืชื™ ื›ืš ื›ืฉืจืฉืžืชื™ ืืช ื ืชื•ื ื™ ื”ื’ืจื‘ื™ื™ื-ืคืจื•ืงืกื™ ื‘ืชืฆื•ืจืช Spotify. ื”ืชื‘ืจืจ ืฉื”ื‘ืขื™ื” ื”ื™ื ืฉืื™ืžื•ืช ื‘ื’ืจื‘ื™ื™ื ื‘ืืžืฆืขื•ืช ื›ื ื™ืกื” ื•ืกื™ืกืžื ืœื ืขื•ื‘ื“. ื‘ื ื•ืกืฃ, ืžืคืชื—ื™ื ืขื•ืฉื™ื ื‘ืื•ืคืŸ ืงื‘ื•ืข ืžืฉื”ื• ืกื‘ื™ื‘ ื”-proxy: ืื• ืžืืคืฉืจื™ื ืื•ืชื•, ื•ืื– ืื•ืกืจื™ื ืื•ืชื•, ืื• ืฉื•ื‘ืจื™ื ืื•ืชื•, ืžื” ืฉืžื•ื‘ื™ืœ ืœืคืื ืœื™ื ืฉืœืžื™ื ืฉืœ ื“ื™ื•ื ื™ื ืžื—ื•ืฅ ืœืืชืจ.

ื”ื•ื—ืœื˜ ืœื ืœื”ืกืชืžืš ืขืœ ืคื•ื ืงืฆื™ื•ืช ืœื ื™ืฆื™ื‘ื•ืช ื•ืœืžืฆื•ื ืžืฉื”ื• ืืžื™ืŸ ื•ืžืขื ื™ื™ืŸ ื™ื•ืชืจ.

ืื™ืคืฉื”ื• ื›ืืŸ ื”ืงื•ืจื ื—ื™ื™ื‘ ืœืฉืื•ืœ: ืœืžื” ืœื ืœืงื—ืช ssh ืขื ืžืคืชื— -D ื•ื‘ื–ื” ื–ื” ื ื’ืžืจ? ื•ื‘ื›ืœืœ, ื”ื•ื ื™ื”ื™ื” ืฆื•ื“ืง. ืื‘ืœ ืจืืฉื™ืช, ื–ื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœืขื‘ื•ืจ ื“ืžื•ื ื™ื–ืฆื™ื” ื•ืœื”ืชื™ื™ื“ื“ ืขื autossh, ื›ื“ื™ ืœื ืœื—ืฉื•ื‘ ืขืœ ืงืฉืจื™ื ืงืจื•ืขื™ื. ื•ืฉื ื™ืช: ื–ื” ืคืฉื•ื˜ ื•ืžืฉืขืžื ืžื“ื™.

ื‘ืกื“ืจ

ื›ืจื’ื™ืœ, ื‘ื•ืื• ื ืขื‘ื•ืจ ืžืฉืžืืœ ืœื™ืžื™ืŸ, ืžืœืžืขืœื” ืœืžื˜ื” ื•ื ืชืืจ ืืช ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ื“ื™ ืœื™ื™ืฉื ืืช ื”ืจืขื™ื•ืŸ ื”"ืคืฉื•ื˜" ืฉืœื ื•.

ืจืืฉื™ืช ืืชื” ืฆืจื™ืš ืคืจื•ืงืกื™

ื•ื™ืฉ ื”ืจื‘ื” ืืœื˜ืจื ื˜ื™ื‘ื•ืช ื‘ื‘ืช ืื—ืช:

  • ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœืœื›ืช ื•ืœืงื—ืช ืžืจืฉื™ืžื•ืช ืคืจื•ืงืกื™ ืคืชื•ื—ื•ืช. ื–ื•ืœ (ืื• ืœื™ืชืจ ื“ื™ื•ืง ืœื—ื™ื ื), ืื‘ืœ ืœื—ืœื•ื˜ื™ืŸ ืœื ืืžื™ืŸ ื•ืื•ืจืš ื”ื—ื™ื™ื ืฉืœ ืคืจื•ืงืกื™ ื›ืืœื” ืฉื•ืืฃ ืœืืคืก. ืœื›ืŸ, ื™ื”ื™ื” ืฆื•ืจืš ืœืžืฆื•ื/ืœื›ืชื•ื‘ ืžื ืชื— ืœืจืฉื™ืžื•ืช ืคืจื•ืงืกื™, ืœืกื ืŸ ืื•ืชืŸ ืœืคื™ ื”ืกื•ื’ ื•ื”ืžื“ื™ื ื” ื”ืจืฆื•ื™ื™ื, ื•ื”ืฉืืœื” ืฉืœ ื”ื—ืœืคืช ื”-proxy ืฉื ืžืฆื ื‘ืกืคื•ื˜ื™ืคื™ื™ ื ืฉืืจืช ืคืชื•ื—ื” (ื˜ื•ื‘, ืื•ืœื™ ื“ืจืš HTTP_PROXY ื”ืขื‘ืจ ื•ืฆื•ืจ ืžืขื˜ืคืช ืžื•ืชืืžืช ืื™ืฉื™ืช ืขื‘ื•ืจ ื”ื‘ื™ื ืืจื™ ื›ืš ืฉื›ืœ ืฉืืจ ื”ืชืขื‘ื•ืจื” ืœื ืชื™ืฉืœื— ืœืฉื).
  • ืืชื” ื™ื›ื•ืœ ืœืงื ื•ืช ืคืจื•ืงืกื™ ื“ื•ืžื” ื•ืœื”ืฆื™ืœ ืืช ืขืฆืžืš ืžืจื•ื‘ ื”ื‘ืขื™ื•ืช ืฉืชื•ืืจื• ืœืขื™ืœ. ืื‘ืœ ื‘ืžื—ื™ืจ ืฉืœ ืคืจื•ืงืกื™, ืืชื” ื™ื›ื•ืœ ืžื™ื“ ืœืงื ื•ืช ืคืจื™ืžื™ื•ื ื‘ืกืคื•ื˜ื™ืคื™ื™, ื•ื–ื” ืœื ืžืขืฉื™ ืœืžืฉื™ืžื” ื”ืžืงื•ืจื™ืช.
  • ืชืขืœื” ืืช ืฉืœืš. ื›ืคื™ ืฉื‘ื˜ื— ื ื™ื—ืฉืชื, ื–ื• ื”ื‘ื—ื™ืจื” ืฉืœื ื•.

ืœื’ืžืจื™ ื‘ืžืงืจื” ืขืฉื•ื™ ืœื”ืชื‘ืจืจ ืฉื™ืฉ ืœืš ื—ื‘ืจ ืขื ืฉืจืช ื‘ืจืคื•ื‘ืœื™ืงื” ืฉืœ ื‘ืœืืจื•ืก ืื• ื‘ืžื“ื™ื ื” ืงื˜ื ื” ืื—ืจืช. ืืชื” ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื–ื” ื•ืœื”ืคืขื™ืœ ืขืœื™ื• ืืช ื”-proxy ื”ืจืฆื•ื™. ืื ื™ื ื™ ื˜ืขื ืžื™ื•ื—ื“ื™ื ื™ื›ื•ืœื™ื ืœื”ืกืชืคืง ื‘ื—ื‘ืจ ืขื ื ืชื‘ ื“ื•ืœืง DD-WRT ืื• ืชื•ื›ื ื” ื“ื•ืžื”. ืื‘ืœ ืฉื ืฉืœื• ืขื•ืœื ื ืคืœื ื•ื”ืขื•ืœื ื”ื–ื” ื‘ื‘ื™ืจื•ืจ ืœื ืžืชืื™ื ืœืžืกื’ืจืช ื”ืกื™ืคื•ืจ ื”ื–ื”.

ืื–, ื”ืืคืฉืจื•ื™ื•ืช ืฉืœื ื•: ื“ื™ื•ื ื•ืŸ - ืœื ืžืขื•ืจืจ ื”ืฉืจืื”, ื•ืื ื™ ืœื ืจื•ืฆื” ืคืจื•ืงืกื™ HTTP, ื›ื‘ืจ ื™ืฉ ื™ื•ืชืจ ืžื“ื™ ืžื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื–ื” ื‘ืกื‘ื™ื‘ื”. ื•ื‘ืชื—ื•ื SOCKS ืื™ืŸ ืฉื•ื ื“ื‘ืจ ื”ื’ื™ื•ื ื™ ืžืœื‘ื“ ื“ื ื˜ื” ืขื“ื™ื™ืŸ ืœื ื”ืขื‘ื™ืจื•. ืœื›ืŸ, ื‘ื•ืื• ื ื™ืงื— ืืช ื–ื”.

ืืœ ืชื—ื›ื• ืœืžื“ืจื™ืš ืฉืœ ื“ื ื˜ื” ืขืœ ื”ืชืงื ื” ื•ื”ื’ื“ืจื”. ื”ื•ื ืจืง ื‘ื’ื•ื’ืœ ื•ืื™ื ื• ืžืขื ื™ื™ืŸ ื‘ืžื™ื•ื—ื“. ื‘ืชืฆื•ืจื” ื”ืžื™ื ื™ืžืœื™ืช ืืชื” ืฆืจื™ืš ืœื–ืจื•ืง ื›ืœ ืžื™ื ื™ client pass, socks pass, ืจืฉื•ื ื ื›ื•ืŸ ืืช ื”ืžืžืฉืงื™ื ื•ืืœ ืชืฉื›ื— ืœื”ื•ืกื™ืฃ socksmethod: username. ื‘ื˜ื•ืคืก ื–ื”, ืœืฆื•ืจืš ืื™ืžื•ืช, ื”-logopass ื™ื™ืœืงื— ืžืžืฉืชืžืฉื™ ื”ืžืขืจื›ืช. ื•ื”ื—ืœืง ืขืœ ืื‘ื˜ื—ื”: ืื™ืกื•ืจ ื’ื™ืฉื” ืœ-localhost, ื”ื’ื‘ืœืช ืžืฉืชืžืฉื™ื ื•ื›ื•' - ื–ื” ืื™ื ื“ื™ื‘ื™ื“ื•ืืœื™ ื‘ืœื‘ื“, ืชืœื•ื™ ื‘ืคืจื ื•ื™ื” ืื™ืฉื™ืช.

ืคืจื•ืก ืคืจื•ืงืกื™ ื”ืคื•ื ื” ืœืจืฉืช

ื”ื”ืฆื’ื” ื‘ืฉืชื™ ืžืขืจื›ื•ืช.

ืžืขืฉื” ืจืืฉื•ืŸ

ืกื™ื“ืจื ื• ืืช ื”-proxy, ื›ืขืช ืขืœื™ื ื• ืœื’ืฉืช ืืœื™ื• ืžื”ืื™ื ื˜ืจื ื˜ ื”ืขื•ืœืžื™. ืื ื™ืฉ ืœืš ืžื›ื•ื ื” ืขื IP ืœื‘ืŸ ื‘ืžื“ื™ื ื” ื”ืจืฆื•ื™ื”, ืื– ืืชื” ื™ื›ื•ืœ ืœื“ืœื’ ื‘ื‘ื˜ื—ื” ืขืœ ื ืงื•ื“ื” ื–ื•. ืื™ืŸ ืœื ื• ืื—ื“ ื›ื–ื” (ืื ื—ื ื•, ื›ืืžื•ืจ, ืžืชืืจื—ื™ื ื‘ื‘ืชื™ ื—ื‘ืจื™ื) ื•ื”-IP ื”ืœื‘ืŸ ื”ืงืจื•ื‘ ื‘ื™ื•ืชืจ ื ืžืฆื ืื™ืคืฉื”ื• ื‘ื’ืจืžื ื™ื”, ืื– ื ืœืžื“ ืจืฉืชื•ืช.

ืื– ื›ืŸ, ื”ืงื•ืจื ื”ืงืฉื•ื‘ ื™ืฉืืœ ืฉื•ื‘: ืœืžื” ืฉืœื ืชื™ืงื— ืœื™ื™ืง ืœืฉื™ืจื•ืช ืงื™ื™ื ื ื’ืจื•ืง ืื• ื“ื•ืžื”? ื•ื”ื•ื ืฉื•ื‘ ื™ื”ื™ื” ืฆื•ื“ืง. ืื‘ืœ ื–ื” ืฉื™ืจื•ืช, ืฉื•ื‘ ืฆืจื™ืš ืœืขืฉื•ืช ืœื• ื“ืžื•ื ื™ื–ืฆื™ื”, ื–ื” ื’ื ื™ื›ื•ืœ ืœืขืœื•ืช ื›ืกืฃ ื•ื‘ื›ืœืœ ื–ื” ืœื ืกืคื•ืจื˜ื™ื‘ื™. ืœื›ืŸ, ื ื™ืฆื•ืจ ืื•ืคื ื™ื™ื ืžื’ืจื•ื˜ืื•ืช.

ืžืฉื™ืžื”: ื™ืฉ ืคืจื•ืงืกื™ ืื™ืคืฉื”ื• ื”ืจื—ืง ืžืื—ื•ืจื™ NAT, ืืชื” ืฆืจื™ืš ืœืชืœื•ืช ืื•ืชื• ื‘ืื—ืช ื”ื™ืฆื™ืื•ืช ืฉืœ VPS ืฉื™ืฉ ืœื• IP ืœื‘ืŸ ื•ืžืžื•ืงื ื‘ืงืฆื” ื”ืขื•ืœื.

ื”ื’ื™ื•ื ื™ ืœื”ื ื™ื— ืฉื ื™ืชืŸ ืœืคืชื•ืจ ื–ืืช ื’ื ืขืœ ื™ื“ื™ ื”ืขื‘ืจืช ืคื•ืจื˜ื™ื (ืืฉืจ ืžื™ื•ืฉื ื‘ืืžืฆืขื•ืช ื”ืืžื•ืจ ืœืขื™ืœ ssh), ืื• ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ื—ื•ืžืจื” ืœืจืฉืช ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช VPN. ืขื ssh ืื ื—ื ื• ื™ื•ื“ืขื™ื ืื™ืš ืœืขื‘ื•ื“, autossh ื–ื” ืžืฉืขืžื ืœืงื—ืช, ืื– ื‘ื•ืื• ื ื™ืงื— ืืช OpenVPN.

ืœ-DigitalOcean ื™ืฉ ืžื ื•ืœ ื ืคืœื ื‘ืขื ื™ื™ืŸ ื–ื”. ืื™ืŸ ืœื™ ืžื” ืœื”ื•ืกื™ืฃ ืขืœ ื–ื”. ื•ืืช ื”ืชืฆื•ืจื” ื”ืžืชืงื‘ืœืช ื ื™ืชืŸ ืœื—ื‘ืจ ื“ื™ ื‘ืงืœื•ืช ืขื ืœืงื•ื— OpenVPN ื• systemd. ืคืฉื•ื˜ ืชื›ื ื™ืก ืืช ื–ื” (config). /etc/openvpn/client/ ื•ืืœ ืชืฉื›ื— ืœืฉื ื•ืช ืืช ื”ื”ืจื—ื‘ื” ืœ .conf. ืœืื—ืจ ืžื›ืŸ, ืžืฉื•ืš ืืช ื”ืฉื™ืจื•ืช [email protected]ืืœ ืชืฉื›ื— ืœืขืฉื•ืช ืืช ื–ื” ื‘ืฉื‘ื™ืœื” enable ื•ืœืฉืžื•ื— ืฉื”ื›ืœ ืขืฃ.

ื›ืžื•ื‘ืŸ, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืฉื‘ื™ืช ื›ืœ ื ื™ืชื•ื‘ ืžื—ื“ืฉ ืฉืœ ืชืขื‘ื•ืจื” ืœ-VPN ื”ื—ื“ืฉ ืฉื ื•ืฆืจ, ืžื›ื™ื•ื•ืŸ ืฉืื ื—ื ื• ืœื ืจื•ืฆื™ื ืœื”ืคื—ื™ืช ืืช ื”ืžื”ื™ืจื•ืช ื‘ืžื—ืฉื‘ ื”ืœืงื•ื— ืขืœ ื™ื“ื™ ื”ืขื‘ืจืช ืชืขื‘ื•ืจื” ื“ืจืš ื—ืฆื™ ื›ื“ื•ืจ.

ื•ื›ืŸ, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืจืฉื•ื ื›ืชื•ื‘ืช IP ืกื˜ื˜ื™ืช ื‘ืฉืจืช ื”-VPN ืขื‘ื•ืจ ื”ืœืงื•ื— ืฉืœื ื•. ื–ื” ื™ื”ื™ื” ื ื—ื•ืฅ ืงืฆืช ื‘ื”ืžืฉืš ื”ืกื™ืคื•ืจ. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช ืืชื” ืฆืจื™ืš ืœื”ืคืขื™ืœ ifconfig-pool-persist, ืขืจื•ืš ipp.txt, ื›ืœื•ืœ ื‘-OpenVPN ื•ืืคืฉืจ ืœ-client-config-dir, ื‘ื ื•ืกืฃ ืœืขืจื•ืš ืืช ื”ืชืฆื•ืจื” ืฉืœ ื”ืœืงื•ื— ื”ืจืฆื•ื™ ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ifconfig-push ืขื ื”ืžืกื›ื” ื”ื ื›ื•ื ื” ื•ื›ืชื•ื‘ืช ื”-IP ื”ืจืฆื•ื™ื”.

ืžืขืจื›ื” ืฉื ื™ื”

ื›ืขืช ื™ืฉ ืœื ื• ืžื›ื•ื ื” ื‘"ืจืฉืช" ื”ืคื•ื ื” ืœืื™ื ื˜ืจื ื˜ ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ืœืžื˜ืจื•ืช ืื ื•ื›ื™ื•ืช. ื›ืœื•ืžืจ, ืœื”ืคื ื•ืช ื—ืœืง ืžื”ืชื ื•ืขื” ื“ืจื›ื•.

ืื–, ืžืฉื™ืžื” ื—ื“ืฉื”: ืืชื” ืฆืจื™ืš ืœื›ื‘ื•ืช ืืช ื”ืชืขื‘ื•ืจื” ืฉืžื’ื™ืขื” ืœืื—ืช ืžื™ืฆื™ืื•ืช ื”-VPS ืขื IP ืœื‘ืŸ ื›ื“ื™ ืฉืชืขื‘ื•ืจื” ื–ื• ืชืขื‘ื•ืจ ืœืจืฉืช ื”ื•ื™ืจื˜ื•ืืœื™ืช ื”ื—ื“ืฉื” ืฉื—ื•ื‘ืจื” ื•ื”ืชื’ื•ื‘ื” ืชื•ื›ืœ ืœื—ื–ื•ืจ ืžืฉื.

ืคืชืจื•ืŸ: ื›ืžื•ื‘ืŸ iptables! ืžืชื™ ืขื•ื“ ืชื”ื™ื” ืœืš ื”ื–ื“ืžื ื•ืช ื›ืœ ื›ืš ื ืคืœืื” ืœื”ืชืืžืŸ ืื™ืชื•?

ืืช ื”ืชืฆื•ืจื” ื”ื ื“ืจืฉืช ื ื™ืชืŸ ืœืžืฆื•ื ื“ื™ ืžื”ืจ, ืชื•ืš ืฉืœื•ืฉ ืฉืขื•ืช, ืžืื” ืžื™ืœื•ืช ืงืœืœื•ืช ื•ืงื•ืžืฅ ืขืฆื‘ื™ื ืžื‘ื•ื–ื‘ื–ื™ื, ื›ื™ ืื™ืชื•ืจ ื‘ืื’ื™ื ื‘ืจืฉืชื•ืช ื”ื•ื ื”ืœื™ืš ืžืื•ื“ ืกืคืฆื™ืคื™.

ืจืืฉื™ืช, ืขืœื™ืš ืœืืคืฉืจ ื ื™ืชื•ื‘ ืชื ื•ืขื” ื‘ืงืจื ืœ. ืœื“ื‘ืจ ื”ื–ื” ืงื•ืจืื™ื ipv4.ip_forward ื•ื”ื•ื ืžื•ืคืขืœ ืžืขื˜ ืฉื•ื ื” ื‘ื”ืชืื ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ื•ืœืžื ื”ืœ ื”ืจืฉืช.

ืฉื ื™ืช, ืขืœื™ืš ืœื‘ื—ื•ืจ ื™ืฆื™ืื” ื‘-VPS ื•ืœืขื˜ื•ืฃ ืืช ื›ืœ ื”ืชืขื‘ื•ืจื” ื”ืขื•ื‘ืจืช ืืœื™ื• ืœืชื•ืš ืชืช-ืจืฉืช ื•ื™ืจื˜ื•ืืœื™ืช. ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช, ืœืžืฉืœ, ื›ืš:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 10.8.0.2:8080

ื›ืืŸ ืื ื• ืžืคื ื™ื ืืช ื›ืœ ืชืขื‘ื•ืจืช ื”-TCP ืฉืžื’ื™ืขื” ืœื™ืฆื™ืื” 8080 ืฉืœ ื”ืžืžืฉืง ื”ื—ื™ืฆื•ื ื™ ืœืžื›ื•ื ื” ื‘ืขืœืช IP 10.8.0.2 ื•ืื•ืชื” ื™ืฆื™ืื” 8080.

ืœืžื™ ืฉืจื•ืฆื” ืืช ื”ืคืจื˜ื™ื ื”ืžืœื•ื›ืœื›ื™ื ืฉืœ ื”ืขื‘ื•ื“ื” netfilter, iptables ื•ื ื™ืชื•ื‘ ื‘ืื•ืคืŸ ื›ืœืœื™, ื–ื” ื”ื›ืจื—ื™ ื‘ื”ื—ืœื˜ ืœื”ืจื”ืจ ื–ื” ืื• ื–ื”.

ืื–, ืขื›ืฉื™ื• ื”ื—ื‘ื™ืœื•ืช ืฉืœื ื• ืขืคื•ืช ืœืจืฉืช ื”ืžืฉื ื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ืช ื•... ื”ืŸ ื ืฉืืจื•ืช ืฉื. ืœื™ืชืจ ื“ื™ื•ืง, ื”ืชื’ื•ื‘ื” ืžื”ืคืจื•ืงืกื™ ืฉืœ socks ืขืคื” ื—ื–ืจื” ื“ืจืš ืฉืขืจ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืžื›ื•ื ื” ืขื ื“ื ื˜ื” ื•ื”ื ืžืขืŸ ืžืคื™ืœ ืื•ืชื”, ื›ื™ ื‘ืจืฉืชื•ืช ืœื ื ื”ื•ื’ ืœืฉืœื•ื— ื‘ืงืฉื” ืœ-IP ืื—ื“ ื•ืœืงื‘ืœ ืชืฉื•ื‘ื” ืžืื—ืจืช. ืœื›ืŸ, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืžืฉื™ืš ืœื”ืขืœื•ืช ืขืœ ื”ื“ืขืช.

ืื– ืขื›ืฉื™ื• ืืชื” ืฆืจื™ืš ืœื”ืคื ื•ืช ืืช ื›ืœ ื”ื—ื‘ื™ืœื•ืช ืžื”ืคืจื•ืงืกื™ ื‘ื—ื–ืจื” ืœืจืฉืช ื”ืžืฉื ื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ืช ืœื›ื™ื•ื•ืŸ ื”-VPS ืขื IP ืœื‘ืŸ. ื›ืืŸ ื”ืžืฆื‘ ืงืฆืช ื™ื•ืชืจ ื’ืจื•ืข, ื›ื™ ื–ื” ืคืฉื•ื˜ iptables ืœื ื™ื”ื™ื” ืœื ื• ืžืกืคื™ืง, ื›ื™ ืื ื ืชืงืŸ ืืช ื›ืชื•ื‘ืช ื”ื™ืขื“ ืœืคื ื™ ื”ื ื™ืชื•ื‘ (PREROUTING), ืื– ื”ื—ื‘ื™ืœื” ืฉืœื ื• ืœื ืชื˜ื•ืก ืœืื™ื ื˜ืจื ื˜, ื•ืื ืœื ื ืชืงืŸ ืื•ืชื”, ื”ื—ื‘ื™ืœื” ืชืขื‘ื•ืจ ืืœ default gateway. ืื–, ืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ืืช ื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช: ืœื–ื›ื•ืจ ืืช ื”ืฉืจืฉืจืช mangle, ืขืœ ืžื ืช ืœืกืžืŸ ืžื ื•ืช ื“ืจืš iptables ื•ืœืขื˜ื•ืฃ ืื•ืชื ื‘ื˜ื‘ืœืช ื ื™ืชื•ื‘ ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืชืฉืœื— ืื•ืชื ืœืืŸ ืฉื”ื ืฆืจื™ื›ื™ื ืœืœื›ืช.

ืœื ืžื•ืงื“ื ืืžืจื• ืžืืฉืจ ื ืขืฉื”:

iptables -t mangle -A OUTPUT -p tcp --sport 8080 -j MARK --set-mark 0x80
ip rule add fwmark 0x80 table 80
ip route add default via 10.8.0.1 dev tun0 table 80

ืื ื—ื ื• ืœื•ืงื—ื™ื ืชืขื‘ื•ืจื” ื™ื•ืฆืืช, ืžืกืžื ื™ื ื›ืœ ืžื” ืฉื˜ืก ืžื”ืคื•ืจื˜ ืฉืขืœื™ื• ื™ื•ืฉื‘ ื”-proxy (8080 ื‘ืžืงืจื” ืฉืœื ื•), ืžืคื ื™ื ืืช ื›ืœ ื”ืชืขื‘ื•ืจื” ื”ืžืกื•ืžื ืช ืœื˜ื‘ืœืช ื”ื ื™ืชื•ื‘ ืขื ืžืกืคืจ 80 (ื‘ื›ืœืœ ื”ืžืกืคืจ ืœื ืชืœื•ื™ ื‘ื›ืœื•ื, ืจืง ืจืฆื™ื ื• to) ื•ื”ื•ืกื™ืคื• ื›ืœืœ ื‘ื•ื“ื“ , ืœืคื™ื• ื›ืœ ื”ื—ื‘ื™ืœื•ืช ื”ื›ืœื•ืœื•ืช ื‘ื˜ื‘ืœื” ื–ื• ืขืคื•ืช ืœืจืฉืช ื”ืžืฉื ื” ืฉืœ VPN.

ื’ื“ื•ืœ! ืขื›ืฉื™ื• ื”ื—ื‘ื™ืœื•ืช ืขืคื•ืช ื‘ื—ื–ืจื” ืœื›ื™ื•ื•ืŸ ื”-VPS... ื•ืžืชื•ืช ืฉื. ื›ื™ VPS ืœื ื™ื•ื“ืข ืžื” ืœืขืฉื•ืช ืื™ืชื. ืœื›ืŸ, ืื ืืชื” ืœื ื˜ื•ืจื—, ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื”ืคื ื•ืช ืืช ื›ืœ ื”ืชืขื‘ื•ืจื” ืฉืžื’ื™ืขื” ืžืจืฉืช ื”ืžืฉื ื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ืช ื‘ื—ื–ืจื” ืœืื™ื ื˜ืจื ื˜:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 172.42.1.10

ื›ืืŸ, ื›ืœ ืžื” ืฉืžื’ื™ืข ืžืจืฉืช ื”ืžืฉื ื” 10.8.0.0 ืขื ืžืกื™ื›ื” ืฉืœ 255.255.255.000 ืขื˜ื•ืฃ ื‘ืžืงื•ืจ-NAT ื•ื˜ืก ืœืžืžืฉืง ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ืฉืžื•ืคื ื” ืœืื™ื ื˜ืจื ื˜. ื—ืฉื•ื‘ ืœืฆื™ื™ืŸ ืฉื”ื“ื‘ืจ ื”ื–ื” ื™ืขื‘ื•ื“ ืจืง ืื ื ืขื‘ื™ืจ ื‘ืฉืงื™ืคื•ืช ืืช ื”ืคื•ืจื˜, ื›ืœื•ืžืจ, ื”ืคื•ืจื˜ ื”ื ื›ื ืก ื‘-VPS ืžืชืื™ื ืœืคื•ืจื˜ ืฉืœ ื”-proxy ืฉืœื ื•. ืื—ืจืช ืชืฆื˜ืจืš ืœืกื‘ื•ืœ ืงืฆืช ื™ื•ืชืจ.

ืื™ืคืฉื”ื• ืขื›ืฉื™ื• ื”ื›ืœ ืืžื•ืจ ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“. ื•ื ืฉืืจ ืจืง ืงืฆืช: ืืœ ืชืฉื›ื— ืœื•ื•ื“ื ืฉื›ืœ ื”ื”ื’ื“ืจื•ืช iptables ะธ route ืœื ื”ืžืฉื™ืš ืœืื—ืจ ื”ื”ืคืขืœื” ืžื—ื“ืฉ. ืœ iptables ื™ืฉ ืงื‘ืฆื™ื ืžื™ื•ื—ื“ื™ื ื›ืžื• /etc/iptables/rules.v4(ื‘ืžืงืจื” ืฉืœ ืื•ื‘ื•ื ื˜ื•), ืื‘ืœ ืœื’ื‘ื™ ืžืกืœื•ืœื™ื ื”ื›ืœ ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš. ื“ื—ืคืชื™ ืื•ืชื ืคื ื™ืžื” up/down ืกืงืจื™ืคื˜ื™ื ืฉืœ OpenVPN, ืœืžืจื•ืช ืฉืื ื™ ื—ื•ืฉื‘ ืฉืืคืฉืจ ื”ื™ื” ืœืขืฉื•ืช ืื•ืชื ื‘ืฆื•ืจื” ื™ื•ืชืจ ื”ื’ื•ื ื”.

ืขื˜ื•ืฃ ืชืขื‘ื•ืจื” ืžื”ืืคืœื™ืงืฆื™ื” ื‘-proxy

ืื–, ื™ืฉ ืœื ื• ืคืจื•ืงืกื™ ืขื ืื™ืžื•ืช ื‘ืžื“ื™ื ื” ื”ืจืฆื•ื™ื”, ื ื’ื™ืฉ ื‘ืืžืฆืขื•ืช ื›ืชื•ื‘ืช IP ืœื‘ื ื” ืกื˜ื˜ื™ืช. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœื”ืฉืชืžืฉ ื‘ื• ื•ืœื”ืคื ื•ืช ืชื ื•ืขื” ืž-Spotify ืœืฉื. ืื‘ืœ ื™ืฉ ื ื™ื•ืื ืก, ื›ืคื™ ืฉื”ื•ื–ื›ืจ ืœืขื™ืœ, ืกื™ืกืžืช ื”ื›ื ื™ืกื” ืœ-proxy ื‘-Spotify ืœื ืขื•ื‘ื“ืช, ืื– ืื ื—ื ื• ื ื—ืคืฉ ืื™ืš ืœืขืงื•ืฃ ืื•ืชื”.

ื‘ืชื•ืจ ื”ืชื—ืœื”, ื‘ื•ืื• ื ื–ื›ื•ืจ ื‘ืขืจืš ืคืจื•ืงืกื™. ื“ื‘ืจื™ื ื ื”ื“ืจื™ื, ืื‘ืœ ื–ื” ืขื•ืœื” ื›ืžื• ืกืคื™ื ืช ื›ื•ื›ื‘ื™ื (40 $). ืขื ื”ื›ืกืฃ ื”ื–ื” ืื ื—ื ื• ื™ื›ื•ืœื™ื ืฉื•ื‘ ืœืงื ื•ืช ืคืจื™ืžื™ื•ื ื•ืœืกื™ื™ื ืขื ื–ื”. ืœื›ืŸ, ื ื—ืคืฉ ืขื•ื“ ืื ืœื•ื’ื™ื ื—ื•ืคืฉื™ื™ื ื•ืคืชื•ื—ื™ื ื‘-Mac (ื›ืŸ, ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืื–ื™ืŸ ืœืžื•ื–ื™ืงื” ื‘-Mac). ื‘ื•ืื• ืœื’ืœื•ืช ื›ืœื™ ืื—ื“ ืฉืœื: proximac. ื•ื ืœืš ืœืชืงื•ืข ืื•ืชื• ื‘ืฉืžื—ื”.

ืื‘ืœ ื”ืฉืžื—ื” ืชื”ื™ื” ืงืฆืจืช ืžื•ืขื“, ื›ื™ ืžืกืชื‘ืจ ืฉืืชื” ืฆืจื™ืš ืœื”ืคืขื™ืœ ืžืฆื‘ ื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ื”ืจื—ื‘ื•ืช ืœื™ื‘ื” ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื‘-MacOS, ืœื”ื’ื™ืฉ ืชืฆื•ืจื” ืคืฉื•ื˜ื” ื•ืœื”ื‘ื™ืŸ ืฉืœื›ืœื™ ื”ื–ื” ื™ืฉ ื‘ื“ื™ื•ืง ืืช ืื•ืชื” ื‘ืขื™ื” ื›ืžื• Spotify: ื”ื•ื ืœื ื™ื›ื•ืœ ืœืขื‘ื•ืจ ืื™ืžื•ืช ื‘ืืžืฆืขื•ืช ื›ื ื™ืกื”-ืกื™ืกืžื” ืขืœ socks-proxy.

ืื™ืคืฉื”ื• ื›ืืŸ ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืชื—ืจืคืŸ ื•ืœืงื ื•ืช ืคืจื™ืžื™ื•ื... ืื‘ืœ ืœื! ื‘ื•ื ื ื ืกื” ืœื‘ืงืฉ ืœืชืงืŸ ืืช ื–ื”, ื–ื” ืงื•ื“ ืคืชื•ื—! ื‘ื ื ืขืฉื” ื›ึผึทืจึฐื˜ึดื™ืก. ื•ื‘ืชื’ื•ื‘ื” ืื ื—ื ื• ืžืงื‘ืœื™ื ืกื™ืคื•ืจ ืงื•ืจืข ืœื‘ ืขืœ ืื™ืš ืœืžืชื—ื–ืง ื”ื™ื—ื™ื“ ื›ื‘ืจ ืื™ืŸ MacBook ื•ืœืขื–ืื–ืœ ืขื ื–ื”, ืœื ืชื™ืงื•ืŸ.

ืฉื•ื‘ ื ืชืขืฆื‘ืŸ. ืื‘ืœ ืื– ื ื–ื›ื•ืจ ืืช ื”ื ืขื•ืจื™ื ืฉืœื ื• ื•-C, ื”ืคืขืœ ืืช ืžืฆื‘ ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื ื‘ื“ื ื˜ื”, ื ื—ืคื•ืจ ื‘ืžืื•ืช ืงื™ืœื•ื‘ื™ื™ื˜ื™ื ืฉืœ ื™ื•ืžื ื™ื, ืขื‘ื•ืจ ืืœ RFC1927 ืœืžื™ื“ืข ืขืœ ืคืจื•ื˜ื•ืงื•ืœ SOCKS5, ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ Xcode ื•ื ืžืฆื ืืช ื”ื‘ืขื™ื”. ืžืกืคื™ืง ืœืชืงืŸ ืชื• ืื—ื“ ื‘ืจืฉื™ืžืช ืงื•ื“ื™ ื”ืฉื™ื˜ื” ืฉื”ืœืงื•ื— ืžืฆื™ืข ืœืื™ืžื•ืช ื•ื”ื›ืœ ืžืชื—ื™ืœ ืœืขื‘ื•ื“ ื›ืžื• ืฉืขื•ืŸ. ืื ื—ื ื• ืฉืžื—ื™ื, ืื ื—ื ื• ืื•ืกืคื™ื ืืช ื”ืฉื—ืจื•ืจ ื”ื‘ื™ื ืืจื™, ืื ื—ื ื• ื›ืŸ ื‘ืงืฉื” ืœืžืฉื•ืš ื•ืื ื—ื ื• ื ื›ื ืกื™ื ืœืฉืงื™ืขื” ื•ื”ื•ืœื›ื™ื ืœื ืงื•ื“ื” ื”ื‘ืื”.

ื”ืคื•ืš ืื•ืชื• ืœืื•ื˜ื•ืžื˜ื™

ื‘ืจื’ืข ืฉ-Proximac ืขื•ื‘ื“, ืฆืจื™ืš ืœืขืฉื•ืช ื“ืžื•ื ื™ื–ืฆื™ื” ื•ืœืฉื›ื•ื— ืื•ืชื”. ื™ืฉ ืžืขืจื›ืช ืืชื—ื•ืœ ืื—ืช ืฉืœืžื” ืฉืžืชืื™ืžื” ืœื›ืš, ืฉื ืžืฆืืช ื‘-MacOS, ื›ืœื•ืžืจ ื”ืฉื™ืงื”.

ืื ื—ื ื• ืžื•ืฆืื™ื ืืช ื–ื” ืžื”ืจ ืžื“ืจื™ืš ืœ ื•ืื ื—ื ื• ืžื‘ื™ื ื™ื ืฉื–ื” ื‘ื›ืœืœ ืœื systemd ื•ื”ื ื” ื–ื” ื›ืžืขื˜ ืกืงื•ืค ื• xml. ืื™ืŸ ื”ื’ื“ืจื•ืช ืžืคื•ืืจื•ืช ืขื‘ื•ืจืš, ืื™ืŸ ืคืงื•ื“ื•ืช ื›ืžื• status, restart, daemon-reload. ืกื•ื’ ื”ืืจื“ืงื•ืจ ื‘ืœื‘ื“ start-stop, list-grep, unload-load ื•ืขื•ื“ ื”ืจื‘ื” ืžื•ื–ืจื•ื™ื•ืช. ืœื”ืชื’ื‘ืจ ืขืœ ื›ืœ ื–ื” ืื ื—ื ื• ื›ื•ืชื‘ื™ื plist, ื˜ื•ืขืŸ. ืœื ืขื•ื‘ื“. ืื ื—ื ื• ืœื•ืžื“ื™ื ืืช ืฉื™ื˜ืช ื ื™ืคื•ื™ ื”ืฉื“, ืžื ืคื™ื ืื•ืชื•, ืžื‘ื™ื ื™ื ืžื” ื™ืฉ ืฉื ENV ืืคื™ืœื• PATH ืœื ื”ืกืคืงื ื• ืืช ื”ืจื’ื™ืœ, ืื ื—ื ื• ื˜ื•ืขื ื™ื, ืื ื—ื ื• ืžื‘ื™ืื™ื ืื•ืชื• (ืžื•ืกื™ืฃ /sbin ะธ /usr/local/bin) ื•ืœื‘ืกื•ืฃ ืื ื• ืžืจื•ืฆื™ื ืžื”ื”ืคืขืœื” ื”ืื•ื˜ื•ืžื˜ื™ืช ื•ื”ืคืขื•ืœื” ื”ื™ืฆื™ื‘ื”.

ืœึดื ึฐืฉืื•ึนืฃ

ืžื” ื”ืชื•ืฆืื”? ืฉื‘ื•ืข ืฉืœ ื”ืจืคืชืงืื•ืช, ื’ืŸ ื—ื™ื•ืช ื›ื•ืจืข ืžืฉื™ืจื•ืชื™ื ื”ื™ืงืจื™ื ืœืœื‘ ื•ืขื•ืฉื” ืืช ื”ื ื“ืจืฉ ืžืžื ื•. ืงืฆืช ื™ื“ืข ื‘ืชื—ื•ืžื™ื ื˜ื›ื ื™ื™ื ืžืคื•ืงืคืงื™ื, ืงืฆืช ืงื•ื“ ืคืชื•ื— ื•ื—ื™ื•ืš ืขืœ ื”ืคื ื™ื ืžื”ืžื—ืฉื‘ื” "ืขืฉื™ืชื™ ืืช ื–ื”!"

ื .ื‘: ื–ื• ืœื ืงืจื™ืื” ืœื—ืจื ืขืœ ื‘ืขืœื™ ื”ื•ืŸ, ืœื—ืกื›ื•ืŸ ื‘ื’ืคืจื•ืจื™ื ืื• ืœืขืจืžื•ืžื™ื•ืช ืžื•ื—ืœื˜ืช, ืืœื ืจืง ืื™ื ื“ื™ืงืฆื™ื” ืœืืคืฉืจื•ื™ื•ืช ื”ืžื—ืงืจ ื•ื”ืคื™ืชื•ื— ืฉื‘ื”ืŸ, ื‘ืื•ืคืŸ ื›ืœืœื™, ืืชื” ืœื ืžืฆืคื” ืœื”ืŸ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”