Kogu aasta (vĂ”i kaks) ma olen lĂŒkanud selle artikli avaldamist edasi peamiselt seetĂ”ttu, et olen juba avaldanud kaks artiklit, kus kirjeldasin tavalise sĂŒlearvuti muutmist SOCKS marsruuteriks, kasutades Debianit.
Kuid selle ajaga on Debian stabiilne versioon uuendatud Busteriks, piisavalt palju inimesi on otse minuga pöördunud palvega aidata seadistamisel, mis tĂ€hendab, et minu varasemad artiklid ei ole ammendavad. Mul oli endal ka aimdus, et neis esitatud meetodid ei paljasta kĂ”iki Linuxi seadistamise keerukusi SOCKS-i marsruuteriks tegemiseks. Veelgi enam, need on kirjutatud Debian Stretchi jaoks ning pĂ€rast uuendamist Busteriks olen sĂŒsteemi initsialiseerimises systemd mĂ€rganud mĂ”ningaid muudatusi teenuste omavahelises suhtlemises. Samuti ei kasutanud ma oma artiklites systemd-networkd, kuigi see sobib kĂ”ige paremini keerukate vĂ”rgu konfiguratsioonide jaoks.
Lisaks ĂŒlaltoodud muudatustele on minu konfiguratsiooni lisatud jĂ€rgmised teenused: hostapd â juurdepÀÀsupunkti virtualiseerimise teenus, ntp kohalikus vĂ”rgus klientide ajasĂŒnkroniseerimiseks, dnscrypt-proxy ĂŒhenduste krĂŒpteerimiseks DNS-protokolli kaudu ja reklaamide blokeerimiseks kohalike klientide seas ning nagu ma varem mainisin, systemd-networkd vĂ”rgu liideste konfigureerimiseks.
Siin on lihtne plokkdiagramm sellise marsruuteri siseehitusest.

Kordaksin, milliseid eesmĂ€rke kĂ€tkeb see artiklite tsĂŒkkel:
- Marsruutida SOCKS-i kĂ”ik operatsioonisĂŒsteemi ĂŒhendused ja kĂ”ik seadmete ĂŒhendused, mis asuvad sĂŒlearvuti samas vĂ”rgus.
- Minu puhul peab sĂŒlearvuti jÀÀma tĂ€iesti mobiilseks. See tĂ€hendab, et peab olema vĂ”imalik kasutada töölauakeskkonda ning mitte olla seotud fĂŒĂŒsilise asukohaga.
- Viimane punkt eeldab, et ĂŒhendus ja marsruutimine toimuvad ainult sisse ehitatud traadita liidese kaudu.
- Ja muidugi luua ammendav juhend ning arutada vastavaid tehnoloogiaid minu tagasihoidlike teadmiste piires.
Millest kÀesolevas artiklis rÀÀgitakse:
- git â alla laadime projektide repod tun2socks, vajalikud TCP liikluse marsruutimiseks SOCKS-iga ja create_ap â skript virtuaalse juurdepÀÀsupunkti seadistamise automatiseerimiseks hostapd.
- tun2socks â loome ja installime systemd teenuse sĂŒsteemi.
- systemd-networkd â seadistame traadita ja virtuaalsed liidesed, staatiliste marsruutimislaudade ning pakettide edasisaatmise.
- create_ap â paigaldame systemd teenuse sĂŒsteemi, konfigureerime ja kĂ€ivitame virtuaalse juurdepÀÀsupunkti.
Valikulise sammud:
- ntp â paigaldame ja konfigureerime serveri, et sĂŒnkroniseerida aega virtuaalse juurdepÀÀsupunkti klientidele.
- dnscrypt-proxy â krĂŒpteerime DNS-pĂ€ringud, suunatakse need SOCKS-isse ja blokeerime reklaamdomeenid kohaliku vĂ”rgu jaoks.
Miks see kÔik on vajalik?
See on ĂŒks viis, kuidas korraldada TCP-ĂŒhenduste kaitset kohaliku vĂ”rgu sees. Peamine eelis on see, et kĂ”ik ĂŒhendused suunatakse SOCKS-isse, kui nende jaoks pole seadistatud staatilist marsruuti originaali vĂ€rava kaudu. See tĂ€hendab, et SOCKS-serveri seadeid ei pea mÀÀrama ĂŒhelelegi eraldi programmile ega klientidele kohalikus vĂ”rgus â kĂ”ik lĂ€hevad vaikimisi SOCKS-i kaudu, kuna see on vaikimisi vĂ€rav, kuni me ei mÀÀra vastupidist.
Sisuliselt lisame teise krĂŒpteerimise ruuteri nagu sĂŒlearvuti originaalse ruuteri ette ja kasutame originaalse ruuteri Interneti-ĂŒhendust juba krĂŒpteeritud SOCKS-pĂ€ringute jaoks, mida sĂŒlearvuti omakorda marsruutib ja krĂŒpteerib kohaliku vĂ”rgu klientide pĂ€ringud.
Teenusepakkuja vaatepunktist oleme pidevalt ĂŒhendatud ĂŒhe serveriga, millel on krĂŒpteeritud liiklus.
Seega ĂŒhinevad kĂ”ik seadmed sĂŒlearvuti virtuaalse juurdepÀÀsupunktiga.
Paigaldage sĂŒsteemi tun2socks
Kuni teie masinas on internet, laadige alla kÔik vajalikud tööriistad.
apt updateapt install git make cmakeLaadige alla badvpn pakk
git clone https://github.com/ambrop72/badvpn
Teie sĂŒsteemis ilmub kaust badvpn. Looge eraldi kaust koostamiseks
mkdir badvpn-build
Mine sellesse kausta
cd badvpn-build
Koguge kokku tun2socks
cmake ../badvpn -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_TUN2SOCKS=1
Paigaldage sĂŒsteemi
make install
- Parameeter
-DBUILD_NOTHING_BY_DEFAULT=1kustutab kĂ”ik badvpn hoidla komponendid. - â
DBUILD_TUN2SOCKS=1lĂŒlitab koostamisse komponendi tun2socks. make installâ paigaldab binaart faili tun2socks teie sĂŒsteemi aadressile/usr/local/bin/badvpn-tun2socks.
Paigaldage sĂŒsteemi tun2socks teenus systemd-sse
Looge fail /etc/systemd/system/tun2socks.service jÀrjgnevate sisuga:
[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â vĂ”tab virtuaalse liidese nime, mille me algatame systemd-networkd abil.--netif-ipaddrâ liikmena "ruuteri" aadress, millele tun2socks virtuaalne liides liitub. Parim on teha sellest eraldi .--socks-server-addrâ vĂ”tab socket'i (aadress:portSOCKS server).
Kui teie SOCKS server nÔuab autentimist, vÔite mÀÀrata parameetrid --username ja --password.
Edasi registreerige teenus
systemctl daemon-reloadJa aktiveerige
systemctl enable tun2socksEnne teenuse kÀivitamist, varustame selle virtuaalse vÔrgu liidesega.
Liigume systemd-networkd peale
LĂŒlitame sisse systemd-networkd:
systemctl enable systemd-networkdKeelame praegused vÔrgu teenused.
systemctl disable networking NetworkManager NetworkManager-wait-online- NetworkManager-wait-online â see on teenus, mis ootab töötava vĂ”rguĂŒhenduse olemasolu enne, kui systemd jĂ€tkab teiste teenuste kĂ€ivitamist, mis sĂ”ltuvad vĂ”rgu olemasolust. Me keelame selle, kuna liigume systemd-networkd peale.
LĂ€hme ja aktiveerime selle kohe:
systemctl enable systemd-networkd-wait-onlineKonfigureerige traadita vÔrgu liides
Looge systemd-networkd konfigureerimisfail traadita vÔrgu liidese jaoks /etc/systemd/network/25-wlp6s0.network.
[Match]
Name=wlp6s0
[Network]
Address=192.168.1.2/24
IPForward=yes
- Nimi â see on teie traadita liidese nimi. Tuvastage see kĂ€suga
Seega tuleb see IP-aadress lisada seansside seadistustesse. - IPForward â direktiiv, mis lubab pakettide edastamise vĂ”rgu liideses.
- Address vastutab traadita liidese IP-aadressi mÀÀramise eest. Me mÀÀrame selle staatiliselt, sest ekvivalentne direktiiv
DHCP=yes, systemd-networkd loob sĂŒsteemis vaikevĂ€rava. Siis lĂ€heb kogu liiklus lĂ€bi originaalse vĂ€rava, mitte tulevase virtuaalse liidese teises alamvĂ”rgus. Praegust vaikevĂ€ravat saate kontrollida kĂ€sugaip r
Looge staatiline marsruut SOCKS-teenusele
Kui teie SOCKS server pole kohalik, vaid eemal, siis peate looma selle jaoks staatilise marsruudi. Selleks lisage lÔppu sektsioon Route oma loodud traadita liidese konfigureerimisfaili jÀrgmise sisuga:
[Route]
Gateway=192.168.1.1
Destination=0.0.0.0
Gatewayâ see on vaikevĂ€rav vĂ”i teie originaalse juurdepÀÀsupunkti aadress.Sihtkohtâ SOCKS serveri aadress.
Konfigureerige wpa_supplicant systemd-networkd jaoks
systemd-networkd kasutab wpa_supplicant'i kaitstud juurdepÀÀsupunktiga ĂŒhendamiseks. Kui proovite âaktiveeridaâ traadita liidest, kĂ€ivitab systemd-networkd teenuse wpa_supplicant@nimi, kus nimi â see on traadita liidese nimi. Kui te pole varem systemd-networkd-d kasutanud, siis tĂ”enĂ€oliselt pole see teenus teie sĂŒsteemis olemas.
Seega looge see kÀsuga:
systemctl enable wpa_supplicant@wlp6s0Olen kasutanud wlp6s0 nimeks oma traadita liidesena. Selle nimi vÔib teil erineda. Saate seda tuvastada kÀsuga ip l.
NĂŒĂŒd on loodud teenus wpa_supplicant@wlp6s0 kĂ€ivitub, kui traadita liides on "ĂŒles tĂ”stetud", kuid see otsib omakorda SSID ja parooli seadistusi pÀÀsupunkti failist /etc/wpa_supplicant/wpa_supplicant-wlp6s0. SeetĂ”ttu on vaja see luua utiliidi abil wpa_passphrase.
Selleks kasutage kÀsku:
wpa_passphrase SSID password>/etc/wpa_supplicant/wpa_supplicant-wlp6s0.confkus SSID on teie pÀÀsupunkti nimi, password - parool ja wlp6s0 on teie traadita liidese nimi.
Algatage virtuaalne liides tun2socks jaoks
Looge fail, et algatada uut virtuaalset liidest sĂŒsteemis/etc/systemd/network/25-tun2socks.netdev
[NetDev]
Name=tun2socks
Kind=tun
- Nimi on nimi, mille systemd-networkd omistab tulevasele virtuaalsele liidesele selle algatamisel.
- Kind on virtuaalse liidese tĂŒĂŒp. Nime pĂ”hjal tun2socks teenuse jĂ€rgi vĂ”ite arvata, et see kasutab tĂŒĂŒbi liidest
tun. - netdev on faililaiend, mida
systemd-networkdkasutatakse virtuaalsete vÔrgu liideste algatamiseks. Aadress ja muud vÔrgu seadistused nende liideste jaoks on mÀÀratletud .network-failides.
Looge selline fail /etc/systemd/network/25-tun2socks.network jÀrjgnevate sisuga:
[Match]
Name=tun2socks
[Network]
Address=172.16.1.2/24
Gateway=172.16.1.1
Nimion virtuaalse liidese nimi, mille mÀÀrasite netdev-failis.Addresson IP-aadress, mis mÀÀratakse virtuaalsele liidesele. Peab olema samas vÔrgus aadressiga, mille mÀÀrasite tun2socks teenusesGatewayon "ruuteri" IP-aadress tun2socks, mille mÀÀrasite systemd teenuse loomisel.
Seega on liidesel tun2socks aadress 172.16.1.2, ja teenus tun2socks â 172.16.1.1, st on kĂ”ikide ĂŒhenduste jaoks virtuaalsest liidesest vĂ€rav.
Konfigureerige virtuaalne pÀÀsupunkt
Installige sÔltuvused:
apt install util-linux procps hostapd iw havegedLaadige hoidla create_ap oma masinasse:
git clone https://github.com/oblique/create_apMinema hoidla kausta oma masinas:
cd create_apInstallige sĂŒsteemi:
make installTeie sĂŒsteemis ilmub konfiguratsioon /etc/create_ap.conf. Siin on peamised valikud redigeerimiseks:
GATEWAY=10.0.0.1on parem teha eraldi reserveeritud alamvĂ”rguna.NO_DNS=1on vĂ€lja lĂŒlitatud, kuna seda parameetrit haldab virtuaalne liides systemd-networkd.NO_DNSMASQ=1on vĂ€lja lĂŒlitatud samal pĂ”hjusel.WIFI_IFACE=wlp6s0on sĂŒlearvuti traadita liides.INTERNET_IFACE=tun2sockson virtuaalne liides, mis on loodud tun2socks jaoks.SSID=hostapdon virtuaalse pÀÀsupunkti nimi.PASSPHRASE=12345678on parool.
Ărge unustage teenust kĂ€ivitada:
systemctl enable create_apKĂ€itage DHCP serverit systemd-networkd-s
Teenuse create_ap algatab sĂŒsteemis virtuaalse liidese ap0Idee jĂ€rgi on sellel liidesel "riputatuna" dnsmasq, kuid miks installeerida liigsed teenused, kui systemd-networkd sisaldab sisseehitatud DHCP serverit?
Selle aktiveerimiseks mÀÀrame virtuaalse punkti vÔrguseaded. Selleks looge fail /etc/systemd/network/25-ap0.network jÀrjgnevate sisuga:
[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
PÀrast seda, kui teenus create_ap initsialiseerib virtuaalse liidese ap0, mÀÀrab systemd-networkd automaatselt sellele IP-aadressi ja aktiveerib DHCP serveri.
Read EmitDNS=yes ja DNS=10.0.0.1 edastavad DNS serveri seaded seadmetele, mis on ĂŒhendatud juurdepÀÀsupunktiga.
Kui te ei kavatse kasutada kohalikku DNS serverit â minu puhul on see dnscrypt-proxy â vĂ”ite seada DNS=10.0.0.1 ja DNS=192.168.1.1, kus 192.168.1.1 â teie originaalsuleta. Siis edastatakse teie hosti ja kohaliku vĂ”rgu DNS pĂ€ringud krĂŒpteerimata lĂ€bi teenusepakkujate serverite.
EmitNTP=yes ja NTP=192.168.1.1 edastavad NTP seaded.
Sama kehtib rea kohta NTP=10.0.0.1.
Installige ja seadistage NTP server
Installige sĂŒsteemi:
apt install ntp
Muuda konfiguratsiooni /etc/ntp.conf. Kommenteerige vÀlja vaikimisi serveri aadressid:
#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
Lisage avalike serverite aadressid, nÀiteks Google'i avalik NTP:
server time1.google.com iburst
server time2.google.com iburst
server time3.google.com iburst
server time4.google.com iburst
Pakkuge oma vÔrgu klientidele juurdepÀÀs serverisse:
restrict 10.0.0.0 mask 255.255.255.0
Aktiveerige edastus oma vÔrku:
broadcast 10.0.0.255
LÔpuks lisage nende serverite aadressid staatilise marsruudi tabelisse. Selleks avage juhtmevaba liidese konfiguratsioonifail /etc/systemd/network/25-wlp6s0.network ja lisage lÔppu sektsiooni 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.12Saate teada oma NTP serverite aadresse, kasutades utiliiti host jÀrgmiselt:
host time1.google.comInstallige dnscrypt-proxy, eemaldage reklaamid ja varjage DNS liiklus pakkuja eest
apt install dnscrypt-proxyKuna teenindada hosti ja kohaliku vÔrgu DNS pÀringuid, muutke socket'i /lib/systemd/system/dnscrypt-proxy.socket. Muuda jÀrgmised read:
ListenStream=0.0.0.0:53
ListenDatagram=0.0.0.0:53TaaskÀivitage systemd:
systemctl daemon-reloadMuuda konfiguratsiooni /etc/dnscrypt-proxy/dnscrypt-proxy.toml:
server_names = ['adguard-dns']
Kuna suunata dnscrypt-proxy ĂŒhendused lĂ€bi tun2socks, lisage alla:
force_tcp = true
Muuda konfiguratsiooni /etc/resolv.conf, mis ĂŒtleb DNS serverile hostist.
nameserver 127.0.0.1
nameserver 192.168.1.1Esimene rida vĂ”imaldab dnscrypt-proxy kasutamist, teine âââ kasutab originaalsuleta, kui dnscrypt-proxy server pole saadaval.
Valmis!
TaaskÀivitage vÔi peatage aktiivsed vÔrguteenused:
systemctl stop networking NetworkManager NetworkManager-wait-onlineJa taaskÀivitage kÔik vajalikud:
systemctl restart systemd-networkd tun2socks create_ap dnscrypt-proxy ntpPÀrast taaskÀivitamist vÔi lÀhtestamist saate teise juurdepÀÀsupunkti, mis suunab hosti ja kohaliku vÔrgu seadmed SOCKS-i.
Umbes nii vĂ€lja nĂ€eb vĂ€ljund Seega tuleb see IP-aadress lisada seansside seadistustesse tavalise sĂŒlearvuti kohta:
1: lo: 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: 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: 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: 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: 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
KokkuvÔttes
- Teenusepakkuja nĂ€eb ainult teie SOCKS-serverisse suunatud krĂŒpteeritud ĂŒhendust, seega ei nĂ€e nad midagi.
- Kuid nad nÀevad teie NTP-pÀringuid, et seda vÀltida, eemaldage staatilised marsruudid NTP-serverite jaoks. Kuid pole kindel, kas teie SOCKS-server toetab NTP-protokolli.
Kohandamine, mida on mÀrgatud Debian 10-s
Kui proovite vÔrgu teenust konsoolist taaskÀivitada, kukub see viga. See on seotud sellega, et tema osa virtuaalsest liidesest on seotud teenusega tun2socks ja seega kasutatakse. Enne vÔrgu teenuse taaskÀitamist tuleb kÔigepealt peatada teenus tun2socks. Aga ma arvan, et kui olete lÔpuni lugenud, ei ole see teile kindlasti probleem!
Viidatud lingid
Allikas: habr.com
