/ ইত্যাদি / ডিফল্ট / ওপেনডকিমের দেবিয়ান প্রসারিত ওপেনডিকেআইএম সকেট পরিবর্তন করতে পারে না


18

আমি ডেবিয়ান প্রসারিত উপর opendkim সেট আপ করার চেষ্টা করছি কিন্তু আমি সকেট পরিবর্তন করতে ব্যর্থ। আমি সকেটটি পরিবর্তন করতে চাই /var/spool/postfix/opendkim/opendkim.sockযাতে আমি এটি পোস্টফিক্সের সাহায্যে ব্যবহার করতে পারি।

আমি যোগ করেছি Socket local:/var/spool/postfix/opendkim/opendkim.sockকরতে/etc/opendkim.conf

এবং এটিতে যুক্ত SOCKET="local:/var/spool/postfix/opendkim/opendkim.sockকরার চেষ্টা করেছিল /etc/default/opendkim(যা আমার তৈরি করতে হয়েছিল)।

আমি কী পরিবর্তন করি বা আমি কতবার ওপেনডিমকে পুনরায় চালু করি না কেন, এটি সর্বদা /var/run/opendkim/opendkim.sockএটির সকেট হিসাবে ব্যবহার করে।

➜  ~ netstat -a | fgrep LISTEN | grep open
unix  2      [ ACC ]     STREAM     LISTENING     5534128  /var/run/opendkim/opendkim.sock

➜  ~ sudo systemctl status opendkim.service

● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
   Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-04-30 12:41:54 CEST; 5min ago
     Docs: man:opendkim(8)
           man:opendkim.conf(5)
           man:opendkim-genkey(8)
           man:opendkim-genzone(8)
           man:opendkim-testadsp(8)
           man:opendkim-testkey
           http://www.opendkim.org/docs.html
  Process: 25246 ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock (code=exited, status=0/SUCCESS)
 Main PID: 25248 (opendkim)
    Tasks: 7 (limit: 4915)
   CGroup: /system.slice/opendkim.service
           ├─25248 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
           └─25249 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock

Apr 30 12:41:54 vServer systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Apr 30 12:41:54 vServer systemd[1]: Started OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
Apr 30 12:41:54 vServer opendkim[25249]: OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)

আমি কি ভুল করছি? (আমি অনুমান করি এটি আমার ভুল কারণ একই সমস্যা সহ আমি আর কাউকে পাই না)

হালনাগাদ:

এই সকেটটি ব্যবহার করতে পোস্টফিক্স কনফিগারেশন পরিবর্তন /etc/default/opendkimকরা SOCKET="inet:8891@localhost"এবং পরিবর্তন করা হয়inet:localhost:8891: Connection refused

UPDATE2:

আমি এখন ডেবিয়ান স্ট্রেচ প্যাকেজে বান্ডিলযুক্ত ফাইলটি প্রতিস্থাপন করেছি:

# Command-line options specified here will override the contents of                                                                                                         
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.                                                                                                       
#DAEMON_OPTS=""                                                                                                                                                             
# Change to /var/spool/postfix/var/run/opendkim to use a Unix socket with                                                                                                   
# postfix in a chroot:                                                                                                                                                      
RUNDIR=/var/spool/postfix/var/run/opendkim                                                                                                                                  
#RUNDIR=/var/run/opendkim                                                                                                                                                   
#                                                                                                                                                                           
# Uncomment to specify an alternate socket                                                                                                                                  
# Note that setting this will override any Socket value in opendkim.conf                                                                                                    
# default:                                                                                                                                                                  
SOCKET=local:$RUNDIR/opendkim.sock                                                                                                                                          
# listen on all interfaces on port 54321:                                                                                                                                   
#SOCKET=inet:54321                                                                                                                                                          
# listen on loopback on port 12345:                                                                                                                                         
#SOCKET=inet:12345@localhost                                                                                                                                                
# listen on 192.0.2.1 on port 12345:                                                                                                                                        
#SOCKET=inet:12345@192.0.2.1                                                                                                                                                
USER=opendkim                                                                                                                                                               
GROUP=opendkim                                                                                                                                                              
PIDFILE=$RUNDIR/$NAME.pid                                                                                                                                                   
EXTRAAFTER=   

সকেটের সিদ্ধান্ত নেওয়া হয় যেখানে নিম্নলিখিত লাইনগুলি অন্তর্ভুক্ত করে:

if [ -f /etc/opendkim.conf ]; then                                                                                                                                          
    CONFIG_SOCKET=`awk '$1 == "Socket" { print $2 }' /etc/opendkim.conf`                                                                                                    
fi                                                                                                                                                                          

# This can be set via Socket option in config file, so it's not required                                                                                                    
if [ -n "$SOCKET" -a -z "$CONFIG_SOCKET" ]; then                                                                                                                            
    DAEMON_OPTS="-p $SOCKET $DAEMON_OPTS"                                                                                                                                   
fi

"তাই আমি এটি পোস্টফিক্স দিয়ে ব্যবহার করতে পারি" আপনি কি নিশ্চিত যে এটি পোস্টফিক্সের সাথে কাজ করার জন্য আপনার এটি প্রয়োজন?
মিলো šাকনোভিć

@ মিলোশিও আমি ভেবেছিলাম পোস্টফিক্সটি ক্রট হিসাবে চালাচ্ছে। ( টিউটোরিয়াল অনুসারে আমি অনুসরণ করছি )
lw1.at

@ মিলোশিও পোস্টফিক্স দাবি করেছে connect to Milter service local:/var/run/opendkim/opendkim.sock: No such file or directoryএমনকি এটি মনে করা হয়েছে যে এটি উপস্থিত রয়েছে/var/spool/postfix/
lw1.at

মনে হচ্ছে এটি আঁকাবাঁকা নয়। আপনি কি আবার পরীক্ষা করতে পারেন? তোমার পাথ মত হওয়া উচিত /var/spool/postfix/var/run...যদি তা না হয়
Milos Đakonović

যে কোনও পরিস্থিতিতে, আমি এর inetপরিবর্তে ব্যবহার করব local। হতে পারে, আপনি যদি পরিষেবাটি ডিবাগিং না করে থাকেন তবে তা বাস্তবায়নের চেষ্টা করুন:
ডিজিটালওশন.com

উত্তর:


31

অবশেষে আমি সমাধানটি খুঁজে পেলাম।

/etc/init.d/opendkimকিছু করতে মনে হচ্ছে না। তবে পরিবর্তে সার্ভিসফিল /lib/systemd/system/opendkim.serviceব্যবহার করা হয়েছে যা ভুল সকেটকে হার্ডকোডযুক্ত ছিল।

তবে ডিবিয়ান প্যাকেজটিতে এমন ব্যাশ অন্তর্ভুক্ত বলে মনে হয় যা সঠিক সিস্টেমড পরিষেবাটি উত্পন্ন করে।

তাই দৌড়ানোর পরে

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart

এবং অপেনডকিম পুনরায় চালু করার সময় সকেট ফাইলটি প্রত্যাশিত জায়গায় উপস্থিত হয়, যা কল করে যাচাই করা যেতে পারে:

tail /var/log/mail.log | grep OpenDKIM

আপডেট: মনে হচ্ছে এই সমস্যাটি সম্পর্কে একটি ডেবিয়ান বাগ্রেপোর্ট রয়েছে : # 861169 69


2

আমার মন্তব্য করার মতো খ্যাতি নেই এবং এটি স্বীকার করতে চেয়েছিলাম যে ওপেনডিকিম-পোস্টফিক্সের 'সংযোগ প্রত্যাখ্যান' ত্রুটির বার্তাটি সমাধানের কয়েক ঘন্টা অনুসন্ধানের পরে, লোকুটাসবি/lib/systemd/system/opendkim.service দ্বারা সরবরাহিত সম্পাদনা উবুন্টু 17.04 নিয়ে কাজ করেছে:

warning: connect to Milter service inet:localhost:8891: Connection refused

সম্পাদন করা /lib/systemd/system/opendkim.service

পরিবর্তন:

ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock

প্রতি:

ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock -p inet:12301@localhost

systemctl daemon-reload

এবং

systemctl opendkim restart

সম্পাদনা করার চেষ্টা করার আগে আমি পোস্টফিক্স ব্যবহারকারীকে ওপেনডাকিম গ্রুপে যুক্ত করেছি এবং /lib/opendkim/opendkim.service.generateপ্রতি লুকাশ উইঙ্কলারের সমাধানের চেষ্টা করেছি । পোর্ট নম্বর যুক্ত না হওয়া অবধি সংযোগটি ত্রুটি অব্যাহত রেখেছিল /lib/systemd/system/opendkim.service

আপডেট করার জন্য /lib/systemd/system/opendkim.service, আমি উবুন্টুর জন্য 8891 বন্দরটি ব্যবহার করেছি এবং পরীক্ষার উদ্দেশ্যে মূল এক্সস্টার্ট লাইনটি মন্তব্য করেছি, তারপরে পোর্ট # দিয়ে একটি নতুন লাইন যুক্ত করেছি:

/lib/systemd/system/opendkim.service (Service category):

    [Service]
    Type=forking
    PIDFile=/var/run/opendkim/opendkim.pid
    User=opendkim
    UMask=0007
    #ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
    ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock -p inet:8891@localhost
    Restart=on-failure
    ExecReload=/bin/kill -USR1 $MAINPID

মিলে যাওয়া পোর্ট নম্বরটি এতে অতিরিক্ত উল্লেখ করা হয়েছিল /etc/opendkim.conf:

Socket                  inet:8891@localhost

এবং /etc/postfix/main.cf:

smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

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

systemctl daemon-reload
systemctl opendkim restart
systemctl postfix restart

সম্প্রতি সেন্টোস 7-এর সাথে ওপেনডাকিমটি কনফিগার করার সময় কোনও সংযোগের সমস্যা ছিল না, সুতরাং স্পষ্টতই এই উদাহরণে এটি উবুন্টু-সম্পর্কিত। প্রশ্ন পোস্ট করার জন্য এবং যারা তাদের সমাধান ভাগ করে নিয়েছেন তাদের জন্য লুকাস উইঙ্কলারকে ধন্যবাদ।


1

inetসকেট ব্যবহার করার জন্য আপনাকে উল্লেখ করতে হবে:

SOCKET="inet:12301@localhost" প্রতি /etc/default/opendkim

এছাড়াও, আপনার ফলস্বরূপ পোস্টফিক্সে সেটিংস পরিবর্তন করতে হবে:

মধ্যে /etc/postfix/main.cf অ্যাড:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

যদি আপনি localকাঙ্ক্ষিত পথে যেতে না পারেন তবে আমি আপনাকে পরামর্শ দেব:

  • থেকে একটি লগ দখল mail, syslogবা opendkimমধ্যে /var/logএবং চেক

  • /etc/init.d/opendkimস্ক্রিপ্ট চেক করুন এবং সোক ফাইলটি কোনও মানকে হার্ড-সেট করা আছে কিনা তা পরীক্ষা করুন

  • ডিফল্ট সাথে যেতে চেষ্টা করুন local:/var/run/opendkim/opendkim.sock- এবং নির্দিষ্ট smtpd_milters = local:/var/run/opendkim/opendkim.sockএবং non_smtpd_milters = local:/var/run/opendkim/opendkim.sockভিতরে/etc/postfix/main.cf


আমি এখন warning: connect to Milter service inet:localhost:12301: Connection refused
কনফিগারটি

আপনি সম্পাদনার পরে উভয় পরিষেবা পুনরায় চালু করার চেষ্টা করেছিলেন?
মিলো šাকনোভিć

আমি করেছি এবং এখন আমিও রিবুট করেছি। মেল.লগের দিকে তাকানোর সময় আমি সর্বদা নীচের লাইনটি দেখতে পাইOpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
lw1.at

আপনি সেই লাইন দেখতে পাচ্ছেন এমনকি SOCKET="inet:12301@localhostওপেনডকিম কনফ ফাইলটি সেট করেছেন ?
মিলো šাকোনোভিć

1
opendkim উপেক্ষা করে / etc / ডিফল্ট / opendkim সকেট সেট - এখন আমরা পরিবর্তন /etc/opendkim.conf আছে জন্য
SledgehammerPL

1

এটি আমার পক্ষে কাজ করেছে:

সম্পাদন করা /lib/systemd/system/opendkim.service

পরিবর্তন:

ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock

প্রতি:

ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock -p inet:12301@localhost

systemctl daemon-reload

এবং

systemctl opendkim restart

ঠিক এই পরিবর্তনটি যা /lib/opendkim/opendkim.service.generate লিপি দ্বারা করা হয়।
lw1.at

অনেক অনেক ধন্যবাদ - এটি এটি উবুন্টু 16.04.3 এলটিএসে স্থির করে যা এর অভাব রয়েছে opendkim.service.generate
ইভান মীর

0

আমি আমার সার্ভারটি আপগ্রেড না করা পর্যন্ত ওপেনডিকিআইএম কাজ করেছিল। ওপেনডিকেম শুরু হবে না এবং মিলটারের সাথে সংযুক্ত হওয়ার জন্য কোনও সকেট চলছিল না। ইন /var/log/syslogআমি দেখতে পারে যে opendkim একটি সকেট আপগ্রেডের আগে থেকে আলাদা জায়গা তৈরি করার চেষ্টা ব্যর্থ হয়েছে। আমি সকেট সেটিংস সম্পাদনা করার চেষ্টা /etc/opendkim.conf, /etc/default/opendkimএবং /lib/systemd/system/opendkim.serviceকিন্তু এটা সাহায্য করেনি। দেখা যাচ্ছে যে তথ্যটি আমার পুরো সময়ের সামনে ছিল:

opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter 
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)   
Drop-In: /etc/systemd/system/opendkim.service.d
           └─override.conf    
Active: active (running) since Sat 2017-10-14 16:03:45 CEST; 4h 44min ago

আমি লক্ষ্য করেছি যে সেটিংসগুলি "ওভাররাইড.কনফ" ফাইল দ্বারা ওভাররাইট করা হয়েছিল এবং সম্পাদনা করা হয়েছিল যাতে এটি আমার /etc/postfix/main.cf(ক্রোট হিসাবে চালানো) সাথে একত্রিত হয়েছিল :

smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.sock

সম্পাদন করা /etc/systemd/system/opendkim.service.d/override.conf

[Service]
PIDFile=/var/spool/postfix/opendkim/opendkim.pid
ExecStart=
ExecStart=/usr/sbin/opendkim -P /var/spool/postfix/opendkim/opendkim.pid -p local:/var/spool/postfix/opendkim/opendkim.sock

এবং অবশেষে ডেমন এবং ওপেনডকিম পুনরায় চালু করা হচ্ছে:

systemctl daemon-reload && systemctl restart opendkim

0

আমি সবেমাত্র /etc/systemd/system/opendkim.service.d/override.conf এর নাম /etc/systemd/system/opendkim.service.d/override.conf.old এ রেখেছি যাতে এটি এক্সস্টার্ট পরামিতিগুলিকে ওভাররাইড না করে।

সবকিছুই /etc/opendkim.conf থেকে সূক্ষ্ম বাছাইয়ের কনফিগারেশনের কাজ করছে


0

আমার ওপেনডকিম পরিষেবা 8100 পোর্টে স্থাপনের পরে জাগেনি এবং পূর্ববর্তী সমাধানগুলি সহায়তা করে না। তাই চেষ্টা করেছি

/lib/opendkim/opendkim.service.generate

সঙ্গে

-bash: /lib/opendkim/opendkim.service.generate: No such file or directory

তাই আমি পরিষেবা ফাইলের দিকে তাকালাম

cat /lib/systemd/system/opendkim.service
# If you are using OpenDKIM with SQL datasets it might be necessary to start OpenDKIM after the database servers.
# For example, if using both MariaDB and PostgreSQL, change "After=" in the "[Unit]" section to:
# After=network.target nss-lookup.target syslog.target mariadb.service postgresql.service

[Unit]
Description=DomainKeys Identified Mail (DKIM) Milter
Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html
After=network.target nss-lookup.target

[Service]
Type=forking
EnvironmentFile=-/etc/default/opendkim
PIDFile=/var/run/opendkim/opendkim.pid
PermissionsStartOnly=true
User=opendkim
Group=opendkim
ExecStartPre=-/bin/mkdir -p /var/run/opendkim
ExecStartPre=-/bin/chown opendkim.opendkim /var/run/opendkim
ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p $SOCKET $DAEMON_OPTS
TimeoutStartSec=10
ExecReload=/bin/kill -USR1 $MAINPID

এবং অদ্ভুত পথ খুঁজে পেয়েছি

EnvironmentFile=-/etc/default/opendkim
ExecStartPre=-/bin/mkdir -p /var/run/opendkim
ExecStartPre=-/bin/chown opendkim.opendkim /var/run/opendkim

এবং আদেশ

 /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p $SOCKET $DAEMON_OPTS

বললেন

/usr/sbin/opendkim: option requires an argument -- 'p'

(আগের কোটায় ২ য় লাইনে তাকান) তাই আমি গিয়েছিলাম

sudo nano /lib/systemd/system/opendkim.service

এবং "-" 3 বার মুছে ফেলা হয়েছে তারপর

sudo systemctl daemon-reload
sudo service opendkim restart
sudo netstat -tulpn

এটি আমাকে সাহায্য করেছে :-)

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