29.3. sendmail-г Тохируулах нь
Өмнөх | Бүлэг 29. Цахим Шуудан | Дараах

## 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` гэсэн гурван дотоод хэрэглэгчдэд задлах болно. Алсын захидлын хайрцгийг `<user@example.com>` хэлбэрээр оруулж болохыг энд тэмдэглэх хэрэгтэй. Дараагийн жишээн дээр захидлыг файлд, энэ жишээн дээр `/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@example.com>`-г `root` гэсэн дотоод захидлын хайрцагт буулгаж байна. Дараагийн мөрөнд `<postmaster@example.com>`-г `noc.example.net` хост дээр байгаа `postmaster` захидлын хайрцагт буулгаж байна. Эцэст нь, хэрэв `example.com`-той хаяг дээр дурдсаны алинд ч тохироогүй бол, хамгийн сүүлийн мөрөнд тохирох болно. Энэ мөрөнд `example.com` домэйнтой бүх захидлын хаяг тохирох бөгөөд бүгд `joe` гэсэн дотоод захидлын хайрцагт буулгагдах болно.

Өмнөх | Дээш | Дараах
29.2. Цахим Захидлыг Хэрэглэх нь | Эхлэл | 29.4. Өөрийн Захидал Дамжуулах Агентийг Солих нь

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.