ওপেনভিপিএন সফলভাবে সংযুক্ত হওয়ার পরে আমি কীভাবে কোনও স্ক্রিপ্ট চালাব?


50

আমি কীভাবে কোনও স্ক্রিপ্ট ওপেনভিপিএন-এর সাথে সংযুক্ত করতে পারি যাতে এটি ভিপিএন সফলভাবে সংযুক্ত হওয়ার পরে চলে?


ক্লায়েন্টের ক্ষেত্রে আমার ধারণা? আপনি কি সফ্টওয়্যার ব্যবহার করছেন? ওপেনভিপিএন, বা একটি মোড়ক (যেমন নেটওয়ার্কম্যানেজার)?
লেকেনস্টেইন

@Lekensteyn, মোড়কের network-manger-openvpn
অক্সভিভি

উত্তর:


62

network-manager-openvpnযেমন কার্যকারিতা সরবরাহ করে না, আপনি openvpnসরাসরি ব্যবহার করতে হবে ।

--script-security 2 --up /path/to/your/scriptসংযোগ করার সময় এটি পাস । আপনি যদি অবস্থিত কোনও কনফিগারেশন ফাইল ব্যবহার করেন /etc/openvpn/তবে আপনার কনফিগারেশন ফাইলে পরবর্তী লাইনগুলি যুক্ত করুন:

script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh

থেকে VPN খুলুন র manpage :

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

              0 - বাহ্যিক প্রোগ্রামগুলির কঠোরভাবে কোনও কলিং নেই।
              1 - (ডিফল্ট) কেবল বিল্ট-ইন এক্সিকিউটেবল যেমন কল আইফোনফিগ,
              আইপি, রুট বা নেট।
              2 - বিল্ট-ইন এক্সিকিউটেবল এবং ব্যবহারকারী-সংজ্ঞায়িত কল করার অনুমতি দিন
              স্ক্রিপ্ট।
              3 - পাসওয়ার্ডগুলি পরিবেশের মাধ্যমে স্ক্রিপ্টগুলিতে দেওয়ার অনুমতি দিন
              ভেরিয়েবল (সম্ভাব্য অনিরাপদ)
       - আপ সেমিডি
              সফল টিউএন / ট্যাপ ডিভাইস খোলা থাকার পরে চালানোর জন্য শেল কমান্ড (প্রাক)
              - ব্যবহারকারী ইউআইডি পরিবর্তন)) আপ স্ক্রিপ্ট নির্দিষ্ট করার জন্য দরকারী
              রুট কমান্ডগুলি আইপি ট্র্যাফিককে ব্যক্তিগত হিসাবে নির্ধারিত করে
              সাবনেটগুলি যা ভিপিএন সংযোগের অন্য প্রান্তে বিদ্যমান
              সুড়ঙ্গ.
কার্য সম্পাদনের স্ক্রিপ্ট অর্ডার
       --আপ টিসিপি / ইউডিপি সকেট বাইন্ড এবং টিউএন / ট্যাপ খোলার পরে কার্যকর করা হয়।
       - ডাউন টিসিপি / ইউডিপি এবং টিউএন / ট্যাপ বন্ধ হওয়ার পরে কার্যকর করা হয়।

স্ক্রিপ্ট কার্যকর করার জন্য আরও ইভেন্ট রয়েছে, সেগুলি ম্যানুয়াল পৃষ্ঠায় পাওয়া যাবে ।

তৈরি করুন /etc/openvpn/up.shএবং এটিকে কার্যকর করার অনুমতি দিন (বলুন, 755 বা 700)। আইপিভি 6 ঠিকানা এবং রুট যুক্ত করার জন্য সামগ্রী উদাহরণ (শিক্ষাগত উদ্দেশ্যে দেখানো হয়েছে, এটি সরাসরি অনুলিপি করবেন না):

#!/bin/sh
# add an IPv6 address to device $dev (environment variable)
ip -6 addr add 2001:db8::1:2/112 dev $dev
# and the IPv6 route for this net using gateway 2001:db8::1
ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev

নোট করুন যে এই upস্ক্রিপ্টটি রুট হিসাবে চালিত হয়েছে। যদি আপনি কোনও Userএবং Groupসেটিং নির্দিষ্ট না করে থাকেন তবে ওপেনভিপিএন স্ক্রিপ্টগুলিও downরুটের মতো চালাবে ।


আপনি যদি ওপেনভিএনপিএন সরাসরি ব্যবহার করতে না জানেন তবে আপনার বর্তমান কনফিগারেশন বিশদটি যুক্ত করুন: সংযোগের ধরণ (যেমন এক্স 509-শংসাপত্র), গেটওয়ে পোর্ট, এলজেডো-সংক্ষেপণ, টিসিপির বাহিনী, ট্যাপ ডিভাইস, সাইফার, এইচএমএসি এবং টিএলএস ব্যবহার করুন। আপনার আইপি সেটিংসটি স্বয়ংক্রিয় না হলে উল্লেখ করুন। আপনার গোপনীয়তার জন্য, আপনার আসল ঠিকানাগুলি ছেড়ে দিন।
লেকেনস্টেইন

ঠিক আছে ঠিক আছে, আমি সরাসরি ওপেনভিপিএন ব্যবহার করার সিদ্ধান্ত নিয়েছি (এবং হ্যাঁ, আমার কাছে .conf ফাইল আছে) তবে সংযোগটি হারিয়ে গেলে এটি স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ স্থাপন করবে? এবং যখনই ইন্টারনেট সংযোগ রয়েছে আমি কীভাবে এটি স্বয়ংক্রিয়ভাবে সংযুক্ত করব? এবং অবশেষে, আমি বুঝতে পারি না যে উত্তরটিতে আপনি উল্লিখিত রেখাগুলি আমাকে কোথায় যুক্ত করতে হবে।
অক্সভিভি

আমি openvpnসরাসরি ব্যবহারের উত্তর প্রসারিত করেছি । সার্ভার সেট আপ করার সময় আমি লক্ষ্য করেছি যে সার্ভারটি ডাউন হয়ে গেলে ওপেনভিপিএন পুনরায় সংযোগ করার চেষ্টা করবে। আপনার নেটওয়ার্ক ইন্টারফেসটি নীচে গেলে ওপেনভিপিএন চেষ্টা চালিয়ে যাচ্ছে কিনা তা নিশ্চিত নয়।
লেকেনস্টেইন

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

ওহ, এবং স্ক্রিপ্টটি কি সমস্ত ভিপিএন সংযোগের জন্য প্রযোজ্য? এবং দয়া করে উত্তর দেওয়ার সময় @ অক্সভিটিকে ট্যাগ করুন, আমি অন্যথায় অবহিত হব না।
অক্সভিভি

5

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


উবুন্টুতে ওপেনপিএনএন কমান্ড লাইন আর্গুমেন্ট:

স্বাভাবিকভাবেই, যে কোনও সহজলভ্য আইনী বিকল্পের সাহায্যে কমান্ড লাইন থেকে ওপেনভিএনপিএন শুরু করা যায়। তবে, কোনও উবুন্টু মেশিনে, কেউ যদি পুনরায় বুটের পরে একই কমান্ড লাইন যুক্তি দিয়ে ওপেনভিপিএন শুরু করতে চায় তবে তাদের ফাইলটি সম্পাদনা করার বিষয়টি বিবেচনা করা উচিত /etc/default/openvpn। নিম্নলিখিত লাইন পরীক্ষা করুন:

# Optional arguments to openvpn's command line
OPTARGS="" 

থেকে সম্প্রদায় OpenVPN man পৃষ্ঠা উপর--script-security

--স্ক্রিপ্ট-সুরক্ষা স্তর
    এই নির্দেশিকাটি ওপেনভিপিএন এর বাহ্যিক ব্যবহারের উপর নীতি-স্তরের নিয়ন্ত্রণ সরবরাহ করে 
    প্রোগ্রাম এবং স্ক্রিপ্ট। নিম্ন স্তরের মানগুলি আরও নিয়ন্ত্রক, উচ্চতর
    মানগুলি আরও অনুমোদিত। স্তরের জন্য সেটিংস:
0 - বাহ্যিক প্রোগ্রামগুলির কঠোরভাবে কোনও কলিং নেই। 
1 - (ডিফল্ট) কেবল বিল্ট-ইন এক্সিকিউটেবল যেমন কলগুলি কল করুন যেমন আইফকনফিগ, আইপি, রুট,
বা নেট। 
2 - বিল্ট-ইন এক্সিকিউটেবল এবং ব্যবহারকারী-সংজ্ঞায়িত স্ক্রিপ্টগুলির কল করার অনুমতি দিন। 
3 - পাসওয়ার্ডগুলিকে পরিবেশগত ভেরিয়েবলের মাধ্যমে স্ক্রিপ্টগুলিতে দেওয়ার অনুমতি দিন
(সম্ভাব্য অনিরাপদ)

V2.3 এর আগে ওপেনভিপিএন প্রকাশিত একটি পদ্ধতি পতাকাকে সমর্থন করে যা কীভাবে নির্দেশ করে 
ওপেনভিপিএন বাহ্যিক আদেশ এবং স্ক্রিপ্ট কল করা উচিত। এটি হয় কার্যকর করা যেতে পারে
বা সিস্টেম। ওপেনভিপিএন ভি 2.3 হিসাবে, এই পতাকাটি আর গ্রহণযোগ্য নয়। বেশিরভাগ * নিক্সে
পরিবেশ নির্বাহ () পদ্ধতির কোনও সমস্যা ছাড়াই ব্যবহার করা হয়েছে।

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

সংক্ষিপ্ত অংশটির সাথে একত্রিত --up

- আপ সেমিডি
    সফল TUN / TAP ডিভাইস খোলা (প্রাক - ব্যবহারকারীর ইউআইডি পরিবর্তন) এর পরে কমান্ড cmd চালান।
    সেন্টিমিডি স্ক্রিপ্টের (বা এক্সিকিউটেবল প্রোগ্রাম) এর একটি পথ নিয়ে গঠিত, allyচ্ছিকভাবে অনুসরণ করা
    যুক্তি দ্বারা। পাথ এবং আর্গুমেন্টগুলি একক- বা ডাবল-কোটড এবং / অথবা or
    ব্যাকস্ল্যাশ ব্যবহার করে পালিয়ে গেছে এবং এক বা একাধিক স্পেস দ্বারা পৃথক করা উচিত।

উদাহরণ:

একটি ওপেনভিএন সার্ভার.কোনফ সহ আমার মেশিনে আমার /etc/default/openvpnফাইলে নিম্নলিখিত লাইনগুলি রয়েছে :

OPTARGS="
    --script-security 2
    --up /etc/openvpn/nat.sh
" 

ঘটনাক্রমে, nat.sh ওপেনভিএনপিএন ক্লায়েন্ট থেকে পাবলিক ইন্টারনেটে ব্যক্তিগত নেটওয়ার্ক ট্র্যাফিকের রাউটিংয়ের জন্য নেটওয়ার্ক ঠিকানা অনুবাদ সেট আপ করে; এটি যখন কোনও সর্বজনীন WIFI অ্যাক্সেস পয়েন্টকে বিশ্বাস করে না তখন এটি ভাল।


একটি রিবুটের পরে প্রত্যাশিত পুনরায় আরম্ভ করার অনুমতি ছাড়াও, যখন /etc/openvpn/[client or server].confএবং /etc/default/openvpnফাইলগুলি সঠিকভাবে কনফিগার করা হয়, ওপেনভিপিএন শুরু বা বন্ধ করা যেতে পারে:

sudo service openvpn start
sudo service openvpn stop

service openvpnঅন্তর্ভুক্ত জন্য উপলব্ধ অন্যান্য দরকারী বিকল্পসমূহ cond-restart,force-reload,reload, restart,soft-restart, start, status, stop


3

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

KERNEL=="vpn0", RUN+="/PATH_TO_THE_SCRIPT/SCRIPT_NAME"

ভিপিএন তৈরির পরে এটি কোনও স্ক্রিপ্ট চালানো উচিত।


1

আমি এই সমস্যাটি সমাধান করার জন্য আমার গবেষণায় উত্তরটি হোঁচট খেয়েছি এবং আমি জানতে পেরেছি যে সর্বোত্তম সমাধানটি (ওপেনভিএনপি সার্ভার ব্যবহার করে) নিম্নরূপ:

কার্যকর করার জন্য একটি স্ক্রিপ্ট তৈরি করুন:

# nano /etc/openvpn/up.sh
<file:contents>
#!/bin/sh

# export >> /var/log/openvpn/openvpn-up.log
D=`date "+%Y-%m-%d %H:%M"`
echo "[$D] ($local_port_1:$proto_1) $X509_0_CN: $trusted_ip => $ifconfig_pool_remote_ip" >> /var/log/openvpn/openvpn-up.log
</file>

ওপেনপিএন কনফিগারেশনে (সাধারণত /etc/openvpn/server.conf) নিম্নলিখিত লাইনগুলি যুক্ত করুন । উপরের উত্তরে এটি উপরে এবং নীচে ব্যবহৃত হয়েছিল, যা সার্ভারটি শুরু হয়ে গেলে (পুনরায় আরম্ভ হবে) ব্যবহৃত হয়। নির্দেশিকা ক্লায়েন্ট-সংযোগ (এবং ক্লায়েন্ট-সংযোগ বিচ্ছিন্ন) ব্যবহৃত হয় যখন ক্লায়েন্ট সংযোগ (সংযোগ বিচ্ছিন্ন) হয়।

# nano /etc/openvpn/server.conf
<file:add>
script-security 2
client-connect /etc/openvpn/up.sh
</file>

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