পোস্টফিক্স "সতর্কতা: ফাইল থেকে আরএসএর ব্যক্তিগত কী পেতে পারে না"


14

আমি এই টিউটোরিয়ালটি স্রেফ ভার্চুয়াল ব্যবহারকারীদের ব্যাকএন্ড হিসাবে ডোভকোট এবং মাইএসকিএল সহ একটি পোস্টফিক্স মেলসভার সেটআপ করার জন্য অনুসরণ করেছি ।

এখন আমি বেশিরভাগ অংশে কাজ করেছি, আমি পিওপি 3 (এস) এবং আইএমএপি (এস) এর সাথে সংযোগ করতে পারি।

ব্যবহার

echo TEST-MAIL | mail myaccount@hotmail.com

ঠিক আছে, যখন আমি আমার হটমেইল অ্যাকাউন্টে লগইন করি এটি ইমেলটি দেখায়।

এছাড়া এ বিপরীত অত: পর আমার MX প্রবেশ কাজ করে example.com পরিশেষে প্রচারিত হয়েছে, তাই আমি থেকে পাঠানো ইমেল পেতে সক্ষম হচ্ছে করছি myaccount@hotmail.com করার myvirtualuser@example.com থান্ডারবার্ড IMAP এর মাধ্যমে STARTTLS ব্যবহারে তাদের দেখতে এবং।

একটি বিট আরো গবেষণা করছেন পর আমি ত্রুটির বার্তা "পেয়েছিলাম 5.7.1: রিলে অ্যাক্সেস অস্বীকৃত " যখন থেকে মেইল পাঠাতে চেষ্টা myaccount@hotmail.com লগ করা হচ্ছে থান্ডারবার্ড ব্যবহার myvirtualuser@example.com , আমি মূর্ত আউট যে আমার সার্ভারে কাজ করছিল "ওপেন মেল রিলে" হিসাবে, যা - অবশ্যই - একটি খারাপ জিনিস।

এই মন্তব্যের মত টিউটোরিয়ালটির alচ্ছিক অংশগুলিতে আরও খনন এবং অন্যান্য টিউরিয়াল , আমি ত্রুটি বার্তা না পেয়ে, মজিলা থান্ডারবার্ডের মাধ্যমে myvirtualuser@example.com এর মাধ্যমে মেল পাঠাতে সক্ষম হতে এই পদক্ষেপগুলি সম্পন্ন করার সিদ্ধান্ত নিয়েছি " 7.7.১ : রিলে অ্যাক্সেস অস্বীকার করা হয়েছে "আর (সাধারণ মেল সার্ভারগুলি খোলা রিলেযুক্ত ইমেলগুলি প্রত্যাখ্যান করে)।

কিন্তু এখন আমি SMTPS সঙ্গে কাজ পোস্টসাফিক্স পেতে চেষ্টা করার সময় একটি ত্রুটি গাড়ীতে আঘাত, /var/log/mail.log এটি সার্চ

Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: cannot get RSA private key from file /etc/ssl/certs/postfix.pem: disabling TLS support
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY:
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib:ssl_rsa.c:669:

থান্ডারবার্ডে 465 পোর্টের মাধ্যমে এসএমটিপি এসএসএল / টিএলএস ব্যবহার করে আমার নতুন ইনস্টল করা মেলসভার থেকে একটি মেইল ​​প্রেরণের চেষ্টা করার পরে এই ত্রুটিটি ঠিক তখনই লগ হয়। থান্ডারবার্ড তখন আমাকে একটি সময়সীমা সম্পর্কে জানায়।

গুগলের এই সমস্যা সম্পর্কিত কয়েকটি ফলাফল রয়েছে, তবুও আমি এগুলির কোনওটির সাথে এটি কাজ করতে পারি না। আমি তাদের কয়েকটি এখানে লিঙ্ক করব তবে নতুন ব্যবহারকারী হিসাবে আমাকে কেবল দুটি হাইপারলিঙ্ক ব্যবহার করার অনুমতি দেওয়া হয়েছে।

আমার /etc/postfix/master.cf দেখে মনে হচ্ছে

smtp      inet  n       -       -       -       -       smtpd
smtps     inet  n       -       -       -       -       smtpd
   -o smtpd_tls_wrappermode=yes
   -o smtpd_sasl_auth_enable=yes

এবং এনএম্যাপ আমাকে বলে

PORT     STATE SERVICE
[...]
465/tcp  open  smtps
[...]

আমার /etc/postfix/main.cf দেখে মনে হচ্ছে

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
#smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem            #default postfix generated
#smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key #default postfix generated
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smptd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smptd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.com, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver

* .Pem ফাইলগুলি উপরের টিউটোরিয়ালে বর্ণিত, যেমন ব্যবহার করে তৈরি করা হয়েছিল

Postfix
To create a certificate to be used by Postfix use:

openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem

Do not forget to set the permissions on the private key so that no unauthorized people can read it:

chmod o= /etc/ssl/private/postfix.pem

You will have to tell Postfix where to find your certificate and private key because by default it will look for a dummy certificate file called "ssl-cert-snakeoil":

postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem

আমি মনে করি আমাকে এখানে /etc/dovecot/dovecot.conf অন্তর্ভুক্ত করতে হবে না , কারণ ইমামগুলি এবং পপ 3 এর মাধ্যমে লগইন লগ অনুসারে কাজ করে। কেবল সমস্যাটি পোস্টফিক্সকে স্ব-উত্পন্ন, স্ব-স্বাক্ষরিত শংসাপত্রগুলি সঠিকভাবে ব্যবহার করা হচ্ছে।

কোন সাহায্য প্রশংসা!

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

আমি এসএসএল লাইব্রেরিগুলির জন্যও পরীক্ষা করেছিলাম, তবে সব ঠিক আছে বলে মনে হচ্ছে:

  root@domain:~# ldd /usr/sbin/postfix
    linux-vdso.so.1 =>  (0x00007fff91b25000)
    libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x00007f6f8313d000)
    libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x00007f6f82f07000)
    libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f6f82cb1000)
    libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00007f6f82910000)
    libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f6f826f7000)
    libdb-4.8.so => /usr/lib/libdb-4.8.so (0x00007f6f8237c000)
    libnsl.so.1 => /lib/libnsl.so.1 (0x00007f6f82164000)
    libresolv.so.2 => /lib/libresolv.so.2 (0x00007f6f81f4e000)
    libc.so.6 => /lib/libc.so.6 (0x00007f6f81beb000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f6f819e7000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f6f817d0000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f6f815b3000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6f83581000)

আনসগার ওয়াইচারদের নির্দেশ অনুসরণ করার পরে এটি শেষ পর্যন্ত কাজ করছে instructions

postconf -nএটি করা উচিত হিসাবে লাইন আছে। ওপেনসেলের মাধ্যমে শংসাপত্র / কী চেক দেখায় যে দুটি ফাইলই বৈধ।

সুতরাং এটি সত্যিই একটি অনুমতি সমস্যা হয়েছে! আপনি কি জানতেন না যে /etc/ssl/*/postfix.pem ফাইলগুলি পোস্টফিক্সে ছাঁটাই করা: পোস্টফিক্স ফাইলগুলি পড়ার জন্য পোস্টফিক্সের পক্ষে যথেষ্ট নয়।

উত্তর:


16

এর সামগ্রীগুলি main.cfআপনার সক্রিয় পোস্টফিক্স কনফিগারেশনটি অগত্যা প্রতিনিধিত্ব করে না। postconf -nনিম্নলিখিত দুটি পরামিতির জন্য আউটপুট পরীক্ষা করুন :

smtpd_recipient_restrictions = 
  permit_mynetworks, 
  permit_sasl_authenticated, 
  reject_unauth_destination
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

যদি $mynetworksস্থানীয় হোস্ট এবং অবধি সীমিত থাকবে $smtpd_recipient_restrictionsশোpermit_mynetworks, permit_sasl_authenticated, reject_unauth_destination প্রথম তিনটি বিধিনিষেধ হিসাবে তবে আপনি ওপেন রিলে নন।

/etc/ssl/private/postfix.pemবৈধ কী /etc/ssl/certs/postfix.pemরয়েছে এবং এটিতে একটি বৈধ শংসাপত্র রয়েছে যাচাই করুন :

openssl rsa -in /etc/ssl/private/postfix.pem -check -noout
openssl x509 -in /etc/ssl/certs/postfix.pem -text -noout

পোস্টফিক্স ফাইলটি অ্যাক্সেস করতে পারে কিনা তাও আপনাকে পরীক্ষা করতে হবে। আমার সার্ভারে, অনুমতিগুলি /etc/ssl/privateরয়েছে

drwx--x---  2 root ssl-cert  4096 Aug 03 01:55 private/

এইভাবে সহজ chown কী ফাইলটি ইনগ করা আপনার কোনও ভাল করবে না কারণ ডিরেক্টরি অনুমতিগুলি পোস্টফিক্সকে কোনও ফাইল অ্যাক্সেস করা থেকে বিরত করে।

আপনার সেটআপটি সহজ করার চেষ্টা করুন। একটি একক ফাইলে শংসাপত্র এবং কী রাখুন:

cat /etc/ssl/*/postfix.pem > /etc/postfix/server.pem
chmod 640 /etc/postfix/server.pem
chown postfix:postfix /etc/postfix/server.pem

এবং আপনার main.cfমত পরিবর্তন করুন :

smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = $smtpd_tls_cert_file

পোস্টফিক্স পুনরায় চালু করুন এবং দেখুন যে সার্ভারটি কীটি অ্যাক্সেস করতে পারে।


এটা সংশোধন করা হয়েছে, আপনাকে অনেক উভয় তোমাদের ধন্যবাদ Ladadadada এবং Ansgar Wiechers
ভাই

postconf -nঅংশ জন্য ধন্যবাদ । কপি এবং পেস্টের ফলে একটি সার্টিফিকেট ফাইল এবং একটি সম্পর্কিত সম্পর্কযুক্ত কী এবং এর ফলাফলের উপর দৃষ্টি নিবদ্ধ করে আমাকে কনফিগার ফাইলে টাইপোটি দেখতে দিন যা আমি ইতিমধ্যে যাচাই করেছিলাম তবে মিস করেছি ...
অ্যাডাম কেরজ

2

এই নির্দেশিকাগুলিগুলির মধ্যে রয়েছে chmod o= /etc/ssl/private/postfix.pemতবে কোন ব্যবহারকারী ফাইলটির মালিক তা সম্পর্কে কিছুই বলেননি।

আমার বাক্সগুলিতে, smtpdপ্রক্রিয়াটি postfixব্যবহারকারী হিসাবে চলে । postfixব্যবহারকারী অ্যাক্সেস করতে পারেন তা পরীক্ষা করে দেখুন /etc/ssl/private/postfix.pem। বা সম্ভবত ন্যায়সঙ্গত chown postfix:postfix /etc/ssl/private/postfix.pem

অন্যান্য সুস্পষ্ট সমস্যা হ'ল ত্রুটি বার্তাটি যা বলেছিল: সেই ফাইলটিতে কোনও বৈধ আরএসএ কী নেই। একবার দেখুন /etc/ssl/private/postfix.pemএবং নিশ্চিত হন যে এতে অন্তত এমন কিছু রয়েছে যা কোনও আরএসএ কী-এর মতো দেখাচ্ছে। এটি আপনার প্রশ্নে পেস্ট করবেন না।

আসলে, আমি শুধু লক্ষ্য করেছি যে ত্রুটির বার্তা জন্য /etc/ssl/certs/postfix.pem, না /etc/ssl/private/postfix.pem। পাশাপাশি মালিকানা, অনুমতি এবং সামগ্রী চেক করুন /etc/ssl/certs/postfix.pem


এই ত্রুটি বার্তাটি কিছুটা বিভ্রান্তিকর। এটি বলছে cannot get RSA private key from file /etc/ssl/certs/postfix.pemতবে ব্যক্তিগত কী থাকা উচিত /etc/ssl/private/postfix.pem। টিএলএস ব্যবহার করে পোস্টফিক্সের সাথে আমার পর্যাপ্ত অভিজ্ঞতা নেই, এটি আপনার কনফিগের কোনও বাগ পোস্টফিক্স বা ভুল কিনা তা জানার জন্য।


পোস্টসাফিক্স তারপর পুনরায় আরম্ভ পোস্টসাফিক্স কিন্তু একটি ইমেল এখনও /var/log/mail.log ত্রুটি প্রতিলিপি করা হয় পাঠাবার চেষ্টা: আমি পোস্টসাফিক্স উভয় ফাইল chown'ed
রাম রাম

রুট @ ডোমেন: / etc / ssl / certs # ls -l postfix.pem -rw-r - r-- 1 postfix postfix 1363 সেপ্টেম্বর 28 16:36 postfix.pem এবং এতে শংসাপত্রের সামগ্রী রয়েছে বলে মনে হচ্ছে - --- শুরু করুন শংসাপত্র ----- অবধি ডেটাযুক্ত ----- শেষ সার্টিফিকেট -----
ভাই

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

1

সার্টের কীটি মেলাতে হবে, আমার ক্ষেত্রে অনুমতিগুলির সাথে কিছুই করার ছিল না

স্ব স্বাক্ষরিত শংসাপত্র এবং কী তৈরি করুন https://msol.io/blog/tech/create-a-self-sided-ssl-cerificationsate-with-openssl/

আশাকরি এটা সাহায্য করবে


বিনামূল্যে চলো এনক্রিপ্ট শংসাপত্র ব্যবহার করা ভাল না?
ছানা

দোহ, ধন্যবাদ! অনুলিপি করা ও পেস্ট করার ফলে একটি শংসাপত্র ফাইল এবং একটি সম্পর্কিত re
অ্যাডাম কেরজ

0

কীটিতে কোনও পাসফ্রেজ নেই তা পরীক্ষা করুন। আপনি এটি দিয়ে মুছে ফেলতে পারেন

openssl rsa -in key.pem -out newkey.pem

যদি তারা একসাথে ব্যবহার করে

openssl rsa -in mycert.pem -out newcert.pem
openssl x509 -in mycert.pem >>newcert.pem

পাসফ্রেজগুলি লগগুলিতে একটি সতর্কবার্তা বলবে যে এটি আরএসএএ প্রাইভেট কী পেতে সক্ষম হয় নি, যার ফলে টিএলএস সমর্থন অক্ষম হয়ে যায়। আশা করি এটি কাউকে সাহায্য করবে!

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