ื‘ื ื™ื™ืช ื ืชื‘ ื‘-SOCKS ืขืœ ืžื—ืฉื‘ ื ื™ื™ื“ ืขื ื“ื‘ื™ืืŸ 10

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

ืขื ื–ืืช, ืžืื– ื”ื’ืจืกื” ื”ื™ืฆื™ื‘ื” ืฉืœ ื“ื‘ื™ืืŸ ืขื•ื“ื›ื ื” ืœ-Buster, ืžืกืคืจ ืžืกืคื™ืง ืฉืœ ืื ืฉื™ื ืคื ื• ืืœื™ื™ ื‘ืื•ืคืŸ ืคืจื˜ื™ ื•ื‘ื™ืงืฉื• ืขื–ืจื” ื‘ื”ืชืงื ื”, ืžื” ืฉืื•ืžืจ ืฉื”ืžืืžืจื™ื ื”ืงื•ื“ืžื™ื ืฉืœื™ ืื™ื ื ืžืžืฆื™ื. ื•ื‘ื›ืŸ, ืื ื™ ืขืฆืžื™ ื ื™ื—ืฉืชื™ ืฉื”ืฉื™ื˜ื•ืช ื”ืžืชื•ืืจื•ืช ื‘ื”ืŸ ืื™ื ืŸ ื—ื•ืฉืคื•ืช ื‘ืžืœื•ืืŸ ืืช ื›ืœ ื”ืžื•ืจื›ื‘ื•ื™ื•ืช ืฉืœ ื”ื’ื“ืจืช ืœื™ื ื•ืงืก ืœื ื™ืชื•ื‘ ื‘-SOCKS. ื‘ื ื•ืกืฃ, ื”ื ื›ืชื•ื‘ื™ื ืขื‘ื•ืจ Debian Stretch, ื•ืœืื—ืจ ืฉื“ืจื•ื’ ืœ-Buster, ื‘ืžืขืจื›ืช systemd init, ื”ื‘ื—ื ืชื™ ื‘ืฉื™ื ื•ื™ื™ื ืงื˜ื ื™ื ื‘ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ื”ืฉื™ืจื•ืชื™ื. ื•ื‘ืžืืžืจื™ื ืขืฆืžื, ืœื ื”ืฉืชืžืฉืชื™ ื‘-systemd-networkd, ืœืžืจื•ืช ืฉื”ื™ื ืžืชืื™ืžื” ื‘ื™ื•ืชืจ ืœืชืฆื•ืจื•ืช ืจืฉืช ืžื•ืจื›ื‘ื•ืช.

ื‘ื ื•ืกืฃ ืœืฉื™ื ื•ื™ื™ื ืœืขื™ืœ, ื”ืฉื™ืจื•ืชื™ื ื”ื‘ืื™ื ื ื•ืกืคื• ืœืชืฆื•ืจื” ืฉืœื™: hostapd - ืฉื™ืจื•ืช ืœื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ื ืงื•ื“ื•ืช ื’ื™ืฉื”, ntp ื›ื“ื™ ืœืกื ื›ืจืŸ ืืช ื”ื–ืžืŸ ืฉืœ ืœืงื•ื—ื•ืช ืจืฉืช ืžืงื•ืžื™ื™ื, dnscrypt-proxy ืœื”ืฆืคื™ืŸ ื—ื™ื‘ื•ืจื™ื ื‘ืืžืฆืขื•ืช DNS ื•ืœื”ืฉื‘ื™ืช ืคืจืกื•ื ื‘ืœืงื•ื—ื•ืช ืจืฉืช ืžืงื•ืžื™ืช, ื•ื’ื, ื›ืคื™ ืฉืฆื™ื™ื ืชื™ ืงื•ื“ื, systemd-networkd ืœื”ื’ื“ืจืช ืžืžืฉืงื™ ืจืฉืช.

ื”ื ื” ืชืจืฉื™ื ื‘ืœื•ืงื™ื ืคืฉื•ื˜ ืฉืœ ื”ืžื‘ื ื” ื”ืคื ื™ืžื™ ืฉืœ ื ืชื‘ ื›ื–ื”.

ื‘ื ื™ื™ืช ื ืชื‘ ื‘-SOCKS ืขืœ ืžื—ืฉื‘ ื ื™ื™ื“ ืขื ื“ื‘ื™ืืŸ 10

ืื– ื”ืจืฉื• ืœื™ ืœื”ื–ื›ื™ืจ ืœื›ื ืžื”ืŸ ื”ืžื˜ืจื•ืช ืฉืœ ืกื“ืจืช ืžืืžืจื™ื ื–ื•:

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

ืžื” ื ืขืกื•ืง ื‘ืžืืžืจ ื–ื”:

  1. ืกื™ืœื•ืŸ - ื”ื•ืจื“ ืžืื’ืจื™ ืคืจื•ื™ืงื˜ื™ื tun2socksื ื“ืจืฉ ืœื ืชื‘ ืชืขื‘ื•ืจืช TCP ืืœ SOCKS, ื•ื›ืŸ create_ap - ืกืงืจื™ืคื˜ ืœืื•ื˜ื•ืžื˜ื™ ืฉืœ ื”ื”ื’ื“ืจื” ืฉืœ ื ืงื•ื“ืช ื’ื™ืฉื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช hostapd.
  2. tun2socks - ืœื‘ื ื•ืช ื•ืœื”ืชืงื™ืŸ ืืช ืฉื™ืจื•ืช systemd ืขืœ ื”ืžืขืจื›ืช.
  3. systemd-networkd - ื”ื’ื“ืจ ืžืžืฉืงื™ื ืืœื—ื•ื˜ื™ื™ื ื•ื•ื™ืจื˜ื•ืืœื™ื™ื, ื˜ื‘ืœืื•ืช ื ื™ืชื•ื‘ ืกื˜ื˜ื™ื•ืช ื•ื”ืคื ื™ื™ืช ืžื ื•ืช.
  4. create_ap - ื”ืชืงืŸ ืืช ืฉื™ืจื•ืช systemd ื‘ืžืขืจื›ืช, ื”ื’ื“ืจ ื•ื”ืคืขืœ ื ืงื•ื“ืช ื’ื™ืฉื” ื•ื™ืจื˜ื•ืืœื™ืช.

ืฉืœื‘ื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื:

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

ืœืžื” ื›ืœ ื–ื”?

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

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

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

ื‘ื”ืชืื ืœื›ืš, ื›ืœ ื”ืžื›ืฉื™ืจื™ื ืžื—ื•ื‘ืจื™ื ืœื ืงื•ื“ืช ื”ื’ื™ืฉื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืฉืœ ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“.

ื”ืชืงืŸ tun2socks ืขืœ ื”ืžืขืจื›ืช

ื›ืœ ืขื•ื“ ืœืžื›ืฉื™ืจ ืฉืœืš ื™ืฉ ืื™ื ื˜ืจื ื˜, ื”ื•ืจื“ ืืช ื›ืœ ื”ื›ืœื™ื ื”ื“ืจื•ืฉื™ื.

apt update
apt install git make cmake

ื”ื•ืจื“ ืืช ื—ื‘ื™ืœืช badvpn

git clone https://github.com/ambrop72/badvpn

ืชื™ืงื™ื” ืชื•ืคื™ืข ื‘ืžืขืจื›ืช ืฉืœืš badvpn. ืฆื•ืจ ืชื™ืงื™ื” ื ืคืจื“ืช ืขื‘ื•ืจ ื”-build

mkdir badvpn-build

ืœืš ืœื–ื”

cd badvpn-build

ืœืืกื•ืฃ tun2socks

cmake ../badvpn -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_TUN2SOCKS=1

ื”ืชืงืŸ ืขืœ ื”ืžืขืจื›ืช

make install
  • ืคืจืžื˜ืจ -DBUILD_NOTHING_BY_DEFAULT=1 ืžืฉื‘ื™ืช ืืช ื”ื‘ื ื™ื™ื” ืฉืœ ื›ืœ ื”ืจื›ื™ื‘ื™ื ืฉืœ ืžืื’ืจ badvpn.
  • -DBUILD_TUN2SOCKS=1 ื›ื•ืœืœ ืจื›ื™ื‘ ื‘ื”ืจื›ื‘ื” tun2socks.
  • make install - ื™ืชืงื™ืŸ ืืช ื”-tun2socks ื‘ื™ื ืืจื™ ื‘ืžืขืจื›ืช ืฉืœืš ื‘ /usr/local/bin/badvpn-tun2socks.

ื”ืชืงืŸ ืืช ืฉื™ืจื•ืช tun2socks ื‘-systemd

ืฆื•ืจ ืงื•ื‘ืฅ /etc/systemd/system/tun2socks.service ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:

[Unit]
Description=SOCKS TCP Relay

[Service]
ExecStart=/usr/local/bin/badvpn-tun2socks --tundev tun2socks --netif-ipaddr 172.16.1.1 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:9050

[Install]
WantedBy=multi-user.target
  • --tundev - ืœื•ืงื— ืืช ื”ืฉื ืฉืœ ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืฉืื ื• ืžืืชื—ืœื™ื ืขื systemd-networkd.
  • --netif-ipaddr - ื›ืชื•ื‘ืช ื”ืจืฉืช ืฉืœ "ื ืชื‘" tun2socks ืฉืืœื™ื• ืžื—ื•ื‘ืจ ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™. ืขื“ื™ืฃ ืœืขืฉื•ืช ืืช ื–ื” ื ืคืจื“ ืจืฉืช ืžืฉื ื” ืฉืžื•ืจื”.
  • --socks-server-addr - ืžืงื‘ืœ ืฉืงืข (ะฐะดั€ะตั:ะฟะพั€ั‚ ืฉืจืชื™ SOCKS).

ืื ืฉืจืช SOCKS ืฉืœืš ื“ื•ืจืฉ ืื™ืžื•ืช, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืืช ื”ืคืจืžื˜ืจื™ื --username ะธ --password.

ืœืื—ืจ ืžื›ืŸ, ืจืฉื•ื ืืช ื”ืฉื™ืจื•ืช

systemctl daemon-reload

ื•ืชื“ืœื™ืง ืื•ืชื•

systemctl enable tun2socks

ืœืคื ื™ ืชื—ื™ืœืช ื”ืฉื™ืจื•ืช, ื ืกืคืง ืœื• ืžืžืฉืง ืจืฉืช ื•ื™ืจื˜ื•ืืœื™.

ืžืขื‘ืจ ืœ-systemd-networkd

ืชื“ืœื™ืง systemd-networkd:

systemctl enable systemd-networkd

ื”ืฉื‘ืช ืืช ืฉื™ืจื•ืชื™ ื”ืจืฉืช ื”ื ื•ื›ื—ื™ื™ื.

systemctl disable networking NetworkManager NetworkManager-wait-online
  • NetworkManager-ื—ื›ื”-ืžืงื•ื•ืŸ ื”ื•ื ืฉื™ืจื•ืช ืฉืžื—ื›ื” ืœื—ื™ื‘ื•ืจ ืจืฉืช ืขื•ื‘ื“ ืœืคื ื™ ืฉ-systemd ืžืžืฉื™ื›ื” ืœื”ืคืขื™ืœ ืฉื™ืจื•ืชื™ื ืื—ืจื™ื ื”ืชืœื•ื™ื™ื ื‘ื ื•ื›ื—ื•ืช ืจืฉืช. ืื ื• ืžืฉื‘ื™ืชื™ื ืื•ืชื• ื›ืืฉืจ ืื ื• ืขื•ื‘ืจื™ื ืœืื ืœื•ื’ื™ systemd-networkd.

ื‘ื•ืื• ื ืคืขื™ืœ ืืช ื–ื” ืžื™ื“:

systemctl enable systemd-networkd-wait-online

ื”ื’ื“ืจ ืืช ืžืžืฉืง ื”ืจืฉืช ื”ืืœื—ื•ื˜ื™ืช

ืฆื•ืจ ืงื•ื‘ืฅ ืชืฆื•ืจื” systemd-networkd ืขื‘ื•ืจ ืžืžืฉืง ื”ืจืฉืช ื”ืืœื—ื•ื˜ื™ืช /etc/systemd/network/25-wlp6s0.network.

[Match]
Name=wlp6s0

[Network]
Address=192.168.1.2/24
IPForward=yes
  • ืฉื ื”ื•ื ื”ืฉื ืฉืœ ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™ ืฉืœืš. ื–ื”ื” ืืช ื–ื” ืขื ื”ืคืงื•ื“ื” ip a.
  • IPForward - ื”ื ื—ื™ื” ื”ืžืืคืฉืจืช ื”ืคื ื™ื™ืช ืžื ื•ืช ื‘ืžืžืฉืง ืจืฉืช.
  • ื›ืชื•ื‘ืช ืื—ืจืื™ ืขืœ ื”ืงืฆืืช ื›ืชื•ื‘ืช IP ืœืžืžืฉืง ื”ืืœื—ื•ื˜ื™. ืื ื• ืžืฆื™ื™ื ื™ื ืืช ื–ื” ื‘ืื•ืคืŸ ืกื˜ื˜ื™ ื›ื™ ืขื ื”ื”ื ื—ื™ื” ื”ืžืงื‘ื™ืœื” DHCP=yes, systemd-networkd ื™ื•ืฆืจ ืฉืขืจ ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืžืขืจื›ืช. ืื– ื›ืœ ื”ืชืขื‘ื•ืจื” ืชืขื‘ื•ืจ ื“ืจืš ื”ืฉืขืจ ื”ืžืงื•ืจื™, ื•ืœื ื“ืจืš ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ื”ืขืชื™ื“ื™ ื‘ืจืฉืช ืžืฉื ื” ืื—ืจืช. ืืชื” ื™ื›ื•ืœ ืœื‘ื“ื•ืง ืืช ืฉืขืจ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื ื•ื›ื—ื™ ืขื ื”ืคืงื•ื“ื” ip r

ืฆื•ืจ ืžืกืœื•ืœ ืกื˜ื˜ื™ ืขื‘ื•ืจ ืฉืจืช SOCKS ื”ืžืจื•ื—ืง

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

[Route]
Gateway=192.168.1.1
Destination=0.0.0.0
  • Gateway - ื–ื”ื• ืฉืขืจ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืื• ื”ื›ืชื•ื‘ืช ืฉืœ ื ืงื•ื“ืช ื”ื’ื™ืฉื” ื”ืžืงื•ืจื™ืช ืฉืœืš.
  • Destination โ€” ื›ืชื•ื‘ืช ืฉืจืช SOCKS.

ื”ื’ื“ืจ ืืช wpa_supplicant ืขื‘ื•ืจ systemd-networkd

systemd-networkd ืžืฉืชืžืฉ ื‘-wpa_supplicant ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœื ืงื•ื“ืช ื’ื™ืฉื” ืžืื•ื‘ื˜ื—ืช. ื›ืืฉืจ ืžื ืกื™ื "ืœื”ืขืœื•ืช" ืืช ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™, systemd-networkd ืžืคืขื™ืœ ืืช ื”ืฉื™ืจื•ืช wpa_supplicant@ะธะผัืื™ืคื” ืฉื ื”ื•ื ืฉื ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™. ืื ืœื ื”ืฉืชืžืฉืช ื‘-systemd-networkd ืœืคื ื™ ื ืงื•ื“ื” ื–ื•, ื›ื ืจืื” ืฉืฉื™ืจื•ืช ื–ื” ื—ืกืจ ื‘ืžืขืจื›ืช ืฉืœืš.

ืื– ืฆื•ืจ ืื•ืชื• ืขื ื”ืคืงื•ื“ื”:

systemctl enable wpa_supplicant@wlp6s0

ื”ืฉืชืžืฉืชื™ wlp6s0 ื›ืฉื ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™ ืฉืœื•. ื”ืฉื ืฉืœืš ืขืฉื•ื™ ืœื”ื™ื•ืช ืฉื•ื ื”. ืืชื” ื™ื›ื•ืœ ืœื–ื”ื•ืช ืื•ืชื• ืขื ื”ืคืงื•ื“ื” ip l.

ืขื›ืฉื™ื• ื”ืฉื™ืจื•ืช ืฉื ื•ืฆืจ wpa_supplicant@wlp6s0 ื™ื•ืคืขืœ ื›ืืฉืจ ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™ "ืžื•ืขืœื”", ืื•ืœื ื”ื•ื, ื‘ืชื•ืจื•, ื™ื—ืคืฉ ืืช ื”ื’ื“ืจื•ืช ื”-SSID ื•ื”ืกื™ืกืžื” ืฉืœ ื ืงื•ื“ืช ื”ื’ื™ืฉื” ื‘ืงื•ื‘ืฅ /etc/wpa_supplicant/wpa_supplicant-wlp6s0. ืœื›ืŸ, ืขืœื™ืš ืœื™ืฆื•ืจ ืื•ืชื• ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช wpa_passphrase.

ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื”:

wpa_passphrase SSID password>/etc/wpa_supplicant/wpa_supplicant-wlp6s0.conf

ืื™ืคื” SSID ื”ื•ื ื”ืฉื ืฉืœ ื ืงื•ื“ืช ื”ื’ื™ืฉื” ืฉืœืš, ื”ืกื™ืกืžื” ื”ื™ื ื”ืกื™ืกืžื”, ื• wlp6s0 - ืฉื ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™ ืฉืœืš.

ืืชื—ืœ ืืช ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืขื‘ื•ืจ tun2socks

ืฆื•ืจ ืงื•ื‘ืฅ ืœืืชื—ื•ืœ ืžืžืฉืง ื•ื™ืจื˜ื•ืืœื™ ื—ื“ืฉ ื‘ืžืขืจื›ืช/etc/systemd/network/25-tun2socks.netdev

[NetDev]
Name=tun2socks
Kind=tun
  • ืฉื ื”ื•ื ื”ืฉื ืฉื™ืงืฆื” systemd-networkd ืœืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ื”ืขืชื™ื“ื™ ื›ืืฉืจ ื”ื•ื ื™ืืชื—ืœ.
  • ืกื•ื’ ื”ื•ื ืกื•ื’ ืฉืœ ืžืžืฉืง ื•ื™ืจื˜ื•ืืœื™. ืžื”ืฉื ืฉืœ ืฉื™ืจื•ืช tun2socks, ืืชื” ื™ื›ื•ืœ ืœื ื—ืฉ ืฉื”ื•ื ืžืฉืชืžืฉ ื‘ืžืžืฉืง ื›ืžื• tun.
  • ื ื˜ื• ื”ื™ื ื”ืกื™ื•ืžืช ืฉืœ ืงื‘ืฆื™ื ืฉ systemd-networkd ืžืฉืžืฉ ืœืืชื—ื•ืœ ืžืžืฉืงื™ ืจืฉืช ื•ื™ืจื˜ื•ืืœื™ื™ื. ื”ื›ืชื•ื‘ืช ื•ื”ื’ื“ืจื•ืช ืจืฉืช ืื—ืจื•ืช ืขื‘ื•ืจ ืžืžืฉืงื™ื ืืœื” ืžืฆื•ื™ื ื•ืช ื‘ .ืจึถืฉืึถืช-ืงื‘ืฆื™ื.

ืฆื•ืจ ืงื•ื‘ืฅ ื›ื–ื” /etc/systemd/network/25-tun2socks.network ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:

[Match]
Name=tun2socks

[Network]
Address=172.16.1.2/24
Gateway=172.16.1.1
  • Name - ืฉื ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืฉืฆื™ื™ื ืช ื‘ื• ื ื˜ื•-ืงื•ึนื‘ึถืฅ.
  • Address - ื›ืชื•ื‘ืช IP ืฉืชื•ืงืฆื” ืœืžืžืฉืง ื”ื•ื™ืจื˜ื•ืืœื™. ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ืื•ืชื” ืจืฉืช ื›ืžื• ื”ื›ืชื•ื‘ืช ืฉืฆื™ื™ื ืช ื‘ืฉื™ืจื•ืช tun2socks
  • Gateway - ื›ืชื•ื‘ืช IP ืฉืœ ื”"ื ืชื‘" tun2socks, ืฉืฆื™ื™ื ืช ื‘ืขืช ื™ืฆื™ืจืช ืฉื™ืจื•ืช systemd.

ืื– ื”ืžืžืฉืง tun2socks ื™ืฉ ื›ืชื•ื‘ืช 172.16.1.2, ื•ื”ืฉื™ืจื•ืช tun2socks - 172.16.1.1, ื›ืœื•ืžืจ, ื–ื” ื”ืฉืขืจ ืœื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ืžื”ืžืžืฉืง ื”ื•ื™ืจื˜ื•ืืœื™.

ื”ื’ื“ืจ ื ืงื•ื“ืช ื’ื™ืฉื” ื•ื™ืจื˜ื•ืืœื™ืช

ืชืœื•ืช ื‘ื”ืชืงื ื”:

apt install util-linux procps hostapd iw haveged

ื”ื•ืจื“ ืืช ื”ืžืื’ืจ create_ap ืœืจื›ื‘ ืฉืœืš:

git clone https://github.com/oblique/create_ap

ืขื‘ื•ืจ ืืœ ืชื™ืงื™ื™ืช ื”ืžืื’ืจ ื‘ืžื—ืฉื‘ ืฉืœืš:

cd create_ap

ื”ืชืงืŸ ืขืœ ื”ืžืขืจื›ืช:

make install

ืชืฆื•ืจื” ืชื•ืคื™ืข ื‘ืžืขืจื›ืช ืฉืœืš /etc/create_ap.conf. ืœื”ืœืŸ ืืคืฉืจื•ื™ื•ืช ื”ืขืจื™ื›ื” ื”ืขื™ืงืจื™ื•ืช:

  • GATEWAY=10.0.0.1 - ืขื“ื™ืฃ ืœื”ืคื•ืš ืื•ืชื• ืœืจืฉืช ืžืฉื ื” ืฉืžื•ืจื” ื ืคืจื“ืช.
  • NO_DNS=1 - ื”ืฉื‘ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ืคืจืžื˜ืจ ื”ื–ื” ื™ื ื•ื”ืœ ืขืœ ื™ื“ื™ ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ systemd-networkd.
  • NO_DNSMASQ=1 - ื›ื‘ื” ืื•ืชื• ืžืื•ืชื” ืกื™ื‘ื”.
  • WIFI_IFACE=wlp6s0 - ืžืžืฉืง ืืœื—ื•ื˜ื™ ืœืžื—ืฉื‘ ื ื™ื™ื“.
  • INTERNET_IFACE=tun2socks - ืžืžืฉืง ื•ื™ืจื˜ื•ืืœื™ ืฉื ื•ืฆืจ ืขื‘ื•ืจ tun2socks.
  • SSID=hostapd - ืฉื ื ืงื•ื“ืช ื”ื’ื™ืฉื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ืช.
  • PASSPHRASE=12345678 - ืกื™ืกืžื”.

ืืœ ืชืฉื›ื— ืœื”ืคืขื™ืœ ืืช ื”ืฉื™ืจื•ืช:

systemctl enable create_ap

ืืคืฉืจ ืฉืจืช DHCP ื‘-systemd-networkd

ืฉื™ืจื•ืช create_ap ืžืืชื—ืœ ืžืžืฉืง ื•ื™ืจื˜ื•ืืœื™ ื‘ืžืขืจื›ืช ap0. ื‘ืชื™ืื•ืจื™ื”, dnsmasq ืชืœื•ื™ ืขืœ ื”ืžืžืฉืง ื”ื–ื”, ืื‘ืœ ืœืžื” ืœื”ืชืงื™ืŸ ืฉื™ืจื•ืชื™ื ื ื•ืกืคื™ื ืื systemd-networkd ืžื›ื™ืœ ืฉืจืช DHCP ืžื•ื‘ื ื”?

ื›ื“ื™ ืœื”ืคืขื™ืœ ืื•ืชื•, ื ื’ื“ื™ืจ ืืช ื”ื’ื“ืจื•ืช ื”ืจืฉืช ืขื‘ื•ืจ ื”ื ืงื•ื“ื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ืช. ืœืฉื ื›ืš, ืฆื•ืจ ืงื•ื‘ืฅ /etc/systemd/network/25-ap0.network ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:

[Match]
Name=ap0

[Network]
Address=10.0.0.1/24
DHCPServer=yes

[DHCPServer]
EmitDNS=yes
DNS=10.0.0.1
EmitNTP=yes
NTP=10.0.0.1

ืœืื—ืจ ืฉืฉื™ืจื•ืช create_ap ืžืืชื—ืœ ืืช ื”ืžืžืฉืง ื”ื•ื•ื™ืจื˜ื•ืืœื™ ap0, systemd-networkd ื™ืงืฆื” ืœื• ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื›ืชื•ื‘ืช IP ื•ืชืืคืฉืจ ืืช ืฉืจืช ื”-DHCP.

ืžื—ืจื•ื–ื•ืช EmitDNS=yes ะธ DNS=10.0.0.1 ื”ืขื‘ืจืช ื”ื’ื“ืจื•ืช ืฉืจืช DNS ืœื”ืชืงื ื™ื ื”ืžื—ื•ื‘ืจื™ื ืœื ืงื•ื“ืช ื”ื’ื™ืฉื”.

ืื ืืชื” ืœื ืžืชื›ื ืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืจืช DNS ืžืงื•ืžื™ - ื‘ืžืงืจื” ืฉืœื™ ื–ื” dnscrypt-proxy - ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ DNS=10.0.0.1 ะฒ DNS=192.168.1.1ืื™ืคื” 192.168.1.1 - ื”ื›ืชื•ื‘ืช ืฉืœ ื”ืฉืขืจ ื”ืžืงื•ืจื™ ืฉืœืš. ืื– ื‘ืงืฉื•ืช DNS ืขื‘ื•ืจ ื”ืžืืจื— ื•ื”ืจืฉืช ื”ืžืงื•ืžื™ืช ืฉืœืš ื™ืขื‘ืจื• ืœืœื ืžื•ืฆืคืŸ ื“ืจืš ืฉืจืชื™ ื”ืกืคืง.

EmitNTP=yes ะธ NTP=192.168.1.1 ื”ืขื‘ืจืช ื”ื’ื“ืจื•ืช NTP.

ืื•ืชื• ื“ื‘ืจ ืœื’ื‘ื™ ื”ืงื• NTP=10.0.0.1.

ื”ืชืงืŸ ื•ื”ื’ื“ืจ ืืช ืฉืจืช NTP

ื”ืชืงืŸ ืขืœ ื”ืžืขืจื›ืช:

apt install ntp

ืขืจื•ืš ืืช ื”ืชืฆื•ืจื” /etc/ntp.conf. ืฆื™ื™ืŸ ืืช ื”ื›ืชื•ื‘ื•ืช ืฉืœ ื‘ืจื™ื›ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช:

#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst

ื”ื•ืกืฃ ื›ืชื•ื‘ื•ืช ืฉืœ ืฉืจืชื™ื ืฆื™ื‘ื•ืจื™ื™ื, ืœืžืฉืœ Google Public NTP:

server time1.google.com ibrust
server time2.google.com ibrust
server time3.google.com ibrust
server time4.google.com ibrust

ืกืคืง ื’ื™ืฉื” ืœืฉืจืช ืœืœืงื•ื—ื•ืช ื‘ืจืฉืช ืฉืœืš:

restrict 10.0.0.0 mask 255.255.255.0

ืืคืฉืจ ืฉื™ื“ื•ืจ ืœืจืฉืช ืฉืœืš:

broadcast 10.0.0.255

ืœื‘ืกื•ืฃ, ื”ื•ืกืฃ ืืช ื”ื›ืชื•ื‘ื•ืช ืฉืœ ืฉืจืชื™ื ืืœื” ืœื˜ื‘ืœืช ื”ื ื™ืชื•ื‘ ื”ืกื˜ื˜ื™ืช. ืœืฉื ื›ืš, ืคืชื— ืืช ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ ื”ืžืžืฉืง ื”ืืœื—ื•ื˜ื™ /etc/systemd/network/25-wlp6s0.network ื•ืœื”ื•ืกื™ืฃ ืœืกื•ืฃ ื”ืงื˜ืข Route.

[Route]
Gateway=192.168.1.1
Destination=216.239.35.0

[Route]
Gateway=192.168.1.1
Destination=216.239.35.4

[Route]
Gateway=192.168.1.1
Destination=216.239.35.8

[Route]
Gateway=192.168.1.1
Destination=216.239.35.12

ืืชื” ื™ื›ื•ืœ ืœื’ืœื•ืช ืืช ื”ื›ืชื•ื‘ื•ืช ืฉืœ ืฉืจืชื™ ื”-NTP ืฉืœืš ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช host ื›ื“ืœืงืžืŸ:

host time1.google.com

ื”ืชืงืŸ dnscrypt-proxy, ื”ืกืจ ืžื•ื“ืขื•ืช ื•ื”ืกืชื™ืจ ืชืขื‘ื•ืจืช DNS ืžื”ืกืคืง ืฉืœืš

apt install dnscrypt-proxy

ื›ื“ื™ ืœืฉืจืช ืฉืื™ืœืชื•ืช DNS ืžืืจื— ื•ืจืฉืช ืžืงื•ืžื™ืช, ืขืจื•ืš ืืช ื”ืฉืงืข /lib/systemd/system/dnscrypt-proxy.socket. ืฉื ื” ืืช ื”ืฉื•ืจื•ืช ื”ื‘ืื•ืช:

ListenStream=0.0.0.0:53
ListenDatagram=0.0.0.0:53

ืืชื—ื•ืœ systemd:

systemctl daemon-reload

ืขืจื•ืš ืืช ื”ืชืฆื•ืจื” /etc/dnscrypt-proxy/dnscrypt-proxy.toml:

server_names = ['adguard-dns']

ื›ื“ื™ ืœื ืชื‘ ื—ื™ื‘ื•ืจื™ dnscrypt-proxy ื“ืจืš tun2socks, ื”ื•ืกืฃ ืœื”ืœืŸ:

force_tcp = true

ืขืจื•ืš ืืช ื”ืชืฆื•ืจื” /etc/resolv.conf, ืฉืžื•ื“ื™ืข ืœืฉืจืช ื”-DNS ืœืžืืจื—.

nameserver 127.0.0.1
nameserver 192.168.1.1

ื”ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืžืืคืฉืจืช ืฉื™ืžื•ืฉ ื‘-dnscrypt-proxy, ื”ืฉื•ืจื” ื”ืฉื ื™ื™ื” ืžืฉืชืžืฉืช ื‘ืฉืขืจ ื”ืžืงื•ืจื™ ืœืžืงืจื” ืฉืฉืจืช dnscrypt-proxy ืื™ื ื• ื–ืžื™ืŸ.

ื‘ื•ืฆืข!

ื”ืคืขืœ ืžื—ื“ืฉ ืื• ื”ืคืกืง ืœื”ืคืขื™ืœ ืฉื™ืจื•ืชื™ ืจืฉืช:

systemctl stop networking NetworkManager NetworkManager-wait-online

ื•ื”ืคืขืœ ืžื—ื“ืฉ ืืช ื›ืœ ื”ื“ืจื•ืฉ:

systemctl restart systemd-networkd tun2socks create_ap dnscrypt-proxy ntp

ืœืื—ืจ ืืชื—ื•ืœ ืžื—ื“ืฉ ืื• ื”ืคืขืœื” ืžื—ื“ืฉ, ืชื”ื™ื” ืœืš ื ืงื•ื“ืช ื’ื™ืฉื” ืฉื ื™ื™ื” ืฉืžื ืชื‘ืช ืืช ื”ืชืงื ื™ ื”ืžืืจื— ื•ื”-LAN ืืœ SOCKS.

ื›ืš ื ืจืื” ื”ืคืœื˜ ip a ืžื—ืฉื‘ ื ื™ื™ื“ ืจื’ื™ืœ:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: tun2socks: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 500
    link/none 
    inet 172.16.1.2/24 brd 172.16.1.255 scope global tun2socks
       valid_lft forever preferred_lft forever
    inet6 fe80::122b:260:6590:1b0e/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
3: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether e8:11:32:0e:01:50 brd ff:ff:ff:ff:ff:ff
4: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4c:ed:de:cb:cf:85 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlp6s0
       valid_lft forever preferred_lft forever
    inet6 fe80::4eed:deff:fecb:cf85/64 scope link 
       valid_lft forever preferred_lft forever
5: ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4c:ed:de:cb:cf:86 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global ap0
       valid_lft forever preferred_lft forever
    inet6 fe80::4eed:deff:fecb:cf86/64 scope link 
       valid_lft forever preferred_lft forever

ื›ืชื•ืฆืื” ืžื›ืš,

  1. ื”ืกืคืง ืจื•ืื” ืจืง ืืช ื”ื—ื™ื‘ื•ืจ ื”ืžื•ืฆืคืŸ ืœืฉืจืช SOCKS ืฉืœืš, ืžื” ืฉืื•ืžืจ ืฉื”ื ืœื ืจื•ืื™ื ื›ืœื•ื.
  2. ื•ื‘ื›ืœ ื–ืืช ื”ื•ื ืจื•ืื” ืืช ื‘ืงืฉื•ืช ื”-NTP ืฉืœืš, ื›ื“ื™ ืœืžื ื•ืข ื–ืืช, ื”ืกืจ ืžืกืœื•ืœื™ื ืกื˜ื˜ื™ื™ื ืขื‘ื•ืจ ืฉืจืชื™ NTP. ืขื ื–ืืช, ืœื ื‘ื˜ื•ื— ืฉืฉืจืช SOCKS ืฉืœืš ืžืืคืฉืจ ืืช ืคืจื•ื˜ื•ืงื•ืœ NTP.

ืงื‘ ื–ื”ื” ื‘-Debain 10

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

ืชื–ื›ื•ืจ

  1. ื ื™ืชื•ื‘ ืกื˜ื˜ื™ ื‘ืœื™ื ื•ืงืก - IBM
  2. systemd-networkd.service - Freedesktop.org
  3. Tun2socks ยท ambrop72/badvpn Wiki ยท GitHub
  4. oblique/create_ap: ืกืงืจื™ืคื˜ ื–ื” ื™ื•ืฆืจ ื ืงื•ื“ืช ื’ื™ืฉื” NATed ืื• ืžื’ืฉืจืช ืœ-WiFi.
  5. dnscrypt-proxy 2 - ืคืจื•ืงืกื™ DNS ื’ืžื™ืฉ, ืขื ืชืžื™ื›ื” ื‘ืคืจื•ื˜ื•ืงื•ืœื™ DNS ืžื•ืฆืคื ื™ื.

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