´ÙÀ½ ÀÌÀü Â÷·Ê

3. sendmail ¼³Á¤Çϱâ

3.1 ÁÖ ¼³Á¤ ÆÄÀÏ

SendmailÀº ¸Å¿ì º¹ÀâÇÑ ±ÔÄ¢À» »ç¿ëÇÏ¿© ȯ°æ ¼³Á¤À» ÇÑ´Ù. À̰͵éÀ» »ç¿ëÇÏ¿© ´Ù¾çÇÑ ÀÛ¾÷À» ÇÒ ¼ö ÀÖÁö¸¸ sendmail.cf ÆÄÀÏÀ» óÀ½ºÎÅÍ Á÷Á¢ ÀÛ¼ºÇÏ´Â °ÍÀº ÀϹÝÀûÀÌÁö ¾Ê°í ¶Ç ¸¹Àº ½Ã°£ÀÌ °É¸°´Ù. ±»ÀÌ ÀÌ·± ÀÛ¾÷À» ÇÏ°í ½Í´Ù¸é ÀÌ ¹®¼­ Àд °ÍÀ» Áö±Ý ¸ØÃß°í O'Reilly ¿¡¼­ ÃâÆÇµÈ "Bat Book"À» Àд °ÍÀÌ ÁÁ´Ù.

¿ì¸®´Â ÀÌ ±ÔÄ¢µéÀ» Á÷Á¢ ¼ÕÀ¸·Î ¾²Áö ¾Ê°í sendmail°ú ÇÔ²² ¹èÆ÷µÇ´Â ÆÄÀϵé·ÎºÎÅÍ m4 ¸ÅÅ©·Î ÇÁ·Î¼¼¼­¸¦ ÀÌ¿ëÇÏ¿© ¼³Á¤ ÆÄÀÏÀ» ¸¸µé °ÍÀÌ´Ù.

¸ÕÀú senamail.mc ÆÄÀÏÀÇ Ã¹¹ø° ¸î ÁÙÀ» º¸ÀÚ


include(/usr/lib/sendmail.cf/m4/cf.m4)
VERSIONID(sendmail.mc - <url url="mailto: roessler@guug.de" name="roessler@guug.de">
OSTYPE(debian)
define(`ALIAS_FILE',`/etc/mail/aliases')

ùºÎºÐ¿¡¼­ cf.m4°¡ includeµÇ¾ú´Ù. ÀÌ m4 ¸ÅÅ©·Î ÆÄÀÏÀº ÆÄÀÏÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼­ »ç¿ëµÉ ´Ù¾çÇÑ ¸ÅÅ©·Î Á¤ÀǵéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. À̶§ ÆÄÀÏÀÇ °æ·Î °¡ ¸Â´ÂÁö È®ÀÎÇØ¾ß ÇÑ´Ù - ¿©±â¼­ »ç¿ëÇÏ´Â °æ·Î´Â Debian GNU/Linux¿¡¼­ »ç¿ëÇÏ´Â °ÍµéÀÌ´Ù. OSTYPE ¸ÅÅ©·Î´Â ¸î¸î ¼³Á¤ °ª¿¡ ´ëÇØ ?ëÇ?±âº»°ªÀ» ÁöÁ¤ÇØ ÁØ´Ù. ¸¸ÀÏ »ç¿ëÀÚ°¡ Debian ½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é "debian" À» "linux"·Î ¹Ù²Ù´Â °ÍÀÌ ÁÁ´Ù. ALIAS_FILEÀº sendmailÀÌ alias ¸®½ºÆ® ¸¦ ¾îµð¿¡¼­ ã¾Æ¾ß ÇÏ´ÂÁö ¾Ë·ÁÁØ´Ù.

´ÙÀ½ ºÎºÐÀº sendmail¿¡°Ô genericstable ±â´ÉÀ» »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÏ°í , À̶§ ÇÊ¿äÇÑ ¼³Á¤ ÆÄÀÏÀ» ãÀ» °÷À» ÁöÁ¤ÇÏ°í ÀÖ´Ù.


FEATURE(masquerade_envelope) FEATURE(genericstable, `hash
-o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')

masquerade_envelope ±â´ÉÀº sendmail¿¡°Ô ¸Þ½ÃÁöÀÇ envelope sender ºÎºÐ¿¡ ´ëÇØ header rewritingÀ» Àû¿ëÇ϶ó°í Áö½ÃÇÑ´Ù. ÀÌ°ÍÀº ¿ÜºÎ ¸ÞÀÏ Àü¼Û ½Ã½ºÅÛÀÌ ¸ÞÀÏ Àü¼ÛÀ» ½ÇÆÐÇßÀ» ¶§ ±× °á°ú º¸°í¿Í °æ°í ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¸ÞÀÏ ÁÖ¼ÒÀÌ´Ù. generics* ÆÄÀϵéÀº À̱ÛÀÇ ¾Æ·¡¿¡¼­ ¼³¸íÇÑ´Ù.

ÀÌÁ¦ ¼ÒÀ§ smart host¶ó°í ºÒ¸®´Â °ÍÀ» Á¤ÀÇÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚÀÇ ½Ã½ºÅÛÀ» À§ÇØ ¿ÜºÎ·Î ³ª°¥ ¸ÞÀÏÀ» ó¸®ÇÒ ¸Ó½ÅÀ» ¸»ÇÑ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚÀÇ ISPÀÇ POPÀ̳ª IMAP ¼­¹ö¿Í´Â ´Ù¸¦ °ÍÀÌ´Ù. ¸¸ÀÏ Àǽɽº·´´Ù¸é ISP¿¡ ¿¬¶ô ÇÏ¿© È®ÀÎÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÁÖ ¼³Á¤ ÆÄÀÏÀÇ ÄÚµå´Â ´ÙÀ½°ú °°´Ù :


define(`SMART_HOST',`mail-out.your.provider')

¿©±â¼­ mail-out.your.provider ºÎºÐÀ» »ç¿ëÀÚÀÇ ISP È£½ºÆ® ¸Ó½Å Àüü À̸§À¸·Î ¹Ù²Ù±â ¹Ù¶õ´Ù.

¸¶Áö¸· µÎ ÁÙÀº sednamilÀÌ ´Ù¾çÇÑ ¸ÞÀÏ ÇüŸ¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ëµµ·Ï ÇϱâÀ§ÇØ ÇÊ¿äÇÑ "mailer" Á¤ÀǸ¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù :


MAILER(local)
MAILER(smtp)

sendmail.mc·ÎºÎÅÍ sendmail.cf ÆÄÀÏÀ» ¸¸µé·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù (root ±ÇÇÑÀ¸·Î):
# m4 sendmail.mc > _sendmail.cf
# mv -f _sendmail.cf sendmail.cf

¿©±â¼­ m4ÀÌ °á°ú¸¦ Àӽà ÆÄÀÏ¿¡ ÀúÀåÇÑ ÈÄ ÀÌ ÆÄÀÏÀ» Àû´çÇÑ À§Ä¡·Î ¿Å±â´Â ¹æ¹ý¿¡ À¯ÀÇÇÑ´Ù. ÀÌ ¹æ¹ýÀ» ¾²¸é ÀϺκи¸ ÀúÀåµÈ ¼³Á¤ ÆÄÀÏÀ» ÀÐ¾î ¸ÞÀÏ ÀÌ Àü¼ÛµÇ´Â °ÍÀ» ¹æÁöÇÒ ¼ö ÀÖ´Ù.

3.2 Address rewriting

¿ì¸®´Â ¸ÕÀú ¾î¶² ÁÖ¼Ò°¡ ·ÎÄ÷Π°£ÁֵǴÂÁö¸¦ sendmail¿¡°Ô ¾Ë·ÁÁà¾ß ÇÑ´Ù. (ÀÌ ÁÖ¼ÒµéÀÇ address rewritingÀÇ ´ë»óÀÌ µÈ´Ù) ÀÌ°ÍÀº ¸Å¿ì °£´ÜÇÏ´Ù: ´ÜÁö »ç¿ëÀÚ ¸Ó½ÅÀÇ È£½ºÆ® À̸§À» /etc/mail/genericdomain¿¡ ÀûÀ¸¸é µÈ´Ù »ç¿ëÀÚ È£½ºÆ®ÀÇ Àüü À̸§À» ¾Ë·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ¸é µÈ´Ù :


$ hostname -f

ÀÌÁ¦ rewriting Å×À̺íÀ» º¸ÀÚ : /etc/mail/genericstable. ÀÌ ÆÄÀÏÀº °ø¹éÀ¸·Î ±¸ºÐµÈ µÎ °³ÀÇ ¿­À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ù¹ø° ¿­Àº ·ÎÄà ÁÖ¼ÒÀÌ°í µÎ¹ø° ¿­ÀÌ ·ÎÄà ÁÖ¼Ò ´ë½Å »ç¿ëµÉ À̸ÞÀÏ ÁÖ¼ÒÀÌ´Ù. ÀÌ ÆÄÀÏÀº ´ÙÀ½°ú °°Àº Çü½ÄÀÏ °ÍÀÌ´Ù :
harry <url url="mailto: harryx@your.isp" name="harryx@your.isp">
maude <url url="mailto: maudey@her.isp" name="maudey@her.isp">
root <url url="mailto: fredx@your.isp" name="fredx@your.isp">
news <url url="mailto: fredx@your.isp" name="fredx@your.isp">

·ÎÄà ½Ã½ºÅÛ¿¡¼­ ¸¸µé¾îÁø ¸ÞÀÏÀÌ ¿Ã¹Ù¸¥ Çì´õ Á¤º¸¸¦ °¡Áö°í Àü¼ÛµÇ±â À§Çؼ­´Â ·ÎÄà ¸Ó½ÅÀÇ °¢°¢ÀÇ °èÁ¤¸¶´Ù ÇÑ°³ÀÇ Ç׸ñÀ» °¡Á®¾ß ÇÑ´Ù. (¿ªÀÚ ÁÖ : °¢°¢ÀÇ ·ÎÄà °èÁ¤¿¡ ´ëÇØ ISP °ÔÁ¤°úÀÇ ¿¬°áÀÌ ÀÖ¾î¾ß ÇÑ´Ù)

SendmailÀº ¼º´ÉÀ» ³ôÀ̱â À§ÇØ ÅؽºÆ® ÆÄÀÏÀ» Á÷Á¢ »ç¿ëÇÏÁö ¾Ê°í Çؽ¬µÈ ¹öÀüÀ» »ç¿ëÇÑ´Ù. Çؽ¬µÈ ¹öÀüÀ» ¸¸µé¾î³»·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·Â ÇÑ´Ù :


# makemap -r hash genericstable.db < genericstable

À̶§ genericstableÀÇ rewriting ±ÔÄ¢Àº ·ÎÄà ¸ÞÀÏÀ̳ª ¿ÜºÎ·ÎºÎÅÍ ¼ö½ÅÇÑ ¸ÞÀÏ¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. ÀÌ ¸ÅÇÎÀº ¿ÀÁ÷ »ç¿ëÀÚÀÇ ·ÎÄà ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚÀÇ ISP¸¦ ÅëÇØ ¿ÜºÎ·Î Àü¼ÛµÇ´Â ¸ÞÀÏ¿¡¸¸ Àû¿ëµÈ´Ù.

3.3 Aliases

aliases ÆÄÀÏÀº ·ÎÄà ¸Þ½ÃÁö¿¡¸¸ À¯È¿ÇÑ Ãß°¡ÀûÀÎ ¸î °³ÀÇ ·ÎÄà À̸§À» ´ã°í ÀÖ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚÀÇ ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÇ´Â ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ´Â ·çÆ® °°Àº °ü¸®ÀÚ °èÁ¤¿¡ À¯¿ëÇÏ´Ù.

/etc/mail/aliases´Â ´ÙÀ½°ú °°Àº ÇüÅÂÀÏ °ÍÀÌ´Ù.


root: fred
news: root
postmaster: root
mail: root
www: root
nobody: /dev/null
MAILER-DAEMON: nobody

ÀÌ ¿¹´Â root, news, postmaster, mail ±×¸®°í www »ç¿ëÀÚÀÇ ·ÎÄà ¸ÞÀÏÀ» root¿¡°Ô Æ÷¿öµùÇÏ°í, rootÀÇ ¸ÞÀÏÀº fred¿¡°Ô Æ÷¿öµùÇÑ´Ù. (¿ªÀÚ ÁÖ: °á±¹ root, news, postmaster, mail ±×¸®°í www¿¡°Ô ¼ö½ÅµÇ´Â ¸ðµç ¸ÞÀÏÀº fred°¡ ¼ö½ÅÇÏ°Ô µÈ´Ù). ¹Ý¸é nobody¿Í MAILER-DAEMONÀº /dev/null¿¡°Ô º¸³»Áø´Ù.

genericstable°ú °°ÀÌ aliasesµµ ¸¹Àº Ç׸ñÀ» ´ã°í ÀÖÀ» ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î sendmailÀÌ ÅؽºÆ® ÆÄÀÏÀ» Á÷Á¢ »ç¿ëÇÏ´Â °ÍÀº ¼º´É¸é¿¡¼­ ÁÁÁö ¾Ê´Ù. genericstable ¿¡¼­ »ç¿ëÇÑ °Í°ú °°Àº ¹æ¹ýÀÌ aliases¿¡µµ »ç¿ëµÈ´Ù. Áï Çؽ¬µÈ µ¥ÀÌÅͺ£À̽º°¡ ¸¸µé¾îÁø´Ù. makemapÀ» Á÷Á¢ »ç¿ëÇÏ´Â ´ë½Å newaliases ¸í·É¾î¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ÀÌ ¸í·É¾î°¡ ÇÊ¿äÇÑ ¸ðµç ÀÛ¾÷À» ÀÚµ¿À¸·Î ¼öÇàÇÑ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê