Score:1

เครื่องมือที่ OpenDKIM จัดเตรียมไว้ไม่มีคู่คีย์ที่ใช้งานได้สำหรับ DKIM

ธง in

ฉันใช้ opendkim-genkey -b 2048 -t -s เริ่มต้น -d mydomain.comส่งผลให้ไฟล์ ค่าเริ่มต้นส่วนตัว และ default.txt. ใช่, ค่าเริ่มต้นส่วนตัว เริ่มต้น (ถูกต้อง SFAIK) ด้วย ----- เริ่มต้นรหัสส่วนตัว RSA ----- และ default.txt ไม่เกิน 256 ตัวอักษรต่อเซกเมนต์ (ไม่ละเมิดข้อกำหนดการเข้ารหัส DNS) นอกจากนี้ opendkim-testkey ไม่คืนค่าอะไรเลย (ไม่มี -v) และด้วย -v -v -v มันบอกว่า กุญแจไม่ปลอดภัย (แต่ฉันไม่ได้ใช้ DNSSEC) และด้วย คีย์ตกลงดังนั้นคีย์จึงถูกต้องน้อยที่สุดตาม opendkim ต่อ se

ฉันได้รับข้อผิดพลาด

26 ก.ย. 22:41:49 mydomain opendkim[1793958]: 18R2fhko1843765: ข้อผิดพลาด SSL:0909006C:PEM รูทีน:get_name:ไม่มีบรรทัดเริ่มต้น
26 กันยายน 22:41:49 mydomain opendkim[1793958]: 18R2fhko1843765: dkim_eom(): ทรัพยากรไม่พร้อมใช้งาน: PEM_read_bio_PrivateKey() ล้มเหลว
26 กันยายน 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: milter=opendkim, ปฏิเสธ=451 4.7.0 ทรัพยากรไม่พร้อมใช้งาน
26 กันยายน 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: Milter: ข้อมูล, ปฏิเสธ = 451 4.7.0 ทรัพยากรไม่พร้อมใช้งาน
26 กันยายน 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: to=<[email protected]>, delay=00:00:00, pri=30408, stat=resource unavailable

ฉันเห็นการอ้างอิงการค้นหาเว็บจำนวนมากถึงข้อผิดพลาดทั้งสอง ข้อผิดพลาด SSL:0909006C:รูทีน PEM:get_name:ไม่มีบรรทัดเริ่มต้น และ dkim_eom(): ทรัพยากรไม่พร้อมใช้งาน: PEM_read_bio_PrivateKey() ล้มเหลวแต่ไม่มีอะไรที่ช่วยได้ เมื่อฉันเห็นว่า "ปิดกรณี" เป็นเพราะข้อผิดพลาดในการใช้งานของผู้ใช้ เช่น การอนุญาตไม่ถูกต้อง ข้อกำหนดของตำแหน่งไฟล์ไม่ดี หรือการจัดรูปแบบคีย์/txt ไม่ถูกต้อง และผู้ส่งมักจะพูดว่า "ขออภัยสำหรับเสียงรบกวน" แต่ไม่มีเลย กรณี. ฉันกำลังดำเนินการตามที่ระบุไว้ในเอกสารทุกประการ โดยที่ฉันบันทึกไว้ข้างต้นล้มเหลว

สำหรับผู้ที่ต้องการทราบ ฉันใช้ Ubuntu 20.04 LTS และ sendmail 8.15.2 การร้องเรียนเกิดขึ้นจาก opendkim milter เทียบกับรูทีน SSL ดังนั้นบริบทภายนอกจึงไม่ควรมีความสำคัญ

ฉันจะถามรายชื่อผู้รับจดหมายของ opendkim แต่ "lists.opendkim.org" ไม่ทำงานฉันต้องทำให้ OpenDKIM ทำงานเพื่อเชื่อฟังอาจารย์ Goo (นอกจากจะเป็นแนวทางปฏิบัติที่ดีที่สุดแล้ว o อืม) ฉันจะขอบคุณหากมีใครพบสิ่งนี้โดยเฉพาะและสามารถให้คำตอบที่ใช้งานได้

ผลลัพธ์ที่ฉันใช้คือสิ่งที่เอาต์พุต "opendkim-genkey" ทุกประการ ไม่มีข้อผิดพลาดในการจัดรูปแบบตามที่อธิบายไว้ในที่อื่น และ opendkim-testkey ก็มีความสุข ดังนั้นโปรดแก้ตัวว่าฉันไม่ได้รวมข้อมูลจริงนั้นไว้

ps: opendkim ติดตั้งด้วย ฉลาดติดตั้ง opendkim:

opendkim -p /var/run/opendkim.sock -V opendkim:
ตัวกรอง OpenDKIM v2.11.0 คอมไพล์ด้วย OpenSSL 1.1.1f 31 มี.ค. 2020  
SMFI_VERSION 0x1000001  
libmilter รุ่น 1.0.1  
อัลกอริทึมการลงนามที่รองรับ: rsa-sha1 rsa-sha256 ed25519-sha256  
อัลกอริธึมการกำหนดมาตรฐานที่รองรับ: เรียบง่ายสบายๆ  
ตัวเลือกรหัสที่ใช้งาน: QUERY_CACHE USE_DB USE_LDAP USE_LUA USE_ODBX USE_UNBOUND _FFR_ATPS _FFR_RBL _FFR_REPLACE_RULES _FFR_SENDER_MACRO _FFR_STATS _FFR_VBR  
libopendkim 2.11.0: atps query_cache

คีย์ที่สร้างโดยเครื่องมือ opendkim หรือคีย์ที่สร้างด้วยตนเอง (ตามเอกสาร OpenDKIM) ไม่ผ่านข้อผิดพลาด

anx avatar
fr flag
anx
ข้ามโพสต์: https://askubuntu.com/questions/1365984/cannot-generate-an-acceptable-key-for-opendkim
anx avatar
fr flag
anx
ลอง `sudo -u opendkim openssl rsa -noout -modulus -in /path/to/default.private` เพื่อตรวจสอบว่าไฟล์คีย์สามารถอ่านได้และตรงกับข้อกำหนดการจัดรูปแบบไลบรารี ssl ของคุณ
anx avatar
fr flag
anx
คุณจะได้รับข้อผิดพลาดนี้หากคุณใช้ 'KeyTable' ที่ไม่ถูกต้อง ซึ่งจะไม่ถูกทดสอบเมื่อส่งเส้นทางคีย์ไปยัง 'opendkim-testkey' โปรด [แก้ไข] คำถามของคุณเพื่ออ้างอิงบรรทัดคำสั่งทั้งหมดที่คุณเรียกใช้และการกำหนดค่าที่คุณใช้
Score:1
ธง at

นี่คือคำตอบ หวังว่า: ฉันพยายามคอมไพล์ OpenDKIM จากแหล่งที่มา แต่ก็ไม่ได้ผล: ข้อผิดพลาด PEM หายไป แต่ตัวกรองล้มเหลวในทางอื่นซึ่งส่งผลร้ายแรงต่อการใช้งาน ดังนั้นฉันจึงได้ "dk-filter" ซึ่งเวอร์ชันล่าสุดล้าสมัยแล้ว เนื่องจากใช้ SHA1 เท่านั้น เรียก "ผ่อนคลาย" "nofws" จัดการเพียงหนึ่งบัญญัติบัญญัติ (ผ่อนคลายหรือเรียบง่าย เทียบกับสองใน 'ผ่อนคลาย/เรียบง่าย' และใช้ 'dns' แต่ไม่ใช่ 'dns/txt' ฉันแฮ็กมันโดยใช้ RFC8301 (ซึ่งไม่มีใครอ้างอิง) และมันอาจจะใช้งานได้ มันจัดการเมลขาเข้า และสุดท้ายก็ให้ลายเซ็น DKIM แก่ฉัน:

ลายเซ็นคีย์โดเมน: a=rsa-sha256; s=10191; d=mydarneddomain.com; c=ผ่อนคลาย/เรียบง่าย; q=dns/txt;
    h=to:from:subject:message-id:date:user-agent:mime-version:
    ประเภทเนื้อหา: การถ่ายโอนเนื้อหาการเข้ารหัส: เนื้อหาภาษา: x-uctc: x-sdmilter-detected;
    b=kldIuC9j/EIB7ouhRrhxmZBkC7xAazd8RiWHUA/1R0FZK265yeFgf+TPqbfTjErps
    CrkoCn1I2gdMpq8k9ZrdF8RsQk8FeZBVLGE9iY3D2Rkj/ozjdOyHgNaNDCHKfdnpiNp
    4uV/w7ZG8fAEdDwfSoQ3IBvCmxoszV2bzGvzKz+DuT17G8ES3aJcKsdm9+MEHz0VxrB
    EHdOd9ij/EBZFHTMwcLqBWVi+kTvUvzjFK1ssPEO9CHXIWqjBE1gKtfiIDkeJ7kx0w4
    ft8TiPvMb5Z1WyOPWoI6a+tNNz2at1URSYvxMcDi77m93GH5Tcda1fNN/shx9ze9Igw
    DwPHc6mFA==

เนื่องจากฉันแฮกสิ่งนี้ให้เป็นไปตามข้อกำหนดและการทำงาน (ยังไม่ได้รับการยืนยันในทางปฏิบัติ แต่เร็ว ๆ นี้) และเนื่องจากอาจใช้ได้กับทุกคนที่ OpenDKIM ใช้งานไม่ได้ จึงควรแบ่งปันบน GitHub ฉันยังไม่รู้ว่าจะทำอย่างไร ถ้ามีคนต้องการช่วยบอกฉัน

สิ่งนั้นดิบจริง ๆ ไม่มีแม้แต่ไฟล์ "dk-filter.conf" แต่ต้องใช้บรรทัดคำสั่ง ฉันใช้

ตัวกรอง dk -p inet:8892@localhost -b sv -c ผ่อนคลาย -d mydarneddomain.com -D -h -H -l -S 10191 -s /etc/dkimkeys/10191.private

แม้ว่า -d สามารถอ้างถึงโฮสต์รายชื่อไฟล์ที่จะลงนาม (ยังไม่ได้ทดสอบ) และไม่ใช่ "บริการ" ถ้ามีคนสามารถอ้างอิงหนังสือที่อธิบายวิธีการสรุปเช่น Ubuntu เป็นบริการ แจ้งให้เราทราบ

ป.ล.: RFC8301 อาณัติ ค่าเฉพาะและ ห้าม การใช้ SHA1 ไซต์ที่ตรวจสอบคีย์ DKIM อาจมีความคิดเห็นเก่าที่ระบุว่าสามารถใช้ sha1 หรือ sha256 ได้ ตอนนี้ไม่สามารถใช้อะไรได้น้อยกว่า sha256 และความคิดเห็นเหล่านั้นล้าสมัย

us flag
ฉันไม่แนะนำสิ่งนี้ ซึ่งใช้เฟรมเวิร์ก âDomainKeysâ ที่ล้าสมัย ซึ่ง DKIM แทนที่ (DKIM = âDomainKeys Identified Mailâ) ตัวอย่างเช่น สร้างชื่อส่วนหัวที่ไม่ถูกต้องว่า `DomainKey-Signature` แม้ว่าการบำรุงรักษา OpenDKIM จะหยุดลง แต่ก็ยังเป็นซอฟต์แวร์ที่ใช้กันอย่างแพร่หลายและใช้งานได้ทั่วไป ฉันคิดว่ามันน่าสนใจที่จะค้นหาว่าทำไมคุณถึงมีปัญหามากมายกับมัน â¦
Score:1
ธง at

ฉันได้ตรวจสอบแล้วว่าคีย์นั้นถูกต้อง (ส่วนตัว<==>สาธารณะ) และเข้าถึงได้ด้วยสองวิธีที่แตกต่างกัน ฉันไม่ได้ใช้ KeyTable /etc/opendkim.conf ของฉัน (โดเมนจริงปลอมตัว) คือ:

Syslog ใช่
ยูมาส์ก007
โดเมน mydomain.sometld
ไฟล์คีย์ /etc/dkimkeys/10191.private
ตัวเลือก 10191
โหมด v
ซ็อกเก็ต inet:8892@localhost
#@Socket ท้องถิ่น:/run/opendkim/opendkim.sock
PidFile /run/opendkim/opendkim.pid
OversignHeaders จาก
TrustAnchorFile /usr/share/dns/root.key
รหัสผู้ใช้ opendkim

ฉันให้ตัวกรองอยู่ในโหมด "v" เนื่องจาก "sv" ล้มเหลวตามที่ระบุ และฉันต้องรีสตาร์ทตัวกรองด้วย "sv" เพื่อทดสอบ การใช้ opendkim-2.10.3 ที่ได้รับจาก opendkim.org: ฉันได้แฮ็ก libopendkim/dkim.c ซึ่งใช้โดย milter เพื่อแสดงให้ฉันเห็นตัวอักษร 96 ตัวแรก (*) ของคีย์ที่กำลังพยายาม เมื่อมันล้มเหลวในครั้งต่อไป (ในตอนเช้าตรู่เมื่อไม่มีใครสนใจ) (*) 96 = บรรทัดส่วนหัว + 'แถว' แรกของข้อมูลหลัก

1135 ถ้า (strncmp((ถ่าน *) dkim->dkim_key, "-----", 5) == 0)
1136 { /* พีเอ็ม */
1137 rsa->rsa_pkey = PEM_read_bio_PrivateKey(rsa->rsa_keydata, NULL,
1138 โมฆะ, โมฆะ);
1139 
1140 ถ้า (rsa->rsa_pkey == NULL)
1141 {
1142 dkim_load_ssl_errors (dkim, 0);
1143 dkim_error(dkim, "PEM_read_bio_PrivateKey() ล้มเหลว");
1144 // ecsd: เราต้องการดูว่าอะไรล้มเหลว:
1145 ถ่าน dbuf [128]; sprintf(dbuf,"dkim_key %96.96s\n",dkim->dkim_key);
1146 dkim_error(dkim, dbuf);
1147 // สิ้นสุดการดีบักเพิ่มเติม
1148 BIO_free(rsa->rsa_keydata);
1149 rsa->rsa_keydata = NULL;
1150 ส่งคืน DKIM_STAT_NORESOURCE;
1151 }
1152 }

ฉันควรจะดีบัก PEM_read_bio_PrivateKey (เพื่อดูว่ามันกำลังบ่นเกี่ยวกับอะไร) แต่ต้องทนกับความกังวลใจมากเกินไปในการคอมไพล์ระบบย่อยทั้งหมดนั้นใหม่ นอกจากนี้ การร้องเรียนนั้นมาจากส่วนหัวที่ไม่ดี ดังนั้นฉันแค่ต้องเข้าใจว่ากำลังพยายาม "แทน" อะไรอยู่ เนื่องจากเนื้อหาของคีย์ส่วนตัวนั้นถูกต้อง ในขณะเดียวกัน opendkim.org มีปัญหาอะไรที่ทำให้รายชื่อผู้รับจดหมายของพวกเขาล่ม และผู้ติดต่อที่อยู่ใน opendkim.org และ dkim.org ใช้งานไม่ได้ เหมือนต่างคนต่างเบื่อกลับบ้าน ไม่เจ๋งสำหรับโปรโตคอลที่คุณต้องการให้นำไปใช้ในระดับสากล อย่างน้อยรหัสก็พยายาม แต่เช่นฉันต้องแฮ็ค "กำหนดค่า" เพื่อหยุดมันที่ต้องใช้ไลบรารี่ที่มี SSL_library_init() ซึ่งเอกสาร (โลกภายนอก) บอกว่าถูกปิดกั้น (ดังนั้นรหัส opendkim ดูเหมือนจะไม่ได้รับการดูแลอย่างถูกต้อง)

กำหนดค่า:
16846 ฟิ
16,847 rm conftest.$ac_ext
16848 LIBS=$ac_func_search_save_LIBS
16849 ฟิ
16850 #ecsd
16851 $as_echo "สำหรับ libssl, LIBS:$LIBS"
16852 { $as_echo "$as_me:${as_lineno-$LINENO}: ผลลัพธ์: $ac_cv_search_SSL_library_init">&5
16853 $as_echo "$ac_cv_search_SSL_library_init" >&6; }
16854 ac_res=$ac_cv_search_SSL_library_init
16855 #ecsd:
16856 #if ทดสอบ "$ac_res" != ไม่; แล้ว :
16857 # ทดสอบ "$ac_res" = "ไม่จำเป็น" || LIBS="$ac_res $LIBS"
16858 #อย่างอื่น
16859 # as_fn_error $? "ไม่พบ libssl" "$LINENO" 5
16860 #ฟิค
16861 
16862 
16863 
16864 ฟิ
anx avatar
fr flag
anx
มีมติเป็นเอกฉันท์มากขึ้นในเรื่องของการนำโปรแกรมแยกวิเคราะห์ไปใช้ในภาษาที่ไม่ปลอดภัยต่อหน่วยความจำที่เป็นอันตราย นับตั้งแต่นั้นมา แม้กระทั่ง [รุ่นของ python ที่ใช้งานได้](https://code.launchpad.net/dkimpy-milter) (แม้ว่าจนถึงตอนนี้ `libmilter `-exclusive) ด้วยคุณสมบัติที่เหนือกว่าที่มีอยู่ ความสนใจในการบำรุงรักษาโครงการ opendkim เก่าอย่างถูกต้องจึง.. ต่ำ
anx avatar
fr flag
anx
คุณอาจต้องการใช้ *แหล่งที่มาของลินุกซ์ดิสทริบิวชั่น* & แพตช์ดาวน์สตรีม ไม่ใช่ทาร์บอล (เก่าบ้าๆบอๆ) ก่อนที่จะรวมการแก้ไขความปลอดภัยที่เร่งด่วนที่สุด เช่น. [เส้นทางของ Debian](https://salsa.debian.org/debian/opendkim/-/blob/master/debian/watch) โครงการ github https://github.com/trusteddomainproject/OpenDKIM และยังคงมีแพทช์เพิ่มเติม
anx avatar
fr flag
anx
(บน Debian/Ubuntu/อื่นๆ ให้ใช้ `apt source`, `apt-get build-dep` และ `dpkg-buildpackage` เพื่อสร้างแพ็คเกจที่ส่วนใหญ่ตรงกับที่ผู้จัดจำหน่ายของคุณสร้างขึ้นสำหรับคุณ!)
at flag
เราจะทำอย่างไรกับภูมิทัศน์ที่ผู้คนสะสมรายการ "แนวปฏิบัติที่ดีที่สุด" ไว้ด้วยกัน แต่แพ็คเกจที่ตกลงร่วมกันซึ่งมีฟีเจอร์ที่ได้รับมอบอำนาจนั้นไม่ได้รับการดูแลอย่างเหมาะสมอีกต่อไป เช่น "การติดตั้ง apt" และการทำตามคำแนะนำการกำหนดค่าส่งผลให้ระบบย่อยใช้งานได้ ? รหัสเป็นแบบไฮเปอร์เจนิก ฉันไม่สามารถเป็นคนเดียวที่ประสบปัญหานี้ได้ แต่การสังเกตของฉัน (ติดตั้งโค้ด ลองใช้ มันล้มเหลว) ควรจะทำซ้ำได้โดยทุกคน หรืออื่นๆ เอกสารประกอบ/โค้ดไม่ได้กล่าวถึงการขึ้นต่อกันจริงทั้งหมด (และ หลายคนควรรายงานความล้มเหลวในการดำเนินการ)
at flag
ฉันเริ่มต้นด้วย opendkim-2.10.3.tar.gz แต่อ้างว่าเก่า แต่การติดตั้งจาก OpenDKIM-master.zip ของ Github อ่านได้เกือบเหมือนกันและระบุอย่างชัดเจน ```` (4) เรียกใช้สคริปต์ "กำหนดค่า" เพื่อกำหนดค่าแพ็คเกจสำหรับการดำเนินงานของคุณ ระบบ. ./กำหนดค่า ```` ในเมื่อไม่มีสิ่งนั้นอยู่จริง: /etc/mail/src/OpenDKIM/OpenDKIM-master# ค้นหา - กำหนดค่าชื่อ (จิ้งหรีด) นี่เป็นลักษณะคล้ายม้าที่ดูเหมือนว่าทุกคนที่พยายามใช้สิ่งนี้จะต้องพบเจอ และมีคนแก้ไขเมื่อสิบปีก่อน ดังนั้น "ทุกคนควรใช้ 'foo'" แต่ไม่มีใครสามารถติดตั้งได้ ??

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา