VPN servisine bağlı bir sunucuya ssh


22

Sunucum bir VPN hizmetine bağlıyken bir web sunucusu çalıştırmak istediğim sanal bir özel sunucum var

Sağlayıcımla VPN bağlantısı kurulmadığında, bu sunucu, ssh, scp, http vb. İle istediğim her şeyi yapabilirim.

Openvpn çalışıp sağlayıcının VPN hizmetine bağlandıktan sonra, sunucuya hiçbir şekilde ve elbette iyi bir nedenle erişilemez

Resim şöyle bir şey:

           My VPS                             ------------
         +----------------+                  /            \
         |                |                 /   Internet  /       101.11.12.13
         |        50.1.2.3|-----------------\   cloud    /----<--- me@myhome
         |                |                  /           \
         |     10.80.70.60|                 /             \
         +----------------+                 \              \
                        :                    \_____________/
                        :                           :
                        :                           :
                        :                           :
                        :                           :
                  +------------------+              :
                  |     10.80.70.61  |              :
                  |               \  |              :
                  |                \ |              :
                  | 175.41.42.43:1197|..............:
                  |   175.41.42.43:yy|   
                  |       .....      |
                  |   175.41.42.43:xx|
                  +------------------+



Legend                  
------ Line No VPN connection present
...... Line VPN connection established

Açıklığa kavuşturulması gerekenler:

  • Yukarıdaki ve altındaki tüm IP adresleri ve bağlantı noktası numaraları kurgusaldır
  • Bağlantı noktası numaraları xx, yy ve aradaki her şeyi içeren satırlar benim varsayımımdır, gerçek için bildiğim bir şey değil.
  • Apache2 çalıştıran her dakika başka bir VPS'im ping çalıştıran bir cron işi ayarladım Apache2 günlüklerinde, VPN etkin olduğunda kaynak IP adresinin 50.1.2.3'ten 175.41.42.43'e değiştiğini görebiliyorum, böylece VPN iyi çalışıyor

OpenVPN günlükleri şunları gösterir:

UDPv4 link remote: [AF_INET]175.41.42.43:1197
[ProviderName] Peer Connection Initiated with [AF_INET]175.41.42.43:1197
TUN/TAP device tun0 opened
do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
sbin/ip link set dev tun0 up mtu 1500
/sbin/ip addr add dev tun0 local 10.80.70.60 peer 10.80.70.61

Bu noktada, ben den ssha edebilmek istiyorum myhomeiçin My VPSVPN kadar ve PuTTY kullanırken, resimde.

Geçmişte, işyerlerimden birinde, sicimde üç @işaret bulunan son derece güvenli bir sunucuya ssh yapmak için çok garip bir dizi verildi . Yani, hayal ettiğim gibi kutudan kutuya atlıyordu, ancak atlama kutuları Windows işletim sisteminin bazı versiyonlarını ve bunlar üzerinde tescilli bir uygulamayı çalıştırdığından, sararın altında neler olduğunu görmek için hiçbir görünürlük yoktu. Bu yüzden fazla dikkat etmedim. Şimdi farkına varıyorum, aynı veya benzer bir durumda olabilirim.

Diyagram ve / veya günlük snippet'indeki IP adreslerini ve bağlantı noktalarını kullanarak birisi bana bu tünelden nasıl geçip sunucuma erişebileceğimi söyleyebilir mi?

Yanıtlar:


10

VPN hizmetiniz bittiğinde, ssh paketleriniz VPS'nizin genel IP 50.2.1.3'üne değil VPN üzerinden yönlendirilir.

Sunucunuzun:

  • Genel IP 50.1.2.3'tür (örnek kurulumunuza göre)
  • Genel IP Alt Ağı 50.1.2.0/24
  • Varsayılan Ağ Geçidi xxx1'dir
  • eth0, ağ geçidine giden cihazdır

İproute2'yi kullanarak aşağıdakileri yapın:

ip rule add table 128 from 50.1.2.3
ip route add table 128 to 50.1.2.0/24 dev eth0
ip route add table 128 default via x.x.x.1

Ardından OpenVPN istemci yapılandırmanızı çalıştırın: openvpn --config youropenvpn-configfile.ovpn &

Daha sonra sunucunuz vpn hizmetine bağlıyken sunucunuza ssh yapabilirsiniz.

Genel IP'nize ssh olmayan: 22 oturumlardan erişimi kısıtlamak için uygun iptable filtrelerini eklemeniz gerekir.


Bu güzel çalıştı.
Anthony Giorgio

3
Benim için de işe yaradı. Yine de, bunun tam olarak ne yaptığını anlamakta zorlanıyorum; bunun ne tür bağlantılara izin verdiğini / izin vermediğini açıklar mısın?
Kodlama

Evet, biraz daha açıklama yapmak istiyorum. "İproute2 kullanarak aşağıdakileri yapın" açıkça iproute2'nin ne olduğunu veya bu eylemi hangi makinede gerçekleştireceğini açıklamaz.
deanresin

Genel IP Alt Ağımı nasıl edinebilirim? Web'i bir süredir aradım ve bulamıyorum. Tam olarak nedir?
Tony Friz

2

Bu biraz geç olabilir, ama ...

Sorun, varsayılan ağ geçidinin OpenVPN tarafından değiştirilmesidir ve OpenVPN'i başlatmadan önce uygun yolları ayarlamadığınız sürece geçerli SSH bağlantınızı keser.

Takip eden benim için işe yarıyor. İptables ve ip (iproute2) kullanır. Aşağıda, OpenVPN başlatılmadan önceki varsayılan ağ geçidi arayüzünün "eth0" olduğu varsayılmaktadır. Buradaki fikir, eth0 ile bağlantı kurulduğunda, eth0 artık varsayılan ağ geçidi arayüzü olmasa bile, bağlantı için yanıt paketlerinin tekrar eth0'a geri dönmesini sağlamaktır.

Bağlantı işareti, güvenlik duvarı işareti ve yönlendirme tablosu için aynı numarayı kullanabilirsiniz. Aralarındaki farkları daha belirgin hale getirmek için farklı sayılar kullandım.

# set "connection" mark of connection from eth0 when first packet of connection arrives
sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

# set "firewall" mark for response packets in connection with our connection mark
sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 table 3412

# route packets with our firewall mark using our routing table
sudo ip rule add fwmark 4321 table 3412

===

GÜNCELLEME:

Yukarıdaki benim Debian Jessie için iyi çalışıyor. Ama eski bir Wheezy sisteminde ben sadece yönlendirme tablosu girişine "üzerinden" eklemeniz gerektiğini buldum:

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 via 12.345.67.89 table 3412

Orijinal VPN olmayan ağ geçidi "12.345.67.89" olmalıdır.


Bu ExpressVPN ile de çalışmalı mıdır? Bir komut satırı aracı "expressvpn" ile gelen bir yükleyici var ve "connect" veya "bağlantıyı çağırabilirsiniz. Ben ne yayınladı denedim ve işe yaramadı. OpenVPN olması gerekir mi?
Tony Friz

Bunu iţe alamýyorum ... beni deli ediyor. @Hcb'nin yukarıdaki cevabı işe yarıyor. Ama cevabınızın neden işe yaramadığını merak ediyorum! MANGLE kurallarının yürütülmemesine neden olduğunu varsaydığım bir şey eksik
Motsel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.