Showing posts with label sendmail. Show all posts
Showing posts with label sendmail. Show all posts

Wednesday, June 22, 2011

sendmail ยังเขียนไม่เสร็จ

ยังเขียนไม่เสร็จครับ ขอปั่นรายงานส่ง สถาบันต้นสังกัดก่อน แล้วจะทุ่มเทให้
ขอขอบคุณ ที่เข้ามาค้นอยู่ตั้ง สองวันมาแล้ว ขอบพระคุณมากมากครับ

อืมม มะไฟ ตั้ง group ชื่อ Free and Open Source Softwares ขึ้น ใน facebook ที่ใครๆ ก็สามารถเข้าไปร่วมเป็นสมาชิกได้ ลองแวะเข้าไปดูในนั้นก่อนบ้านก็ได้น่ะ

อีกที่ก็ บ้านกัมมันตรังสี แต่ยังไม่แน่นอนเรื่อง domain name และวิ่งด้วย zope บนเครื่อง notebook เล็กๆ แม้จะเรื่องกัมมันตรังสี แต่ใน องค์(ลำบาก)ความรู้ ก็เป็นแต่เรื่อง FreeBSD ทั้งนั้นครับ
Back to the Future: 25th Anniversary Trilogy (+ Digital Copy) [Blu-ray]

Monday, October 19, 2009

DNS: reverse look up

วันก่อน ส่งจดหมายไปถาม freebsd-doc ถึงรายชื่อของ web site ที่ใช้ FreeBSD จดหมายวนอยู่ตั้ง ห้าหกวัน แล้วตีกลับ บอกว่า หา host name ไม่เจอ

หมดปัญญาแก้ ได้แต่แจ้งผู้ที่รับผิดชอบไปเท่านั้นเอง

เมื่อครู่นี้เอง, ก่อน ๘ โมง, เจอเจ้าตัว ก็ถามเขา เขาบอกว่า เราไม่มี reverse lookup แจ้งกอสอทอไปแล้ว...

เราไม่จำเป็นต้องรับภาระไปทุกเรื่อง

DNS นั้น ใช้งานทั้ง forward และ reverse look up ซึ่ง site ที่เขาเข้มงวด เราก็กลายเป็น บุคคลผู้ต้องจับตามอง ไปโดยปริยาย

Sunday, September 27, 2009

FreeBSD: basic ---> hostname

FreeBSD ที่ใช้กับคอมพิวเตอร์ ทุกเครื่อง กำหนดว่า ต้องมี ชื่อ คือ ชื่อเครื่อง หรือ hostname ซึ่งนอกจากชื่อเครื่องแล้ว ยังต้องกำหนดเพิ่มต่อไปอีกว่า ต้องมี ชื่อโดเมน หรือ อยู่ในโดเมนใด โดเมนหนึ่ง กล่าวคิอ โดยรวมแล้ว ต้องมีทั้ง ชื่อเครื่อง ชื่อโดเมน สำหรับ ๑ เครื่อง ที่ใช้งาน FreeBSD

ท่านไม่จำเป็นต้องเก่ง ก็กำหนดได้ในคราวเดียวกันกับการกำหนดหมายเลขไอพี ให้กับเครื่องของท่าน ในคราวเดียวกันกับที่กำหนดว่า name server ที่ท่านใช้งานนั้น มีหมายเลขไอพี อะไร ในคราวเดียวกันกับ ที่กำหนดว่า เครื่องของท่านนั้น มี gateway เป็นหมายเลขไอพีใด ทำได้ง่ายๆครับ

# sysinstall tcpMenuSelect


ซึ่งอันนี้เอง ที่ได้เคยบอกไว้ว่า ด้วย sysinstall จะทำให้ท่านสามารถเป็น system administrators ชั้นยอดได้ในพริบตา

ประเด็นที่ถึงกับต้องมาเขียน ไม่ได้อยู่ที่ sysinstall แต่ทว่า กลับอยู่ที่ ส่วนมาก ไม่ได้ตระหนักเลย ว่า ชื่อเครื่อง หมายเลขไอพี ฯลฯ ที่กล่าวมาแต่ต้นนั้น คือพื้นฐานของการใช้งาน ของ FreeBSD ดังนี้แล้ว เมื่อเกิดคำถาม อันสืบเนื่องจากเรื่องพื้นฐาน จึงยากที่จะหาคำตอบได้ หรืออาจจะรุนแรงถึงขั้นว่า บอกคำตอบไปแล้ว กลับไม่เข้าใจ (นอกเหนือไปจากความจริงที่ว่า ปกติก็พูดกันไม่ค่อยรู้เรื่องอยู่แล้ว แถมมาพูดเรื่องยากเข้าอีก เลยไปกันใหญ่)

อย่างเรื่องของ sendmail นั้น ก็บอกหลายหนว่า ให้ไปอ่านแฟ้ม README ในเครื่อง เพราะเขาบอกไว้แทบหมด ก็ให้แปลกที่ ไม่ค่อยไปอ่านกัน เน้อะ และอีกอย่าง กับที่เราใช้ e-mail เป็น user@hostname.domainname ก็ไม่เห็นว่า จะเสียหายอะไร ตรงไหน กลับพยายามจะใช้ในรูปแบบ user@domainname ซึ่งก็อีกแหละ ไม่เห็นว่า จะดีไปกว่าแบบแรก ตรงไหน และก็ ไม่ได้ยากเย็นอะไรเลย สำหรับ การจะเปลี่ยน ให้มาเป็นแบบหลัง และอีกเช่นกัน มีบอกไว้แล้ว ในแฟ้มดังกล่าว
Happy FreeBSD—ing

Tuesday, June 2, 2009

FreeBSD ---> sendmail(4)

ตัวอย่างของการจัด sendmail configuration แต่พอเข้าใจ
จะเขียนยังไง ก็นึกไม่ออกเหมือนกัน ดูซินี่ นั่งจ้องจอตั้งนานสองนาน เรียกว่า ถ้าเป็น ปลากัด ก็ ท้องป่องไปแล้ว

เอาล่ะจะเอาแนว code fragment ก็แล้วกันน่ะ ส่วนรายละเอียดนั้น ก็อ่านเอาจากแฟ้ม /usr/share/sendmail/cf/README น่ะครับ ในนั้นแหละ คู่มือเลย เสียแต่เป็นภาษาอังกฤษ

เบื้องต้น ขอให้ท่าน สำเนาแฟ้มสำคัญๆไว้ก่อนดังนี้น่ะ
# cp -R /etc/mail/ /etc/mail.orig/
จากนั้น สั่งหยุด sendmail ก่อนชั่วขณะหนึ่ง ระหว่างที่ทดลองอยู่เนี่ย ซึ่งก็หมายความว่า ท่านต้องเป็น root ตลอดเวลาที่ทดลอง

ขอให้ท่านดูแฟ้ม freebsd.mc น่ะครับ ดูให้ดีดี พิจารณา โครงสร้างของแฟ้มไปด้วย เพื่อว่าเวลาทำงาน ท่านจะได้ เพิ่มเติมได้ถูกที่ ถูกตำแหน่ง

ตัวอย่างที่ ๑ น่ะ ขอให้ท่าน สร้างแฟ้ม /etc/mail/sendmail.cf ของท่านขึ้นมาก่อน ตามนี้น่ะ
# cd /etc/mail
# rm -f /etc/mail/`hostname`.mc
# make
# make install
ในตัวอย่างนี้ ขอให้ท่านแก้ไขแฟ้ม `hostname`.mc ตรงบรรทัด
dnl define(`SMART_HOST', `your.isp.mail.server')
โดยให้เอา dnl ก่อนคำว่า define นั้นออกไปทิ้งเสียที่ไหนก็ได้ และอีกที่ที่ต้องแก้ไขคือ your.isp.mail.server นั้นหนะ ให้แก้เป็น mail server ของท่าน แก้ซะน่ะ

จากนั้น สั่งต่อไปนี้น่ะ
# grep -n Smart /etc/mail/sendmail.cf
# grep -n ^DS /etc/mail/sendmail.cf
ท่านจะพบว่า สองบรรทัดนี้ เลขที่ติดกันเลย และจะว่างจริงๆ คือบรรทัดหลังนั้นจะมีแค่ DS เท่านั้น ดังนี้เลย
# "Smart" relay host (may be null)
DS
และ นั่นคือแฟ้มของ sendmail.cf ก่อนการแก้ไข

สุดท้ายของตัวอย่างนี้ ขอให้สั่ง
# make
# make install
แล้วใช้คำสั่ง grep คู่เดิมนั้นอีกที ก็คงเห็นความแตกต่างได้ชัดเจนน่ะ และก็ หวังว่าพี่ เพื่อน น้อง คงเข้าใจความหมายของคำ SMART_HOST ในตอนแรก ในแฟ้ม `hostname`.mc นั้นด้วยน่ะ

ต้องขออภัย พี่ เพื่อน น้องๆ ทุกท่านที่เอกสารไม่อยู่ในรูปแบบที่น่าอ่านตลอดเวลา ขออภัยจริงๆครับ ตอนนี้ คงได้เพียง ๑ ตัวอย่างน่ะ เนื้อที่ มันทำให้ล้าสายตารึเปล่าล่ะ

Thursday, May 21, 2009

FreeBSD ---> sendmail(3)

เอกสารอ้างอิงตอนนี้ ก็มาจากแฟ้ม /usr/share/sendmail/cf/README ที่มีมากับเครื่องตอนติดตั้ง FreeBSD นั่นแหละครับ

เค้าโครงของแฟ้ม sendmail.mc นั้น เป็นดังนี้น่ะครับ

VERSIONID
OSTYPE
DOMAIN
FEATURE
local macro definitions
MAILER
LOCAL_CONFIG
LOCAL_RULE_*
LOCAL_RULESETS


ทั้งหมดนี้ จะอยู่ใน /etc/mail/freebsd.mc และโดยแนวทางของ FreeBSD แล้ว เมื่อท่านจะแก้ไข ขอให้แก้ไขที่แฟ้ม /etc/mail/`hostname`.mc แทน ดังนี้

# cp /etc/mail/freebsd.mc /etc/mail/`hostname`.mc

จากนั้นให้เรียก editor ยอดนิยมของท่านมาแก้ไขเอา

จากโครงร่าง ผมขอยกตัวอย่างที่มีมากับระบบมาให้ดูพอเป็นแนวทาง และ เพิ่มเติมบางส่วนเข้าไป เพื่อให้เพื่อนๆ พี่ๆ ได้รู้วิธีการแต่เบื้องต้นไว้ก่อน น่ะ
divert(-1)


divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.34.2.1 2007/11/22 16:19:40 gshapiro Exp $')
OSTYPE(freebsd6)
DOMAIN(generic)

FEATURE(access_db, `hash -o -T /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

dnl Uncomment to allow relaying based on your MX records.
dnl NOTE: This can allow sites to use your server as a backup MX without
dnl your permission.
dnl FEATURE(relay_based_on_MX)

dnl DNS based black hole lists
dnl --------------------------------
dnl DNS based black hole lists come and go on a regular basis
dnl so this file will not serve as a database of the available servers.
dnl For that, visit
dnl http://directory.google.com/Top/Computers/Internet/Abuse/Spam/Blacklists/

dnl Uncomment to activate Realtime Blackhole List
dnl information available at http://www.mail-abuse.com/
dnl NOTE: This is a subscription service as of July 31, 2001
dnl FEATURE(dnsbl)
dnl Alternatively, you can provide your own server and rejection message:
dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-abuse.org/cgi-bin/lookup?" $&{client_addr}')

dnl Dialup users should uncomment and define this appropriately
dnl define(`SMART_HOST', `your.isp.mail.server')

dnl Uncomment the first line to change the location of the default
dnl /etc/mail/local-host-names and comment out the second line.
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
define(`confCW_FILE', `-o /etc/mail/local-host-names')

dnl Enable for both IPv4 and IPv6 (optional)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')

define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)
บรรทัด ที่ขึ้นต้นด้วย dnl นั้นเป็น comments เพื่ออธิบายบางประเด็น อย่างเรื่องของ SMART_HOST ที่เคยเอ่ยไว้ในตอนแรกเริ่มเรื่องนั้น ก็ยังคงเป็น comment อยู่

สำหรับของทดลองที่ มะขาม ทำนั้นมีตามนี้ครับ ให้ สังเกตุความแตกต่างเอาเองน่ะ ไม่ยากหรอก
divert(-1)

divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.34.2.3.2.1 2008/11/25 02:59:29 kensmith Exp $')
OSTYPE(freebsd6)
DOMAIN(generic)

FEATURE(access_db, `hash -o -T /etc/mail/access')
dnl FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
dnl
dnl
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`accept_unqualified_senders')dnl
dnl

dnl Dialup users should uncomment and define this appropriately
dnl define(`SMART_HOST', `your.isp.mail.server')
dnl define(`SMART_HOST', `mail.tint.or.th')

define(`confCW_FILE', `-o /etc/mail/local-host-names')

dnl Enable for both IPv4 and IPv6 (optional)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')

define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)

สิ่งที่ มะขาม ทำก็มีเพียง ๒ FEATURE ที่อยู่ระหว่าง ๒ dnl นั่นแหละครับ หากเพื่อนๆ จะทำ ก็ไปดูรายละเอียดจากแฟ้ม README ที่บอกไว้ที่หัวเรื่องตอนนี้น่ะ แล้วเพิ่ม ลด เอาตามใจชอบ จากนั้น เป็น root น่ะแล้วสั่ง
# cd /etc/mail
# make
# make install
# make start
อันหลังสุดนี้ อาจจะเป็น restart ก็ได้ คงไม่ยากเกินกว่าที่จะเข้าใจน่ะ

ขอยุติเรื่องของ MTA, sendmail, ไว้แต่เพียงเท่านี้ก่อน หากสงสัยประการใด โปรดอย่ารีรอ ถามมาเลย

อนึ่ง หากจะมีความดีอยู่บ้าง ขออุทิศความดีอันนั้นให้กับ ญาติ ผู้ล่วงลับไปแล้ว ทุกท่าน โดยเฉพาะ เดือนนี้ พฤษภาคม อันเป้นเดือนเกิด ขอให้แม่พ่อ จงมีแต่สุขสบายเถิด
มะไฟ ฅนยาก
มะขาม คินเดินดน

FreeBSD ---> sendmail(2)

มางวดนี้ ขอเริ่มด้วยเรื่องของ .mc file อันเป็นตัว ร่าง แฟ้ม sendmail.cf เนื้อๆน่ะครับ แลเพื่อเชื่อมโยงเรื่องราวจากตอนที่แล้ว ที่ทิ้งท้ายไว้ สองอย่าง คือ headers กับรายละเอียดบางส่วนของแฟ้ม .mc ผมขอเริ่มด้วยเรื่องของ headers น่ะครับ

ขอให้ดูตรงคำว่า Received: และให้ดูตรง bullets กลมๆดำๆ ๔ จุดทางขวามือของคำ Received: และให้ดูจากข้างล่างขึ้นมาน่ะครับ
  1. (qmail 22944 invoked from network); 3 May 2009 08:08:10 -0000
  2. from 125.27.50.79.adsl.dynamic.totbb.net (HELO makham.no-ip.org) (125.27.50.79) by mail.tint.or.th with SMTP; 3 May 2009 08:08:10 -0000
  3. from pie-makarak.tint.or.th (localhost [127.0.0.1]) by pie-makarak.tint.or.th (8.14.3/8.14.3) with ESMTP id n434ZTqh050210 for <pirat@tint.or.th>; Sun, 3 May 2009 11:35:36 +0700 (ICT) (envelope-from root@pie-makarak.tint.or.th)
  4. (from root@localhost) by pie-makarak.tint.or.th (8.14.3/8.14.3/Submit) id n434ZRNt050197 for pirat@tint.or.th; Sun, 3 May 2009 11:35:27 +0700 (ICT) (envelope-from root)
บรรทัดล่างสุด ที่อยู่ใกล้กับข้อความนี้มากที่สุดนั่นแหละ ที่ขึ้นต้นด้วย (from root@localhost) by pie-makarak.tint.or.th นั่นแหละครับ ขออธิบายพอได้สาระกระชับๆดังนี้น่ะ

๑) จดหมายฉบับนี้ ได้รับจาก root ของเครื่องนี้แหละ, localhost, โดย sendmail ของเครื่อง pie-makarak.tint.or.th ด้วยจดหมายที่มีหมายเลขประจำตัว n434ZRNt050197, id n434ZRNt050197 นั่นแหละ, เพื่อส่งไปให้ pirat@tint.or.th ในวันที่ ๓ พค ๒๕๕๒ เวลา ๑๑ โมงเช้า ๓๕ นาฑี ๒๗ วินาฑี โดยซองที่จ่าหน้ามาจาก root
๒) sendmail ของเครื่อง pie-makarak.tint.or.th นั้นมี เวอร์ชั่น 8.14.3 และ configuration ด้วยเวอร์ชั่นเดียวกัน ด้วยโปรแกรม submission ของเครื่อง, 8.14.3/8.14.3/submit

บรรทัดถัดขึ้นไปข้างบนอีก ๑ บรรทัด คงตามความคิดผมออกน่ะ ตรงบรรทัดที่มีสีนี้แหละ ก็ขออธิบายดั่งนี้น่ะ

๑) จากเครื่องนี้, localhost, ในวงแลนนี้, tint.or.th ที่ชื่อ pie-makarak.tint.or.th, from pie-makarak.tint.or.th (localhost[127.0.0.1]), ส่งจดหมายดังกล่าวให้กับ sendmail ที่ทำหน้าที่เป็น MTA ของวงแลนนี้, by pie-makarak.tint.or.th (8.14.3/8.14.3), ด้วยหมายเลขประจำตัว n434ZTqh050210, with ESMTP id n434ZTqh050210, จุดหมายปลายทางที่ <pirat@tint.or.th> ในวันที่ ๓ พค ๒๕๕๒ เวลา ๑๑ โมงเช้า ๓๕ นาฑี ๓๖ วินาฑี ด้วยจดหมายที่จ่าหน้าซองจาก root@pie-makarak.tint.or.th
๒) บรรทัดนี้ อยากชี้ให้เห็นว่า หมายเลขประจำตัวของจดหมายเปลี่ยนไปแล้ว เพราะผู้รับจดหมาย เล่นคนละบทบาทแล้ว ไม่ใช่ผู้ส่งปจะจำเครื่องแล้ว แต่เป็นผู้ส่ง ระหว่าง network แล้ว, MTA, พร้อมกันนี้ เวลา ที่ทำหน้าที่ใหม่ ก็ เปลี่ยนไปแล้ว ด้วยเช่นกัน
๓) แล้วจดหมายนี้ ส่งไปให้ใคร ขอให้ดูบรรทัดถัดขึ้นไปอีก ๑ บรรทัด

บรรทัดถัดขึ้นไปอีก ๑ บรรทัด ก็ บรรทัดที่ ๒ จากข้างบนนั่นแหละน่ะ

๑) จดหมายตรงไปที่ 125.27.50.79.adsl.dynamic.totbb.net ซึ่งเป็นจุดที่ผมต่อกับ internet
๒) ตรงนี้ ผมใช้บริการของ no ip ซึ่งเครื่องที่ตั้งไว้ชื่อ มะขาม ดังนั้น จึงปรากฏชื่อ makham.no-ip.org ขึ้นด้วยเหตุนี้
๓) หมายเลข ip ก็เป็นหมายเลข ip ของ adsl จาก wireless ของเพื่อนบ้านตรงข้าม ที่เขาเมตตาให้ มะขาม ได้ใช้
๔) จากตรงนี้ เครื่อง mail.tint.or.th ซึ่งเป้น smarthost ของวง tint.or.th ก็ดูดต่อไป ให้สังเกตุด้วยเรื่อง เวลา

บรรทัดบนสุด บอกให้ทราบว่า ปลายทางเขาใช้ qmail เป็นตัวดำเนินงาน

ในส่วนของ headers ของ sendmail ที่ผมใช้ก็ขออธิบายคร่าวๆเพียงเท่านี้ หากท่านสนใจ ก็ศึกษาเพิ่มเติมเอาเองได้ ลองดู ไม่เสียไม่หายอะไร

ล้าไหมครับ คงเมื่อยตาเต็มที ก็ขอยกยอดไปอีกขยักก็แล้วกันน่ะ สำหรับเรื่องของแฟ้ม `hostname`.mc

เอกสารอ้างอิงตอนนี้ คือ UNIX System Administration Handbook, second edition โดย E Nemeth, G Snyder, S Seebass, T R Hein. ในบทที่ 21 หน้า 444

Saturday, May 16, 2009

FreeBSD --> sendmail(1)

ต่อจาก ตอนแรก นั่นแหละ ที่ว่ามาและลองลุยเองที่บ้าน ก็เจอเข้าจังๆกับตัวเองว่า ก็ส่งไม่ออกเหมือนกัน แต่เหตุที่ส่งไม่ออกนั้น เป็นเพราะ โดเมน ไม่มีใช้งาน เลยเปลี่ยนเอาว่า ไม่ต้องใช้โดมงโดเมนมันหละ ก็ทำตาม FAQ ที่เขาบอกไว้ ซึ่งก็ขอขอบคุณ อาจารย์ ว. ณ. สุราษฎร์ธานี ไว้ ตรงนี้ด้วยเลย ที่กรุณาชี้แนะแหล่งเอกสาร ชิ้นนี้ให้

ยังงั้นก็เถอะ ยังส่งไม่ออกครับ มึนมาก เพราะเที่ยวคุยไว้แล้วว่า sendmail ที่มีมากับ FreeBSD เนี่ย มันมาแบบ oob คือ out of the box แบบว่าแกะกล่องก็ใช้ได้เลย

คราวนี้เอาใหม่ ดื้อใช้ โดเมน ที่เป็นของสถาบันฯแหละ ส่งไปหาตัวเอง ก็ไม่ได้อีก มาหยุดคิดว่า เอ เราก็มี account กับ no ip นี่นา เลยลองใช้ noip ก็ไม่ได้อีก

งวดนี้ ออกอาการเลยครับ เดินรอบบ้านเลย แต่ไม่ถึงรอบดี ฉุกใจคิดได้ ย้อนมาดู error ที่ได้มา ทุกตัวเหมือนกัน ไปติดที่ spamhaus

ก็ลองแวะเข้าไปดู ถึงได้รู้ว่า เขา block เรา พวกที่ใช้โมเด็มแบบ xDSL เขาจะปิดไว้ก่อน ถ้าเรามั่นใจว่า เราไม่อยู่ในข่ายที่จะโดน block ก็แจ้งเขาไป ก็ทำไปตามนั้น

รอ ๓๐ นาฑี อย่างที่เขาบอก พอครบเวลา ก็ส่งซ้ำอีกทีcommandsแล้วก็ตรวจดูด้วย
# mailq -v
อาคีมีดีส ก็ อาคีมีดีส เถอะ ได้อายก็แล้วกัน
ครับผมไม่มีอีเมล์หลงเหลือในคิวเลย ก็ขอได้โปรดดูจาก รูปจากตอนก่อนนั้นแหละ ตรงล่างสุดนั่นแหละ

อีกวันสองวันถัดมาcommands ถึงได้มีเวลามาตรวจดูว่าใน Inbox มีจดหมายมารึเปล่า ก็มีมาจริงๆแหละ ๒ ฉบับ ที่ส่งมาด้วย โดเมนของสถาบัน และ โดเมนของ no-ip นี่ไงครับ

เอาล่ะครับ ขอแสดงรูป รายละเอียดของที่ส่งมาจากบ้านที่ปากเกร็ดมายัง Inbox ของตัวเองเพื่อยืนยันว่าได้รับจริง ขอให้สังเกตุดู headers ด้วย ก็ตรงคำว่า Recieved และ bullet สี่อันด้านขวามือนั่นแหละ ลองไล่ดู จากล่างขึ้นมาน่ะครับ เพราะจะเป็นประโยชน์มาก

ก็คงยังจบไม่ได้อีกเช่นเคย เดี๋ยวจะให้ดูบางส่วนของแฟ้ม .mc เพื่อ ดึงดูดความสนใจ เพื่อนๆไว้ก่อน สำหรับตอนหน้า ส่วนนี้ สำหรับ การไม่ใช้โดเมน กับ การไม่ต้องกำหนดว่า
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`accept_unqualified_senders')dnl
หมายเลข ip ของเราจะจริงจะปลอมอย่างไรน่ะ อ้อ ดูไวยากรณ์ด้วยน่ะ ตลก แต่ไม่ดีเลย ยังไงก็ ไปหาดู รายละเอียดเอาเองจาก FAQ ของ sednmail น่ะครับ

และขอยกความดีอันนี้ให้กับ แม่ พ่อ ผู้บังเกิดเกล้า สำหรับ พฤษภาคม เดือนเกิด ปีนี้

Sunday, May 3, 2009

FreeBSD ---> Sendmail

เอกสารอ้างอิง ก็ The Networking CD Bookshelf ของ O'Reilly แหละ ในบทของ sendmail โดยเฉพาะ เก่ามากแล้ว ตั้งใจทำด้วย เพราะช่างเผอิญ ให้ได้ตรง วันฉัตรมงคล พอดี นี่ก็ผ่านวันวิสาขะปูชาไปแล้ว วันพืชมงคล จรดพระนังคัญแรกนาขวัญ ก็ผ่านไปอีก และ วันเกิด ก็ผ่านไปแล้วด้วย ซีงิต ก็อย่างนี้

sendmail เป็น MTA ที่มีมา เรียกว่า มัดมา กับ FreeBSD สำหรับใช้งานด้าน e-mail commands เราจะไม่พาดพิงถึงเรื่องอื่น นอกจาก ประเด็นร้อนขณะนี้ คือ มันส่งออกไม่ได้ อันนี้ อาจจะเกี่ยวข้อง กับ ความวุ่นวายภายในระบบ LAN ของท่าน ซึ่งก็ไม่ขอแตะต้อง อีกเช่นกัน

สถานการณ์ เป็นอย่างนี้น่ะ มีเพื่อนท่านหนึ่ง อืมม พี่ซิ ต้องเรียกเขาว่า พี่ พี่ซัน เขาบอกว่า sendmail ไม่ยอมส่งจดหมายให้ ก็ให้แปลกใจว่า พี่เค้าไปทำอะไรพิสดารไว้รึเปล่า เพราะปกติ sendmail กับ FreeBSD เนี่ย เขาทำมาไว้ชนิดที่เรียกว่า แกะกล่องได้ ก็นำออกมาใช้เลย

ก็แค่นั้นแหละ ที่สงสัย

แต่หลังจากนั้นก็เป็นเรื่องเป็นราวยาว เพราะการ อินเว้สติเกตุเม้นต์ เนี่ย มันต้องการ ข้อเท็จจริง มากมาย หลายด้านด้วยกัน มาประกอบการพิจารณา ... ฯลฯ กอรป ด้วยต้องการให้พี่เขาค่อยๆรู้ไปด้วย , ความจริง เราเอง ก็ใช่ว่า จะรู้ดี ไปกว่าพี่เค้าหรอกน่อ, เลยแนะไป ทำไป แต่ไปไปมามา ชักสงสัยว่า ที่บอกให้ทำๆน่ะ ทำรึเปล่า เพราะดูท่าว่า ไม่ได้แก้อะไรเลย พี่เขา คงเอือมเต็มที แต่ก็เกรงใจด้วย เลยให้เข้าไปแก้ไขเอาตามใจ

เอาล่ะ เรามาเริ่มกัน sednmail นั้นทำงานด้วยแฟ้ม หรือ เอกสาร สำคัญ ๓ แฟ้มเท่านั้นเอง คือ
  1. configuration files
  2. queued files
  3. alias files
อันแรกนั้น เราจัดการผ่านแฟ้ม ตระกูล .mc อันหลังมันมีรูปแบบง่ายๆให้ ไม่ยาก ส่วนแฟ้มคิวนั้น sendmail เขาจัดการของเขาเอง

ที่เป็นปัญหา ให้ต้องคิดเลย ทันทีคือ แฟ้มแรก นั่นแหละ พี่เขา ไปก่อกวนอะไร รึ ถึงส่งออกไม่ได้

ที่ คุระบุรี
(๑) เมื่อเข้าไปดูถึงได้รู้ว่า บางส่วนของแฟ้ม freebsd.mc ยังคงไม่ได้แก้ จึงจัดการแก้ไขซะ โดยเฉพาะตรงบรรทัด

dnl define(`SMART_HOST', `your.isp.mail.server')

ที่บอกให้พี่เขาแก้นั้น พี่เขาก็แก้แหละ แต่ไม่เอา dnl ออก เลยจำเป็นต้อง ลงมือเอง แล้วลบแฟ้ม ที่ขึ้นต้นด้วยชื่อเครื่อง และ ลงท้ายด้วย .mc ออกให้หมด จากนั้นจึงสั่ง
# make all
# make install
# make restart
และเมื่อตรวจดู จดหมายที่เหลืออยู่ในคิว ด้วย mailq -vv ก็พบว่ามีเพียบ ล้วนแต่เกิดจาก deferred/time out ทั้งสิ้น ให้แปลกใจมากมาก
(๒) เมื่อทราบว่า ที่นี่ ไม่เปิด port 25 ไว้, จาก (๑) ที่ปากเกร็ด, และอยากรู้ว่า พี่เขาใช้ MTA ตัวไหน จึงสั่ง

# pkg_info -Ia

กลับตกใจมากกว่าเดิม เพราะพี่เขาลง sendmail จาก port !!! ซึ่งเมื่อเป็นเช่นนี้ แล้วอะไรล่ะ ที่ไปปิด smtp service ลำดับที่ 25 ไว้ ทำให้ส่งออกไม่ได้ เพราะเท่าที่รู้มา การที่ sendmail ไม่ได้วิ่งนั้น เป็นเพราะ มี MTA ตัวอื่น มาใช้บริการที่ smtp port 25 แต่ตัวอื่นที่ว่านั้น ก็คือ sendmail จาก port นั่นเอง รึว่า .....

ดูท่าทางแล้ว เกินกำลัง เลยหันมาทดลองกับเครื่องที่ปากเกร็ดดีกว่า และก็ไม่ได้เข้ามาอีกเลย



ที่ ปากเกร็ด
(๑) ระหว่างที่ทำอะไรที่ คุระบุรี นั้น ก็ลองตรวจดู ว่าที่โน่นเขามีอะไรอยู่บ้าง ทีแรกก็จะทำตอนที่ ssh เข้าไปนั่นแหละ แต่ ดูว่าคงไม่เร็วเท่าทำจากบ้าน ที่ ปากเกร็ด อีกอย่าง tools ต่างๆ ก็ยังไม่มี เลยตัดใจ ทำที่ ปากเกร็ด ดีกว่า

ความจริงที่ได้, zenmap, กลับทำให้ตกใจมากกว่า คือ เครื่อง ไม่เปิด port 25 ไว้เลย แต่ มีอะไรบางอย่าง วิ่งที่ port 587 แทน ซึ่งเมื่อ

# grep 587 /etc/services

ดู ก็รู้ว่า อ้อ นั่นคือ submission subsystem นั่นเอง ซึ่ง เมื่อถึงตรงนี้ ก็พอมองออกว่า คงมี การจัดการ อะไรบางอย่างไว้ ที่เราไม่สามารถ และ ไม่สมควร ไปก้าวก่ายให้มากนัก

ที่ได้เลยคือ แล้ว พี่เขาใช้ MTA ตัวไหนแทน sendmail กัน เลยต้องเข้าไปดูอีก

(๒) ที่นี่ รออยู่
เมื่อโซซัดโซเซ สะเง้าะสะแงะกลับมาจาก คุระบุรี เพราะเจอปัญหาที่ไม่สามารถแก้ได้ ก็เดินงึกๆงักๆวนไปเวียนมารอบๆ ThinkPad R51 ซะสี่ ห้า รอบ แล้วก็ลงมือ

ครับ ง่ายๆเลย ส่ง e-mail ออกนอกจากเครื่องของตัวเอง ผลที่ได้น่ะ เล่นเอาตกใจ เพราะมันก็ ส่งไม่ออกเหมือนกัน ไม่ต้องลำบากหาหลักฐานที่ไหนหรอก ก็ที่รูป นั่นแหละ ช่วงบนๆ ที่เห็นอยู่ไม่มาก นั่นแหละ

เอาล่ะ รู้สึกว่า จะต่อเรื่องกันตรงนี้ก็ไม่มันซะแล้ว ยกยอดเรื่องไปตอนใหม่เลยดีกว่า เน้าะ


ที่สุดแล้ว มันทำงาน ส่งออกได้ อยากรู้ให้ คลิก ที่รูป สังเกตุด้วยว่า ไม่มีหลงในคิวอีกแล้ว ส่งออกได้หมด แต่ ก่อนหน้านั้น ยังคงค้างในคิว ๒ ฉบับ แต่ข้อจำกัด ยังมีอยู่ ใช่ว่าจะใช้ได้ทุกกรณีไป เพียงแต่ ขอให้เพื่อนๆ ที่อ่าน ได้สาระ ได้แนวทาง ในการแก้ปัญหาไปด้วย ก็เกินคุ้ม กับหลายสิ่งหลายอย่างที่ ทุ่มเทลงไป ลงไปเพื่อ ... พึ่งพาตนเอง

View My Stats