bg-tutorials

Postfix-এ কীভাবে একটি SSL সার্টিফিকেট ইনস্টল করবেন

এই টিউটোরিয়ালে, আপনি শিখবেন Postfix-এ কীভাবে একটি SSL/TLS সার্টিফিকেট ইনস্টল করবেন, যা একটি জনপ্রিয় লিনাক্স মেইল ​​ট্রান্সফার এজেন্ট।

আমরা একটি ভিডিওও রেকর্ড করেছি যা আপনাকে পুরো প্রক্রিয়াটি ধাপে ধাপে দেখাবে। নীচে সেটি দেখুন, অথবা টেক্সট সংস্করণের জন্য পড়া চালিয়ে যান।

Postfix-এ একটি CSR কোড তৈরি করুন

যদি আপনি ইতিমধ্যে আপনার CSR কোড তৈরি করে থাকেন এবং শুধুমাত্র ইনস্টলেশনের ধাপগুলি প্রয়োজন হয়, তাহলে Postfix-এ একটি SSL সার্টিফিকেট ইনস্টল করুন বিভাগে এগিয়ে যান।

একটি বিশ্বস্ত CA (Certificate Authority) থেকে SSL সার্টিফিকেট পেতে, আপনাকে একটি CSR (Certificate Signing Request) জমা দিতে হবে। একটি CSR হল এনকোড করা টেক্সটের একটি ব্লক যাতে আপনার যোগাযোগ এবং প্রতিষ্ঠানের বিবরণ থাকে। আপনার কাছে দুটি বিকল্প রয়েছে:

  • CSR স্বয়ংক্রিয়ভাবে তৈরি করতে আমাদের CSR Generator ব্যবহার করুন।
  • Postfix-এ কীভাবে একটি CSR তৈরি করবেন সে সম্পর্কে আমাদের ধাপে ধাপে টিউটোরিয়াল অনুসরণ করুন

আপনার SSL বিক্রেতার সাথে অর্ডার প্রক্রিয়া চলাকালীন, যেকোনো প্লেইন-টেক্সট এডিটরে CSR ফাইলটি খুলুন এবং —–BEGIN CERTIFICATE REQUEST—– এবং —–END CERTIFICATE REQUEST—– লাইন সহ পুরো ব্লকটি কপি-পেস্ট করুন সংশ্লিষ্ট বক্সে। একবার CA আপনার অনুরোধ যাচাই করে সার্টিফিকেট ইস্যু করলে, নীচের ইনস্টলেশন প্রক্রিয়া চালিয়ে যান।

Postfix-এ একটি SSL সার্টিফিকেট ইনস্টল করুন

CA যখন আপনার অনুরোধ যাচাই করে এবং সার্টিফিকেট ফাইলগুলো আপনার ইনবক্সে পাঠায়, তখন আপনি ইনস্টলেশন শুরু করতে পারেন।

ধাপ ১: আপনার SSL ফাইলগুলো প্রস্তুত করুন

Postfix X.509 ফরম্যাটে SSL/TLS সার্টিফিকেট ব্যবহার করে। সঠিক ইনস্টলেশনের জন্য তিনটি ফাইলের প্রয়োজন:

  • আপনার প্রাইভেট কি, যা আপনার সার্ভারে CSR-এর সাথে একসাথে তৈরি হয়েছিল (উদাহরণস্বরূপ privkey.key)।
  • আপনার প্রাথমিক SSL সার্টিফিকেট, যা CA আপনাকে ইমেইল করা ZIP আর্কাইভের ভেতরের ফাইল। এই গাইডে আমরা এটিকে server.crt হিসেবে উল্লেখ করব।
  • ইন্টারমিডিয়েট সার্টিফিকেট(গুলো), একই ZIP আর্কাইভ থেকে CA বান্ডেল। আমরা এটিকে intermediate.pem হিসেবে উল্লেখ করব।

আপনি তিনটি ফাইল একটি একক ডিরেক্টরিতে রাখতে পারেন, উদাহরণস্বরূপ /etc/postfix/। নিশ্চিত করুন যে প্রাইভেট কি শুধুমাত্র root দ্বারা পঠনযোগ্য:

sudo chmod 600 /etc/postfix/privkey.key

ধাপ ২: সার্টিফিকেট চেইন তৈরি করুন

আপনি ফাইলগুলো কীভাবে একত্রিত করবেন তা আপনার Postfix সংস্করণের উপর নির্ভর করে। প্রথমে এটি পরীক্ষা করুন:

postconf mail_version

প্রস্তাবিত (Postfix 3.4 এবং তার নতুন সংস্করণ)

একটি চেইন ফাইল তৈরি করুন যাতে প্রাইভেট কি, সার্ভার সার্টিফিকেট, এবং ইন্টারমিডিয়েট(গুলো) থাকে, ঠিক এই ক্রমে:

cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem

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

sudo chmod 600 /etc/postfix/rsachain.pem

বিকল্প (সব Postfix সংস্করণ)

যদি আপনি 3.4-এর চেয়ে পুরনো Postfix সংস্করণ চালান, তাহলে কি আলাদা রাখুন এবং শুধুমাত্র সার্ভার সার্টিফিকেটকে ইন্টারমিডিয়েট(গুলো)-এর সাথে একত্রিত করুন:

cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem

আপনি নীচের কনফিগারেশনে এই বান্ডেল এবং প্রাইভেট কি আলাদাভাবে উল্লেখ করবেন।

ধাপ ৩: Postfix কনফিগার করুন

প্রধান কনফিগারেশন ফাইল /etc/postfix/main.cf খুলুন এবং আপনার সেটআপের সাথে মিলে যায় এমন স্টাইল নির্বাচন করুন।

বিকল্প A: Postfix 3.4 বা নতুন (প্রস্তাবিত)। আপনি যে একক চেইন ফাইল তৈরি করেছেন সেদিকে Postfix-কে নির্দেশ করুন:

smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may

বিকল্প B: লিগ্যাসি (Postfix 3.4-এর চেয়ে পুরনো)। সার্টিফিকেট বান্ডেল এবং কি আলাদাভাবে উল্লেখ করুন:

smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may

এই নির্দেশনাগুলো সম্পর্কে কিছু নোট:

  • smtpd_tls_security_level = may পোর্ট 25-এ ইনবাউন্ড মেইলের জন্য সুযোগসন্ধানী (opportunistic) TLS সক্ষম করে। এটি একটি পাবলিক MX সার্ভারের জন্য সঠিক সেটিং: এটি প্রেরকদের কাছে STARTTLS বিজ্ঞাপন দেয় যারা এটি সমর্থন করে, একইসাথে যারা সমর্থন করে না তাদের কাছ থেকে সাধারণ সংযোগ গ্রহণ করে। একটি পাবলিক MX-এ encrypt-এ সেট করবেন না, কারণ এটি শুধুমাত্র সাধারণ প্রেরকদের বৈধ মেইল ​​প্রত্যাখ্যান করবে। (পুরনো smtpd_use_tls = yes সুইচটি অবচিত; smtpd_tls_security_level এটি প্রতিস্থাপন করে।)
  • একটি ফুল-চেইন সার্টিফিকেট ব্যবহার করুন (আপনার সার্টিফিকেট এবং ইন্টারমিডিয়েটগুলো), আপনি এটি smtpd_tls_chain_files (বিকল্প A) বা smtpd_tls_cert_file (বিকল্প B) দিয়ে সরবরাহ করুন না কেন। শুধুমাত্র লিফ সার্টিফিকেট পরিবেশন করলে প্রাপক প্রান্তে চেইন-যাচাইকরণ ব্যর্থ হয়।
  • আধুনিক Postfix ইতিমধ্যে ডিফল্টভাবে SSLv2, SSLv3, এবং দুর্বল সাইফার নিষ্ক্রিয় করে দেয়, তাই ইনবাউন্ড পোর্ট-25 ট্রাফিকের জন্য আপনার অতিরিক্ত বর্জন তালিকার প্রয়োজন নেই।

সাবমিশন সার্ভিস সুরক্ষিত করুন (পোর্ট 587)

যখন আপনার নিজের ব্যবহারকারীরা Postfix-এর মাধ্যমে মেইল ​​পাঠান (Outlook, Thunderbird, Apple Mail ইত্যাদির মাধ্যমে), তারা submission পোর্ট 587-এ সংযোগ করে, পোর্ট 25 নয়, যা সার্ভার-থেকে-সার্ভার বিতরণের জন্য সংরক্ষিত। যেহেতু শুধুমাত্র আপনার প্রমাণীকৃত ব্যবহারকারীরা এই পোর্ট ব্যবহার করে, তাই আপনি নিরাপদে কঠোর নিয়ম প্রয়োগ করতে পারেন: TLS প্রয়োজনীয় করুন এবং TLS 1.2 এর একটি ন্যূনতম প্রোটোকল সেট করুন।

/etc/postfix/master.cf খুলুন, নিশ্চিত করুন যে submission সার্ভিসটি সক্ষম আছে, এবং নীচের ওভাররাইডগুলো যোগ করুন:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_mandatory_protocols=>=TLSv1.2

কিছু বিবরণ যা মানুষকে বিভ্রান্ত করে:

  • smtpd_tls_mandatory_protocols শুধুমাত্র তখনই কার্যকর হয় যখন সুরক্ষা স্তর encrypt (বাধ্যতামূলক TLS), যা এখানে পোর্ট 587-এ ঠিক এই ক্ষেত্রেই। পোর্ট 25-এ সুযোগসন্ধানী TLS-এর জন্য (সুরক্ষা স্তর may), সমতুল্য সেটিং হবে smtpd_tls_protocols, কিন্তু একটি পাবলিক MX-এ আপনি সাধারণত সেটি Postfix-এর ডিফল্টে রেখে দেন যাতে আপনি পুরনো প্রেরকদের প্রত্যাখ্যান না করেন।
  • কমপ্যাক্ট >=TLSv1.2 সিনট্যাক্সের জন্য Postfix 3.6 বা নতুন প্রয়োজন এবং >= ও সংস্করণের মধ্যে কোনো স্পেস থাকা উচিত নয়। Postfix 3.4 বা 3.5-এ, পরিবর্তে বর্জন ফর্ম ব্যবহার করুন: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
  • master.cf-এ, একটি -o ওভাররাইডে =-এর চারপাশে কোনো স্পেস নেই (উদাহরণস্বরূপ -o smtpd_tls_security_level=encrypt), যেখানে main.cf-এ আপনি স্পেস দিয়ে key = value লেখেন।

ঐচ্ছিক: পোর্ট 465-এ ইমপ্লিসিট TLS। অনেক আধুনিক ক্লায়েন্ট পোর্ট 465 (SMTPS / “submissions”) পছন্দ করে, যা শুরু থেকেই পুরো সেশনকে TLS-এ মোড়ানো। RFC 8314 এটিকে 587-এর পাশাপাশি সমর্থন করে। এটি অফার করতে, র‍্যাপার মোড দিয়ে master.cf-এ smtps সার্ভিস সক্ষম করুন:

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

ধাপ ৪: Postfix রিলোড করুন

রিলোড করার আগে, কনফিগারেশনে সিনট্যাক্স ভুল আছে কিনা তা পরীক্ষা করা ভালো অভ্যাস:

sudo postfix check

যদি এটি কিছু না দেখায়, পরিবর্তনগুলো প্রয়োগ করুন। একটি রিলোড সক্রিয় সংযোগগুলো ব্যাহত না করে কনফিগারেশন পুনরায় পড়ে:

sudo systemctl reload postfix

systemd ছাড়া সিস্টেমে, সমতুল্য কমান্ড হলো:

sudo postfix reload

ধাপ ৫: সার্টিফিকেট যাচাই করুন

OpenSSL দিয়ে নিশ্চিত করুন যে Postfix সঠিক সার্টিফিকেট এবং চেইন পরিবেশন করছে। yourdomain.com-কে আপনার মেইল ​​সার্ভারের হোস্টনেম দিয়ে প্রতিস্থাপন করুন:

openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null 
| openssl x509 -noout -issuer -subject -dates

আউটপুটে আপনার সার্ভার সার্টিফিকেটের subject, তার issuer (CA), এবং বৈধতার তারিখ দেখানো উচিত। এর পরিবর্তে সাবমিশন সার্ভিস পরীক্ষা করতে, পোর্টটি 587-এ পরিবর্তন করুন (এটিও STARTTLS ব্যবহার করে) অথবা, ইমপ্লিসিট-TLS পোর্ট 465-এর জন্য, -starttls smtp বাদ দিন এবং সরাসরি পোর্ট 465-এ সংযোগ করুন। অভিনন্দন, আপনি সফলভাবে Postfix-এ একটি SSL সার্টিফিকেট ইনস্টল করেছেন।

আপনার SSL ইনস্টলেশন পরীক্ষা করুন

সার্টিফিকেট ইনস্টল করার পরে, ত্রুটি বা দুর্বলতার জন্য আপনার কনফিগারেশন স্ক্যান করা বুদ্ধিমানের কাজ। আমাদের SSL Checker আপনাকে আপনার সার্টিফিকেট এবং তার সেটআপের প্রতিটি দিক সম্পর্কে তাৎক্ষণিক প্রতিবেদন দেয়, যাতে আপনি নিশ্চিত করতে পারেন যে চেইনটি সম্পূর্ণ এবং প্রোটোকলগুলো সঠিকভাবে কনফিগার করা হয়েছে।

Postfix-এর জন্য সেরা SSL সার্টিফিকেট কোথায় কিনবেন?

আপনি সঠিক জায়গায় পৌঁছেছেন। SSL Dragon-এ, আমরা বাজারের কিছু সর্বনিম্ন মূল্যে সবচেয়ে বিস্তৃত SSL পণ্যের রেঞ্জগুলোর একটি অফার করি, এবং আমাদের সব সার্টিফিকেট Postfix মেইল ​​ট্রান্সফার এজেন্টের সাথে সামঞ্জস্যপূর্ণ।

কোন সার্টিফিকেট বেছে নেবেন তা নিশ্চিত নন? আমাদের SSL Wizard আপনার মেইল ​​সার্ভারের জন্য সঠিক পণ্য খুঁজে পাওয়া দ্রুত এবং সহজ করে তোলে।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

Postfix SSL সার্টিফিকেটের জন্য কোন ফাইল ব্যবহার করে?

TLS /etc/postfix/main.cf-এ কনফিগার করা হয়। Postfix 3.4 এবং তার নতুন সংস্করণে, প্রস্তাবিত নির্দেশনা হলো smtpd_tls_chain_files, যা একটি একক PEM ফাইলে নির্দেশ করে যাতে প্রাইভেট কি, সার্ভার সার্টিফিকেট, এবং ইন্টারমিডিয়েটগুলো থাকে। পুরনো সংস্করণে, আপনি এর পরিবর্তে smtpd_tls_cert_file (একটি ফুল-চেইন সার্টিফিকেট) এবং smtpd_tls_key_file (প্রাইভেট কি) আলাদাভাবে সেট করেন। পোর্ট 587 এবং 465-এর জন্য প্রতি-সার্ভিস ওভাররাইড /etc/postfix/master.cf-এ থাকে।

Postfix চেইন ফাইলের সঠিক ক্রম কী?

smtpd_tls_chain_files-এর জন্য, ক্রমটি হলো প্রথমে প্রাইভেট কি, তারপর সার্ভার (লিফ) সার্টিফিকেট, তারপর ইন্টারমিডিয়েট সার্টিফিকেট(গুলো):
cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
যদি ক্রমটি ভুল হয়, Postfix চেইন লোড করতে ব্যর্থ হবে। রুট CA সার্টিফিকেট অন্তর্ভুক্ত করবেন না; ক্লায়েন্টরা ইতিমধ্যে এটির উপর বিশ্বাস করে।

smtpd_tls_security_level-এর জন্য আমার কি “may” নাকি “encrypt” ব্যবহার করা উচিত?

পোর্ট 25-এ ইনবাউন্ড মেইলের জন্য may (সুযোগসন্ধানী TLS) ব্যবহার করুন। একটি পাবলিক MX-কে অবশ্যই এমন প্রেরকদের কাছ থেকে মেইল ​​গ্রহণ করতে হবে যারা TLS সমর্থন করে না, এবং encrypt তাদের প্রত্যাখ্যান করবে, যার ফলে ইমেইল হারিয়ে যাবে। পোর্ট 587-এ প্রমাণীকৃত সাবমিশন সার্ভিসের জন্য encrypt (বাধ্যতামূলক TLS) সংরক্ষণ করুন, যেখানে শুধুমাত্র আপনার নিজের ব্যবহারকারীরা সংযোগ করে।

আমার কি Postfix রিস্টার্ট করতে হবে নাকি রিলোড করতে হবে?

সার্টিফিকেট এবং TLS পরিবর্তনের জন্য একটি রিলোডই যথেষ্ট; sudo systemctl reload postfix (অথবা sudo postfix reload) চালান। রিলোড করলে সক্রিয় সংযোগ বাদ না দিয়ে কনফিগারেশন পুনরায় পড়া হয়। প্রথমে sudo postfix check চালিয়ে সিনট্যাক্স ত্রুটি কার্যকর হওয়ার আগেই ধরুন।

আমি কীভাবে পরীক্ষা করব যে Postfix সার্টিফিকেটটি পরিবেশন করছে?

OpenSSL দিয়ে সংযোগ করুন এবং STARTTLS-এর মাধ্যমে Postfix যে সার্টিফিকেট উপস্থাপন করে তা পড়ুন:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
এটি সার্টিফিকেটের subject, issuer, এবং বৈধতার তারিখ প্রিন্ট করে। আপনি চেইনটি সম্পূর্ণ কিনা তা নিশ্চিত করতে আমাদের SSL tools দিয়ে একটি সম্পূর্ণ স্ক্যানও চালাতে পারেন।

শেষ কথা

Postfix-এ একটি SSL সার্টিফিকেট ইনস্টল করা একটি ফুল-চেইন PEM ফাইল একত্রিত করা, smtpd_tls_chain_files (অথবা লিগ্যাসি smtpd_tls_cert_file / smtpd_tls_key_file জোড়া) দিয়ে main.cf-কে সেদিকে নির্দেশ করা, ইনবাউন্ড মেইলের জন্য smtpd_tls_security_level = may সেট করা, পোর্ট 587-এ সাবমিশন সার্ভিস সুরক্ষিত করা, sudo postfix check দিয়ে কনফিগারেশন পরীক্ষা করা, এবং Postfix রিলোড করার মধ্যেই সীমাবদ্ধ।

প্রথমে একটি সার্টিফিকেট প্রয়োজন? আমাদের SSL সার্টিফিকেট ব্রাউজ করুন।

আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!

দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

উড়ন্ত একটি ড্রাগনের একটি বিস্তারিত চিত্র
লিখেছেন

SSL শংসাপত্রে বিশেষজ্ঞ অভিজ্ঞ বিষয়বস্তু লেখক। জটিল সাইবারসিকিউরিটি বিষয়গুলিকে পরিষ্কার, আকর্ষক সামগ্রীতে রূপান্তর করা। প্রভাবশালী বর্ণনার মাধ্যমে ডিজিটাল নিরাপত্তার উন্নতিতে অবদান রাখুন।