ওপেনভিপিএন-তে শংসাপত্রগুলি ভাগ করা থেকে ব্যবহারকারীদের কীভাবে রোধ করবেন?


8

আমার কাছে একটি ওপেনভিপিএন সার্ভার রয়েছে যা শংসাপত্র এবং এলডিএপি প্রমাণীকরণ ব্যবহার করে।

সমস্যাটি হ'ল, একজন ব্যবহারকারী তার শংসাপত্রটি ভাগ করতে পারে এবং অন্যান্য বৈধ এলডিএপি ব্যবহারকারীরা এই শংসাপত্রটি ব্যবহার করতে পারেন।

প্রশ্ন

আমি কীভাবে নিশ্চিত করব যে ববের শংসাপত্রটি কেবল এলডিএপি ব্যবহারকারী "বব" এর সাথে ব্যবহার করা যেতে পারে?

উত্তর:


9

এই পোস্ট অনুসারে , common_nameব্যবহারকারী দ্বারা নকল করা যাবে না।

ওপেনভিপিএন সার্ভার.কোনফ এ এটি যুক্ত করুন

script-security 2

# untrusted state
auth-user-pass-verify /etc/openvpn/scripts/check_cn_on_connect.sh via-env

/etc/openvpn/scripts/check_cn_on_connect.sh রয়েছে

#!/bin/bash

# username and common_name must be the same to allow access.
# users are not allowed to share their cert
if [ $username != $common_name ]; then
   echo "$(date +%Y%m%d-%H%M%S) DENIED  username=$username cert=$common_name" >> /var/log/openvpn-access.log
   exit 1
fi

echo "$(date +%Y%m%d-%H%M%S) GRANTED username=$username cert=$common_name" >> /var/log/openvpn-access.log

exit 0

হালনাগাদ

এটি ওপেনভিপিএন ২.১.৪ এর জন্য। ২.২.০ এ তারা আপনার দ্বারা দেখতে পেল এমন অনেকগুলি নতুন ভেরিয়েবল যুক্ত করেছে env >> /tmp/env, যেখানে এই নতুন ভেরিয়েবলগুলির মধ্যে একটি হ'ল শংসাপত্রগুলির ফিঙ্গারপ্রিন্ট / সিরিয়াল নম্বর।


4

অনেকগুলি বিকল্প রয়েছে, যেহেতু ওপেনভিপিএন একটি ওপেন সোর্স প্রকল্প, এবং এতে আপনার নিজের-প্রমাণীকরণের হুক লেখার ক্ষমতা রয়েছে এমন অনেক লোক আছেন যাঁরা বিভিন্ন স্তরের প্রমাণীকরণের জন্য বিভিন্ন জিনিস করেছেন।

আমি ডক্স / ব্লগ / মাইলিস্টগুলিতে উল্লিখিত এগুলির বেশিরভাগেরই চেষ্টা করে দেখিনি। এর মধ্যে কয়েকটিতে প্যাচগুলি বা অ-মুক্ত সংস্করণ প্রয়োজন হতে পারে।

একটি প্রধান পদ্ধতি হ'ল আপনার কী-জোয়ারের ব্যক্তিগত অংশটি নিষিদ্ধভাবে নিষ্কাশন / অনুলিপি করা কঠিন করে তোলা।

যদি তাদের কীগুলি রক্ষা করা ব্যয়বহুল, আপনার ক্লায়েন্ট প্ল্যাটফর্মগুলিতে সমর্থিত নয় বা অন্য কোনও কারণে সম্ভব না হয় তবে আপনাকে কয়েকটি বিকল্প দেওয়া হবে।

  • শংসাপত্রের ঘন ঘন পুনর্নবীকরণগুলির প্রয়োজন হয়, তাই অনুলিপি করা শংসাপত্রটি বেশি দিন ব্যবহার করা যায় না।
  • অসঙ্গতিগুলি দেখার জন্য, আপনার সার্ভারে প্রচুর লগিং সেট করুন। যদি বব সাধারণত নিজের বাড়ি থেকে কেবল লগইন করে এবং তারপরে একদিন সে Acme Inc থেকে লগ ইন করতে শুরু করে তবে আপনার তদন্তের প্রয়োজন হতে পারে।

  • মাল্টি-ফ্যাক্টর প্রমাণীকরণ সেটআপ করুন। আপনার শংসাপত্রটি 'আপনার কাছে কিছু আছে' হিসাবে গণ্য। সুতরাং আপনার 'কিছু আপনি' বা 'কিছু আপনি জানেন' এমন বিকল্পগুলির দিকে নজর দেওয়া উচিত। এর মধ্যে বায়ো মেট্রিকস বা পাসওয়ার্ড / পাস-বাক্যাংশ অন্তর্ভুক্ত রয়েছে।

  • আমি যেমন উল্লেখ করেছি ওপেনভিপিএন খুব নমনীয় প্রমাণীকরণের জন্য সরবরাহ করে। এটি auth-user-pass-verifyবিকল্পটি ব্যবহার করে । এই বিকল্পটি প্রদত্ত ব্যবহারকারীর নাম এবং পাসওয়ার্ডটিকে একটি বাহ্যিক স্ক্রিপ্ট / প্রোগ্রামে পাস করে যা যা আপনি চান তার ভিত্তিতে প্রমাণীকরণের সিদ্ধান্ত নেবে।

আমি auth-user-pass-verify /etc/openvpn/scripts/connect.sh via-envব্যবহারকারীর ব্যবহারকারীর নাম পেতে ব্যবহার করতে পারি । আপনি কি জানেন যে আমি ব্যবহারকারীর যে শংসাপত্রটি ব্যবহার করা হচ্ছে তা থেকে আইডিও পেতে পারি? যদি তা হয় তবে আমি পার্ল স্ক্রিপ্টটি লিখতে পারি যা পরিচিত শংসাপত্র আইডি সহ যামল ফাইলটি পরীক্ষা করে।
সান্দ্রা

1
দুর্ভাগ্যক্রমে আমি ব্যবহার করা শংসাপত্রের থেকে আইডি / বিষয় / বিশদ পাওয়ার কোনও পদ্ধতি জানি না, তবে এর অর্থ এই নয় যে এটি সম্ভব নয়।
জোড়াদেচে

সমাধানটি খুঁজে পেয়েছি এবং পোস্ট করেছি।
স্যান্ড্রা

1

আমি সুরক্ষার পক্ষে নই আমি সুরক্ষার বিষয়ে কঠোর। আপনার প্রশ্নটি আইটি সুরক্ষা: বিশ্বাসের মূল অবধি পৌঁছেছে। যেহেতু আমি এটি দেখছি তা কখনই ধরে নেওয়া উচিত নয় যে ববকে বিশ্বাস করা যায়। অবশ্যই, বব সত্যিই সুন্দর এবং বিশ্বাসযোগ্য লোক হতে পারে। তিনি আপনার সংস্থায় 20+ বছর ধরে কাজ করেছেন। তবে, "বব" ব্যক্তিটি আপনার আইটি অবকাঠামোতে সম্পূর্ণ অপ্রাসঙ্গিক।

বব নির্বিচারে 'রিলে' ব্যবহার করে যা অ্যাক্সেসের অনুমতি দেয়। রিলেগুলি যে কোনও কিছু হতে পারে: একটি পাসওয়ার্ড, শংসাপত্র, হার্ডওয়্যার টোকেন, আইরিস স্ক্যান, ডিএনএ। তারা এমন কীগুলি যা আপনার সিস্টেমে অ্যাক্সেসের অনুমতি দেয়। যদি আপনার প্রশ্নটি কী ব্যবহার করছে এমন ব্যক্তির পরিচয় যাচাই করার বিষয়ে হয় তবে সম্ভবত একমাত্র সৎ উত্তরটি হ'ল আপনাকে একই ঘরে থাকতে হবে। অন্য সমস্ত ক্ষেত্রে আমি মনে করি আপনি অবশ্যই নিজেকে নিশ্চিত করবেন না যে বব সত্যই বব এবং তার অ্যাক্সেস পাওয়ার সময় বন্দুকের পয়েন্টে আটকে রাখা হচ্ছে না। সুতরাং আপনার আইটি অবকাঠামো ডিজাইনের পরিকল্পনায় যৌক্তিক জিনিসটি "বব" উল্লেখ করা নয়: কোনও সত্তা আপনার সাইটে অ্যাক্সেস অর্জন করেছে।

কারণ আপনি কেবল সত্যই জানতে পারবেন যে 'একটি সত্তা' আপনি এমন কী দিয়ে অ্যাক্সেস অর্জন করেছিলেন যা আপনি অতীতে উত্তীর্ণ করেছেন সঠিক দৃষ্টিকোণটি সম্ভবত কীটি খুলতে পারে তার দরজা সীমাবদ্ধ করা। আপনি যত বেশি কীগুলি ততই কম দরজাগুলি পাস করেন যা তারা খোলে।

ওপেনভিপিএন-এর কাছে প্রতি চাবির জন্য কেবল একটি করে একই সংযোগের অনুমতি দেওয়ার বিকল্প রয়েছে। তারপরে অ্যালিস যদি বব এর ভিতরে থাকা অবস্থায় বব এর কী দিয়ে লগ ইন করে তবে অ্যালিসের অ্যাক্সেস অস্বীকার করা হয়েছে। দুর্ভাগ্যক্রমে এর অর্থ হ'ল অ্যালিস যখন বব এর কী দিয়ে লগ ইন করেছেন তখন বব লগইন করতে পারবেন না। সুতরাং আপনাকে একাধিক উত্স আইপি থেকে সমবর্তী লগইন প্রচেষ্টা সম্পর্কে অবহিত করার জন্য আপনার সিস্টেমটি কনফিগার করা উচিত। কিছু লঙ্ঘন হলে উভয়কেই লাথি মেরে ফেলুন যাতে ববকে সাহায্যের জন্য ডায়াল করতে হবে।

মুল বক্তব্যটি: আপনার যে বিষয় সম্পর্কে নিশ্চিত হওয়া যায় না সে সম্পর্কে নিজেকে নিশ্চিত করবেন না এবং আপনার সুরক্ষা পরিকল্পনাটি ডিজাইন করার সময় এটি মনে রাখবেন। ধরে নিন যে সেখানে সবসময় একজন বুদ্ধিমান ব্যক্তি আছে, আপনার সামনে, যিনি আপনাকে ভুল প্রমাণ করতে অপেক্ষা করতে পারেন না ... কেবল 'লুলজের জন্য'। :-)

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