Bati yon routeur nan SOCKS sou yon laptop ak Debian 10
Pou yon ane antye (oswa de) mwen sispann pibliye atik sa a pou rezon prensipal la - mwen te deja pibliye de atik kote mwen dekri pwosesis la nan kreye yon routeur nan SOCKS soti nan yon laptop trè òdinè ak Debian.
Sepandan, depi lè sa a vèsyon ki estab nan Debian te mete ajou nan Buster, yon kantite ase moun te kontakte mwen an prive pou mande èd ak konfigirasyon an, ki vle di ke atik anvan mwen yo pa konplè. Oke, mwen menm mwen te devine ke metòd yo dekri nan yo pa totalman revele tout sibtilite ki genyen nan mete Linux pou routage nan SOCKS. Anplis de sa, yo ekri pou Debian Stretch, epi apre yo fin amelyore Buster, nan sistèm init systemd la, mwen remake ti chanjman nan entèraksyon sèvis yo. Ak nan atik yo tèt yo, mwen pa t 'sèvi ak systemd-networkd, byenke li pi byen adapte pou konfigirasyon rezo konplèks.
Anplis de chanjman ki anwo yo, sèvis sa yo te ajoute nan konfigirasyon mwen an: hostapd - sèvis pou virtualisation pwen aksè, ntp pou senkronize lè kliyan rezo lokal yo, dnscrypt-proxy ankripte koneksyon atravè DNS ak enfim piblisite sou kliyan rezo lokal yo, epi tou, jan mwen mansyone pi bonè, systemd-networkd pou konfigirasyon rezo interfaces.
Isit la se yon senp dyagram blòk nan estrikti entèn nan yon routeur konsa.
Kidonk, kite m fè w sonje ki objektif seri atik sa a ye:
Wout tout koneksyon OS yo nan SOCKS, osi byen ke koneksyon ki soti nan tout aparèy sou rezo a menm ak laptop la.
Laptop nan ka mwen an ta dwe rete konplètman mobil. Sa vle di, bay opòtinite pou yo sèvi ak anviwònman an Desktop epi yo pa dwe mare nan yon kote fizik.
Dènye pwen an implique koneksyon ak routage sèlman atravè koòdone san fil bati-an.
Oke, ak nan kou, kreyasyon an nan yon gid konplè, osi byen ke yon analiz de teknoloji ki enpòtan nan pi bon nan konesans modès mwen an.
Ki sa ki pral kouvri nan atik sa a:
ale — telechaje depo pwojè yo tun2socksoblije wout trafik TCP nan SOCKS, ak kreye_ap — yon script pou otomatize konfigirasyon yon pwen aksè vityèl lè l sèvi avèk hostapd.
tun2socks — konstwi ak enstale sèvis systemd sou sistèm nan.
systemd-networkd — konfigirasyon entèfas san fil ak vityèl, tab routage estatik ak redireksyon pake.
kreye_ap — enstale sèvis systemd sou sistèm nan, konfigirasyon epi lanse yon pwen aksè vityèl.
Etap opsyonèl:
ntp — enstale ak konfigirasyon yon sèvè pou senkronize tan sou kliyan pwen aksè vityèl.
dnscrypt-proxy — nou pral ankripte demann DNS, mennen yo nan SOCKS epi enfim domèn piblisite pou rezo lokal la.
Pou kisa tout bagay sa a ye?
Sa a se youn nan fason yo sekirize koneksyon TCP sou yon rezo lokal. Avantaj prensipal la se ke tout koneksyon yo fèt nan SOCKS, sof si yo bati yon wout estatik pou yo atravè pòtay orijinal la. Sa vle di ke ou pa bezwen presize paramèt sèvè SOCKS pou pwogram endividyèl oswa kliyan sou rezo lokal la - yo tout ale nan SOCKS pa default, paske li se pòtay default jiskaske nou endike otreman.
Esansyèlman nou ajoute yon dezyèm routeur chifreman kòm yon laptop devan routeur orijinal la epi sèvi ak koneksyon Entènèt routeur orijinal la pou demann SOCKS ki deja ankripte laptop la, ki an vire wout ak chifre demann soti nan kliyan LAN.
Soti nan pwen de vi founisè a, nou toujou ap konekte ak yon sèl sèvè ak trafik chiffres.
An konsekans, tout aparèy yo konekte ak pwen aksè vityèl laptop la.
Enstale tun2socks sou sistèm lan
Osi lontan ke machin ou a gen entènèt, telechaje tout zouti ki nesesè yo.
apt update
apt install git make cmake
Telechaje pake badvpn la
git clone https://github.com/ambrop72/badvpn
Yon katab ap parèt sou sistèm ou an badvpn. Kreye yon katab separe pou bati a
NetworkManager-tann-sou entènèt se yon sèvis ki tann yon koneksyon rezo k ap travay anvan systemd kontinye kòmanse lòt sèvis ki depann de prezans yon rezo. Nou ap enfim li pandan n ap chanje nan analòg systemd-networkd.
Ann pèmèt li touswit:
systemctl enable systemd-networkd-wait-online
Mete kanpe koòdone rezo san fil la
Kreye yon fichye konfigirasyon systemd-networkd pou koòdone rezo san fil la /etc/systemd/network/25-wlp6s0.network.
Non se non koòdone san fil ou a. Idantifye li ak kòmandman an ip a.
IPForward - yon direktiv ki pèmèt redireksyon pake sou yon koòdone rezo.
adrès responsab pou bay yon adrès IP nan koòdone san fil la. Nou presize li statikman paske ak direktiv la ekivalan DHCP=yes, systemd-networkd kreye yon pòtay default sou sistèm nan. Lè sa a, tout trafik pral pase nan pòtay orijinal la, epi yo pa atravè koòdone nan lavni vityèl sou yon sous-rezo diferan. Ou ka tcheke pòtay aktyèl la default ak lòd la ip r
Kreye yon wout estatik pou sèvè SOCKS aleka
Si sèvè SOCKS ou a pa lokal, men aleka, Lè sa a, ou bezwen kreye yon wout estatik pou li. Pou fè sa, ajoute yon seksyon Route jiska fen fichye konfigirasyon koòdone san fil ou te kreye ak kontni sa a:
[Route]
Gateway=192.168.1.1
Destination=0.0.0.0
Gateway — sa a se pòtay default oswa adrès pwen aksè orijinal ou a.
Destination — Adrès sèvè SOCKS.
Konfigure wpa_supplicant pou systemd-networkd
systemd-networkd itilize wpa_supplicant pou konekte avèk yon pwen aksè an sekirite. Lè w ap eseye "leve" koòdone san fil la, systemd-networkd kòmanse sèvis la wpa_supplicant@имяkote Non se non koòdone san fil la. Si ou pa te itilize systemd-networkd anvan pwen sa a, Lè sa a, sèvis sa a se pwobableman manke nan sistèm ou an.
Se konsa, kreye li ak lòd la:
systemctl enable wpa_supplicant@wlp6s0
Mwen te itilize wlp6s0 kòm non an nan koòdone san fil li yo. Non ou ka diferan. Ou ka rekonèt li ak kòmandman an ip l.
Koulye a, sèvis la kreye wpa_supplicant@wlp6s0 pral lanse lè koòdone san fil "leve", sepandan, li, nan vire, pral gade pou SSID ak modpas anviwònman pwen aksè a nan dosye a. /etc/wpa_supplicant/wpa_supplicant-wlp6s0. Se poutèt sa, ou bezwen kreye li lè l sèvi avèk sèvis piblik la wpa_passphrase.
kote Ssid se non pwen aksè ou, modpas se modpas la, epi wlp6s0 — non koòdone san fil ou a.
Inisyalize koòdone vityèl la pou tun2socks
Kreye yon fichye pou inisyalize yon nouvo koòdone vityèl nan sistèm nan/etc/systemd/network/25-tun2socks.netdev
[NetDev]
Name=tun2socks
Kind=tun
Non se non ke systemd-networkd pral bay koòdone vityèl nan lavni lè li inisyalize.
Pitit se yon kalite koòdone vityèl. Soti nan non an nan sèvis la tun2socks, ou ka devine ke li sèvi ak yon koòdone tankou tun.
netdev se ekstansyon de fichiers sa systemd-networkd Itilize pou inisyalize entèfas rezo vityèl. Adrès ak lòt paramèt rezo pou interfaces sa yo espesifye nan .rezo-fichye.
Kreye yon dosye tankou sa a /etc/systemd/network/25-tun2socks.network ak kontni sa a:
Name — non koòdone vityèl ou espesifye nan netdev-dosye.
Address — Adrès IP ki pral asiyen nan koòdone vityèl la. Dwe sou menm rezo a ak adrès ou espesifye nan sèvis tun2socks la
Gateway - adrès IP "routeur" la tun2socks, ke ou espesifye lè w ap kreye sèvis systemd la.
Se konsa, koòdone la tun2socks gen yon adrès 172.16.1.2, ak sèvis la tun2socks - 172.16.1.1, se sa ki, li se pòtay la pou tout koneksyon ki soti nan koòdone vityèl la.
Mete kanpe yon pwen aksè vityèl
Enstale depandans:
apt install util-linux procps hostapd iw haveged
Telechaje repozitwa a kreye_ap nan machin ou:
git clone https://github.com/oblique/create_ap
Ale nan katab depo sou machin ou an:
cd create_ap
Enstale sou sistèm lan:
make install
Yon konfigirasyon ap parèt sou sistèm ou an /etc/create_ap.conf. Men opsyon koreksyon prensipal yo:
GATEWAY=10.0.0.1 - li pi bon pou fè li yon sou-rezè rezève apa.
NO_DNS=1 - enfim, paske paramèt sa a pral jere pa koòdone vityèl systemd-networkd.
NO_DNSMASQ=1 - fèmen li pou menm rezon an.
WIFI_IFACE=wlp6s0 - koòdone san fil laptop.
INTERNET_IFACE=tun2socks - yon koòdone vityèl kreye pou tun2socks.
SSID=hostapd — non pwen aksè vityèl la.
PASSPHRASE=12345678 - modpas.
Pa bliye aktive sèvis la:
systemctl enable create_ap
Pèmèt sèvè DHCP nan systemd-networkd
Sèvis create_ap inisyalize yon koòdone vityèl nan sistèm nan Ap0. Nan teyori, dnsmasq pandye sou koòdone sa a, men poukisa enstale sèvis siplemantè si systemd-networkd gen yon sèvè DHCP entegre?
Pou pèmèt li, nou pral defini anviwònman rezo yo pou pwen vityèl la. Pou fè sa, kreye yon dosye /etc/systemd/network/25-ap0.network ak kontni sa a:
Apre sèvis create_ap la inisyalize koòdone vityèl la ap0, systemd-networkd pral otomatikman bay li yon adrès IP epi pèmèt sèvè DHCP la.
Fisèl EmitDNS=yes и DNS=10.0.0.1 transmèt anviwònman sèvè DNS nan aparèy ki konekte ak pwen aksè a.
Si ou pa planifye pou itilize yon sèvè DNS lokal - nan ka mwen an se dnscrypt-proxy - ou ka enstale DNS=10.0.0.1 в DNS=192.168.1.1kote 192.168.1.1 — adrès pòtay orijinal ou a. Lè sa a, demann DNS pou lame w la ak rezo lokal yo pral dekode atravè sèvè founisè a.
EmitNTP=yes и NTP=192.168.1.1 transfere paramèt NTP yo.
Menm bagay la tou ale pou liy lan NTP=10.0.0.1.
Enstale ak konfigirasyon sèvè NTP
Enstale sou sistèm lan:
apt install ntp
Edit konfigirasyon an /etc/ntp.conf. Kòmante adrès pisin estanda yo:
Ajoute adrès sèvè piblik yo, pa egzanp Google Public NTP:
server time1.google.com ibrust
server time2.google.com ibrust
server time3.google.com ibrust
server time4.google.com ibrust
Bay kliyan sou rezo ou aksè a sèvè a:
restrict 10.0.0.0 mask 255.255.255.0
Pèmèt emisyon sou rezo ou a:
broadcast 10.0.0.255
Finalman, ajoute adrès serveurs sa yo nan tab routage estatik la. Pou fè sa, louvri dosye a konfigirasyon koòdone san fil /etc/systemd/network/25-wlp6s0.network epi ajoute nan fen seksyon an Route.
Apre yon rdemare oswa rekòmanse, ou pral gen yon dezyèm pwen aksè ki wout lame a ak aparèy LAN nan SOCKS.
Sa a se sa pwodiksyon an sanble ip a laptop regilye:
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
Nan fen an
Founisè a sèlman wè koneksyon an chiffres ak sèvè SOCKS ou a, ki vle di yo pa wè anyen.
Men, li wè demann NTP ou yo, yo anpeche sa a, retire wout estatik pou serveurs NTP. Sepandan, li pa sèten ke sèvè SOCKS ou a pèmèt pwotokòl NTP la.
Beki takte sou Debain 10
Si ou eseye rekòmanse sèvis rezo a soti nan konsole a, li pral echwe ak yon erè. Sa a se akòz lefèt ke yon pati nan li nan fòm lan nan yon koòdone vityèl se mare nan sèvis la tun2socks, ki vle di li se itilize. Pou rekòmanse sèvis rezo a, ou dwe premye sispann sèvis tun2socks la. Men, mwen panse, si ou li jiska la fen, sa a se definitivman pa yon pwoblèm pou ou!