Chapter 18
A Description of NNTP


D.M.Z CONTENT PRE NEXT

18.1 Introduction
18.2 Installing the NNTP server
18.3 Restricting NNTP Access
18.4 NNTP Authorization
18.5 nntpd Interaction with C News

18.1 Introduction

¼­·Î ´Ù¸¥ ³×Æ®¿÷ Àü¼Û ¼ö´ÜÀÌ »ç¿ëµÇ±â¿¡, NNTP´Â ´º½º ±³È¯¿¡ ÀÖ¾î C News¿Í´Â ÀüÇô ´Ù¸¥ Á¢±Ù ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. NNTP´Â "Network News Trasfer Protocol"ÀÇ ¾à¾î·Î, ƯÁ¤ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö°¡ ¾Æ´Ñ ÀÎÅÍ³Ý Ç¥ÁØÀ» °¡¸®Å°´Â ¸»ÀÌ´Ù. ±×°ÍÀº ³×Æ®¿÷ ³» ¾îµò°¡¿¡ Àִ Ŭ¶óÀÌ¾ðÆ®¿Í, netnews¸¦ µð½ºÅ© ÀúÀå¸Åü¿¡ º¸Á¸Çϴ ȣ½ºÆ®¿¡ ¶°ÀÖ´Â ¼­¹ö°£ÀÇ stream ÁöÇâ Ä¿³Ø¼Ç (º¸Åë TCP »ó¿¡¼­)¿¡ ±â¹ÝÇÑ´Ù. stream Ä¿³Ø¼ÇÀº Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°¡ ¾ÆÆ¼Å¬À» Àü¼ÛÇϴµ¥, ÀüÇâ(turnaround) µô·¹À̰¡ °ÅÀÇ ¾øµµ·Ï Çϰí, ¾ÆÆ¼Å¬ ÁßøÀÇ ¼ö¸¦ ³·°Ô À¯ÁöÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÎÅͳÝÀÇ ³ôÀº Àü¼Û·ü¿¡ ÈûÀÔ¾î, À̰ÍÀº ¿À¸®Áö³Î UUCP ³×Æ®¿÷À» ÈξÀ ´É°¡ÇÏ´Â ´º½º Àü¼ÛÀ» °¡´ÉÄÉ ÇÑ´Ù. ¸î³â Àü¿£ ¾ÆÆ¼Å¬ÀÌ Æ÷½ºÆÃµÇ¾î UsenetÀÇ ¸¶Áö¸· Äڳʿ¡ µµÂøÇϱ⠱îÁö 2ÁÖÀÌ»óÀÌ °É¸®´ø °ÍÀÌ ºñÁ¤»óÀûÀÎ °ÍÀÌ ¾Æ´Ï¾úÀ¸³ª, ÀÌÁ¦ À̰ÍÀº ÀÌÆ²µµ °É¸®Áö ¾Ê°Ô µÇ¾ú´Ù. ÀÎÅÍ³Ý ÀÚü¿¡¼±, ±×°ÍÀº ½ÉÁö¾î ¸îºÐÀÇ ¹üÀ§³»¿¡ ÀϾ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ ¾ÆÆ¼Å¬À» ã¾Æ¿À°í(retrive), º¸³»°í(send), Æ÷½ºÆÃ(post)ÇÏ°Ô ÇÏ´Â ¸î°¡ÁöÀÇ Ä¿¸Çµå°¡ Á¸ÀçÇÑ´Ù. º¸³»´Â °Í°ú Æ÷½ºÆÃ°£ÀÇ Â÷ÀÌ´Â ÈÄÀÚ°¡ ¿ÏÀüÄ¡ ¾ÊÀº Çì´õ Á¤º¸¸¦ Áö´Ñ ¾ÆÆ¼Å¬À» °¡Áö°í ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¾ÆÆ¼Å¬ retrivingÀº ´º½ºÀü¼Û Ŭ¶óÀÌ¾ðÆ®¿Í newsreader¿¡¼­ »ç¿ëµÈ´Ù. À̰ÍÀº NNTP¸¦, NFS¸¦ »ç¿ëÇÒ ¶§ ÇÊ¿äÇÑ ¾î¶² ·ùÀÇ ¼ÓÀÓ¼ö ¾øÀÌ ·ÎÄà ³×Æ®¿÷ »óÀÇ ¸¹Àº Ŭ¶óÀÌ¾ðÆ®µé¿¡°Ô ´º½º ¾ï¼¼½º¸¦ Á¦°øÇÏ´Â ±²ÀåÇÑ Åø·Î ¸¸µç´Ù.

NNTP´Â activeÇϰí passiveÇÑ ´º½º Àü¼Û ¹æ¹ý, "pushing"°ú "pulling"À̶ó ºÒ¸®´Â °Íµµ Áö¿øÇÑ´Ù. PushingÀº ±âºÐÀûÀ¸·Î C NewsÀÇ ihave/sendme ÇÁ·ÎÅäÄݰú µ¿ÀÏÇÏ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â "IHAVE<varmsgid>" Ä¿¸Çµå¸¦ ÅëÇØ ¼­ÅÍ¿¡°Ô ÇϳªÀÇ ¾ÆÆ¼Å¬À» ÁÖ°í, ¼­¹ö´Â ±× ¾ÆÆ¼Å¬À» ÀÌ¹Ì °®°í ÀÖ´ÂÁö ¶Ç´Â ±×°ÍÀ» ¿øÇÏ´ÂÁö¸¦ Áö½ÃÇÏ´Â response Äڵ带 ¸®ÅÏÇÑ´Ù. ¸¸¾à ±×·²°æ¿ì, Ŭ¶óÀÌ¾ðÆ®´Â ¾ÆÆ¼Å¬À» º¸³»°í, µÚ ¶óÀΠù¹øÂ°¿¡ Á¡À» Âï¾î ¸¶Áö¸·À» Ç¥½ÃÇÑ´Ù.

´º½º¸¦ pushing Çϴµ§ ´Ü ÇѰ¡Áö °áÁ¡ÀÌ Àִµ¥, ±×°ÍÀº ¼­¹ö ½Ã½ºÅÛ¿¡ ½É°¢ÇÑ ·Îµå¸¦ ÀÏÀ¸Å²´Ù´Â °ÍÀ¸·Î, ±× ÀÌÀ¯´Â ±×°ÍÀÌ °¢ ½Ì±Û ¾ÆÆ¼Å¬¿¡ ´ëÇØ ±×°ÍÀÇ history µ¥ÀÌÅÍ º£À̽º¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.

¹Ý´ëÀÇ Å×Å©´ÐÀº pullingÀ¸·Î, Ŭ¶óÀÌ¾ðÆ®°¡ ÀÏÁ¤ ³¯Â¥ ÀÌÈÄ¿¡ µµÂøÇÑ ¾ÆÆ¼Å¬ÀÇ ¸®½ºÆ®¸¦ ±×·ì¿¡ ¿äûÇÏ´Â °ÍÀÌ´Ù. NETNEWS Ä¿¸Çµå¿¡ ÀÇÇØ ±× Äõ¸®°¡ ¼öÇàµÈ´Ù. ¸®ÅÏµÈ ¸Þ½ÃÁö idÀÇ ¸®½ºÆ®¿¡¼­, Ŭ¶óÀÌ¾ðÆ®´Â ±×µé °¢°¢¿¡ ´ëÇØ Â÷·Ê·Î ARTICLE Ä¿¸Çµå¸¦ »ç¿ëÇÏ¿©, ¾ÆÁ÷ °®Áö ¸øÇÑ ¾ÆÆ¼Å¬À» °ñ¶ó³½´Ù.

´º½º¸¦ pullingÇϴµ¥ µû¸£´Â ¹®Á¦Á¡Àº, Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇϵµ·Ï Çã¶ôÇÏ´Â group°ú distribution¿¡´ëÇØ ¼­¹ö°¡ ¸é¹ÐÇÏ°Ô ÄÁÆ®·ÑÇØ¾ß ÇØ¾ßÇÑ´Ù´Â Á¡ÀÌ´Ù. ¿¹¸¦ µé¾î, news pullingÀº ·ÎÄà ´º½º ±×·ì¿¡¼­ÀÇ ¾î¶°ÇÑ ºñ¹Ð½º·± °ÍµéÀ» Àý´ë ÀÎÁõ ¹ÞÁö ¸øÇÑ È£½ºÆ®¿¡ º¸³»Áö ¾Ê´Â´Ù´Â È®½ÅÀÌ ÇÊ¿äÇÏ´Ù.

newsreader°¡ ¾ÆÆ¼Å¬ÀÇ header¿Í body¸¦ º°°³·Î, ½ÉÁö¾î´Â Çì´õ¶óÀÎÀÇ ÇÑ ¶óÀθ¸À» ¹Þ¾Æ ¿Ã¼ö ÀÖ°Ô ÇÏ´Â ¸î°¡Áö Æí¸®ÇÑ Ä¿¸Çµåµé·Î ÀÖ´Ù. À̰ÍÀº ¸ðµç ´º½º¸¦ Áß¾Ó È£½ºÆ®¿¡ º¸Á¸Çϰí, (·ÎÄ÷ΠÃßÁ¤µÇ´Â) ³×Æ®¿÷ »óÀÇ ¸ðµç À¯ÀúµéÀº NNTP ±â¹Ý Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ÀÐ°í Æ÷½ºÆÃÇÏ°Ô ÇÑ´Ù. À̰ÍÀº 17Àå¿¡¼­ ³íÇÑ ¹Ù ÀÖ´Â, NFS·Î ´º½º µð·ºÅ丮¸¦ exportingÇÏ´Â ¹æ¹ý¿¡´ëÇÑ ÇϳªÀÇ ´ë¾ÈÀÌ´Ù.

NNTPÀÇ Àü¹ÝÀûÀÎ ¹®Á¦Á¡Àº, ±×°ÍÀÌ º¸³½ÀÌÀÇ À̸§À» ¹Ù²ãÄ¡±âÇÏ¿© ´º½º stream³»·Î ¾ÆÆ¼Å¬À» Áý¾î ³ÖÀ» ¼ö ÀÖ°Ô ÇÑ´Ù´Â °ÍÀÌ´Ù. À̸¦ ÀÏÄþî news fakingÀ̶ó ÇÑ´Ù. È®ÀåµÈ(extended) NNTP´Â ƯÁ¤ Ä¿¸Çµå¿¡ ´ëÇØ À¯ÀúÀÎÁõÀ» ÇÊ¿ä·Î ÇÑ´Ù.

»ç¿ë°¡´ÉÇÑ ¿©·¯°¡Áö NNTP ÆÐŰÁö°¡ Á¸ÀçÇϴµ¥, ÀÌ Áß °¡Àå Àß ¾Ë·ÁÁø Çϳª´Â NNTP µ¥¸óÀ¸·Î, reference implementationÀ̶ó°íµµ ¾Ë·ÁÁ® ÀÖ´Ù. ¿ø·¡ ±×°ÍÀº RFC977ÀÇ µðÅ×ÀÏÀ» ¿¹ÁõÇϱâÀ§ÇØ Stan Barber¿Í Pill Lapsley¿¡ ÀÇÇØ ¸¸µé¾îÁø °ÍÀ¸·Î, °¡Àå ÃֽйöÀüÀº nntpd-1.5.11À̸ç, ÀÌ´Â ¾Æ·¡¿¡¼­ ¼³¸íÇÑ´Ù. ¼Ò½º¸¦ °¡Á®¿Í¼­ ÄÄÆÄÀÏÇϵ簡, Fred van KempenÀÇ net-std ¹ÙÀ̳ʸ® ÆÐŰÁö³»ÀÇ nntpd¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¿©·¯°¡Áö »çÀÌÆ®-ƯÁ¤ °ªÀÌ ÄÄÆÄÀÏµÇ¾î µé¾î°¡¾ßÇϱ⠶§¹®¿¡, ready-to-go(Áï½Ã »ç¿ëÇÒ ¼ö ÀÖ´Â) nntpd ¹ÙÀ̳ʸ®´Â Á¦°øµÇÁö ¾Ê´Â´Ù.

nntpd ÆÐŰÁö´Â inewsÀÇ ´ëüÇÏ´Â ÇϳªÀÇ ¼­¹ö¿Í, ´º½º pulling°ú pushing¿¡ ´ëÇÑ µÎ°³ÀÇ Å¬¶óÀÌ¾ðÆ®·Î °¢°¢ ÀÌ·ç¾îÁ® ÀÖ´Ù. ±×°ÍµéÀº ¾à°£ÀÇ º¯ÇüÀ» °¡ÇÑ´Ù¸é Bnews ȯ°æ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°í, C news¿¡¼­ ¿ª½Ã Àß µ¹¾Æ°£´Ù. ±×·¯³ª ¸¸¾à ´ç½ÅÀÇ ´º½º¼­¹ö·Î newsreader ¾ï¼¼½º¸¦ Á¦°øÇÏ´Â °Í ÀÌ»óÀ» À§ÇØ NNTP¸¦ »ç¿ëÇÒ °èȹÀ̶ó¸é, reference implementationÀº ´õÀÌ»ó ¼±ÅÃÀûÀÎ °ÍÀÌ ¾Æ´Ï´Ù. ±×·¯¹Ç·Î ¿ì¸®´Â Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº »ý·«Çϰí, nntpd ÆÐŰÁö ³»¿¡ Æ÷ÇÔµÈ NNTP µ¥¸ó¸¸À» ³íÇÒ °ÍÀÌ´Ù.

Rich Salz°¡ ¾´ "InterNet News", ª°Ô´Â INNÀ̶ó ºÒ¸®´Â ÆÐŰÁöµµ Á¸ÀçÇÑ´Ù. ±×°ÍÀº NNTP¿Í UUCP±â¹Ý ´º½º Àü¼ÛÀ» ¸ðµÎ Á¦°øÇϰí, Å« ±Ô¸ðÀÇ ´º½º hub¿¡ ´õ ÀûÇÕÇÏ´Ù. NNTPÀÇ ¿ëµµ·Î »ç¿ëÇÒ ¶§, ±×°ÍÀº nntpdº¸´Ù Àý´ëÀûÀ¸·Î ¶Ù¾î³ª´Ù. INNÀº ÇöÀç ¹öÀü inn-1.4secÀÌ´Ù. ¸®´ª½º ¸Ó½Å¿¡¼­ INNÀ» buildingÇÏ´Â kitÀÌ ÀÖÀ¸¸ç, sunsite.unc.eduÀÇ system/news µð·ºÅ丮¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. INNÀ» ¼Â¾÷ÇϰíÀÚ ÇÑ´Ù¸é, ¼Ò½º¿¡ µþ¸° ¹®¼­¿Í, news.software.b¿¡ Á¤±âÀûÀ¸·Î Æ÷½ºÆÃµÇ´Â INN FAQ¸¦ ÂüÁ¶Ç϶ó.


NNTP ¼­¹ö´Â nntpd¶ó ºÎ¸£°í, ´º½º ½Ã½ºÅÛ¿¡ ¿¹»óµÇ´Â ºÎÇÏ·®¿¡ µû¶ó µÎ°¡Áö ¹æ¹ýÀ¸·Î ÄÄÆÄÀÏ µÉ ¼ö ÀÖ´Ù. ¸î°¡Áö »çÀÌÆ®-ƯÁ¤ µðÆúÆ® °ªÀÌ ½ÇÇà ÆÄÀÏ ³»¿¡ hard-codeµÇ¾î¾ß Çϱ⠶§¹®¿¡, ÄÄÆÄÀÏµÈ ¹öÀüÀº Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ¸ðµç ¼³Á¤Àº common/conf.h³»¿¡ Á¤ÀÇµÈ ¸ÅÅ©·Î¸¦ ÅëÇØ ÀÌ·ç¾îÁø´Ù.

nntpd´Â ½Ã½ºÅÛ ºÎÆÃ½Ã¿¡ rc.inet2¿¡¼­ ±¸µ¿µÇ´Â standalone ¼­¹ö·Î, ¶Ç´Â indetd°¡ °ü¸®ÇÏ´Â µ¥¸óÀ¸·Î ¼³Á¤µÉ ¼ö ÀÖ´Ù. ÈÄÀÚÀÇ °æ¿ì, /etc/inet.conf³»¿¡ ´ÙÀ½ÀÇ ¿£Æ®¸®°¡ µé¾îÀÖ¾î¾ß ÇÑ´Ù.

     nntp     stream  tcp nowait       news     /usr/etc/in.nntpd    nntpd
	

¸¸¾à nntpd¸¦ standalone ¼­¹ö·Î ¼³Á¤ÇÏ¿´´Ù¸é, inetd.conf³»¿¡ À§ÀÇ ¶óÀÎÀÌ ÁÖ¼®Ã³¸® µÇ¾ú´ÂÁö È®ÀÎÇØ¾ß ÇÑ´Ù. ±× ¹Ý´ëÀÇ °æ¿ì, /etc/services ³»¿¡ ´ÙÀ½ÀÇ ¶óÀÎÀÌ ÀÖ´ÂÁö¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.

     nntp     119/tcp   readnews untp     # Network News Trasfer Protocol

incoming¾ÆÆ¼Å¬ µîÀ» Àӽ÷ΠÀúÀåÇϱâ À§ÇØ, nntpd´Â ´º½º ½ºÇ® ³»¿¡ .tmp µð·ºÅ丮¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ¸¸µé¾î ÁÖ¸éµÈ´Ù.

     # mkdir /usr/spool/news/.tmp
     # chown news.news /var/spool/news//.tmp


18.3 Restricting NNTP Access

NNTP ¸®¼Ò½º·ÎÀÇ ¾ï¼¼½º´Â /usr/lib/news ³»ÀÇ nntp-access ÆÄÀÏ¿¡¼­ ÁÖ°üµÈ´Ù. ±× ÆÄÀϳ»ÀÇ ¶óÀεéÀº ¿ÜºÎ È£½ºÆ®¿¡ ºÎ¿©µÈ ¾ï¼¼½º ±ÇÇÑ¿¡ ´ëÇØ Àû°í ÀÖ´Ù. °¢ ¶óÀÎÀº ´ÙÀ½ÀÇ Æ÷¸ËÀ¸·Î ÀÌ·ç¾îÁø´Ù.

site read|xfer|both|no post|no [!exceptgroups]

¸¸¾à ¾î¶² Ŭ¶óÀÌ¾ðÆ®°¡ NNTP Æ÷Æ®·Î ¿¬°áÇÑ´Ù¸é, nntpd´Â reverse lookupÀ» ÅëÇØ ±× È£½ºÆ®ÀÇ IP ÁÖ¼Ò¿¡¼­ FQDNÀ» ¾ò¾î´¢·Á ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ È£½ºÆ®³×ÀÓ°ú IP ÁÖ¼Ò´Â ±× ÆÄÀϳ» °¢ ¿£Æ®¸®ÀÇ site Çʵ忡 ´ëÇØ üũµÈ´Ù. ÀÏÄ¡ÇÏ´Â ºÎºÐÀº ºÎºÐÀû ¶Ç´Â Àü¹ÝÀûÀÎ °ÍÀÏ ¼ö ÀÖ´Ù. ¸¸¾à ¿£Æ®¸®°¡ Á¤È®È÷ ÀÏÄ¡ÇÑ´Ù¸é, ±×°ÍÀÌ Àû¿ëµÈ´Ù. ¸¸¾à ±×°ÍÀÌ ºÎºÐÀûÀ̶ó¸é, µÚ¿¡ ´õ ÀÏÄ¡ÇÏ´Â ¿£Æ®¸®°¡ ¾øÀ» °æ¿ì¿¡¸¸ Àû¿ëµÈ´Ù. site´Â ´ÙÀ½ÀÇ ¹æ¹ýÁß Çϳª·Î ÁöÁ¤µÉ ¼ö ÀÖ´Ù.

hostname À̰ÍÀº È£½ºÆ®ÀÇ FQDNÀÌ´Ù. À̰ÍÀÌ Å¬¶óÀ̾ðÆ®ÀÇ canonical È£½ºÆ®³×ÀÓ°ú ¿ÏÀüÈ÷ ÀÏÄ¡ÇÒ °æ¿ì, ±× ¿£Æ®¸®°¡ Àû¿ëµÇ°í, ÀÌÈÄÀÇ ¸ðµç ¿£Æ®¸®´Â ¹«½ÃµÈ´Ù.
IP address ÀÌ´Â dotted quad notationÀ¸·Î ÀûÈù IP ÁÖ¼ÒÀÌ´Ù. ¸¸¾à Ŭ¶óÀ̾ðÆ®ÀÇ IP ÁÖ¼Ò°¡ À̰Ͱú ÀÏÄ¡ÇÑ´Ù¸é, ±× ¿£Æ®¸®°¡ Àû¿ëµÇ°í ÀÌÈÄÀÇ ´Ù¸¥ ¸ðµç Ç׸ñÀº ¹«½ÃµÈ´Ù.
domain name À̰ÍÀº *.domainÀ¸·Î ÁöÁ¤µÈ µµ¸ÞÀÎ ³×ÀÓÀÌ´Ù. ¸¸¾à Ŭ¶óÀ̾ðÆ®ÀÇ È£½ºÆ®³×ÀÓÀÌ ±× µµ¸ÞÀÎ ³×ÀÓ°ú ÀÏÄ¡ÇÑ´Ù¸é, ±× ¿£Æ®¸®°¡ Àû¿ëµÈ´Ù.
network name À̰ÍÀº /etc/network ³»¿¡ ÁöÁ¤µÈ ³×Æ®¿÷ÀÇ ÁÖ¼ÒÀÌ´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ® IP ÁÖ¼ÒÀÇ ³×Æ®¿÷ ¹øÈ£°¡ ÀÌ¿Í ÀÏÄ¡ÇÑ´Ù¸é, ±× Ç׸ñÀÌ Àû¿ëµÈ´Ù.
default default´Â ¸ðµç Ŭ¶óÀÌ¾ðÆ®¸¦ °¡¸®Å²´Ù.

ÀϹÝÀûÀÎ °ÍÀ» ¸ÕÀú ÁöÁ¤ÇÏ¿©¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é º¸´Ù Á¤È®ÇÏ°Ô ÀÏÄ¡ÇÏ´Â ÂÊÀÌ ÀϹÝÀûÀÎ °ÍÀ» ¿À¹ö¶óÀ̵å Çϱ⠶§¹®ÀÌ´Ù.

µÎ¹øÂ°¿Í ¼¼¹øÂ° Çʵå´Â Ŭ¶óÀÌ¾ðÆ®¿¡ ºÎ¿©µÈ ¾ï¼¼½º ±ÇÇÑÀ» ¼³¸íÇϰí ÀÖ´Ù. µÎ¹øÂ°´Â pulling(read)¿¡ÀÇÇØ ´º½º¸¦ °¡Á®¿À´Âµ¥ ´ëÇÑ, ±×¸®°í pushing(xfer)¿¡ÀÇÇØ ´º½º¸¦ Àü¼ÛÇϴµ¥ ´ëÇÑ ±ÇÇÑÀ» ¿­°ÅÇÑ´Ù. both°ªÀº µÑ ¸ðµÎ¸¦ °¡´ÉÄÉÇϰí, no´Â ¾ï¼¼½º¸¦ ¸ðµÎ °ÅºÎÇÑ´Ù. ¼¼Åϰ Çʵå´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾ÆÆ¼Å¬À» Æ÷½ºÆÃÇÏ´Â, Áï (´º½º ¼ÒÇÁÆ®¿þ¾î¿¡ÀÇÇØ ¿Ï¼ºµÇ´Â) ºÒ¿ÏÀüÇÑ Çì´õ Á¤º¸¸¦ °¡Áø ¾ÆÆ¼Å¬À» ¹è´ÞÇϴµ¥ ´ëÇÑ ±ÇÇÑÀ» ºÎ¿©ÇÑ´Ù. ¸¸¾à ¼¼¹øÂ° Çʵ尡 no¸¦ Áö´Ñ´Ù¸é, ±× ¼¼¹øÂ° Çʵå´Â ¹«½ÃµÈ´Ù.

³×¹øÂ° Çʵå´Â ¼±ÅÃÀûÀÎ °ÍÀ¸·Î, Ŭ¶óÀ̾ðÆ®ÀÇ ¾ï¼¼½º°¡ °ÅºÎµÇ´Â ±×·ìµéÀÇ comma-seperated ¸ñ·ÏÀ» °¡Áö°í ÀÖ´Ù.

¾Æ·¡´Â nntp-access ÆÄÀÏ ¿¹Á¦ÀÌ´Ù.

     #
     # by default, anyone may transfer news, but not read or post
     default                 xfer            no
     #
     # public.vbrew.com offers public access via modem, we allow
     # them to read and post to any but the local.* groups
     public.vbrew.com        read            post    !local
     #
     # all other hosts at the brewery may read and post
     *.vbrew.com             read            post


18.4 NNTP Authorization

nntp-access ÆÄÀÏ ³»ÀÇ xfer³ª read°°Àº ¾ï¼¼½º Ç¥½Ã¸¦ ´ë¹®ÀÚ·Î ¾µ ¶§, nntpd´Â °³º° ÀÛ¾÷À» ÇÒ ¶§¸¶´Ù Ŭ¶óÀÌ¾ðÆ®¿¡¼­ÀÇ ÀÎÁõÀ» ÇÊ¿ä·ÎÇÑ´Ù. ¿¹¸¦ µé¾î, Xfer ¶Ç´Â XFERÀÇ ÆÛ¹Ì¼ÇÀ» ÁöÁ¤ÇÒ ¶§, Ŭ¶óÀÌ¾ðÆ®°¡ ÀÎÁõ°úÁ¤À» Åë°úÇÏÁö ¸øÇÑ´Ù¸é nntpd´Â Ŭ¶óÀÌ¾ðÆ®°¡ ´ç½Å »çÀÌÆ®·Î ¾ÆÆ¼Å¬À» Àü¼ÛÇÏÁö ¸øÇÏ°Ô ÇÑ´Ù.

ÀÎÁõ ÇÁ·Î½ÃÀú´Â AUTHINFO¶ó´Â »õ·Î¿î NNTP Ä¿¸Çµå¿¡ÀÇÇØ ¼öÇàµÈ´Ù. ÀÌ Ä¿¸Çµå¸¦ »ç¿ëÇÔÀ¸·Î½á, Ŭ¶óÀÌ¾ðÆ®´Â À¯Àú³×ÀÓ°ú ÆÐ½º¿öµå¸¦ NNTP ¼­¹ö¿¡°Ô Àü¼ÛÇÑ´Ù. nntpd´Â ±×°ÍµéÀ» /etc/passwd µ¥ÀÌÅͺ£À̽º¸¦ üũÇÔÀ¸·Î½á È®ÀÎÇϰí, À¯Àú°¡ nntp ±×·ì¿¡ ¼ÓÇØÀÖÀ½À» ÀÔÁõÇÑ´Ù.

NNTP ÀÎÁõÀÇ ÇöÀç implementationÀº ´ÜÁö ½ÃÇèÀûÀÎ °ÍÀ¸·Î, Æ÷ÆÃÀÌ ¿ëÀÌÇÏ°Ô µÇ¾îÀÖÁö ¾Ê´Ù. µû¶ó¼­ ±×°ÍÀº ÀϹÝÀûÀÎ ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º¿¡¼­³ª µ¿ÀÛÇÑ´Ù. shadow ÆÐ½º¿öµå´Â ÀνĵÇÁö ¾ÊÀ» °ÍÀÌ´Ù.


18.5 nntpd Interaction with C News

¾ÆÆ¼Å¬À» ¼ö½ÅÇÒ ¶§, nntpd´Â ±×°ÍÀ» ´º½º ¼­ºê ½Ã½ºÅÛ(subsystem)¿¡ Àü´ÞÇØ¾ß ÇÑ´Ù. ±× ¾ÆÆ¼Å¬ÀÌ IHAVE·Î ¼ö½ÅµÇ¾ú´ÂÁö, Ȥ½¼ POST Ä¿¸ÇµåÀÇ °á°ú·Î ¼ö½ÅµÇ¾ú´ÂÁö¿¡ µû¶ó, ±× ¾ÆÆ¼Å¬Àº °¢°¢ rnews ¶Ç´Â inews·Î ³Ñ°ÜÁø´Ù. rnews¸¦ È£ÃâÇÏ´Â ´ë½Å, incoming ¾ÆÆ¼Å¬µéÀ» batchingÇÏ¿© »ý±ä batchµéÀ» /var/spool/news/in.coming¿¡ ¿Å°Ü, ´ÙÀ½¹ø queue ½ÇÇà½Ã¿¡ relaynews°¡ ±×°ÍµéÀ» pick up°¡°Ô²û ÇÏ´Â ¹æ¹ýÀ¸·Î (ÄÄÆÄÀÏ ½Ã¿¡) ¼³Á¤ÇÒ ¼öµµ ÀÖ´Ù.

ihave/sendme ÇÁ·ÎÅäÄÝÀ» ÀÌ»ó¾øÀÌ ¼öÇàÇÏ·Á¸é, nntpd°¡ history ÆÄÀÏ¿¡ ¾ï¼¼½º ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. µû¶ó¼­, ÄÄÆÄÀÏ ½Ã¿¡ path°¡ ¿Ã¹Ù¸£°Ô ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ, C news¿Í nntpd°¡ ´ç½ÅÀÇ history ÆÄÀÏ Æ÷¸ËÀ» ÀνÄÇÏ´Â Áöµµ È®ÀÎÇØ ÁÖ¾î¾ß ÇÑ´Ù. C news´Â ±× ÆÄÀÏ¿¡ ¾ï¼¼½º ÇÒ¶§ dbm ÇØ½Ì ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ±×·¯³ª, ¾à°£ÀÇ Â÷À̰¡ ÀÖ¾î ¼­·Î ȣȯµÇÁö ¾Ê´Â dbm ¶óÀ̺귯¸® implementationÀÌ Á¸ÀçÇϱ⠶§¹®¿¡, ¸¸¾à C News°¡ ´ç½ÅÀÇ Ç¥ÁØ libc°¡ ¾Æ´Ñ ´Ù¸¥ dbm ¶óÀ̺귯¸®¿¡ ¸µÅ©µÇ¾î ÀÖ´Ù¸é, nntpd ¶ÇÇÑ ±× ¶óÀ̺귯¸®¿¡ ¸µÅ©ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

nntpd¿Í C News°¡ µ¥ÀÌÅͺ£À̽º Æ÷¸ËÀ» ÀνÄÇÏÁö ¸øÇÒ °æ¿ìÀÇ º¸ÆíÀûÀÎ Áõ»óÀº, ½Ã½ºÅÛ ·Î±×³»¿¡, nntpd°¡ ±× ÆÄÀÏÀ» ¿©´Âµ¥ ÀÌ»óÀÌ Àִٴ°¡, NNTP·Î Áߺ¹µÈ ¾ÆÆ¼Å¬ÀÌ ¼ö½ÅµÇ¾ú´Ù´Â ¿¡·¯¸Þ½ÃÁöÀÌ´Ù. À̸¦ Å×½ºÆ®ÇÏ´Â ÁÁÀº ¹æ¹ýÀº, ´ç½ÅÀÇ ½ºÇ® µð·ºÅ丮¿¡¼­ ¾ÆÆ¼Å¬À» Çϳª Áý¾î, nntp Æ÷Æ®·Î telnetÇÑ µÚ, ¾Æ·¡ÀÇ ¿¹Á¦Ã³·³ (´ç½ÅÀÇ ÀÔ·ÂÀº ÀÌ¿Í °°ÀÌ Ç¥½ÃµÈ´Ù) nntpd¿¡°Ô ÁÖ´Â °ÍÀÌ´Ù. ¹°·Ð, <msg@id>´Â ´ç½ÅÀÌ nntpd¿¡°Ô feedÇϰíÀÚÇÏ´Â ¾ÆÆ¼Å¬ÀÇ ¸Þ½ÃÁö ID·Î ´ëÃ¼ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

     $ telnet localhost nntp
     Trying 127.0.0.1...
     Connected to localhost
     Escape characters is '^]'.
     210 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at
     Sun Feb 6 16:02:32 1194 (no posting)
     IHAVE <msg@id>
     435 Got it.
     QUIT

À§ÀÇ °æ¿ì´Â nntpd°¡ ÀÌ»ó¾øÀÌ ¹ÝÀÀÇÔÀ» º¸¿©ÁØ´Ù. "Got it" ¸Þ½ÃÁö´Â ÀÌ ¾ÆÆ¼Å¬À» ÀÌ¹Ì °¡Áö°í ÀÖÀ½À» ³ªÅ¸³½´Ù. ¸¸¾à ±×´ë½Å "355 OK" ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÑ´Ù¸é, history ÆÄÀÏÀÇ °Ë»öÀÌ ¾î¶°ÇÑ ÀÌÀ¯·Î ½ÇÆÐÇÑ °ÍÀÌ´Ù. Ctrl+D¸¦ ´­·¯ conversationÀ» Á¾·áÇϰí, ½Ã½ºÅÛ ·Î±×¸¦ üũÇÔÀ¸·Î½á ¹«¾ùÀÌ À߸øµÈ °ÍÀÎÁö¸¦ üũÇÒ ¼ö ÀÖ´Ù. nntpd´Â ¸ðµç Á¾·ùÀÇ ¸Þ½ÃÁö¸¦ syslog µ¥¸ó¿¡ º¸³½´Ù. ȣȯµÇÁö ¾Ê´Â dbm ¶óÀ̺귯¸®°¡ ÀÌÀ¯¶ó¸é, º¸Åë ¸Þ½ÃÁö¿¡ dbminitÀÌ ½ÇÆÐÇß´Ù°í ¸í½ÃµÈ´Ù.

Other Chapters

1. Introduction to Networking
2. Issues of TCP/IP Networking
3. Configuring the Networking Hardware
4. Setting up the Serial Hardware
5. Configuring TCP/IP Networking
6. Name Service and Resolver Configuration
7. Serial Line IP
8. The Point-to-Point Protocol
9. Various Network Applications
10. The Network Information System
11. The Network File System
12. Managing Taylor UUCP
13. Electronic Mail
14. Getting smail Up and Running
15. Sendmail+IDA
16. Netnews
17. C News
18. A Description of NNTP
19. Newsreader Configuration

Appendix

A. A Null Printer Cable for PLIP
B. Sample smail Configuration Files
C. The GNU General Public License