FreeBSD-н хувьд sendmail(8) бол анхдагч Mail Transfer Agent буюу Захидал Дамжуулах Агент(MTA) юм. sendmail-н үүрэг бол Mail User Agent буюу Хэрэглэгчийн Захидлын Агент(MUA)-с захидал хүлээн авч, тохиргооны файлд хэрхэн зааж өгснөөс хамааран зохих захидал түгээгчид дамжуулна. sendmail нь мөн сүлжээний холболтуудыг хүлээн авч, захидлыг дотоод захидлын хайрцагт эсвэл өөр програмд дамжуулах чадвартай.
sendmail дараах тохиргооны файлуудыг ашигладаг:
Файлын Нэр | Үүрэг |
---|---|
/etc/mail/access | sendmail-н хандалтын өгөгдлийн сангийн файл |
/etc/mail/aliases | Захидлын хайрцагны хуурамч дүрүүд |
/etc/mail/local-host-names | sendmail эдгээр хостуудаас захидал хүлээж авна. |
/etc/mail/mailer.conf | Захидал түгээгч програмын тохиргоо |
/etc/mail/mailertable | Захидал түгээгчийн түгээлтийн хүснэгт |
/etc/mail/sendmail.cf | sendmail-н гол тохиргооны файл |
/etc/mail/virtusertable | Хийсвэр хэрэглэгчид болон домэйн хүснэгтүүд |
Хандалтын өгөгдлийн санд ямар хостууд болон IP
хаягуудаас дотоод захидлын серверт хандах, ямар
төрлийн хандалт хийхийг зааж өгсөн байна.
Хостуудыг OK
, REJECT
,
RELAY
гэж тэмдэглэж болно эсвэл sendmail-н алдаа зохицуулах дэгд
тодорхой алдааг зааж өгөн дамжуулж болно. OK
гэсэн анхдагч утгаар
тэмдэглэгдсэн хостууд энэ хостод хаяглагдсан
захидлыг дамжуулах эрхтэй. REJECT
гэж тэмдэглэгдсэн хостуудаас үүсэх холболтыг
хүлээж авахгүй. RELAY
гэж
тэмдэглэгдсэн хостуудын хувьд энэ захидлын
серверээр дамжуулан хааш нь ч хамаагүй захидал
илгээж болно.
Жишээ 29-1. sendmail Хандалтын Өгөгдлийн санг Тохируулах нь
cyberspammer.com 550 We do not accept mail from spammers FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY
Энэ жишээн дээр бид таван бүртгэл харж байна. Захидал илгээгчийн хувьд хүснэгтийн зүүн баганад байгаа утгатай дүйвэл баруун баганад байгаа үйлдлийг гүйцэтгэнэ. Эхний хоёр жишээний хувьд sendmail-н алдаа зохицуулах дэгд алдааны мэдээллийг өгөх болно. Хүснэгтийн зүүн баганад байгаа утгатай захидал дүйсэн тохиолдолд алсын хостод энэ мэдээллийг өгөх болно. Дараагийн жишээн дээр, another.source.of.spam гэсэн тодорхой хостоос ирэх захидлыг бүгдийг буцаах болно. Түүний дараагийн жишээн дээр, okay.cyberspammer.com гэсэн хостоос ирэх холболтуудыг хүлээж авах болно. Энд хостын нэр өмнөх мөрний cyberspammer.com-г бодвол илүү тодорхой байна. Илүү тодорхой заалт нь ерөнхий заалтыг дарж хүчингүй болгоно. Хамгийн сүүлийн жишээн дээр, 128.32-р эхэлсэн IP хаягтай хостуудаас ирэх захидлыг өртөөлөн дамжуулахыг зааж байна. Эдгээр хостууд бусад серверт хаягласан захидлыг энэ захидлын серверээр дамжуулах боломжтой гэсэн үг юм.
Энэ файлд өөрчлөлт оруулсны дараа, /etc/mail/ дотор make тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.
Хуурамч дүрүүдийн өгөгдлийн санд хэрэглэгчид, файлууд, програмууд эсвэл бусад хуурамч дүрүүд рүү задардаг хийсвэр захидлын хайрцгуудын жагсаалтыг хадгалж байдаг. /etc/mail/aliases дотор хэрэглэж болох хэдэн жишээг дор үзүүлэв:
Жишээ 29-2. Захидлын Хуурамч дүрүүд
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
Бичих хэлбэр нь амархан; тодорхойлох хоёр
цэгний зүүн талд байгаа захидлын хайрцагны нэр
нь баруун талд байгаа зүйл болон задарна. Эхний
жишээн дээр root захидлын хайрцгийг
localuser захидлын хайрцаг болгон
задалж байна. Энэ нэрийг цааш дахин хуурамч
дүрийн өгөгдлийн сангаас хайх болно. Хэрэв энэ
нэр олдохгүй бол, захидлыг localuser
нэртэй дотоод хэрэглэгчид хүргэх болно.
Дараагийн жишээн дээр захидлын жагсаалтыг
үзүүлсэн байна. ftp-bugs захидлын
хайрцагт ирэх захидлыг joe, eric, ба paul гэсэн гурван
дотоод хэрэглэгчдэд задлах болно. Алсын
захидлын хайрцгийг <user@example.com>
хэлбэрээр оруулж болохыг энд тэмдэглэх
хэрэгтэй. Дараагийн жишээн дээр захидлыг файлд,
энэ жишээн дээр /dev/null-д бичихийг
зааж байна. Хамгийн сүүлийн жишээн дээр,
захидлын програмд илгээхийг, энэ тохиолдолд
захидлыг UNIX® хоолойгоор
дамжуулан /usr/local/bin/procmail-н стандарт
оролтод өгч байна.
Энэ файлд өөрчлөлт оруулсны дараа, /etc/mail/ дотор make тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.
Энэ бол sendmail(8) дотоод хостууд байдлаар хүлээн авах хостуудын нэрийн жагсаалт юм. sendmail захидлыг нь хүлээж авах домэйн болон хостын нэрийг энэ файлд бичих хэрэгтэй. Жишээлбэл, хэрэв энэ захидлын сервер example.com домэйн болон mail.example.com хостын захидлыг хүлээж авах ёстой бол, local-host-names файл дараах байдалтай байна:
example.com mail.example.com
Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail(8)-г дахин эхлүүлэх шаардлагатай.
sendmail-н гол тохиргооны файл болох sendmail.cf нь захидлын хаягийг дахин бичихээс эхлүүлээд алсын захидлын серверт татгалзсан зурвас илгээх хүртэл бүх зүйлийг оруулаад sendmail-н ерөнхий үйл ажиллагааг хянана. Мэдээжийн хэрэг, ийм олон талын үүрэгтэй энэ тохиргооны файл нилээд ойлгомжгүй байх ба нарийвчлан авч үзэх нь энэ бүлгийн мэдлээс хальсан асуудал болно. Нэг баярлууштай нь, стандарт захидлын сервер байдлаар ашиглахад энэ файлд өөрчлөлт оруулах бараг шаардлагагүй байдаг.
sendmail-н гол тохиргооны файлыг sendmail-н шинж чанар, төлвийг илэрхийлсэн m4(1) макронуудаас үүсгэж болно. Дэлгэрэнгүйг /usr/src/contrib/sendmail/cf/README файлаас үзэж болно.
Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail-г дахин эхлүүлэх шаардлагатай.
virtusertable нь хийсвэр домэйнууд ба захидлын хайрцгийн хаягуудыг жинхэнэ захидлын хайрцгуудад буулгана. Эдгээр захидлын хайрцгууд нь дотоод, алсын, /etc/mail/aliases дотор тодорхойлогдсон хуурамч дүр эсвэл файл байж болно.
Жишээ 29-3. Хийсвэр Домэйны Захидлын Буулгалтын Жишээ
root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe
Дээрх жишээн дээр, example.com домэйны
хувь дахь буулгалтыг үзүүлсэн байна. Энэ файлыг
дээрээс нь доош нь, эхний таарсныг авах байдлаар
боловсруулна. Эхний мөрөнд <root@example.com>
-г root
гэсэн дотоод захидлын хайрцагт буулгаж байна.
Дараагийн мөрөнд <postmaster@example.com>
-г noc.example.net хост дээр байгаа postmaster захидлын хайрцагт буулгаж
байна. Эцэст нь, хэрэв example.com-той
хаяг дээр дурдсаны алинд ч тохироогүй бол,
хамгийн сүүлийн мөрөнд тохирох болно. Энэ мөрөнд
example.com домэйнтой бүх захидлын хаяг
тохирох бөгөөд бүгд joe гэсэн
дотоод захидлын хайрцагт буулгагдах болно.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай
холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим
захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт
байвал <admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.