আপাচে টিএলএস 1.1 এবং 1.2 কীভাবে অক্ষম করবেন?


13

আমার কাছে একটি উবুন্টু 12.04.2 এলটিএস সার্ভার আছে যা অ্যাপাচি ২.২.২২ মোড_এসএসএল এবং ওপেনএসএসএল ভি ১.০.১ নিয়ে চলছে।

আমার vhosts কনফিগারেশনে (অন্য সব কিছু যার মধ্যে আমার প্রত্যাশা মতো আচরণ করে), আমার SSLProtocolসাথে লাইন রয়েছে -all +SSLv3

এই কনফিগারেশনের সাহায্যে টিএলএস 1.1 এবং 1.2 সক্ষম হয়েছে এবং সঠিকভাবে কাজ করছে - যা আমার কাছে প্রতিক্রিয়াশীল, কারণ আমি আশা করব যে এই কনফিগারেশনের ফলে কেবলমাত্র এসএসএলভি 3 সক্ষম হবে।

আমি টিএলএসভি 1 সক্ষম করে / অক্ষম করতে পারি ঠিক এটি দিয়ে -/+TSLv1, এবং এটি প্রত্যাশার মতো কাজ করে। তবে +/-TLSv1.1এবং +/-TLSv1.2বৈধ কনফিগারেশন বিকল্পগুলি নয় - তাই আমি সেভাবে তাদের অক্ষম করতে পারি না।

আমি কেন এটি করতে চাই - আমি তৃতীয় পক্ষের অ্যাপ্লিকেশনটি নিয়ে কাজ করছি (যার উপর আমার কোনও নিয়ন্ত্রণ নেই) যার টিএলএস সক্ষম সার্ভারগুলির সাথে কিছু বগি আচরণ রয়েছে এবং এগিয়ে যাওয়ার জন্য আমার এটি পুরোপুরি অক্ষম করা দরকার।


শুধু কৌতূহলের বাইরে - আমি জিজ্ঞাসা করতে পারি আপনি কেন প্রথমে টিএসএল অক্ষম করতে চান? আমি যা জড়ো করেছি, সেগুলি থেকে এসএসএলভি 1/2/3 এর চেয়ে বেশি সুরক্ষিত থাকার কথা, সুতরাং কেবলমাত্র V1.2 এবং V1.1 নয় (এটিই আমাকে এখানে এনেছে) না করার জন্য কেবল কারণগুলি কল্পনা করতে পারি, তবে এটি অক্ষম করার জন্য নয় এসএসএলের পক্ষে, পুরানো সফ্টওয়্যারটির সাথে সামঞ্জস্যের কিছু সমস্যা ছাড়া সম্ভবত?
কোডিং করা

@ কোডেলিং পুরানো, তৃতীয় পক্ষের, সফটওয়্যার যার সাথে টিএলএস সহ বাগ রয়েছে সেগুলি নিয়ে কাজ করা।
কাইল লোরি

উত্তর:


23

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

যখন SSLProtocolপার্স করা হয়েছে, এটি এর charমত একটি চেহারাতে ফলাফল :

0 1 0 0
^ ^ ^ ^
| | | SSLv1
| | SSLv2
| SSLv3
TLSv1

নতুন সার্ভারের প্রসঙ্গটি শুরু করার পরে, সমস্ত উপলব্ধ প্রোটোকল সক্ষম করা হবে এবং charকোন প্রোটোকল অক্ষম করা উচিত তা নির্ধারণের জন্য উপরেরটি কিছু নিফটি বিটওয়াইজ এবং অপারেশন ব্যবহার করে পরীক্ষা করা হবে । এই ক্ষেত্রে, যেখানে SSLv3 হ'ল একমাত্র প্রোটোকল যা স্পষ্টভাবে সক্ষম হয়েছে, অন্য 3 জন অক্ষম হবে।

ওপেনএসএসএল TLSv1.1 এর জন্য একটি প্রোটোকল সেটিং সমর্থন করে, তবে যেহেতু SSLProtocolএই বিকল্পগুলির জন্য অ্যাকাউন্ট না করা হয়, এটি কখনই অক্ষম হয় না। ওপেনএসএসএল ভি 1.0.1 টি টিএলএসভি 1.2 এর সাথে কিছু জ্ঞাত সমস্যা রয়েছে তবে এটি সমর্থিত হলে আমি মনে করি টিএলএসভি 1.1 এর মতোই এটির জন্য রয়েছে; এটি মোড_এসএসএল দ্বারা স্বীকৃত / পরিচালনা করা হয়নি এবং এভাবে কখনও অক্ষম হয় না।

Mod_ssl এর জন্য উত্স কোড রেফারেন্স:

SSLProtocolলাইন 925 এ পার্স পরার pkg.sslmod/ssl_engine_config.c
উপরের ফাংশন ব্যবহৃত অপশন লাইন 444 এ সংজ্ঞায়িত করা হয় pkg.sslmod/mod_ssl.h
লাইন 586 এ সকল প্রোটোকলের সক্রিয় পরার pkg.sslmod/ssl_engine_init.cwhereafter নির্দিষ্ট প্রোটোকল পরবর্তী লাইন অক্ষম পায়

কীভাবে এটি অক্ষম করবেন?

আপনার স্বল্প কিছু সু্যোগ আছে:

  1. এটি ওপেনএসএসএল কনফিগারেশন ফাইলে এতে অক্ষম করুন:
    Protocols All,-TLSv1.1,-TLSv1.2
  2. পুনর্লিখন mod_ssl;-)

একটি নিখুঁত উত্তরের মত দেখাচ্ছে, কেবল যাচাই করা দরকার: কোন / কি / যেখানে ওপেনএসএসএল কনফিগারেশন ফাইল?
কাইল লোরি

openssl.cnf- অবস্থানটি ইনস্টলের উপর নির্ভর করে। ডিবিয়ান স্কিজে আমি এটি /etc/ssl/openssl.cnfওএস এক্স /System/Library/OpenSSL/openssl.cnfএবং উইন্ডোজ 7 এ খুঁজে পেয়েছি %systemdrive%\openssl\openssl.cnf
ম্যাথিয়াস আর জেসেন

1
আমি এখন কনফিগারেশন ফাইলের দিকে তাকিয়ে আছি; আপনার উত্তরের ভিত্তিতে আমি প্রত্যাশা করা চেয়ে সিনট্যাক্সটি কিছুটা আলাদা দেখায় এবং আমি অনলাইনে এমন কোনও কিছুই খুঁজে পাচ্ছি না যা স্পষ্টভাবে জানিয়েছে যে আপনি সেই কনফিগারেশন ফাইলটি থেকে সক্ষম / অক্ষম থাকা প্রোটোকলগুলি নিয়ন্ত্রণ করতে পারেন। তার জন্য আপনার কোনও রেফারেন্স আছে? ধন্যবাদ।
কাইল লোরি

অন্য একটি বিকল্প - ব্যবহার করুন: SSLProtocolএকই পদ্ধতিতে উপরে ( SSLProtocol All -TLSv1.1 -TLSv1.2(কোনও কমা প্রয়োজন হবে না) তবে উপরে উল্লিখিত কোনও এসএসএল গ্লোবাল কনফিগারেশনকে 'ওভাররাইড' করতে একটি গ্লোবাল বা নির্দিষ্ট অ্যাপাচি কনফিগারেশনের অধীনে। (আপনি যদি সমস্ত অন্তর্নিহিত এসএসএল সাইফারগুলি পরিবর্তন করতে চান না -> যেহেতু আপনার যে সাইফারটি প্রয়োজন তা দুর্বল হিসাবে বিবেচিত হয়))
বিশিয়া

2

মোড_এসএসএল অ্যাপাচি পৃষ্ঠায় দেওয়া মন্তব্যেও এই সমস্যাটির সমাধান করা হয়েছে: http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#comment_1136

উবুন্টু 12.04 এ অ্যাপাচি ২.২.২৩ থাকলে সমস্যাটি হত না। মন্তব্য অনুসারে, TLSv1.1 এবং TLSv1.2 সক্ষম করা সম্ভব, তবে TLSv1.0 এছাড়াও সক্ষম করা হবে:

SSLProtocol All -SSLv2 -SSLv3

1

প্রথমত, আপনাকে অবশ্যই সনাক্ত করতে হবে আপনার সার্ভারের 443 পোর্টের জন্য ডিফল্ট ভোস্টটি কী (অ্যাপাচি দ্বারা চালিত প্রথম এসএসএল ভোস্ট) এবং এটির কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে। বেশিরভাগ ব্যবহারকারীর তাদের সার্ভারগুলিতে একটি ssl.conf ফাইল রয়েছে এবং সেখানে 443 পোর্টের জন্য একটি ভোস্ট রয়েছে। এই ফাইলটির নাম "s" দিয়ে শুরু হওয়ার সাথে সাথে এটি vhosts.conf এ কনফিগার করা vhosts হওয়ার আগে লোড হবে (যা "v" দিয়ে শুরু হবে)। সুতরাং, এটি আপনার ক্ষেত্রে কিনা তা পরীক্ষা করুন (উত্তরটি হ'ল কার্যত সবার জন্য "হ্যাঁ") এবং সেই ফাইলের প্রোটোকলগুলি পরিবর্তন করুন । তাতেই চলবে!

অনুরূপ একটি সমস্যা এখানে পোস্ট করা হয়েছিল: আপাচে টিএলএস 1.1 এবং 1.2 কে কীভাবে অক্ষম করবেন? । এইচব্রুজনের মতে:

আপনার যদি আইপি ভার্চুয়ালহোস্ট না থাকে তবে অনুশীলনে এসএসএলপ্রোটোকল নির্দেশের প্রথম উপস্থিতির সেটিংস পুরো সার্ভার এবং / অথবা সমস্ত নাম ভিত্তিক ভার্চুয়াল হোস্টের জন্য টিএলএস সমর্থন করে ব্যবহার করা হয়

এবং আরেকটি এখানে: একা ভার্চুয়ালহস্ট (পোডল) এর জন্য অ্যাপাচিতে কোনও এসএসএল প্রোটোকল সেট করা সম্ভব? । ভ্যালিওমোর্টিস অনুসারে:

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

উপায় দ্বারা: একটি সার্ভারের ডিফল্ট ভোস্ট, কোনও প্রদত্ত পোর্টের জন্য, সেই বন্দরটির অনুরোধগুলির উত্তর দেয় যা কোনও সার্ভার নাম সনাক্তকরণ (বা কোনও ভুল সার্ভারের নাম সহ) সার্ভারে উপস্থিত হয়। উদাহরণ: আপনার ব্রাউজারের ঠিকানা বারে টাইপ করা একটি আইপি বা একটি ভুল ডিএনএস টেবিলের কারণে ভ্রান্ত পুনঃনির্দেশ।

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