OpenVPN istemciden istemciye


18

client-to-clientDevre dışı bırakılmış bir TUN (katman 3) OpenVPN sunucusu kullanırken , müşterilerim yine de birbirleriyle konuşabilir.

İstemciden istemciye yapılandırma bunu belgelere göre önlemelidir:

İstemcileri VPN üzerinden birbirine ulaştırabilmek istiyorsanız, istemciden istemciye yönergelerini kaldırın. Varsayılan olarak, istemciler yalnızca sunucuya erişebilir.

Bu seçenek devre dışı bırakıldığında istemciler neden birbirleriyle iletişim kurmaya devam edebilir?

İşte sunucum conf:

port 443
proto tcp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh4096.pem
topology subnet
server 10.10.201.0 255.255.255.128
ifconfig-pool-persist ipp.txt
crl-verify /etc/openvpn/keys/crl.pem
push "route [omitted]"
push "dhcp-option DNS [omitted]"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
cipher AES-256-CBC
tls-auth /etc/openvpn/keys/pfs.key 0
verb 4

Yanıtlar:


56

Eğer client-to-clientbir etkin (yani çekirdeğe) ana bilgisayarın IP katmanına bunları göndermeden içten, VPN sunucusu ileriye istemci-istemci paketlerini. Ana bilgisayar ağ yığını bu paketleri hiç görmez.

           .-------------------.
           | IP Layer          |
           '-------------------'


           .-------------------.
           | TUN device (tun0) |
           '-------------------'


           .-------------------.
           | OpenVPN server    |
           '-------------------'
             ^           |
          1  |           |  2   
             |           v
 .----------------.  .----------------.
 | Client a       |  | Client b       |
 '----------------'  '----------------'

Eğer client-to-clientbir engelli , başka müşteriye bir istemciden paketleri (iptables, tablo vb yönlendirme) VPN sunucusunu barındıran makinenin ana bilgisayar IP katmanında geçmesi: IP yönlendirmenin etkin olup olmadığını , ev sahibi paketi ileri olabilir (kullanarak onun yönlendirme tablosu) tekrar TUN arayüzüne bağladığınızda VPN arka plan programı paketi tünel içindeki doğru istemciye iletir.

           .-------------------.
           | IP Layer          |  (4) routing, firewall, NAT, etc.
           '-------------------'      (iptables, nftables, conntrack, tc, etc.)
              ^          |
          3   |          |  5
              |          v
           .-------------------.
           | TUN device (tun0) |
           '-------------------'
             ^           |
          2  |           |  6  
             |           v
           .-------------------.
           | OpenVPN server    |
           '-------------------'
             ^           |
          1  |           |  7  
             |           v
 .----------------.  .----------------.
 | Client a       |  | Client b       |
 '----------------'  '----------------'

Bu durumda ( client-to-clientdevre dışı), iptables kullanarak istemciden istemciye paketleri engelleyebilirsiniz:

 iptables -A FORWARD -i tun0 -o tun0 -j DROP

tun0VPN arayüzünüz nerede .


Bunu cevap olarak işaretledi; özlü ama çok bilgilendirici ve aslında cevap iptables güvenlik duvarı kuralı sağlar.
lobi

1
Diyagram hakkında bir sorum var, karakterin karakterine, uzayın uzayda mı çiziyorsun? veya basit ve hızlı bir şekilde almanıza yardımcı olacak herhangi bir uygulama kullanıyor musunuz?
Mohammed Noureldin

3
@MohammedNoureldin ben asciio (orijinal diyagram yapılan search.cpan.org/dist/App-Asciio asciiart diyagramları için bir WYSWYG noktası ve tıkla editörü).
ysdx

Teşekkürler, pencerelerde çalıştırmayı başardınız mı? orta çağlardan bir uygulama gibi görünüyor ve pencerelerde çalıştıramadım, camelbox paketi ile yüklemeye çalıştım, ama her zaman 404 hatası alıyorum.
Mohammed Noureldin

2
@MohammedNoureldin, Windows kullanmıyorum. Debian kullanıyorum ve paketlerden direk olarak kurulabilir.
ysdx

7

Direktifi burada söylediği gibi yorum yapmaktan daha fazlasını yapmanız gerekir :

Farklı müşterilerin birbirlerini "görebilmeleri" için bu yönergeyi kaldırınız. Varsayılan olarak, istemciler yalnızca sunucuyu görür. İstemcileri yalnızca sunucuyu görmeye zorlamak için, sunucunun TUN / TAP arabirimini de uygun şekilde güvenlik duvarı yapmanız gerekir.

Bu nedenle, her istemci için ayrı IP adresi ilkesi yapılandırabilirsiniz. İstemciye özgü kuralları ve erişim ilkelerini yapılandırma bölümüne bakın : https://openvpn.net/index.php/open-source/documentation/howto.html . ve burada: https://www.sbarjatiya.com/notes_wiki/index.php/Configuring_separate_IP_and_firewall_rule_for_each_openvpn_client .


O zaman bu düşündüğüm anlamına gelir: Bunu başarmanın tek yolu her istemciyi farklı alt ağlara koymaktır. Bu çoğunlukla soruyu cevaplar, ayrıca bunun nasıl yapılacağı hakkında bazı belgeler verdiniz. Bunu cevap olarak işaretleyeceğim. Teşekkürler.
lobi

6

openvpnİlk okumada mutlaka açık olmasa da , man sayfasının bir sonraki paragrafı bu soruyu cevaplıyor:

OpenVPN sunucu modu birden fazla istemciyi tek bir ayar veya dokunma arabirimi üzerinden işlediğinden, etkin bir yönlendiricidir. --client-to-client Bayrak yerine TUN / TAP arayüzüne tüm istemci kaynak trafiğini iterek daha içten rota istemci-istemci trafiğe OpenVPN'i söyler.

Bu seçenek kullanıldığında, her istemci şu anda bağlı olan diğer istemcileri "görür". Aksi takdirde, her istemci yalnızca sunucuyu görür. İstemci başına özel kuralları kullanarak tünel trafiğini güvenlik duvarı yapmak istiyorsanız bu seçeneği kullanmayın.

client-to-clientSeçenek kısa devre sunucuda normale yönlendirme tabloları. Kaldırılması, istemcilerin sunucunun yönlendirme tablolarını kullanmasını engellemez. Bu yönlendirme tabloları ve sunucunun güvenlik duvarı yapılandırması istemcilerin birbirini görmesine izin veriyorsa, bunu yapabilirler.

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.