|
|
|
|
|
À̸§ : È£¼® (211.¢½.74.31) |
|
³¯Â¥ : 2005-06-28 09:24:33 |
|
Á¦¸ñ : TCP-Wrapper »ç¿ëÇϱâ |
|
http://www.linux.co.kr/theme/pageview.html?ca=200204&pageid=53&aaa=183&casub=tcp_wrapper&st=TCP-Wrapper%20»ç¿ëÇϱâ
TCP Wrapper »ç¿ëÇϱâ > TCP-Wrapper »ç¿ëÇϱâ
TCP-Wrapper¶õ?
µ¥¸ó°ú Ŭ¶óÀ̾ðÆ® ¼³Á¤
options ¼³Á¤
TCP-Wrapper¶õ?
--------------------------------------------------------------------------------
½´ÆÛ µ¥¸ó(xinetd)¿¡ ¿µÇâÀ» ¹Þ´Â µ¥¸óµéÀº Tcp-Wrapper ÇÁ·Î±×·¥¿¡ ÀÇÇØ Á¢±ÙÀÌ Á¦¾î µÈ´Ù. Tcp-Wrapper¸¦ ÀÌ¿ëÇϸé ƯÁ¤ ¼ºñ½º¿¡ ´ëÇØ Á¢±ÙÀÚÀÇ È£½ºÆ®¸¦ üũÇؼ Á¢±ÙÀ» Çã¶ôÇÒÁö °áÁ¤À» ÇÒ ¼ö ÀÖ´Ù.
Tcp-Wrapper¿¡ ¿µÇâÀ» ¹Þ´Â ´ëÇ¥ÀûÀÎ µ¥¸óÀ¸·Î´Â telnet°ú ftp, pop3µîÀÌ ÀÖ´Ù. Tcp-Wrapper´Â /etc/hosts.allowÆÄÀÏÀ» ÅëÇؼ Á¢±Ù Çã°¡¸¦ ÇÏ°í /etc/hosts.denyÆÄÀÏÀ» ÅëÇؼ Á¢±Ù °ÅºÎ¸¦ °áÁ¤ÇÑ´Ù.
inetd¸¦ »ç¿ëÇÏ´ø ·¹µåÇò 7.0 ÀÌÀü ¹öÁ¯¿¡¼´Â tcpd¸¦ ÀÌ¿ëÇؼ Tcp-WrapperÀÇ ¿µÇâÀ» ¹Þ°Ô ¼³Á¤À» Çߴµ¥ ·¹µåÇò 7.0 ÀÌ»ó ¹öÁ¯¿¡¼´Â xinetd ÄÄÆÄÀϽÿ¡ libwrapÀ» Áö¿øÇÏ°Ô ¼³Á¤µÇ¾î ÀÖ¾î¼ tcpdº¸´Ù ´õ È¿·üÀûÀ¸·Î Tcp-Wrapper¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
±×·¡¼ /etc/xinetd.d/ µð·ºÅ丮¾ÈÀÇ ¼ºñ½º ÆÄÀÏ¿¡ tcpd ¼³Á¤À» ÇØ ÁÙ ÇÊ¿ä°¡ ¾ø´Ù. ´ÜÁö hosts.allow ÆÄÀÏ°ú hosts.deny ÆÄÀϸ¸ ¼³Á¤ÇØ ÁÖ¸é Tcp-Wrapper ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
[Server DemonÀÌ Tcp-Wrapper¿¡ ÀÇÇØ º¸È£¹Þ°í ÀÖÀ» ¶§ Á¢¼Ó °úÁ¤]
Client Á¢¼Ó ¿äû --> xinetd --> Tcp-Wrapper --> Demon ½ÇÇà
À§ÀÇ °úÁ¤¿¡¼ xinetd´Â ÇØ´ç DemonÀ¸·Î Á¢¼Ó ¿äûÀÌ ÀÖÀ» °æ¿ì ¹Ù·Î ÇØ´ç DemonÀ» ½ÇÇàÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Tcp-Wrapper¸¦ °ÅÄ¡°Ô µÇ¾î ÀÖ´Ù. ÀÌ·¸µí °¢ DemonµéÀº Tcp-WrapperÀÇ º¸È£¸·¿¡ °¨½ÎÁ® ÀÖ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. Tcp-WrapperÀ» Åë°úÇÒ ¼ö ÀÖ´Â Á¶°ÇÀº hosts.deny¿¡¼ °ÅºÎÇÏÁö ¾Ê°Å³ª hosts.allow¿¡¼ Á¢±ÙÀ» Çã¶ôÇØ¾ß µÈ´Ù.
±×·³ Áö±ÝºÎÅÍ hosts. ÆÄÀÏÀ» ¾î¶»°Ô ¼³Á¤ÇÏ´ÂÁö »ìÆì º¸µµ·Ï ÇÏÀÚ.
hosts.allow, hosts.deny ¼³Á¤Çü½Ä
Demon_List: Client_List: options(»ý·«°¡´É): options(»ý·«°¡´É)...
--> Demon_List, Client_List, options´Â :(ÄÝ·Ð)À¸·Î ±¸ºÐµÈ´Ù.
Å׸¶¸®´ª½º¸®½ºÆ® ´ÙÀ½
µ¥¸ó°ú Ŭ¶óÀ̾ðÆ® ¼³Á¤
--------------------------------------------------------------------------------
Demon_List ¼³Á¤
Tcp-Wrapper·Î Á¢±ÙÀ» Á¦¾îÇÒ ¼¹ö½º¸¦ ¼³Á¤ÇØ¾ß µÈ´Ù. ÁÖÀÇÇÒ °ÍÀº xinetd¿¡ ¼³Á¤µÈ ¼ºñ½º ³×ÀÓÀÌ ¾Æ´Ï¶ó ½ÇÁ¦ ±× ¼ºñ½º¸¦ °¡µ¿½ÃÅ°´Â µ¥¸ó ÇÁ·Î±×·¥À» Àû¾î Áà¾ß µÈ´Ù. (¿¹: telnetÀÌ ¾Æ´Ï¶ó in.telnetd¸¦ ¼³Á¤ÇØ¾ß µÈ´Ù)
Áï °¢ ¼ºñ½ºÀÇ xinetd ¼³Á¤ ÆÄÀÏ¿¡¼ "server" Áö½ÃÀÚ·Î ¼³Á¤ÇØÁØ ÇÁ·Î±×·¥À» Àû¾î ÁÖ¸é µÈ´Ù.
'ALL' À̶ó´Â ¿ÍÀϵå Ä«µå´Â Tcp-Wrapper¿¡ ¿µÇâÀ» ¹Þ´Â ¸ðµç µ¥¸óµéÀ» °¡¸®Å²´Ù.
[root@rootman /etc]# cat hosts.allow
in.telnetd: 203.241.205.95,203.241.205.91,203.241.204.122
ipop3d: 203.241.205.97,203.241.205.94
in.proftpd: 203.241.205.91,203.241.205.95,203.241.204.122
Client_List ¼³Á¤
Tcp-Wrapper·Î Á¢±ÙÀ» Á¦¾îÇÒ Å¬¶óÀ̾ðÆ®¸¦ Á¤ÀÇÇÏ´Â ºÎºÐÀÌ´Ù. Ŭ¶óÀ̾ðÆ® Á¤ÀÇ´Â µµ¸ÞÀÎ, IPÁÖ¼Ò, IP/MaskµîÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ°í ¿ÍÀϵå Ä«µå¿Í ÆÐÅÏÀ» Àû¿ë½Ãų¼öµµ ÀÖ´Ù.
µÎ°³ ÀÌ»óÀÇ È£½ºÆ®¸¦ ¼³Á¤ÇÒ °æ¿ì¿¡´Â ,(ÄÞ¸¶) ¶Ç´Â ºó°ø°£À¸·Î °¢ È£½ºÆ®¸¦ ±¸ºÐÇØÁÖ¸é µÈ´Ù. "ALL"Àº ¸ðµç È£½ºÆ®¸¦ ³ªÅ¸³»´Â ¿ÍÀϵå Ä«µåÀÌ´Ù.
[root@rootman /etc]# cat hosts.allow
# µµ¸ÞÀÎÀ¸·Î Client_List ÁöÁ¤
in.telnetd: .rootman.org
# ¾ÆÀÌÇÇ·Î Client_List ÁöÁ¤
ipop3d: 203.241.205.91,203.241.204.
# IP/Netmask·Î Client_List ÁöÁ¤
in.proftpd: 203.241.205.0/255.255.255.0 EXCEPT 203.241.205.91
::µµ¸ÞÀÎÀ» ÀÌ¿ëÇÑ Client_List ¼³Á¤
µµ¸ÞÀÎÀ¸·Î ¼³Á¤ÇÒ °æ¿ì¿¡´Â ¹Ýµå½Ã reverse mappingÀÌ µÇ´Â µµ¸ÞÀθ¸ ¼³Á¤ °¡´ÉÇÏ´Ù.
(¿¹: nslookup 203.241.205.97 --> dvc.dongeui.ac.kr)
ÆÐÅÏÀ» ÀÌ¿ëÇؼ ¸ðµç ¼ºê È£½ºÆ®¿¡ ´ëÇؼ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¼ºê È£½ºÆ®¿¡ ´ëÇÑ ÆÐÅÏ ¼³Á¤Àº .(Á¡)À¸·Î ÇÑ´Ù.
(¿¹: .rootman.org ---> rootman.org ÀÇ ¸ðµç ÇÏÀ§ µµ¸ÞÀο¡ ´ëÇؼ ¼³Á¤ÇÑ °ÍÀÌ´Ù)
::IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÑ Client_List ¼³Á¤
Á¦¾îÇÒ Å¬¶ó¾ðÆ®ÀÇ IPÁÖ¼Ò¸¦ ¼³Á¤ÇÑ´Ù. IPÁÖ¼Òµµ .(Á¡)À¸·Î ÆÐÅÏÀ» Àû¿ëÇÒ ¼ö ÀÖ´Ù. (¿¹: 203.241. --> IPÁÖ¼Ò°¡ 203.241.x.x ÀÎ ¸ðµç È£½ºÆ®)
::IP/NetMask¸¦ ÀÌ¿ëÇÑ Client_List ¼³Á¤
IPÁÖ¼Ò¿Í ³Ý¸¶½ºÅ©¸¦ ÀÌ¿ëÇؼ ´ë»ó Ŭ¶óÀ̾ðÆ®¸¦ ¼³Á¤ÇÒ ¼ö Àִµ¥ ÆÐÅÏÀ¸·Î ¶È°°ÀÌ Ã³¸®ÇÒ ¼ö Àֱ⠶§¹®¿¡ CŬ·¡½º¸¦ ´Ù½Ã ¼ºê³ÝÀ¸·Î ³ª´©¾î ¾²´Â È£½ºÆ®µéÀ» Á¦¾î ÇÒ ¶§¸¸ ÁÖ·Î »ç¿ëµÈ´Ù.(¿¹: 203.241.205.0/255.255.255.128 --> ¾ÆÀÌÇÇ ÁÖ¼Ò 203.241.205 ~ 126)
::EXCEPT
ÆÐÅÏ ¶Ç´Â IP/Netmask¸¦ ÀÌ¿ëÇؼ ´Ù¼öÀÇ È£½ºÆ®¸¦ ¼³Á¤ÇÒ ¶§ ƯÁ¤ È£½ºÆ®¸¦ Á¦¿Ü ½Ãų¼ö ÀÖ´Ù.
(¿¹: 203.241.205.0/255.255.255.0 EXCEPT 203.241.205.95 --> 203.241.205.95¸¦ Á¦¿ÜÇÑ C Ŭ·¡½º 203.241.205.x)
options ¼³Á¤
--------------------------------------------------------------------------------
options ¼³Á¤
²À ¼³Á¤ÇØ¾ß µÇ´Â ºÎºÐÀº ¾Æ´Ï´Ù. options ¼³Á¤À» ÀÌ¿ëÇؼ Çã°¡ µÇÁö ¾Ê´Â È£½ºÆ®¿¡ ´ëÇؼ °æ°í ¸Þ½ÃÁö¸¦ º¸³»´Âµî È£½ºÆ® ¿¬°áÀ» °ÅºÎÇϰųª Çã¶ôÇϱâ Àü¿¡ ƯÁ¤ ¸í·ÉÀ» ½ÇÇà ½Ãų¼ö ÀÖ´Ù. ½© ¸í·ÉÀ» ½ÇÇà ½ÃÅ°Áö À§ÇÑ ¹æ¹ýÀ¸·Î´Â twist¶Ç´Â spawnÀ» »ç¿ëÇÑ´Ù. ½© ¸í·ÉÀ» ¼³Á¤ÇÒ ¶§´Â ¹Ýµå½Ã Àý´ë °æ·Î·Î Á¤È®È÷ ¼³Á¤ÇØ ÁÖ¾î¾ß µÈ´Ù. ¶Ç 'banners'¶ó´Â ¼³Á¤À¸·Î client¿¡°Ô ÅؽºÆ® ¹®¼¸¦ º¸¿©ÁÙ ¼öµµ ÀÖ´Ù.
::twist shell_command
twist´Â ¸í·ÉÀÇ °á°ú¸¦ client¿¡°Ô Àü¼ÛÇϱ⠶§¹®¿¡ client¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³¾ ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù.
[root@rootman /etc]# cat hosts.deny
in.telnetd: 203.241.205.91: twist /bin/echo "Your host is not allowed"
¡Ø203.241.205.91¿¡¼ ÅÚ³Ý Á¢±ÙÀ» ½ÃµµÇÒ ¶§ Ŭ¶óÀ̾ðƮâ¿¡¼ ¹ú¾îÁö´Â »óȲ
[root@linux /root]# telnet rootman.org
Trying 203.241.205.97...
Connected to rootman.org (203.241.205.97).
Escape character is '^]'
Your host is not allowed
Connection closed by foreign host.
::spawn shell_command
twist¿Í °°ÀÌ ½© ¸í·ÉÀ» ½ÇÇà ½ÃÄÑ Áִµ¥ ¸í·ÉÀÇ °á°ú¸¦ client¿¡°Ô Àü¼ÛÇÏÁö ¾Ê´Â´Ù. .
[root@rootman /etc]# cat hosts.deny
in.telnetd: 203.241.205.91: spawn /bin/mail -s "%a is denied tcp-wrapper" rootman
À§ÀÇ ¼³Á¤Àº È£½ºÆ® 203.241.205.91¿¡¼ ÅÚ³Ý Á¢±ÙÀ» ÇÒ °æ¿ì Á¢±ÙÀ» °ÅºÎÇÏ¸é¼ »ç¿ëÀÚ rootman¿¡°Ô "%a is denied tcp-wrapper" ¶ó´Â Á¦¸ñÀ¸·Î ¸ÞÀÏÀ» ¹ß¼ÛÇÑ´Ù. %a´Â Tcp-WrapperÀÇ È¯°æ º¯¼ö·Î clientÀÇ IPÁÖ¼Ò¸¦ ³ªÅ¸³½´Ù.
¡ØÂü°í : shell_command¿¡¼ »ç¿ë°¡´ÉÇÑ È¯°æ º¯¼ö
%a : Ŭ¶óÀ̾ðÆ® IP ÁÖ¼Ò
%c : Ŭ¶óÀ̾ðÆ® Á¤º¸(User@Host, User@Address, È£½ºÆ® ³×ÀÓ, ¶Ç´Â IP ÁÖ¼Ò)
%d : µ¥¸ó ÇÁ·Î¼¼½º À̸§(¿¹: in.telnetd, ftp, pop3)
%h : Ŭ¶óÀ̾ðÆ® È£½ºÆ® ³×ÀÓ ¶Ç´Â IPÁÖ¼Ò
%n : Ŭ¶óÀ̾ðÆ® È£½ºÆ® ³×ÀÓ(or"unknown" or"paranoid")
%p : µ¥¸ó ÇÁ·Î¼¼½º ¾ÆÀ̵ð(PID)
%s : ¼¹ö Á¤º¸(demon@host, demon@address, µ¥¸ó À̸§)
%u : Ŭ¶óÀ̾ðÆ® »ç¿ëÀÚ À̸§(or "unknown")
%% : ÇϳªÀÇ '%'¹®ÀÚ
::banners
banners·Î ƯÁ¤ µð·ºÅ丮¸¦ ÁöÁ¤ÇÏ¸é µð·ºÅ丮 ³»ÀÇ ¹®¼¸¦ client·Î Ãâ·Â ½ÃÄÑ ÁØ´Ù. ¹®¼ ÆÄÀϸíÀº Demon_List¿Í µ¿ÀÏÇØ¾ß µÈ´Ù. ¿¹¸¦ µé¸é Á¢¼Ó È£½ºÆ®°¡ in.telnetd¿¡ ´ëÇؼ ¼³Á¤ÇÑ Client_List¿Í ÀÏÄ¡ÇÒ °æ¿ì ÁöÁ¤ÇÑ µð·ºÅ丮 ³»ÀÇ in.telnetd ¶ó´Â ÆÄÀÏÀ» client·Î Ãâ·ÂÇÑ´Ù.
[root@rootman /etc]# cat hosts.deny
in.telnetd: 203.241.205.91: banners /etc/txts
---> /etc/txts ¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í ±× ¾È¿¡ in.telnetd¶ó´Â ÅؽºÆ® ÆÄÀÏÀ» ¸¸µé¾î¾ß µÈ´Ù.
| |
|
|
|
|