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