Ehitusme riuter SOCKS-i oma sĂŒlearvutis Debian 10-ga

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.

Ehitusme riuter SOCKS-i oma sĂŒlearvutis Debian 10-ga

Kordaksin, milliseid eesmĂ€rke kĂ€tkeb see artiklite tsĂŒkkel:

  1. Marsruutida SOCKS-i kĂ”ik operatsioonisĂŒsteemi ĂŒhendused ja kĂ”ik seadmete ĂŒhendused, mis asuvad sĂŒlearvuti samas vĂ”rgus.
  2. 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.
  3. Viimane punkt eeldab, et ĂŒhendus ja marsruutimine toimuvad ainult sisse ehitatud traadita liidese kaudu.
  4. Ja muidugi luua ammendav juhend ning arutada vastavaid tehnoloogiaid minu tagasihoidlike teadmiste piires.

Millest kÀesolevas artiklis rÀÀgitakse:

  1. git — alla laadime projektide repod tun2socks, vajalikud TCP liikluse marsruutimiseks SOCKS-iga ja create_ap — skript virtuaalse juurdepÀÀsupunkti seadistamise automatiseerimiseks hostapd.
  2. tun2socks — loome ja installime systemd teenuse sĂŒsteemi.
  3. systemd-networkd — seadistame traadita ja virtuaalsed liidesed, staatiliste marsruutimislaudade ning pakettide edasisaatmise.
  4. 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 update
apt install git make cmake

Laadige 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=1 kustutab kĂ”ik badvpn hoidla komponendid.
  • —DBUILD_TUN2SOCKS=1 lĂŒ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 reserveeritud alamvĂ”rk..
  • --socks-server-addr — vĂ”tab socket'i (aadress:port SOCKS server).

Kui teie SOCKS server nÔuab autentimist, vÔite mÀÀrata parameetrid --username ja --password.

Edasi registreerige teenus

systemctl daemon-reload

Ja aktiveerige

systemctl enable tun2socks

Enne teenuse kÀivitamist, varustame selle virtuaalse vÔrgu liidesega.

Liigume systemd-networkd peale

LĂŒlitame sisse systemd-networkd:

systemctl enable systemd-networkd

Keelame 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-online

Konfigureerige 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Ă€suga ip 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@wlp6s0

Olen 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.conf

kus 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-networkd kasutatakse 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
  • Nimi on virtuaalse liidese nimi, mille mÀÀrasite netdev-failis.
  • Address on IP-aadress, mis mÀÀratakse virtuaalsele liidesele. Peab olema samas vĂ”rgus aadressiga, mille mÀÀrasite tun2socks teenuses
  • Gateway on "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 haveged

Laadige hoidla create_ap oma masinasse:

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

Minema hoidla kausta oma masinas:

cd create_ap

Installige sĂŒsteemi:

make install

Teie sĂŒsteemis ilmub konfiguratsioon /etc/create_ap.conf. Siin on peamised valikud redigeerimiseks:

  • GATEWAY=10.0.0.1 on parem teha eraldi reserveeritud alamvĂ”rguna.
  • NO_DNS=1 on vĂ€lja lĂŒlitatud, kuna seda parameetrit haldab virtuaalne liides systemd-networkd.
  • NO_DNSMASQ=1 on vĂ€lja lĂŒlitatud samal pĂ”hjusel.
  • WIFI_IFACE=wlp6s0 on sĂŒlearvuti traadita liides.
  • INTERNET_IFACE=tun2socks on virtuaalne liides, mis on loodud tun2socks jaoks.
  • SSID=hostapd on virtuaalse pÀÀsupunkti nimi.
  • PASSPHRASE=12345678 on parool.

Ärge unustage teenust kĂ€ivitada:

systemctl enable create_ap

KĂ€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.12

Saate teada oma NTP serverite aadresse, kasutades utiliiti host jÀrgmiselt:

host time1.google.com

Installige dnscrypt-proxy, eemaldage reklaamid ja varjage DNS liiklus pakkuja eest

apt install dnscrypt-proxy

Kuna 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:53

TaaskÀivitage systemd:

systemctl daemon-reload

Muuda 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.1

Esimene 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-online

Ja taaskÀivitage kÔik vajalikud:

systemctl restart systemd-networkd tun2socks create_ap dnscrypt-proxy ntp

PÀ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

  1. Teenusepakkuja nĂ€eb ainult teie SOCKS-serverisse suunatud krĂŒpteeritud ĂŒhendust, seega ei nĂ€e nad midagi.
  2. 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

  1. Staatiline marsruutimine Linuxis - IBM
  2. systemd-networkd.service - Freedesktop.org
  3. Tun2socks · ambrop72/badvpn Wiki · GitHub
  4. oblique/create_ap: See skript loob NATed vÔi sillaga WiFi juurdepÀÀsupunkti.
  5. dnscrypt-proxy 2 - Paindlik DNS-proxy, mis toetab krĂŒpteeritud DNS-protokolle.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster