మొత్తం సంవత్సరం (లేదా రెండు) నేను ప్రధాన కారణం కోసం ఈ కథనాన్ని ప్రచురించడాన్ని నిలిపివేసాను - నేను డెబియన్తో చాలా సాధారణ ల్యాప్టాప్ నుండి సాక్స్లో రూటర్ను సృష్టించే ప్రక్రియను వివరించిన రెండు కథనాలను ఇప్పటికే ప్రచురించాను.
అయినప్పటికీ, డెబియన్ యొక్క స్థిరమైన సంస్కరణ బస్టర్కి నవీకరించబడింది, సెటప్లో సహాయం కోసం తగినంత మంది వ్యక్తులు నన్ను ప్రైవేట్గా సంప్రదించారు, అంటే నా మునుపటి కథనాలు సమగ్రంగా లేవు. బాగా, వాటిలో వివరించిన పద్ధతులు సాక్స్లో రూటింగ్ కోసం Linuxని సెటప్ చేయడంలో ఉన్న అన్ని చిక్కులను పూర్తిగా బహిర్గతం చేయలేదని నేను ఊహించాను. అదనంగా, అవి డెబియన్ స్ట్రెచ్ కోసం వ్రాయబడ్డాయి మరియు బస్టర్కి అప్గ్రేడ్ చేసిన తర్వాత, systemd init సిస్టమ్లో, నేను సేవల పరస్పర చర్యలో చిన్న మార్పులను గమనించాను. మరియు వ్యాసాలలో, నేను systemd-networkdని ఉపయోగించలేదు, అయినప్పటికీ ఇది సంక్లిష్ట నెట్వర్క్ కాన్ఫిగరేషన్లకు బాగా సరిపోతుంది.
పై మార్పులకు అదనంగా, కింది సేవలు నా కాన్ఫిగరేషన్కు జోడించబడ్డాయి: hostapd - యాక్సెస్ పాయింట్ వర్చువలైజేషన్ కోసం సేవ, NTP స్థానిక నెట్వర్క్ క్లయింట్ల సమయాన్ని సమకాలీకరించడానికి, dnscrypt-proxy DNS ద్వారా కనెక్షన్లను గుప్తీకరించడానికి మరియు స్థానిక నెట్వర్క్ క్లయింట్లలో ప్రకటనలను నిలిపివేయడానికి మరియు నేను ఇంతకు ముందు చెప్పినట్లుగా, systemd-networkd నెట్వర్క్ ఇంటర్ఫేస్లను కాన్ఫిగర్ చేయడం కోసం.
అటువంటి రౌటర్ యొక్క అంతర్గత నిర్మాణం యొక్క సాధారణ బ్లాక్ రేఖాచిత్రం ఇక్కడ ఉంది.
కాబట్టి, ఈ కథనాల శ్రేణి యొక్క లక్ష్యాలు ఏమిటో నేను మీకు గుర్తు చేస్తాను:
అన్ని OS కనెక్షన్లను SOCKSకి, అలాగే ల్యాప్టాప్ వలె ఒకే నెట్వర్క్లోని అన్ని పరికరాల నుండి కనెక్షన్లను రూట్ చేయండి.
నా విషయంలో ల్యాప్టాప్ పూర్తిగా మొబైల్గా ఉండాలి. అంటే, డెస్క్టాప్ వాతావరణాన్ని ఉపయోగించడానికి మరియు భౌతిక స్థానానికి అనుసంధానించబడకుండా ఉండటానికి అవకాశం ఇవ్వడం.
చివరి పాయింట్ అంతర్నిర్మిత వైర్లెస్ ఇంటర్ఫేస్ ద్వారా మాత్రమే కనెక్షన్ మరియు రూటింగ్ను సూచిస్తుంది.
బాగా, మరియు కోర్సు యొక్క, సమగ్ర గైడ్ యొక్క సృష్టి, అలాగే నా నిరాడంబరమైన జ్ఞానం మేరకు సంబంధిత సాంకేతికతలను విశ్లేషించడం.
ఈ వ్యాసంలో ఏమి కవర్ చేయబడుతుంది:
వెళ్ళండి — ప్రాజెక్ట్ రిపోజిటరీలను డౌన్లోడ్ చేయండి tun2socksTCP ట్రాఫిక్ని SOCKSకి మార్చడానికి అవసరం, మరియు create_ap — ఉపయోగించి వర్చువల్ యాక్సెస్ పాయింట్ సెటప్ను ఆటోమేట్ చేయడానికి స్క్రిప్ట్ hostapd.
NTP — వర్చువల్ యాక్సెస్ పాయింట్ క్లయింట్లపై సమయాన్ని సమకాలీకరించడానికి సర్వర్ను ఇన్స్టాల్ చేసి కాన్ఫిగర్ చేయండి.
dnscrypt-proxy — మేము DNS అభ్యర్థనలను గుప్తీకరిస్తాము, వాటిని SOCKSకి రూట్ చేస్తాము మరియు స్థానిక నెట్వర్క్ కోసం అడ్వర్టైజింగ్ డొమైన్లను నిలిపివేస్తాము.
ఇదంతా దేనికి?
స్థానిక నెట్వర్క్లో TCP కనెక్షన్లను భద్రపరిచే మార్గాలలో ఇది ఒకటి. ప్రధాన ప్రయోజనం ఏమిటంటే, అన్ని కనెక్షన్లు సాక్స్లో తయారు చేయబడతాయి, అసలు గేట్వే ద్వారా వాటికి స్థిరమైన మార్గం నిర్మించబడకపోతే. స్థానిక నెట్వర్క్లోని వ్యక్తిగత ప్రోగ్రామ్లు లేదా క్లయింట్ల కోసం మీరు SOCKS సర్వర్ సెట్టింగ్లను పేర్కొనవలసిన అవసరం లేదని దీని అర్థం - అవి అన్నీ డిఫాల్ట్గా SOCKSకి వెళ్తాయి, ఎందుకంటే మేము సూచించే వరకు ఇది డిఫాల్ట్ గేట్వే.
ముఖ్యంగా మేము ఒరిజినల్ రూటర్కు ముందు ల్యాప్టాప్గా రెండవ ఎన్క్రిప్టింగ్ రూటర్ని జోడిస్తాము మరియు ల్యాప్టాప్ యొక్క ఇప్పటికే గుప్తీకరించిన సాక్స్ అభ్యర్థనల కోసం అసలైన రూటర్ యొక్క ఇంటర్నెట్ కనెక్షన్ను ఉపయోగిస్తాము, ఇది LAN క్లయింట్ల నుండి అభ్యర్థనలను రూట్ చేస్తుంది మరియు ఎన్క్రిప్ట్ చేస్తుంది.
ప్రొవైడర్ దృక్కోణం నుండి, మేము గుప్తీకరించిన ట్రాఫిక్తో ఒక సర్వర్కు నిరంతరం కనెక్ట్ చేయబడతాము.
దీని ప్రకారం, అన్ని పరికరాలు ల్యాప్టాప్ యొక్క వర్చువల్ యాక్సెస్ పాయింట్కి కనెక్ట్ చేయబడ్డాయి.
సిస్టమ్లో tun2socksని ఇన్స్టాల్ చేయండి
మీ మెషీన్లో ఇంటర్నెట్ ఉన్నంత వరకు, అవసరమైన అన్ని సాధనాలను డౌన్లోడ్ చేయండి.
apt update
apt install git make cmake
badvpn ప్యాకేజీని డౌన్లోడ్ చేయండి
git clone https://github.com/ambrop72/badvpn
మీ సిస్టమ్లో ఫోల్డర్ కనిపిస్తుంది badvpn. బిల్డ్ కోసం ప్రత్యేక ఫోల్డర్ను సృష్టించండి
నెట్వర్క్ మేనేజర్-వెయిట్-ఆన్లైన్ సిస్టమ్డి నెట్వర్క్ ఉనికిపై ఆధారపడిన ఇతర సేవలను ప్రారంభించడానికి ముందు పని చేసే నెట్వర్క్ కనెక్షన్ కోసం వేచి ఉండే సేవ. మేము systemd-networkd అనలాగ్కు మారినప్పుడు మేము దానిని నిలిపివేస్తున్నాము.
దీన్ని వెంటనే ఎనేబుల్ చేద్దాం:
systemctl enable systemd-networkd-wait-online
వైర్లెస్ నెట్వర్క్ ఇంటర్ఫేస్ను సెటప్ చేయండి
వైర్లెస్ నెట్వర్క్ ఇంటర్ఫేస్ కోసం systemd-networkd కాన్ఫిగరేషన్ ఫైల్ను సృష్టించండి /etc/systemd/network/25-wlp6s0.network.
పేరు మీ వైర్లెస్ ఇంటర్ఫేస్ పేరు. ఆదేశంతో దాన్ని గుర్తించండి 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 సర్వర్ చిరునామా.
systemd-networkd కోసం wpa_supplicantని కాన్ఫిగర్ చేయండి
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.
పేరు 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 కింది కంటెంట్తో:
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 వర్చువల్ ఇంటర్ఫేస్ ద్వారా నిర్వహించబడుతుంది.
INTERNET_IFACE=tun2socks - tun2socks కోసం సృష్టించబడిన వర్చువల్ ఇంటర్ఫేస్.
SSID=hostapd - వర్చువల్ యాక్సెస్ పాయింట్ పేరు.
PASSPHRASE=12345678 - పాస్వర్డ్.
సేవను ప్రారంభించడం మర్చిపోవద్దు:
systemctl enable create_ap
systemd-networkdలో DHCP సర్వర్ని ప్రారంభించండి
ఆఫీసు create_ap సిస్టమ్లో వర్చువల్ ఇంటర్ఫేస్ను ప్రారంభిస్తుంది ap0. సిద్ధాంతంలో, dnsmasq ఈ ఇంటర్ఫేస్పై వేలాడుతోంది, అయితే systemd-networkd అంతర్నిర్మిత DHCP సర్వర్ని కలిగి ఉంటే అదనపు సేవలను ఎందుకు ఇన్స్టాల్ చేయాలి?
దీన్ని ప్రారంభించడానికి, మేము వర్చువల్ పాయింట్ కోసం నెట్వర్క్ సెట్టింగ్లను నిర్వచిస్తాము. దీన్ని చేయడానికి, ఫైల్ను సృష్టించండి /etc/systemd/network/25-ap0.network కింది కంటెంట్తో:
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. ప్రామాణిక కొలనుల చిరునామాలను వ్యాఖ్యానించండి:
పబ్లిక్ సర్వర్ చిరునామాలను జోడించండి, ఉదాహరణకు Google పబ్లిక్ 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.
రీబూట్ లేదా పునఃప్రారంభించిన తర్వాత, మీరు హోస్ట్ మరియు 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
చివరికి
ప్రొవైడర్ మీ SOCKS సర్వర్కి ఎన్క్రిప్ట్ చేసిన కనెక్షన్ను మాత్రమే చూస్తారు, అంటే వారికి ఏమీ కనిపించదు.
ఇంకా ఇది మీ NTP అభ్యర్థనలను చూస్తుంది, దీన్ని నిరోధించడానికి, NTP సర్వర్ల కోసం స్టాటిక్ రూట్లను తీసివేయండి. అయితే, మీ SOCKS సర్వర్ NTP ప్రోటోకాల్ను అనుమతిస్తుందని ఖచ్చితంగా తెలియదు.
డెబెన్ 10పై క్రచ్ గుర్తించబడింది
మీరు కన్సోల్ నుండి నెట్వర్క్ సేవను పునఃప్రారంభించడానికి ప్రయత్నిస్తే, అది లోపంతో విఫలమవుతుంది. వర్చువల్ ఇంటర్ఫేస్ రూపంలో దానిలో కొంత భాగం tun2socks సేవతో ముడిపడి ఉండటమే దీనికి కారణం, అంటే అది ఉపయోగించబడుతుంది. నెట్వర్క్ సేవను పునఃప్రారంభించడానికి, మీరు ముందుగా tun2socks సేవను నిలిపివేయాలి. కానీ, నేను అనుకుంటున్నాను, మీరు చివరి వరకు చదివితే, ఇది ఖచ్చితంగా మీకు సమస్య కాదు!