ওএস এক্সে কীভাবে ওপেনএসএসএল আপগ্রেড করবেন?


126

আজ বন্যে হৃদয়যুক্ত ওপেনএসএসএল শোষণের ঘোষণা দেওয়া হয়েছিল, যা আক্রমণকারীকে গোপনীয়তার সাথে ব্যক্তিগত সার্ভার কীগুলি সনাক্ত করতে এবং চুরি করতে দেয় (তাদের MitM এ অনুমতি দেয় এবং আপনার এনক্রিপ্ট করা ডেটা ডিক্রিপ্ট করে এবং পাসওয়ার্ড চুরি করে)। এটি 1.0.1f সহ ওপেনএসএসএল সংস্করণগুলিকে প্রভাবিত করে যা আমার আপ টু ডেট ম্যাভারিক্স কম্পিউটার ম্যাকের সংস্করণ (কারণ আমি অন্য সফ্টওয়্যার ইনস্টল করতে পোর্ট / ব্রিউ ব্যবহার করেছি যা আমার ওপেনসেলটি আমাকে উপলব্ধি না করেই আপডেট করেছে ):

$ openssl version
OpenSSL 1.0.1f 6 Jan 2014

এটি প্রমাণ করে যে আমি ওপেনএসএসএলের ম্যাভারিক্স সংস্করণটি ব্যবহার করছি না:

$ which openssl
/opt/local/bin/openssl

ওপেনএসএসএল আজ ১.০.১ জি তে একটি ফিক্স প্রকাশ করেছে এবং আমি অবাক হয়েছি যে আমি কীভাবে এই বর্তমান সংস্করণটি আমার বর্তমান সংস্করণে ইনস্টল করতে পারি?


16
আপনি ওএস এক্স মাভারিক্সের সাথে যে সংস্করণটি আসছেন তা ব্যবহার করছেন না - এটি 0.9.8y, যা হৃদয়যুক্ত বাগ নেই (এটি 1.0.0 সালে প্রবর্তিত হয়েছিল)। আপনার সর্বোত্তম আপডেটের পথটি আপনি কোথায় এবং কীভাবে নতুন সংস্করণ ইনস্টল করেছেন তার উপর নির্ভর করবে। which opensslতথ্যমূলক হতে পারে। এছাড়াও, প্রধান সমস্যাটি ওপেনএসএল কমান্ড নয়, এটি ওপেনএসএল লাইব্রেরিগুলি (যা অন্যান্য প্রোগ্রামগুলি ব্যবহার করে) - এগুলি API 0.9.x এবং 1.0.x এর সাথে সামঞ্জস্যপূর্ণ নয়, তাই আপনি আপডেটটি আপডেট করতে চান না সিস্টেম সরবরাহিত ওপেনএসএল লাইব্রেরি!
গর্ডন ডেভিসন

@ গর্ডন ডেভিসন - আপনি পুরোপুরি ঠিক বলেছেন। আমি ভুল করেছিলাম. আমি স্পষ্টতই MacPortএই মেশিনটির কোনও সময়ে ইনস্টল করেছিলাম যা আমার ওপেনসেলকে আপগ্রেড করেছে। (সম্ভবত আমি যখন পাইথন 2.7 কাজ করার চেষ্টা করছিলাম) তখন। সম্ভবত এই প্রশ্নটি মুছে ফেলা উচিত, তবে অন্যরা যদি নীলাভরশুনের দুর্দান্ত উত্তরটি কার্যকর খুঁজে না পায় তবে একই ভুল না ঘটায়)।
ডাঃ জিম্বোব

সেই স্পষ্টকরণ আপডেটের সাথে, আমি এটি ছেড়ে দেব। একই নৌকায় সম্ভবত অন্য ব্যক্তি রয়েছেন এবং এটি এখানে থাকার ফলে তাদের কী করা দরকার তা ধারণা দেওয়া উচিত।
গর্ডন ডেভিসন

2
আপনার সাথে দ্বারা OpenSSL ইনস্টল করা হলে চোলাই এটা হবে না , / usr / bin এ বাইনেরিতে লিঙ্ক। সুতরাং আপনি কমান্ড লাইনে একটি ওপেনসেল ইস্যু করলে এটি চালানো হবে না ।
ম্যাক্স রেড

@ ম্যাক্সআরেড আপনি কীভাবে হোমব্রিউ ইনস্টল করা সংস্করণটি চালাবেন? আমি স্বীকৃত উত্তরে নির্দেশাবলীর সাহায্যে নতুন openssl versionওপেনসেল ইনস্টল করেছি এবং 1.0.1g প্রদান করি, তবে আপনি বলছেন যে opensslআদেশগুলি সেই সংস্করণটি ব্যবহার করছে না?
অজৈবিক

উত্তর:


147

এটির মূল্যের জন্য, আমি কেবল হোমব্রিউ ব্যবহার করেছি ( http://brew.sh/ ):

brew update  
brew install openssl  
brew link --force openssl 
openssl version -a  

যদি কোনও খারাপ সংস্করণ উঠে আসে (1.0.1a-f), আপনি ওপেনসেলের কোন সংস্করণটি ব্যবহার করছেন তা বুঝতে পারেন:

which openssl

প্রায়শই এটি / usr / বিন থেকে আসে। আপনি আপডেট হওয়া সংস্করণটি পেয়েছেন কিনা তা নিশ্চিত করতে, আপডেট ওপেনসেলের দিকে ইঙ্গিত করতে / usr / লোকাল / বিনের মধ্যে একটি সিমিলিংক ফেলে দিন:

ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/local/bin/openssl

সেই চূড়ান্ত পদক্ষেপের বিকল্প হিসাবে কিছু লোক /usr/binওপেনসেলকে একটি সিমিলিংক দিয়ে প্রতিস্থাপন করে /usr/local/Cellar/openssl/1.0.1g/bin/openssl(বা আপনার সংস্করণ যাই হোক না কেন):

mv /usr/bin/openssl /usr/bin/openssl_OLD  
ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/bin/openssl

তবে এটি ওএসএক্সের আরও কয়েকটি সাম্প্রতিক সংস্করণে সমস্যার কারণ হিসাবে পরিচিত। / Usr / লোকাল / বিনের মধ্যে একটি নতুন সিমলিংক সন্নিবেশ করানো ভাল, এটি আপনার পথে / usr / বিনের উপর অগ্রাধিকার পাবে।


7
আসলটি মুছবেন না — কেবল নাম পরিবর্তন করুন। যদি আপনি দেখতে পান যে হোমব্রু-বিল্ট সংস্করণটি কোনও উদ্দেশ্যে কাজ করে না, নিজেকে (ক্রিকিং) প্যাডেল ছাড়া খাঁড়ি দেওয়ার কোনও কারণ নেই।
টেরি এন

1
যথেষ্ট ভাল, তবে অন্যদিকে, আমি সেই সংস্করণটিকে কাজ করে বলব না ...
নীলকণ্ঠ

1
এমনকি দুর্বলতা থাকা সত্ত্বেও, অ্যাপ্লিকেশন এক্স (যে এটির উপর নির্ভর করে) সংক্ষিপ্তভাবে কাজ করার জন্য আপনি যে কোনও পরিস্থিতিতে গণনা করা ঝুঁকি নিতে ইচ্ছুক, এটি এখনও আপনার পক্ষে কার্যকর। অথবা, যদি আপনি পছন্দ করেন ... "কাজ" এই অর্থে যে একটি ভাঙ্গা প্যাডেল এখনও জল ঠেলাতে পারে। :-p
টেরি এন

8
কেবলমাত্র একটি নোট - এই পদক্ষেপগুলি সম্পাদন করার পরে, টার্মিনাল উইন্ডোতে "ওপেনসেল" টাইপ করা ব্যর্থ হয়েছে "এই জাতীয় কোনও ফাইল বা ডিরেক্টরি" পুরানো অনুলিপিটিতে ত্রুটিযুক্ত (তবে এটি একটি নতুন টার্মিনাল উইন্ডোতে কাজ করে)। আমি যে টার্মিনাল উইন্ডোটিতে কাজ করছিলাম তা ঠিক করার জন্য, আমাকে একটি করণীয় ছিল:hash -r
মাইক হেডম্যান

6
এখানে একটি সিমিলিংক তৈরি করার চেয়ে ভাল /usr/bin/openssl, যে কেউ লিঙ্কটি তৈরি করতে পারেন /usr/local/bin/openssl/usr/binএটি আপনার পূর্ববর্তী হওয়া উচিত $PATHএবং ওএস এক্স এর নতুন সংস্করণগুলিতে "সিস্টেম ইন্টিগ্রিটি প্রোটেকশন" থেকে উদ্ভূত যে কোনও সমস্যা বাইপাস করা উচিত
এমআরকিলে

14

বা যারা ম্যাক পোর্ট ব্যবহার করছেন, এবং সংস্করণটি রাখার বিষয়ে চিন্তিত নন তাদের জন্য

sudo port upgrade openssl

সরল :-)


3
sudo port upgrade outdatedকাজ করে।
ডাঃ জিম্বোব

1
মজার বিষয়, আমার মেশিনে উভয়ই ম্যাকপোর্ট এবং ব্রিউ উভয়ই ওপেনএসএল ইনস্টল করা আসলে আমার কাছে এই ঘটনার কারণ ছিল। রানিং sudo port -f uninstall openssl @<old-version>আমার জন্য কৌতুকটি করেছে :)
ইয়ার

@ আইয়ার ম্যাকপোর্ট এবং হোমব্রু উভয়ই থাকায় অনেক সমস্যার কারণ হতে পারে
ব্যবহারকারী 151019

6

নিরসনের জন্য OCSP স্থিতি অনুরোধ এক্সটেনশন সীমাবদ্ধ মেমরির বৃদ্ধি (জন্য CVE-2016-6304) MacOS সিয়েরা উপর ব্যবহার brewসঙ্গে সিস্টেম ইন্টিগ্রিটি প্রোটেকশন সক্ষমিত:

  1. সাময়িকভাবে অনুমতিগুলি সামঞ্জস্য করুন /usr/localযাতে ব্রেউ আপডেট করতে পারে:

    sudo chgrp -R admin /usr/local
    sudo chmod -R g+w /usr/local
    
  2. ওপেনএসএসএল এর আপডেট হওয়া সংস্করণটি ইনস্টল করুন (আপনি সম্ভবত 1.0.2i চান):

    brew install openssl
    
  3. আপনি থেকে ওপেনএসএল থেকে বিদ্যমান সিমলিংকটি মুছতে বা প্রয়োজন হতে পারে /usr/local/bin:

    rm /usr/local/bin/openssl
    
  4. যথাযোগ্য মজাদার সংস্করণটি পুনরায় লিঙ্ক করুন:

    sudo ln -s /usr/local/Cellar/openssl/1.0.2i/bin/openssl /usr/local/bin/openssl
    
  5. মূল অনুমতিগুলি পুনরুদ্ধার করুন এতে /usr/local/bin:

    sudo chown root:wheel /usr/local
    

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

আপনি কি সুডো ব্যবহার করছেন?
ব্র্যান্ডসস্ক্রিপ্ট

হ্যাঁ. আমি sudo ব্যবহার। আমি মন্তব্য পেয়েছি যে সর্বশেষ সংস্করণে ওএস এক্স এ এই ফাইলটির অনুমতি পরিবর্তন করার কোনও উপায় নেই। সুতরাং আমি এটি অর্জন করা বন্ধ করি।
রামিস

$PATHসন্ধান করার জন্য কেবল আপনার পরিবর্তনশীলটি পরিবর্তন করবেন না কেন /usr/local/bin?
ব্র্যান্ডস্ক্রিপ্ট

হাই সবাই, আমি সব উত্তর দ্বারা বিভ্রান্ত করছি ... সিমবলিক লিঙ্ক, লিঙ্ক, Heartbleed বাগ, ইত্যাদি ড্রপ, 'আমি যখন রান $ openssl versionআমি পেতে OpenSSL 0.9.8zh 14 Jan 2016কিন্তু যখন আমি চালানোর $ brew install opensslআমি পেতে Warning: openssl 1.0.2l is already installed। এর অর্থ কি আমার দুটি সংস্করণ ইনস্টল করা আছে? এখন আমার ঠিক কী করা উচিত?
জোশুয়া

1

যে কেউ মদ বা বন্দর ব্যবহার করতে চায় না এবং কেবল ডিফল্ট ওপেনএসএসএল 0.9.8 ইনস্টলেশনটি প্রতিস্থাপন করতে চায় সে সর্বদা পুনরুদ্ধার মোডে (সিএমডি + আর) পুনরায় চালু করে এবং জারি করে সিস্টেমের অখণ্ডতা সুরক্ষা অক্ষম করতে পারে

csrutil disable

এবং তারপরে ওপেনসেল সংকলন করুন

./config --prefix=/usr
make install

এটি সফলভাবে আমার জন্য এলক্যাপিটনে ওপেনএসএসএল প্রতিস্থাপন করেছে এবং আমি সরাসরি উত্স থেকে সরাসরি কোনও সমস্যা ছাড়াই কার্ল এবং অ্যাপাচের httpd 2.4 সংকলন করতে সক্ষম হয়েছি। পদ্ধতিটিকে কেউ কেউ কঠোর বিবেচনা করতে পারে তার পিছনে যুক্তিটি হ'ল এলকাপিটান আর অ্যাপল দ্বারা রক্ষণাবেক্ষণ করে না এবং কোনও আপডেট আসন্ন না যাতে সম্ভবত এটি ভেঙে না যায়। দ্বিতীয়ত, এটি আপনাকে আরও শক্তিশালী সংকলন তৈরির প্রতিটি প্রোগ্রামের জন্য / usr / লোকাল মধ্যে ওপেনসেল ফোল্ডারটি নির্দেশ করে বাঁচায়।

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