ওপেনভিপিএন ক্লায়েন্ট থেকে ক্লায়েন্ট


18

অক্ষমযুক্ত একটি টিউএন (স্তর 3) ওপেনভিপিএন সার্ভার ব্যবহার করার সময় client-to-client, আমার ক্লায়েন্টরা এখনও একে অপরের সাথে কথা বলতে পারে।

ক্লায়েন্ট থেকে ক্লায়েন্ট কনফিগারেশন ডকুমেন্টেশন অনুযায়ী এটি প্রতিরোধ করা উচিত:

যদি আপনি সংযোগকারী ক্লায়েন্টকে ভিপিএন এর মাধ্যমে একে অপরের কাছে পৌঁছাতে সক্ষম হতে চান তবে ক্লায়েন্ট-থেকে-ক্লায়েন্টের নির্দেশনাটি কমেন্ট করুন। ডিফল্টরূপে, ক্লায়েন্টরা কেবল সার্ভারে পৌঁছাতে সক্ষম হবে।

এই বিকল্পটি অক্ষম করা অবস্থায় ক্লায়েন্টরা কেন একে অপরের সাথে যোগাযোগ চালিয়ে যেতে পারে?

এখানে আমার সার্ভার কনফ:

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

উত্তর:


56

যদি client-to-clientহয় সক্রিয় , তথ্য VPN সার্ভার সামনে ক্লায়েন্ট থেকে ক্লায়েন্টের প্যাকেট অভ্যন্তরীণভাবে (অর্থাত কার্নেল করার জন্য) হোস্ট আইপি স্তরে পাঠানোর ছাড়া। হোস্ট নেটওয়ার্কিং স্ট্যাক সেই প্যাকেটগুলি মোটেই দেখতে পায় না।

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


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


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

যদি client-to-clientহয় অক্ষম , অন্য ক্লায়েন্ট করার জন্য একটি ক্লায়েন্ট থেকে প্যাকেট হোস্ট আইপি স্তরের মধ্য দিয়ে যেতে (iptables- র, রাউটিং টেবিল, ইত্যাদি) মেশিন হোস্টিং VPN এর সার্ভারের: যদি আইপি ফরওয়ার্ডিং সক্রিয় করা হয় , হোস্ট প্যাকেট ফরোয়ার্ড পারে (ব্যবহার তার রাউটিং টেবিল) আবার টিউএন ইন্টারফেসে এবং ভিপিএন ডিমন প্যাকেটটি টানেলের ভিতরে সঠিক ক্লায়েন্টে ফরোয়ার্ড করবে।

           .-------------------.
           | 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       |
 '----------------'  '----------------'

এই ক্ষেত্রে ( client-to-clientঅক্ষম), আপনি iptables ব্যবহার করে ক্লায়েন্ট থেকে ক্লায়েন্ট প্যাকেটগুলি ব্লক করতে পারেন:

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

tun0আপনার ভিপিএন ইন্টারফেসটি কোথায় ।


এটিকে উত্তর হিসাবে চিহ্নিত করেছেন; সংক্ষিপ্ত এখনও খুব তথ্যবহুল এবং আসলে উত্তরে iptables ফায়ারওয়াল বিধি সরবরাহ করে।
লবি

1
ডায়াগ্রাম সম্পর্কে আমার একটি প্রশ্ন আছে, আপনি কি এটিকে চর দ্বারা স্থান এবং স্থান দ্বারা স্থান আঁকেন? বা আপনি সহজেই এবং দ্রুত তা পেতে সাহায্য করার জন্য কোনও অ্যাপ্লিকেশন ব্যবহার করেন?
মোহাম্মদ নুরাল্ডিন

3
@MohammedNoureldin, আমি asciio (মূল ডায়াগ্রাম তৈরি search.cpan.org/dist/App-Asciio ) যা asciiart ডায়াগ্রামে জন্য WYSWYG পয়েন্ট-এবং-ক্লিক সম্পাদক।
ysdx

আপনাকে ধন্যবাদ, আপনি এটি উইন্ডোতে চালানোর জন্য পরিচালনা করেছিলেন? এটি মধ্যযুগের একটি অ্যাপ্লিকেশন বলে মনে হচ্ছে, এবং আমি এটি উইন্ডোতে চালাতে পারিনি, আমি এটি উটবক্স প্যাকেজ দিয়ে ইনস্টল করার চেষ্টা করেছি, তবে আমি সর্বদা 404 ত্রুটি পাই।
মোহাম্মদ নুরাল্ডিন

2
@ মোহাম্মদ নূরল্ডিন, আমি উইন্ডোজ ব্যবহার করছি না। আমি ডেবিয়ান ব্যবহার করছি এবং এটি প্যাকেজগুলি থেকে সরাসরি ইনস্টলযোগ্য।
ysdx

7

এখানে যেমন নির্দেশনা রয়েছে তেমন মন্তব্য করার চেয়েও আপনার আরও কিছু করা দরকার :

বিভিন্ন ক্লায়েন্ট একে অপরকে "দেখতে" সক্ষম হতে দেয় এই নির্দেশকে অস্বীকার করুন। ডিফল্টরূপে, ক্লায়েন্টরা কেবল সার্ভারটি দেখতে পাবে। ক্লায়েন্টদের কেবল সার্ভারটি দেখতে বাধ্য করার জন্য, আপনাকে যথাযথভাবে সার্ভারের TUN / TAP ইন্টারফেসটি ফায়ারওয়াল করতে হবে।

অতএব আপনি প্রতিটি ক্লায়েন্টের জন্য পৃথক আইপি ঠিকানা নীতিটি কনফিগার করতে পারেন। ক্লায়েন্ট-নির্দিষ্ট বিধি এবং অ্যাক্সেস নীতিগুলি কনফিগার করার বিভাগটি এখানে দেখুন: https://openvpn.net/index.php/open-source/docamentation/howto.html । এবং এখানে: https://www.sbarjatiya.com/notes_wiki/index.php/Configuring_separate_IP_and_firewall_rule_for_each_openvpn_client


তারপরে এর অর্থ যা আমি ভাবলাম: এটি অর্জনের একমাত্র উপায় হ'ল প্রতিটি ক্লায়েন্টকে বিভিন্ন সাবনেট স্থাপন করা। এটি বেশিরভাগই প্রশ্নের উত্তর দেয়, এছাড়াও আপনি কীভাবে এটি করতে পারেন তার কিছু ডকুমেন্টেশন দিয়েছিলেন। আমি এটিকে উত্তর হিসাবে চিহ্নিত করব। ধন্যবাদ।
লবি

6

openvpnএই প্রশ্নের উত্তরের জন্য ম্যান পৃষ্ঠার পরবর্তী অনুচ্ছেদটি যদিও প্রথম পড়াতে এটি অগত্যা পরিষ্কার নয়:

যেহেতু ওপেনভিপিএন সার্ভার মোড একক সুর বা ট্যাপ ইন্টারফেসের মাধ্যমে একাধিক ক্লায়েন্টকে পরিচালনা করে, এটি কার্যকরভাবে একটি রাউটার। --client-to-client পতাকা বরং TUN / টোকা ইন্টারফেসে সব ক্লায়েন্ট-উদ্ভব ট্রাফিক ঠেলাঠেলি চেয়ে অভ্যন্তরীণভাবে রুট ক্লায়েন্ট থেকে ক্লায়েন্টের ট্রাফিক VPN খুলুন বলে।

যখন এই বিকল্পটি ব্যবহার করা হবে, প্রতিটি ক্লায়েন্ট বর্তমানে অন্য সংযুক্ত ক্লায়েন্টদের "দেখবে"। অন্যথায়, প্রতিটি ক্লায়েন্ট কেবলমাত্র সার্ভারটি দেখতে পাবে। আপনি যদি কাস্টম, প্রতি ক্লায়েন্ট নিয়ম ব্যবহার করে ফায়ারওয়াল টানেল ট্র্যাফিক চান তবে এই বিকল্পটি ব্যবহার করবেন না।

client-to-clientবিকল্প স্বল্প সার্কিট সার্ভারে স্বাভাবিক রাউটিং টেবিল। এটি সরিয়ে ফেলা সার্ভারের রাউটিং টেবিলগুলি ব্যবহার করে ক্লায়েন্টদের বাধা দেয় না। যদি এই রাউটিং টেবিলগুলি - এবং সার্ভারের ফায়ারওয়াল কনফিগারেশন - ক্লায়েন্টরা একে অপরকে দেখার অনুমতি দেয় তবে তারা তা করতে সক্ষম হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.