Ngawangun router dina SOCKS dina laptop sareng Debian 10
Sapanjang taun (atanapi dua) kuring ditunda nyebarkeun tulisan ieu kusabab alesan utama - kuring parantos nyebarkeun dua tulisan dimana kuring ngajelaskeun prosés nyiptakeun router dina SOCKS tina laptop anu biasa sareng Debian.
Nanging, ti saprak éta vérsi stabil Debian parantos diénggalan ka Buster, sajumlah cekap jalma ngahubungi kuring sacara pribadi naroskeun bantosan kana pangaturan, anu hartosna tulisan kuring sateuacana henteu tuntas. Nya, kuring sorangan ngaduga yén metodeu anu digariskeun dina éta henteu sapinuhna ngungkabkeun sagala kerumitan nyetél Linux pikeun routing di SOCKS. Salaku tambahan, aranjeunna ditulis pikeun Debian Stretch, sareng saatos ningkatkeun ka Buster, dina sistem init systemd, kuring perhatikeun parobahan leutik dina interaksi jasa. Sareng dina tulisan sorangan, kuring henteu nganggo systemd-networkd, sanaos éta paling cocog pikeun konfigurasi jaringan kompléks.
Salian parobahan di luhur, jasa di handap ieu ditambahkeun kana konfigurasi kuring: hostapd - jasa pikeun virtualisasi titik aksés, ntp pikeun nyingkronkeun waktos klien jaringan lokal, dnscrypt-proxy pikeun énkripsi sambungan via DNS sareng nganonaktipkeun pariwara dina klien jaringan lokal, sareng ogé, sakumaha anu kuring disebutkeun tadi, systemd-jaringand pikeun ngonpigurasikeun interfaces jaringan.
Di handap ieu diagram blok basajan tina struktur internal router sapertos.
Janten, hayu atuh ngingetkeun anjeun naon tujuan tina séri tulisan ieu:
Rutekeun sadaya sambungan OS ka SOCKS, kitu ogé sambungan tina sadaya alat dina jaringan anu sami sareng laptop.
Laptop dina hal kuring kedah tetep lengkep mobile. Nyaéta, pikeun masihan kasempetan pikeun ngagunakeun lingkungan desktop sareng henteu kabeungkeut kana lokasi fisik.
Titik anu terakhir nunjukkeun sambungan sareng rute ngan ukur ngalangkungan antarbeungeut nirkabel anu diwangun.
Nya, sareng tangtosna, nyiptakeun pituduh anu komprehensif, ogé analisa téknologi anu relevan pikeun anu pangsaéna tina pangaweruh sederhana kuring.
Naon anu bakal dibahas dina tulisan ieu:
séwang - download repositories proyék kaos kaki tun2diperlukeun jalur lalulintas TCP mun SOCKS, jeung create_ap — naskah pikeun ngajadikeun otomatis setelan titik aksés virtual ngagunakeun hostapd.
kaos kaki tun2 - ngawangun sareng pasang jasa systemd dina sistem.
systemd-jaringand - Konpigurasikeun interfaces nirkabel sarta virtual, tabel routing statik sarta pakét redirection.
create_ap - masang layanan systemd dina sistem, ngonpigurasikeun sareng ngajalankeun titik aksés virtual.
léngkah pilihan:
ntp - masang sareng ngonpigurasikeun server pikeun nyinkronkeun waktos dina klien titik aksés virtual.
dnscrypt-proxy - kami bakal énkripsi pamundut DNS, rute ka SOCKS sareng nganonaktipkeun domain iklan pikeun jaringan lokal.
Keur naon ieu sadayana?
Ieu salah sahiji cara pikeun ngamankeun sambungan TCP dina jaringan lokal. Kauntungan utama nyaéta yén sadaya sambungan anu dilakukeun dina SOCKS, iwal hiji jalur statik diwangun pikeun aranjeunna ngaliwatan gateway aslina. Ieu ngandung harti yén anjeun teu kudu nangtukeun setélan server SOCKS boh program individu atawa klien dina jaringan lokal - aranjeunna sadayana buka SOCKS sacara standar, saprak éta gateway standar dugi kami nunjukkeun disebutkeun.
Intina kami nambihan router énkripsi kadua salaku laptop di payuneun router asli sareng nganggo sambungan internét router asli pikeun pamundut SOCKS anu parantos énkripsi laptop, anu dina gilirannana rute sareng énkripsi pamundut ti klien LAN.
Tina sudut pandang panyadia, kami terus nyambung ka hiji server kalayan lalu lintas énkripsi.
Sasuai, sadaya alat disambungkeun ka titik aksés virtual laptop urang.
Pasang tun2socks dina sistem
Salami mesin anjeun gaduh internét, unduh sadaya alat anu diperyogikeun.
apt update
apt install git make cmake
Unduh paket badvpn
git clone https://github.com/ambrop72/badvpn
Polder bakal muncul dina sistem anjeun badvpn. Jieun folder misah pikeun ngawangun
--tundev - nyokot nami panganteur maya nu urang initialize kalawan systemd-networkd.
--netif-ipaddr - alamat jaringan tina tun2socks "router" nu panganteur virtual disambungkeun. Éta langkung saé pikeun misahkeunana subnet ditangtayungan.
--socks-server-addr - nampi stop kontak (адрес:порт server SOCKS).
Lamun server SOCKS Anjeun merlukeun auténtikasi, Anjeun bisa nangtukeun parameter --username и --password.
Salajengna, ngadaptar jasa
systemctl daemon-reload
Sareng hurungkeun
systemctl enable tun2socks
Sateuacan ngamimitian jasa, kami bakal nyayogikeun antarmuka jaringan virtual.
NetworkManager-antos-online mangrupakeun ladenan nu ngantosan sambungan jaringan jalan samemeh systemd terus ngamimitian ladenan sejenna nu gumantung kana ayana jaringan. Kami nganonaktipkeun éta nalika urang ngalih ka analog systemd-networkd.
Hayu urang aktipkeun langsung:
systemctl enable systemd-networkd-wait-online
Setel panganteur jaringan nirkabel
Jieun file konfigurasi systemd-networkd pikeun panganteur jaringan nirkabel /etc/systemd/network/25-wlp6s0.network.
nami nyaeta nami panganteur nirkabel Anjeun. Identipikasi eta kalawan paréntah ip a.
IPForward - diréktif anu ngamungkinkeun pakét alihan dina panganteur jaringan.
alamat tanggung jawab napelkeun alamat IP ka panganteur nirkabel. Urang tangtukeun eta statik sabab kalawan diréktif sarua DHCP=yes, systemd-networkd nyiptakeun gateway standar dina sistem. Lajeng sadayana lalulintas bakal ngaliwatan gateway aslina, teu ngaliwatan panganteur maya hareup dina subnet béda. Anjeun tiasa pariksa gateway standar ayeuna kalayan paréntah ip r
Jieun rute statik pikeun server SOCKS jauh
Upami server SOCKS anjeun henteu lokal, tapi jauh, maka anjeun kedah nyiptakeun rute statik pikeun éta. Jang ngalampahkeun ieu, tambahkeun bagian Route nepi ka ahir file konfigurasi interface nirkabel Anjeun dijieun jeung eusi handap:
[Route]
Gateway=192.168.1.1
Destination=0.0.0.0
Gateway — ieu mangrupikeun gerbang standar atanapi alamat titik aksés asli anjeun.
Destination - Alamat server SOCKS.
Konpigurasikeun wpa_supplicant pikeun systemd-networkd
systemd-networkd nganggo wpa_supplicant pikeun nyambung ka titik aksés anu aman. Nalika nyobian "ngangkat" antarbeungeut nirkabel, systemd-networkd ngamimitian jasa wpa_supplicant@имяdimana nami nyaeta nami panganteur nirkabel. Upami anjeun teu acan nganggo systemd-networkd sateuacan titik ieu, maka jasa ieu sigana leungit dina sistem anjeun.
Janten jieun ku paréntah:
systemctl enable wpa_supplicant@wlp6s0
Kuring dipaké wlp6s0 salaku nami panganteur nirkabel na. Ngaran anjeun bisa jadi béda. Anjeun tiasa ngakuan eta kalawan paréntah ip l.
Ayeuna jasa dijieun wpa_supplicant@wlp6s0 bakal diluncurkeun nalika antarbeungeut nirkabel "diangkat", kumaha ogé, éta bakal milarian setélan SSID sareng kecap akses titik aksés dina file. /etc/wpa_supplicant/wpa_supplicant-wlp6s0. Ku alatan éta, anjeun kedah nyiptakeunana nganggo utilitas wpa_passphrase.
di mana SSID nyaeta nami titik aksés Anjeun, sandi nyaeta sandi, jeung wlp6s0 — nami antarmuka nirkabel anjeun.
Initialize panganteur maya pikeun tun2socks
Jieun file pikeun initialize panganteur virtual anyar dina sistem/etc/systemd/network/25-tun2socks.netdev
[NetDev]
Name=tun2socks
Kind=tun
nami nyaeta nami anu systemd-networkd bakal napelkeun ka panganteur maya hareup nalika eta geus initialized.
hade mangrupakeun tipe panganteur virtual. Tina nami jasa tun2socks, anjeun tiasa nebak yén éta ngagunakeun antarmuka sapertos tun.
netdev nyaeta ekstensi file anu systemd-networkd Mangpaat pikeun initialize interfaces jaringan virtual. Alamat sareng setélan jaringan sanés pikeun antarmuka ieu dijelaskeun dina .jaringan-berkas.
Jieun file kawas kieu /etc/systemd/network/25-tun2socks.network kalawan eusi handap:
Name — nami antarbeungeut virtual anu anjeun tunjukkeun netdev- file.
Address - Alamat IP anu bakal ditugaskeun ka antarmuka virtual. Kedah aya dina jaringan anu sami sareng alamat anu anjeun jelaskeun dina jasa tun2socks
Gateway - Alamat IP tina "router" kaos kaki tun2, anu anjeun tangtoskeun nalika nyiptakeun jasa systemd.
Jadi panganteur kaos kaki tun2 boga alamat 172.16.1.2, sareng jasa kaos kaki tun2 - 172.16.1.1, nyaeta, eta teh gateway pikeun sakabéh sambungan tina panganteur virtual.
Nyetél titik aksés virtual
Pasang dependensi:
apt install util-linux procps hostapd iw haveged
Unduh gudang create_ap kana mobil anjeun:
git clone https://github.com/oblique/create_ap
Pindah ka folder gudang dina mesin anjeun:
cd create_ap
Pasang dina sistem:
make install
A config bakal muncul dina sistem Anjeun /etc/create_ap.conf. Ieu pilihan éditan utama:
GATEWAY=10.0.0.1 - éta hadé pikeun nyieun subnet ditangtayungan misah.
NO_DNS=1 - nganonaktipkeun, sabab parameter ieu bakal diurus ku interface virtual systemd-networkd.
NO_DNSMASQ=1 - mareuman pikeun alesan anu sarua.
WIFI_IFACE=wlp6s0 - panganteur nirkabel laptop.
INTERNET_IFACE=tun2socks - panganteur maya dijieun pikeun tun2socks.
SSID=hostapd - ngaran titik aksés virtual.
PASSPHRASE=12345678 - sandi.
Tong hilap ngaktifkeun jasa:
systemctl enable create_ap
Aktipkeun server DHCP dina systemd-networkd
Palayanan create_ap initializes panganteur virtual dina sistem ap0. Dina tiori, dnsmasq ngagantung dina panganteur ieu, tapi naha install jasa tambahan lamun systemd-networkd ngandung hiji diwangun-di server DHCP?
Pikeun ngaktifkeunana, urang bakal nangtukeun setélan jaringan pikeun titik virtual. Jang ngalampahkeun ieu, jieun file /etc/systemd/network/25-ap0.network kalawan eusi handap:
Saatos jasa create_ap initializes panganteur virtual ap0, systemd-networkd bakal otomatis masihan alamat IP sareng ngaktipkeun server DHCP.
Senar EmitDNS=yes и DNS=10.0.0.1 ngirimkeun setelan pangladén DNS ka alat nu disambungkeun ka titik aksés.
Upami anjeun henteu ngarencanakeun ngagunakeun pangladén DNS lokal - bisi kuring nyaéta dnscrypt-proxy - anjeun tiasa pasang DNS=10.0.0.1 в DNS=192.168.1.1dimana 192.168.1.1 - alamat gateway aslina anjeun. Lajeng requests DNS pikeun host anjeun sarta jaringan lokal bakal balik unencrypted ngaliwatan server panyadia urang.
EmitNTP=yes и NTP=192.168.1.1 mindahkeun setélan NTP.
Tambahkeun alamat pangladén umum, contona Google Public NTP:
server time1.google.com ibrust
server time2.google.com ibrust
server time3.google.com ibrust
server time4.google.com ibrust
Nyadiakeun aksés ka server ka klien dina jaringan anjeun:
restrict 10.0.0.0 mask 255.255.255.0
Aktipkeun siaran ka jaringan anjeun:
broadcast 10.0.0.255
Tungtungna, tambahkeun alamat tina server ieu kana tabel routing statik. Jang ngalampahkeun ieu, buka file konfigurasi interface nirkabel /etc/systemd/network/25-wlp6s0.network jeung tambahkeun ka tungtung bagian Route.
Saatos reboot atanapi balikan deui, anjeun bakal gaduh titik aksés kadua anu rute host sareng alat LAN ka SOCKS.
Ieu naon kaluaran kasampak kawas ip a laptop biasa:
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
Dina ahir
Panyadia ngan ukur ningali sambungan énkripsi kana server SOCKS anjeun, anu hartosna aranjeunna henteu ningali nanaon.
Sareng éta ningali pamundut NTP anjeun, pikeun nyegah ieu, hapus rute statik pikeun server NTP. Nanging, éta henteu pasti yén server SOCKS anjeun ngamungkinkeun protokol NTP.
Kruk katingal dina Debain 10
Upami anjeun nyobian ngabalikan deui jasa jaringan tina konsol, éta bakal gagal sareng kasalahan. Ieu alatan kanyataan yén bagian tina eta dina bentuk panganteur maya dihijikeun ka layanan tun2socks, nu hartina dipaké. Pikeun ngabalikan deui jasa jaringan, anjeun kedah ngeureunkeun heula jasa tun2socks. Tapi, Jigana, lamun maca nepi ka ahir, ieu pasti teu jadi masalah pikeun anjeun!