29.3. sendmail-г Тохируулах нь

Хувь нэмрээ оруулсан Кристофер Шамвэй. Орчуулсан Лодойсамбын Баянзул.

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 Хийсвэр хэрэглэгчид болон домэйн хүснэгтүүд

29.3.1. /etc/mail/access

Хандалтын өгөгдлийн санд ямар хостууд болон 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 тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.

29.3.2. /etc/mail/aliases

Хуурамч дүрүүдийн өгөгдлийн санд хэрэглэгчид, файлууд, програмууд эсвэл бусад хуурамч дүрүүд рүү задардаг хийсвэр захидлын хайрцгуудын жагсаалтыг хадгалж байдаг. /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 гэсэн гурван дотоод хэрэглэгчдэд задлах болно. Алсын захидлын хайрцгийг хэлбэрээр оруулж болохыг энд тэмдэглэх хэрэгтэй. Дараагийн жишээн дээр захидлыг файлд, энэ жишээн дээр /dev/null-д бичихийг зааж байна. Хамгийн сүүлийн жишээн дээр, захидлын програмд илгээхийг, энэ тохиолдолд захидлыг UNIX® хоолойгоор дамжуулан /usr/local/bin/procmail-н стандарт оролтод өгч байна.

Энэ файлд өөрчлөлт оруулсны дараа, /etc/mail/ дотор make тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.

29.3.3. /etc/mail/local-host-names

Энэ бол sendmail(8) дотоод хостууд байдлаар хүлээн авах хостуудын нэрийн жагсаалт юм. sendmail захидлыг нь хүлээж авах домэйн болон хостын нэрийг энэ файлд бичих хэрэгтэй. Жишээлбэл, хэрэв энэ захидлын сервер example.com домэйн болон mail.example.com хостын захидлыг хүлээж авах ёстой бол, local-host-names файл дараах байдалтай байна:

example.com
mail.example.com

Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail(8)-г дахин эхлүүлэх шаардлагатай.

29.3.4. /etc/mail/sendmail.cf

sendmail-н гол тохиргооны файл болох sendmail.cf нь захидлын хаягийг дахин бичихээс эхлүүлээд алсын захидлын серверт татгалзсан зурвас илгээх хүртэл бүх зүйлийг оруулаад sendmail-н ерөнхий үйл ажиллагааг хянана. Мэдээжийн хэрэг, ийм олон талын үүрэгтэй энэ тохиргооны файл нилээд ойлгомжгүй байх ба нарийвчлан авч үзэх нь энэ бүлгийн мэдлээс хальсан асуудал болно. Нэг баярлууштай нь, стандарт захидлын сервер байдлаар ашиглахад энэ файлд өөрчлөлт оруулах бараг шаардлагагүй байдаг.

sendmail-н гол тохиргооны файлыг sendmail-н шинж чанар, төлвийг илэрхийлсэн m4(1) макронуудаас үүсгэж болно. Дэлгэрэнгүйг /usr/src/contrib/sendmail/cf/README файлаас үзэж болно.

Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail-г дахин эхлүүлэх шаардлагатай.

29.3.5. /etc/mail/virtusertable

virtusertable нь хийсвэр домэйнууд ба захидлын хайрцгийн хаягуудыг жинхэнэ захидлын хайрцгуудад буулгана. Эдгээр захидлын хайрцгууд нь дотоод, алсын, /etc/mail/aliases дотор тодорхойлогдсон хуурамч дүр эсвэл файл байж болно.

Жишээ 29-3. Хийсвэр Домэйны Захидлын Буулгалтын Жишээ

root@example.com                root
postmaster@example.com          postmaster@noc.example.net
@example.com                    joe

Дээрх жишээн дээр, example.com домэйны хувь дахь буулгалтыг үзүүлсэн байна. Энэ файлыг дээрээс нь доош нь, эхний таарсныг авах байдлаар боловсруулна. Эхний мөрөнд root гэсэн дотоод захидлын хайрцагт буулгаж байна. Дараагийн мөрөнд 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> хаягаар цахим захидал явуулна уу.