ÀϹÝÀ¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ®¸¦ »ç¿ëÇÏ·Á¸é | ÀÛ¼ºÀÏ : 2010/11/11 20:54 |
Á¶È¸¼ö : 19344 |
Á¦ ¸ñ : ÀϹÝÀ¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ®¸¦ »ç¿ëÇÏ·Á¸é ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ ) ÀÛ¼ºÀÏ : 2010.10.26(È) ¸®´ª½º/À¯´Ð½º ±âº» ȯ°æ¿¡¼´Â 1024 ÀÌÇÏ Æ÷Æ®(privileged ports)´Â root¸¸ »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. OSº°·Î °¢°¢ ´ÙÀ½ ±â´ÉÀ» »ç¿ëÇϸé ÀϹÝÀ¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. 1) FreeBSD : MAC ÀÎÁõ ¸ÅÄ¿´ÏÁò (FreeBSD 5.x ÀÌ»ó) 2) Linux : capabilities ¼³Á¤ (File capabilities¸¦ ¼³Á¤Çϱâ À§Çؼ´Â Ä¿³Î 2.6.24 ÀÌ»ó) 3) Solaris : RBAC·Î ±ÇÇÑ ºÎ¿© (Solaris 8 ÀÌ»ó) 1. FreeBSD¿¡¼ MAC ¸ðµâ ·Îµù FreeBSD¿¡¼´Â Ä¿³ÎÀÇ MAC(Mandatory Access Control) ÀÎÁõ ¸ÅÄ¿´ÏÁòÀ» »ç¿ëÇϸé ÀϹÝÀ¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ® bind¸¦ ½±°Ô ó¸®ÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú MAC portacl ¸ðµâÀ» ·ÎµùÇÑ´Ù.
ºÎÆö§ ÀÚµ¿À¸·Î ·ÎµùµÇµµ·Ï /boot/loader.conf¿¡ mac_portacl_load="YES" ¸¦ Ãß°¡ÇÑ´Ù. ¸ðµâ ·Îµù½Ã syslog¿¡´Â ´ÙÀ½°ú °°Àº ·Î±×°¡ ³²´Â´Ù.
¸¸¾à ¸ðµâ ·Îµù½Ã ´ÙÀ½°ú °°Àº ¿¡·¯°¡ »ý°å´Ù¸é Ä¿³Î¿¡¼ MAC ¸ðµâÀ» Áö¿øÇÏÁö ¾Ê´Â °æ¿ìÀÌ´Ù.
ÀÌ ¶§ /var/log/messages ¿¡´Â ´ÙÀ½°ú °°ÀÌ ·Î±×°¡ ³²´Â´Ù.
Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ ´ÙÀ½À» Ãß°¡ÇÏ°í ÀçÄÄÆÄÀÏÇÑ´Ù. FreeBSD 8.xºÎÅÍ´Â ±âº» Æ÷ÇԵǾî ÀÖ´Ù.
sysctl·Î °ü·Ã ¼Ó¼ºµéÀ» »ìÆ캸ÀÚ.
2. FreeBSD¿¡¼ ÀϹÝÀ¯Àú°¡ 1024ÀÌ bindÇÏ´Â ¿¹ 999Æ÷Æ®¸¦ uid 1005°¡ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï Çغ¸ÀÚ.
±×·±µ¥, ±ÇÇÑÀÌ ¾ø´Ù°í ÇÑ´Ù. ±×·¸´Ù. ±âÁ¸ÀÇ À¯´Ð½º bind Á¦ÇÑ ¼³Á¤À» ÇØÁ¦ÇØ¾ß ÇÑ´Ù. reserved port ÃÖ´ëÄ¡¸¦ 0À¸·Î ¹Ù²Ù°Å³ª 998(999Æ÷Æ®¸¦ ÀÏ¹Ý À¯Àú°¡ ¿ÀÇÂÇÒ °ÍÀ̹ǷΠ998ÀÓ)·Î ¹Ù²Û´Ù. 998·Î ¼³Á¤Çß´Ù¸é, 998±îÁö´Â ±âÁ¸ÀÇ À¯´Ð½º bind Á¦ÇÑ ¼³Á¤À» µû¸£°Ú´Ù´Â °ÍÀÌ´Ù.
¸¸¾à UID 1005°¡ 999Æ÷Æ®¿Í 1000Æ÷Æ®¸¦ ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù.
3. Linux¿¡¼ setcap ¸í·ÉÀ¸·Î capabilities ¼³Á¤ ¸®´ª½ºÀÇ capabilities ¼³Á¤À» ÅëÇؼ ÀÏ¹Ý À¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ® »ç¿ëÀÌ °¡´ÉÇÏ´Ù. capabilities¶õ ¹«¾ùÀϱî? ÀüÅëÀûÀÎ À¯´Ð½º/¸®´ª½º¿¡¼´Â root°¡ ¸ðµç ±ÇÇÑÀ» °¡Áø´Ù. ÀϹÝÀ¯Àú°¡ rootÀÇ ÀϺΠ±ÇÇÑÀ» °®±â À§Çؼ´Â SetUID/SetGID³ª sudo µî ±âÃÊÀûÀÎ ¹æ¹ýÀ¸·Î ±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö ¹Û¿¡ ¾ø¾ú´Ù. ÇÏÁö¸¸ capabilities´Â rootÀÇ ±ÇÇÑÀ» ¼¼ºÐÈ(Ä¿³Î ¸ðµâ load/remove, ÆÄÀÏ ¼ÒÀ¯ÀÚ/¼ÒÀ¯±×·ì º¯°æ, kill±ÇÇÑ, ping Çã¿ë(ICMPÇã¿ë), ¸®ºÎÆà µî)ÇÏ¿©, ÀÏ¹Ý À¯Àúµµ rootÀÇ ´Ù¾çÇÑ ±ÇÇÑÀ» °®µµ·Ï ¸¸µç º¸¾È ¸ðµ¨ÀÌ´Ù. ÀÏ¹Ý À¯Àú¿¡°Ô ÆÐŶ ¸ð´ÏÅ͸µÅøÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÒ ¼ö ÀÖ´Ù. PAM ¸ðµâÀ» »ç¿ëÇϸé user¸¦ ÁöÁ¤ÇÏ¿© ±ÇÇÑ ºÎ¿©µµ ÇÒ ¼ö ÀÖ´Ù. capabilitiesÀº Ä¿³Î¿¡¼ Áö¿øÇØ¾ß Çϸç, File capabilities¸¦ À§Çؼ´Â 2.6.24ÀÌ»óÀ» »ç¿ëÇÏ¸é µÈ´Ù. ¼³Á¤Àº setcap, getcap ¸í·ÉÀ» »ç¿ëÇÑ´Ù. capabilities ¸ÇÆäÀÌÁö¸¦ º¸¸é, CAP_NET_BIND_SERVICEÀÌ 1024ÀÌÇÏ Æ÷Æ®(privileged ports)¿¡ ´ëÇØ ±ÇÇÑ ºÎ¿© ¿ªÇÒÀ» ÇÑ´Ù.
1) capabilities ¼³Á¤À» À§ÇØ libcap2°¡ ÆÐÅ°Áö°¡ ÇÊ¿äÇÏ´Ù. ¨ç µ¥ºñ¾È/¿ìºÐÅõ´Â libcap2-bin ÆÐÅ°Áö(setcap, getcap µîÀÇ ¸í·ÉÀ» °®°í ÀÖÀ½)¸¦ ¼³Ä¡ÇÑ´Ù. ¨è CentOS´Â http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/ ¿¡¼ ¼Ò½º¸¦ ¹Þ´Â´Ù. ÀÌ ¼Ò½º ÄÄÆÄÀÏÀ» À§Çؼ´Â libattr-devel ÆÐÅ°Áö°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. 2) setcap¸í·ÉÀ¸·Î CAP_NET_BIND_SERVICE¸¦ 1024ÀÌÇÏ Æ÷Æ®¸¦ »ç¿ëÇÒ ÆÄÀÏ¸í¿¡ ¼³Á¤À» ÇØÁÖ¸é µÈ´Ù. ½Éº¼¸¯ ¸µÅ© ÆÄÀÏÀº ÁöÁ¤ÇÒ ¼ö°¡ ¾ø´Ù. 3) ¼³Á¤À» È®ÀÎÇÏ·Á¸é getcapÀ», ±×¸®°í ¼³Á¤À» ´Ù½Ã »©·Á¸é -r ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù.
capabilities À̸§ÀÎ cap_net_bind_serviceÀº ´ë¼Ò¹®ÀÚ ±¸º°ÀÌ ¾øÁö¸¸, set ÇØ´çÇÏ´Â ep´Â ¼Ò¹®ÀÚ¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¬»êÀÚ´Â +, -, = 3°¡Áö·Î, chmodÀÇ ¿¬»êÀÚ¿Í µ¿ÀÏÇÑ Àǹ̸¦ °®´Â´Ù. °¢°¢ Ãß°¡(+), »èÁ¦(-), ÁöÁ¤ÇÑ ±ÇÇÑÀ¸·Î µ¿ÀÏ(=)ÇÏ°Ô º¯°æÇÑ´Ù. file capabilities set¿¡´Â ´ÙÀ½ 3°¡Áö°¡ ÀÖ´Ù. - e : effective -> È¿·ÂºÎ¿© - p : Permitted -> Çã¿ë - i : Inheritable -> exec ÇÒ ¶§ ±ÇÇÑ »ó¼Ó ¿©ºÎ capabilities manpage¿¡¼ °¢ set¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀÖ´Ù. ÆÄÀÏ¿¡ cap_net_bind_service ±ÇÇÑÀ» ºÎ¿©ÇÏ·Á¸é ep ¶Ç´Â eip¸¦ ¼ÂÆÃÇÏ¸é µÈ´Ù´Â °Í¸¸ ¾Ë°í ÀÖÀ¸¸é µÈ´Ù. ´ÙÀ½Àº 999Æ÷Æ®¸¦ ¿ÀÇÂÇÑ ¿¹ÀÌ´Ù. ÀÏ¹Ý À¯Àú·Î ½ÇÇàµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
4. Linux¿¡¼ capabilities Á» ´õ ¾Ë±â 1) PAM ¸ðµâ pam_cap.so PAM ¸ðµâµµ Á¦°øÇϹǷÎ, ·Î±äÀ» Çϰųª su ÀÌ¿ë½Ã 'À¯Àúº°'·Î ´Ù¸¥ ±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö ÀÖ´Ù. /etc/security/capability.conf ¿¡ capabilities¸¦ ¼³Á¤ÇÑ´Ù. CentOS¿¡¼ libcap2 ¼Ò½º¸¦ °¡Á®´Ù PAM ¸ðµâÀ» ¼³Ä¡ÇÒ °æ¿ì ¸ÕÀú pam-devel ÆÐÅ°Áö°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. 2) ÇÁ·Î¼¼½ºÀÇ capabilities set »óÅ ȮÀÎ capabilitiesÀÇ Effective/Inheritable/Permitted set(ÁýÇÕ)Àº °¢°¢ 32bit·Î ÀÌ·ïÁ® ÀÖ´Ù. ±×¸®°í, °¢ bitº°·Î ¾î¶² ±ÇÇÑ(ÀÚ°Ý)À» °®´ÂÁö ÁöÁ¤µÇ¾î ÀÖ´Ù. CAP_NET_BIND_SERVICE Àº 11¹ø° bit(0100 0000 0000 => hex 0400)¿¡ ÇØ´çÇÑ´Ù. ³ª¸ÓÁö ±ÇÇѵéÀÌ ¸î ¹ø° bitÀÎÁö´Â /usr/include/linux/capability.h¿¡ ÀÚ¼¼È÷ ³ª¿ÍÀÖÀ¸´Ï »ý·«ÇÑ´Ù. ÇÁ·Î¼¼½ºÀÇ capabilities set »óÅ ȮÀÎÇغ¸ÀÚ. setcapÀ¸·Î ¼³Á¤ÇصРÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. ±×¸®°í ÇØ´ç ÇÁ·Î¼¼½ºÀÇ PID¸¦ È®ÀÎÇÑ´Ù. cat /proc/
5. Solaris¿¡¼ RBAC·Î ±ÇÇÑ ºÎ¿© ÀüÅëÀûÀÎ À¯´Ð½º ½Ã½ºÅÛ¿¡¼´Â root°¡ ¸ðµç ±ÇÇÑÀ» °®´Â´Ù. ±×·¯³ª ÀÌ rootÀÇ ±ÇÇÑ ÀϺθ¦ ´Ù¸¥ À¯Àú¿¡°Ô ÇÒ´çÇÏ´Â °ÍÀÌ ½±Áö ¾Ê¾Ò´Ù. RBAC(Role Based Access Control, ·Ñ ±â¹Ý Á¢±Ù Á¦¾î)´Â root°¡ °®´Â ±ÇÇÑ Áß ÀϺθ¦ ¹Àº ÈÄ, ±× ±ÇÇÑ ¹À½À» À¯Àú¿¡°Ô ºÎ¿©ÇÒ ¼ö°¡ ÀÖ´Â º¸¾È¸ðµ¨ÀÌ´Ù. ±ÇÇÑÀÇ ¹À½À» '·Ñ(Role)'À̶ó´Â ºÎ¸¥´Ù. ¨ç ·ÑÀ» »ý¼º(roleadd)ÇÏ°í, (roleadd) ¨è ±× ·ÑÀÌ ¾î¶² ±ÇÇÑÀ» °®´Â ·ÑÀÎÁö¸¦ Á¤ÀǸ¦ ÇÑ´Ù. (roleadd, rolemod) ¨é ±×¸®°í, ±× ·Ñ¿¡ ¼ÓÇÏ´Â À¯Àú¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù. (usermod) ÀÌ·± ·Ñ ±â¹Ý Á¢±Ù Á¦¾î´Â ¾÷¹« ¿ªÇÒº°·Î ±ÇÇÑ ¹À½À» ¸¸µé¾î À¯Àú¿¡°Ô ±ÇÇÑÀ» ºÐ»êÇÒ ¼ö°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î, ÆÄÀϽýºÅÛ mount¸¦ ÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» 'disk'¶ó´Â ·Ñ¸í(·Ñ¸íÀº IDó·³ ÀÓÀÇ·Î ¸¸µé¸é µÊ)À¸·Î ¸¸µé¾ú´Ù°í ÇÏÀÚ. ±×¸®°í ÀÌ ·Ñ¿¡ À¯Àú¸¦ ÇÒ´çÇϸé ÇØ´ç À¯Àú´Â mount ±ÇÇÑÀ» ºÎ¿©¹Þ°Ô µÈ´Ù. ÀÚ¼¼ÇÑ ±ÇÇÑ ¸ñ·ÏÀº privileges man page ¶Ç´Â /etc/security/priv_names¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº coffeenixÀ¯Àú°¡ 1024ÀÌÇÏ Æ÷Æ®¸¦ ¿¼ö ÀÖ´Â ±ÇÇÑ(±ÇÇѸí : PRIV_NET_PRIVADDR)À» °®´Â ¿¹ÀÌ´Ù. ·Ñ »ý¼º ¹æ¹ýÀ¸·Î ½ÃµµÇغÃÁö¸¸ ½±°Ô µÇÁö ¾Ê¾Æ¼, ·Ñ »ý¼º¾øÀÌ À¯Àú¿¡°Ô Á÷Á¢ ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â ¹æ¹ýÀ¸·Î 󸮸¦ Çß´Ù. ¼³Á¤ ÈÄ Àç·Î±äÇÏ¸é ±ÇÇÑÀ» °®´Â´Ù.
/etc/user_attr¿¡¼ ´ÙÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
6. Âü°íÀÚ·á * FreeBSD Handbook - 16.10 The MAC portacl Module http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mac-portacl.html * Is there a way for non-root processes to bind to ¡°privileged¡± ports (<1024) on Linux? http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-linux * Linux : capabilities man page http://www.kernel.org/doc/man-pages/online/pages/man7/capabilities.7.html * Linux : setcap man page http://manpages.ubuntu.com/manpages/lucid/man8/setcap.8.html * Linux Security Capabilities http://fpmurphy.blogspot.com/2009/05/linux-security-capabilities.html * [Linux] POSIX capability (ÇѱÛ) http://studyfoss.egloos.com/5338802 * Solaris 10 Non-Root User...Port 80 http://blogs.sun.com/tls/entry/solaris_10_non_root_user * Custom Roles Using RBAC in the Solaris OS http://www.sun.com/bigadmin/content/submitted/custom_roles_rbac.jsp |
Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=1716 |