Host-only şəbəkəsindəki VM trafikini TUN OpenVPN serverindən keçirin
Tuneli və host-only prefiksini ayrı saxlayın, qonaq marşrutunu itələyin, sonra hər virtual maşına host vasitəsilə qəsdən qayıdış yolu verin.
Host-only adapterlər yerli virtual şəbəkə yaradır, yönləndirilmiş TUN tunelləri isə IP paketlərini ünvanlar arasında daşıyır. Heç biri digərinə körpü deyil, buna görə işlək konfiqurasiya kimin yönləndirdiyini və qayıdış marşrutunun kimə aid olduğunu deməlidir. Bu iki təyinatı səhv etsəniz, qonaq tunelə tunel müştərisinin heç vaxt istəmədiyi mənbə ilə cavab verir. Aşağıdakı dizayn hər iki prefiksi ayrı saxlayır və qayıdış yolunu açıq edir.
İki şəbəkə, iki prefiks
Tunel hovuzuna və host-only şəbəkəsinə fərqli prefikslər verin və heç vaxt birini digəri üçün təkrar istifadə etməyin. Bu nümunədə VPN hovuzu 10.44.0.0/24, host-only şəbəkəsi isə 192.168.99.0/24-dür; host 192.168.99.1, qonaq isə 192.168.99.20 ünvanındadır. Eyni prefiksi həm TUN cihazına, həm də host-only adapterə təyin etmək onları birləşdirmir. Bir ünvan aralığı üzərində iki iddia yaradır və marşrut cədvəli sonra təsadüfən saxladığı iddiaya cavab verir.
Host-only adapter həm hostda, həm də qonağın içində mövcuddur və öz-özünə maşından kənara çıxan yol yoxdur. Körpü və NAT qoşulmaları fərqli məruz qalma səviyyəsinə malikdir və körpü rejiminə keçmək bir qonaq xidmətinə çatmaq üçün tələb deyil.
Host artıq yolu saxlayır
Nəyinsə əlavə etməzdən əvvəl mövcud olana baxın. Hostun host-only şəbəkəsində interfeysi və bu prefiks üçün marşrutu var; hər ikisi adapter işə düşəndə yaranıb.
ip -br addr show
ip route show 192.168.99.0/24
sysctl net.ipv4.ip_forward
Üçüncü sətir hostu bir hoppa çevirən mexanizmdir. Onsuz tuneldən gələn paket hostun çata bildiyi, lakin yönləndirməyəcəyi bir şəbəkəyə ünvanlanır. Yönləndirmə zəruridir və kifayət deyil. Filtir siyasəti hələ də tunel interfeysi ilə host-only interfeysi arasında konkret axının icazəli olub-olmadığını həll edir və bu qərar heç kimin oxumadığı standart siyasətdə deyil, yazılı olmalıdır.
Marşrutu itələyin, sonra çatdığını filtr edin
Server, itələnmiş marşrutları qəbul edən müştərilərə host-only prefiksini verə bilər; bu, tunelin arxasındakı hər hansı digər alt şəbəkə üçün istifadə olunan eyni mexanizmdir.
push "route 192.168.99.0 255.255.255.0"
iptables -A FORWARD -i tun0 -o vboxnet0 -d 192.168.99.20 -p tcp --dport 5432 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o tun0 -s 192.168.99.20 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Bu iki qayda bir istiqamətdə bir xidmətə və onun cavablarına icazə verir. Bütün prefiksə çatan marşrut və bir porta icazə verən filtr qəsdən seçilmiş birləşmədir; marşrut üstəgəl şərtsiz qəbul isə laboratoriya xidmətinin açıq xidmətə çevrilmə yoludur. İtələnmiş marşrut həm də avtorizasiya deyil. Müştəri onu qəbul edir, host onu yönləndirir, qonağın firewall-u və xidmətin özü də hələ söz sahibidir.
Qonağın geri qayıtma yolu olmalıdır
10.44.0.x-dən çatılan qonaq cavablarını hostun host-only ünvanına göndərməlidir, ya da host mənbəyi çevirməlidir. VirtualBox DHCP-dən ünvan almaq bu iki quruluşun heç biri haqqında heç nə demir.
ip route add 10.44.0.0/24 via 192.168.99.1 dev enp0s8
ip route get 10.44.0.15
Bu marşrutu qonağın içində əlavə etmək orijinal mənbəyi qoruyur və bu, hər müştəri üzrə siyasəti və logları mənalı saxlayır. Hostda məhdud mənbə çevirməsi alternativdir və işləyir, lakin hansı müştərinin qoşulduğunu gizlətmək bahasına. Üst-üstə düşmə digər uğursuzluq rejimidir. Ev LAN-ı artıq 192.168.99.0/24 istifadə edən uzaq müştəri itələnmiş marşrutu öz şəbəkəsi kimi oxuyacaq və server tərəfində heç bir dəyişiklik bu qeyri-müəyyənliyi aradan qaldırmır. Bir tərəfi yenidən nömrələyin və ya toqquşma ehtimalı az olan prefiks seçin.
TUN cihazı IP paketləri daşıyır, ona görə qonağın içində standart şlüz əlavə etmək tuneli host-only adapterlə Ethernet seqmentinə çevirmir. TAP körpüləməsi öz müştəri dəstəyi və ünvan sahibliyi olan fərqli dizayndır və iki təsviri qarışdırmaq heç vaxt yaxınlaşmayan konfiqurasiyalara gətirir.
Yoxlayın, sonra yenidən başlatmaya davamlı edin
Adi uzaq müştəridən bir zərərsiz xidməti sınayın, qonağın qayıdış marşrutunu yoxlayın və icazə vermədiyiniz xidmətin yavaş deyil, rədd edildiyini təsdiqləyin.
ss -lntp '( sport = :5432 )'
conntrack -L | grep 192.168.99.20
Sonra VPN xidmətini və virtual maşının şəbəkəsini yenidən başladın və eyni üç yoxlamanı təkrarlayın. Əl ilə əlavə edilmiş marşrut növbəti yenidən başlatmaya qədər qalır və yalnız isti sessiyada işləyən konfiqurasiya dizayn deyil. İki prefiksi, yönləndirmə siyasətini və qonaq marşrutunu birlikdə qeyd edin. Növbəti virtual maşını əlavə edən şəxs hər üçünə ehtiyac duyacaq, əks halda onları bir-bir uğursuz bağlantı ilə yenidən kəşf edəcək.