¿¹Àü¿¡ tip&tech ¿¡ ¿Ã¸° ±Û Áß¿¡ Á¦ ¼¹ö¿¡ ¿Ã·Á³õÀº ÆÄÀÏ·Î
¸µÅ©°É¾î³õÀº °ÍÀÌ ¸î°Ç ÀÖ¾ú´Âµ¥¿ä. Á¢¼ÓÀÌ ¾ÈµÈ´Ù°í ¸ÞÀÏ ÁֽŠºÐµéÀÌ ¸îºÐ °è½Ê´Ï´Ù.
Á¦ ¼¹ö°¡ ÇØÅ·´çÇØ¼ À¥¼ºñ½º¸¦ ³»·Á³õÀº »óÅÂÀÔ´Ï´Ù. ¤Ð.¤Ð
À̳ðÀú³ð ¸¹À̵µ ¿Í¼ ÇÑ°Í °°Àºµ¥ ¿ÏÀü ´Ù½Ã±î´Â ¼ö¹Û¿¡ ¾ø´Ù´Â »ý°¢ÀÔ´Ï´Ù.
Á¦ÀÏ Â¥Áõ³ª´Â ³ÑÀÌ Á¦·Îº¸µå ÇêÁ¡À» Ÿ°í µé¾î¿Í¼ /tmp ¿¡ perl ½ºÅ©¸³Æ® ¿Ã·Á³õ°í
½ºÆÔ¸ÞÀÏ º¸³»´Â ºê¶óÁú ³ÑµéÀÔ´Ï´Ù.(ȸ»ç ¼¹öµµ Çѹø ´çÇß½À´Ï´Ù. ¤Ð.¤Ð)
±Ùµ¥ ȸ»ç¿¡ ¸ÅÀÎ ¸öÀÌ´Ùº¸´Ï ½Ã°£µµ ¿©ÀÇÄ¡ ¾Ê°í,
Çѹø ÀÌ·¸°Ô ´çÇÏ°í º¸´Ï ´ëÃæ ÇØ¼± ¾ÈµÇ°Ú´Ù´Â »ý°¢¿¡
º¸´Ù ¾ÈÀüÇÑ ¼¹ö ±¸¼º¿¡ ´ëÇØ¼ »ý.°¢.¸¸ Çϰí ÀÖ´Â ÁßÀÔ´Ï´Ù.
(³ªÁß¿¡ ±¸ÇöÀÌ ¿Ï·áµÇ¸é ½ÇÀü ¼¼ÆÃµµ Á¤¸®Çؼ ¿Ã¸®µµ·Ï ÇϰڽÀ´Ï´Ù.)
ÁÖ·Î chroot ¿¡ ±â¹ÝÇÑ ¹æ¹ýÀ» »ý°¢ÁßÀÔ´Ï´Ù.(¿¹Àü¿¡µµ Çѹø ÇØº»ÀûÀÌ ÀÖ´Ùº¸´Ï)
¼¼·ÃµÈ ¹æ¹ýÀº ¾Æ´ÏÁö¸¸ unix ¿ª»ç»ó ¿À·¨µ¿¾È »ç¿ëµÇ¿Â ¹æ¹ýÀ̰í
»ó´çÇÑ È¿°ú¸¦ °ÅµÑ¼ö ÀÖ´Â ¹æ¹ýÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
Ãʱ⠼³Á¤½Ã¿¡ ³ë°¡´Ù¼º ÀÛ¾÷Àº ¸¹Áö¸¸, ¾à°£ÀÇ °³³ä¸¸ Àâ°í ÀÖÀ¸¸é µµÀüÇØ º¼ ¸¸Çϱ¸¿ä.
¶Ç ¼³Á¤ÇØ °¡´Â °úÁ¤¿¡¼ unix µ¿ÀÛ ¹æ½Ä¿¡ ´ëÇØ¼ ¸¹Àº °ÍÀ» ¹è¿ì°Ô µË´Ï´Ù.
¾î¶² ÆÄÀÏÀÌ ¾î¶²µ¥ ¾²ÀÌ´Â °ÍÀΰ¡ ÇÏ´Â °ÍÀ» ¸»ÀÌÁÒ..
selinux µµ °ü½ÉÀ» °¡Áö°í ºÃ´Âµ¥ ¾ÆÁ÷ ³Ê¹« »õ·Î¿î ³ðÀ̶ó ÀÚ·áµµ º°·Î ¾ø°í..
º¸¾È ¸ðµ¨ µî °³³ä ÀÚüºÎÅÍ »ó´çÈ÷ º¹ÀâÇØ¼ ½ÇÀü¿¡ Àû¿ëÇϱⰡ ½±Áö ¾Ê³×¿ä.
Ãß°¡/µýÁö µî ÁÁÀº ÀǰßÀÌ ÀÖÀ¸¸é ¸®Çô޾ÆÁÖ½Ã¸é °¨»ç°Ú½À´Ï´Ù.
¾Æ·¡ ³»¿ëÀ» ÀÌÇØÇϽ÷Á¸é chroot °³³ä°ú jail ±¸¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÌÇØ°¡
ÀÖ¾î¾ß µÉ°ÍÀÔ´Ï´Ù. Âü°í ¸µÅ©·Î ¸¶¶¥ÇÑ°Ô º°·Î ¾ø³×¿ä.. Á˼Û
1. ½Ã½ºÅÛ °ø°Ý ½Ã³ª¸®¿À ¹× ´ëÃ¥
1.1. °ø°Ý ´Ü°è
1) À¥ ½ºÅ©¸³Æ®, ¼ºñ½º µ¥¸óÀÇ ¹ö±×¸¦ ÀÌ¿ë °ø°Ý
2) ÇØÅ· Åø ¾÷·Îµå/¼³Ä¡
3) ÇØÅ· ÅøÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ ±ÇÇÑ Ãëµæ
4) ¹éµµ¾î ¼³Ä¡(¼û°ÜÁø Process, °èÁ¤ »ý¼º µî)
5) ¹«¾ð°¡ °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷À» ¼öÇà
6) Áõ°ÅÀθê(·Î±× ÆÄÀÏ »èÁ¦)
¡Ø ¿äÁò °¡Àå ÈçÇÑ °ø°Ý/ħÅõ °æ·ÎÀÔ´Ï´Ù.
¡Ø '¹«¾ð°¡ °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷'Àº ½Ã½ºÅÛ/µ¥ÀÌÅÍ ÆÄ±«,
´Ù¸¥ ¼¹ö ÇØÅ·(Áß°è°ÅÁ¡), ºñ¹Ðµ¥ÀÌÅÍ À¯Ãâ, ½ºÆÔ¸ÞÀÏ ¹ß¼Û µîµî
2.2. ´Ü°èº° ¹æ¾î ´ëÃ¥
1) À¥ ½ºÅ©¸³Æ®, ¼ºñ½º µ¥¸óÀÇ ¹ö±×¸¦ ÀÌ¿ë °ø°Ý
´ëÃ¥: ÃÖ´ëÇÑ ÁÖÀǸ¦ ±â¿ïÀÌ°í ºÎÁö·±ÇØ¾ß ÇÑ´Ù´Â ¸»¹Û¿¡´Â...
- À¥»çÀÌÆ® °³¹ß ½ÃÁ¡ºÎÅÍ ½ºÅ©¸³Æ®(ƯÈ÷ PHP) º¸¾È °ËÅä öÀú
- º¸¾È ´º½º¸¦ È®ÀÎÇÏ°í ½Ã½ºÅÛ ¾÷µ¥ÀÌÆ® öÀúÈ÷ °ü¸®
- ¿ÜºÎ¿¡¼ Á¢¼ÓÀÌ ²À ÇÊ¿ä ¾ø´Â ¼ºñ½º´Â Á×À̰ųª ¹æÈº® µîÀ» ÀÌ¿ëÇÏ¿© Â÷´ÜÇÑ´Ù.
2) ÇØÅ· Åø ¾÷·Îµå/¼³Ä¡
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- jail ¾È¿¡¼´Â °³¹ß µµ±¸(perl, ÄÄÆÄÀÏ·¯)¸¦ »ç¿ë ¸øÇÏ°Ô ÇÔ
¡Ø ´ëºÎºÐÀÇ ÇØÅ· ÅøÀÌ C ¶Ç´Â perl·Î µÇ¾îÀÖÀ½.
perl °ú C¾ð¾î(gcc)´Â ÀÏ´Ü ½Ã½ºÅÛ¿¡ µé¾î¿À±â¸¸ ÇÏ¸é ¹Ù·Î ÇØÄ¿µéÀÇ ¹«±â°¡ µÇ¹Ç·Î
¼³Ä¡¿©ºÎ¸¦ ½ÅÁßÇÏ°Ô °í·ÁÇØ¾ß ÇÑ´Ù.
¡Ø À¥¼ºñ½º¿ë jail Àº ´ëºÎºÐ php, java µîÀÌ ÀÖ¾î¾ß Çϰí,
¸ÞÀÏ ¼ºñ½º¿ë jail Àº perl ÀÌ ÇÊ¿äÇÏ´Ù.(´ëºÎºÐÀÇ ¸ÞÀÏ °ü·Ã ÅøµéÀÌ perl À» ÇÊ¿ä·Î Çϱ⠶§¹®¿¡)
ÀÌó·³ ´ëºÎºÐ ÇÁ·Î±×·¥ ¾ð¾î ¼³Ä¡°¡ ºÒ°¡ÇÇÇÏÁö¸¸ ÃÖ´ëÇÑ Á¦°ÅÇϵµ·Ï ³ë·ÂÇÒ Çʿ䰡 ÀÖ´Ù.
¿¹¸¦µé¸é cli¿ë php ¹ÙÀ̳ʸ®´Â jail ¾È¿¡´Â ¼³Ä¡ÇÏÁö ¾Ê°í
jail ¹Û¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖµµ·ÏÇϸé php ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ·Á°í ÇØµµ
À¥¼¹ö¸¦ ÅëÇØ¾ß ÇϹǷΠnobody ±ÇÇÑ ¹Û¿¡ °¡Áú ¼ö ¾ø´Ù.
3) ÇØÅ· ÅøÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ ±ÇÇÑ Ãëµæ
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ½Ã½ºÅÛ ±ÇÇÑÀ» ÃëµæÇÏ´õ¶óµµ ÇØ´ç jail ¾È¿¡ ¹¾î³õÀ» ¼ö ÀÖ´Ù.
´Ù¸¥ jail À̳ª Àüü ÆÄÀϽýºÅÛ¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Ù.
4) ¹éµµ¾î ¼³Ä¡(¼û°ÜÁø Process, °èÁ¤ »ý¼º µî)
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ÇÁ·Î¼¼½º¸¦ ¼û±ä´Ù´Â °ÍÀº °ü¸®ÀÚ°¡ ps ¸í·ÉÀ¸·Î È®ÀÎÇÒ ¶§ Ç¥½ÃµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
ÀÌ·¸°Ô ÇϱâÀ§Çؼ´Â ps ÇÁ·Î±×·¥À» ÇØÅ· ÇÁ·Î¼¼½º¸¦ ¼û±âµµ·Ï ¼öÁ¤µÈ ¹öÀüÀ¸·Î ±³Ã¼ÇØ¾ß ÇÑ´Ù.
(±×¸®°í netstat -a ¸¦ ÇßÀ» ¶§ LISTEN Æ÷Æ®°¡ ³ª¿ÀÁö ¾Êµµ·Ï netstat ¸í·ÉÀ» ±³Ã¼ÇØ¾ß ÇÑ´Ù.)
- root ±ÇÇѱîÁö ÃëµæÇß´Ù¸é /bin/ps ¸¦ ±³Ã¼ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª chroot ȯ°æ¿¡¼´Â
jail ¾È¿¡ /bin/ps °¡ ÀÖÀ»¸®µµ ¾ø°í, °ü¸®ÀÚ°¡ »ç¿ëÇÏ´Â °ÍÀº jail ¿ÜºÎÀÇ /bin/ps À̹ǷΠ¾È½É.
- ȤÀº ´ë´ãÇϰԵµ °èÁ¤À» »ý¼º(/etc/passwd¸¦ ¼öÁ¤)Çϰí telnet ¶Ç´Â ssh Á¢¼ÓÀ» ÇÏ·Á ÇÒ ¼öµµ ÀÖ´Ù.
- ±×·¯³ª telnet/ssh ¼ºñ½º´Â jail ¿ÜºÎ¿¡¼ ½ÇÇàµÇ¹Ç·Î jail ¾ÈÀÇ /etc/passwd ¸¦ ¼öÁ¤ÇØ ºÃÀÚ ¼Ò¿ëÀÌ ¾ø´Ù.
¡Ø [Âü°í] ÇØÅ· ´çÇÑ ¼¹ö¿¡ ±³Ã¼µÈ ÁÖ¿ä ¸í·Éµé. ¤Ð.¤Ð (¼ÒÀ¯ÀÚ°¡ root °¡ ¾Æ´Ô. ÇØÄ¿°¡ »ý¼ºÇÑ °èÁ¤Àº »èÁ¦ÇßÀ½)
¾Æ·¡ÀÇ ±³Ã¼ ´çÇÑ ¸í·ÉÀÇ °á°ú´Â ½Å·ÚÇÒ ¼ö ¾ø´Ù.
root@thrall:~]# find /bin -nouser -exec ls -l {} \;
-rwxr-xr-x 1 122 114 54152 Feb 11 2003 /bin/netstat
-rwxr-xr-x 1 122 114 39696 Feb 19 2003 /bin/ls
-rwxr-xr-x 1 122 114 62920 Feb 20 2003 /bin/ps
root@thrall:~]# find /usr/bin -nouser -exec ls -l {} \;
-rwxr-xr-x 1 122 114 12340 Jan 25 2003 /usr/bin/pstree
-rwxr-xr-x 1 122 114 59536 Jan 25 2003 /usr/bin/find
-rwxr-xr-x 1 122 114 39696 Feb 19 2003 /usr/bin/dir
-rwxr-xr-x 1 122 114 31452 Feb 19 2003 /usr/bin/md5sum
-rwxr-xr-x 1 122 114 33992 Feb 20 2003 /usr/bin/top
-rwxr-xr-x 1 122 114 23560 Feb 20 2003 /usr/bin/slocate
À§ ¸í·ÉµéÀ» »ç¿ëÇÏÁö ¾Ê°í ¼û°ÜÁø ÇÁ·Î¼¼½º¸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀº /proc µð·ºÅ丮¸¦ »ç¿ëÇÑ´Ù.
cd /proc
for p in *; do \
if [ -f $p/cmdline ]; then \
if ps ax | egrep -q "^ *$p "; then \
echo $p: `cat $p/cmdline`; \
else \
echo $p: HINNEN: `cat $p/cmdline`; \
fi; \
fi; \
done
5) °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷À» ¼öÇà
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- jail ¾È¿¡´Â ÇØ´ç ¼ºñ½º¿Í °ü°è ¾ø´Â ÆÄÀÏÀº ÃÖ´ëÇÑ Á¦°ÅÇÏ¿©
º°·Î ÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
¡Ø ¸î°¡Áö ¿¹¸¦µé¸é..
telnet, ssh µî ³×Æ®¿öÅ© Á¢¼Ó ÅøÀ» jail ¾È¿¡ µÎÁö ¾ÊÀ¸¸é
´Ù¸¥ ¼¹ö·Î Á¢¼ÓÇÒ ¼ö ¾øÀ¸¹Ç·Î ÇØÅ· Áß°è °ÅÁ¡À¸·Î »ç¿ëÇÒ ¼ö ¾ø´Ù.
(perl, php, java µîÀº ³×Æ®¿öÅ© ±â´ÉÀÌ ÀÖÀ¸¹Ç·Î °¡´ÉÇÒ¼öµµ ÀÖ´Ù. ¤Ð.¤Ð)
À¥»çÀÌÆ®¿¡¼ ¸ÞÀϺ¸³»´Â ±â´ÉÀÌ ÇÊ¿ä ¾ø´Ù¸é À¥ jail ¿¡¼ /usr/bin/sendmail À» Á¦°ÅÇÒ ¼ö ÀÖ´Ù.
±×·¯¸é À¥ jailÀ» °ø°ÝÇØ¼ ¶Õ¾ú´Ù°í ÇÏ´õ¶óµµ sendmail ÀÌ ¾øÀ¸¹Ç·Î ½ºÆÔ¸ÞÀÏÀ» ¹ß¼ÛÇÒ ¼ö´Â ¾ø´Ù.
6) Áõ°ÅÀθê(·Î±× ÆÄÀÏ »èÁ¦)
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ½Ã½ºÅÛ ·Î±×´Â syslogd ¿¡ ÀÇÇØ¼ jail ¿ÜºÎ¿¡ ½×À̹ǷΠjail ¾È¿¡¼´Â ·Î±×¸¦ Áö¿ï ¼ö ¾ø´Ù.
2. CHROOT ¸¦ ÀÌ¿ëÇÑ ½Ã½ºÅÛ ±¸¼º ¹æ¾È
¡Ø ÀüüÀûÀ¸·Î ¾ÆÁ÷Àº ±¸»ó ¼öÁØÀÔ´Ï´Ù.
2.0. ¿ä±¸»çÇ×
- MySQL 4.0
- MySQL 4.1
- Apache 1.3
- PHP 4
- PHP 5
- J2SE 1.4
- J2SE 5
- Tomcat 5
- Postfix
- Cyrus IMAP
- BIND 9
¡Ø ƯÁ¤ÇÑ ¼ºñ½º¸¦ À§ÇѰÍÀÌ ¾Æ´Ï¶ó °³ÀÎ¿ë ¼¹ö¶ó À̰ÍÀú°Í ´Ù ±ò °èȹÀÔ´Ï´Ù.
¡Ø Âü°í·Î ¸»¾¸µå¸®¸é ¿ì¸®³ª¶ó¿¡ ¸¹ÀÌ ¼Ò°³µÇÁö´Â ¾ÊÀº Á¶ÇÕÀÔ´Ï´Ù¸¸..
Àú´Â ¸ÞÀϼºñ½º¿¡ postfix + cyrus-imapd Á¶ÇÕÀ» Áñ°Ü »ç¿ëÇϴµ¥
¡Ø ƯÈ÷ cyrus´Â ¿©·¯°¡Áö ÀÌÁ¡ÀÌ ¸¹½À´Ï´Ù. °¡Àå Áß¿äÇÑ Á¡ÀÌ ±âº»ÀûÀ¸·Î ½Ã½ºÅÛ °èÁ¤À»
»ç¿ëÇÏÁö ¾Ê°í º°µµÀÇ °èÁ¤À» »ç¿ëÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
qmailÀÌ º¸¾ÈÀÌ ¿ì¼öÇÏ´Ù°í ÇÏÁö¸¸ MaildirÀÌ È¨µð·ºÅ丮°¡ ÀÖ¾î¾ß ÇϹǷÎ
´©±º°¡¿¡°Ô ¸ÞÀϼºñ½º¸¦ Á¦°øÇϱâ À§Çؼ´Â ½Ã½ºÅÛ °èÁ¤À» ¹ß±ÞÇØ¾ß ÇÕ´Ï´Ù.
(º¹ÀâÇÏ°Ô ÆÐÄ¡ÇÏ°í ¼³Á¤ÇÏ¸é °¡»ó°èÁ¤À̳ª MySQL µîÀ¸·Î ¼ºñ½º°¡ °¡´ÉÀº ÇϰÚÁö¸¸¿ä..)
cyrus ´Â ¸ÞÀÏ ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£°¡ À¯ÃâµÇ¾îµµ ½Ã½ºÅÛ °èÁ¤ÀÌ ¾Æ´Ï¹Ç·Î
½Ã½ºÅÛ Á¢±ÙÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. ±× »ç¶÷ ¸ÞÀϸ¸ º¼ ¼ö ÀÖÀ» »ÓÀÌÁÒ.
¶ÇÇÑ ±âº»ÀûÀ¸·Î °¡»ó °èÁ¤À̹ǷΠMySQL À̳ª ´Ù¸¥ DB¿Í ¿¬µ¿Çؼ
»ç¿ëÀÚ °ü¸®ÇÒ ¼ö ÀÖ°Ô ±¸¼ºÇϱⰡ ½±½À´Ï´Ù.
2.1. µð·ºÅ丮 ±¸¼º
/
chroot/
bin/ # chroot utilities
www1/ # À¥¼ºñ½º¿ë jail #1
home/
yidigun.com/ # ~yidigun (virtual host user)
www1/ # apache2, php5, tomcat5
www2/ # À¥¼ºñ½º¿ë jail #2
home/
yscript.com/ # ~yscript (virtual host user)
www2/ # apache13, php4, tomcat4
mail/ # ¸ÞÀÏ ¼ºñ½º¿ë jail
mail/ # postfix, cyrus-imapd
var/
spool/
postfix/
cyrus/
imap/
named/ # DNS ¼ºñ½º¿ë jail
named/ # bind 9
var/
named/
data/
mysql/ # mysql data files
mysql40/
mysql41/
home/
dagui/ # ~dagui (non chroot user)
yidigun.com@ -> /chroot/www1/home/yidigun.com/
yscript.com@ -> /chroot/www2/home/yscript.com/
tmp/
mysql.sock=
usr/
local/
mysql@ -> mysql41/
mysql40/ # mysql 4.0
mysql41/ # mysql 4.1
www0/ # apache 2 (static, proxy)
www1/ # apache2, php5, tomcat5
www2/ # apache13, php4, tomcat4
var/
named@ -> /chroot/named/var/named/
spool/
postfix@ -> /chroot/mail/var/spool/postfix/
cyrus@ -> /chroot/mail/var/spool/cyrus/
imap@ -> /chroot/mail/var/spool/imap/
www0@ -> usr/local/www0/
www1@ -> usr/local/www1/
www2@ -> usr/local/www2/
mail@ -> chroot/mail/mail/
named@ -> chroot/named/named/
¡Ø ÆÄÀÏ À̸§ µÚÀÇ /(directory), @(symbolic link), |(named pipe), =(socket) µîÀÇ ±âÈ£´Â
ls -F ÇÒ¶§ ³ª¿À´Â °ÍÀÔ´Ï´Ù. (ls ¸Å´º¾ó ÂüÁ¶)
¡Ø Àß ¾Æ½Ã°ÚÁö¸¸ /bin, /lib, /usr/bin, /usr/lib, /dev, /etc, /tmp µîÀº
°¢°¢ÀÇ jail ¿¡µµ ±âº»ÀûÀ¸·Î ÇÊ¿äÇÕ´Ï´Ù.(³Ê¹« ´ç¿¬ÇÑ °ÍÀº »ý·«ÇÔ)
¡Ø apache, php µî ¼ºñ½º¿ë ÇÁ·Î±×·¥À» jail ÀÇ ³»ºÎ¿Í ¿ÜºÎ¿¡ /www1 ¿¡ Áߺ¹Çؼ
¼³Ä¡ÇÏ´Â °Í, /home ¹Ø¿¡ ¸µÅ©¸¦ °Å´Â °Í µîÀÇ ÀÌÀ¯´Â
jail ³»ºÎ³ª ¿ÜºÎ³ª ÆÄÀÏÀÇ À§Ä¡°¡ µ¿ÀÏÇÏ°Ô Çϱâ À§ÇÔÀÔ´Ï´Ù.
¡Ø apache, php µîÀ» ¼³Ä¡ÇÒ ¶§ /usr/local/www1 ¿¡´Â Àüü ÆÐŰÁö¸¦ ¼³Ä¡Çϰí
/chroot/www1/www1 ¿¡´Â À¥¼¹ö ½ÇÇà½Ã ÇÊ¿äÇÑ °Í¸¸ ¼³Ä¡ÇÕ´Ï´Ù.
(cli php ½ÇÇàÆÄÀÏ, include ÆÄÀÏ, *.a ÆÄÀÏ µîµîÀº Á¦°ÅÇÔ)
2.2. °ø°Ý °¡´É °æ·Î
2.2.1. TCP/IP port
Port Service ROOT
TCP
0.0.0.0:21 proftpd /
0.0.0.0:22 ssh /
0.0.0.0:80 apache(http) /
0.0.0.0:443 apache(https) /
0.0.0.0:53 named(domain) /chroot/named
0.0.0.0:25 postfix(smtp) /chroot/mail
0.0.0.0:60025 postfix(smtp) /chroot/mail
0.0.0.0:110 cyrus(pop3) /chroot/mail
0.0.0.0:995 cyrus(pop3s) /chroot/mail
0.0.0.0:143 cyrus(imap) /chroot/mail
0.0.0.0:993 cyrus(imaps) /chroot/mail
127.0.0.1:3306 mysql(4.1) /
127.0.0.1:53306 mysql(4.0) /
127.0.0.1:953 named(rndc) /chroot/named
127.0.0.1:50080 apache(http) /chroot/www1
127.0.0.1:50081 tomcat(ajp) /chroot/www1
127.0.0.1:60080 apache(http) /chroot/www2
127.0.0.1:60081 tomcat(ajp) /chroot/www2
UDP
0.0.0.0:123 ntpd /
0.0.0.0:53 named(domain) /chroot/named
¡Ø ROOT´Â ¼ºñ½º µ¥¸ó ÇÁ·Î¼¼½º°¡ ÀνÄÇÏ´Â / µð·ºÅ丮ÀÔ´Ï´Ù.
Áï, ÇØÄ¿°¡ Service¿¡ ÀÖ´Â µ¥¸óÀ» ÅëÇØ¼ ½Ã½ºÅÛ ±ÇÇÑÀ» ÃëµæÇßÀ» ¶§
ÇØ´ç µð·ºÅ丮 ÀÌÇϰ¡ À§ÇèÇØÁø´Ù´Â °ÍÀÔ´Ï´Ù.
2.2.2. ¿¸° unix ¼ÒÄÏ ¶Ç´Â named pipe
Socket Service ROOT
/
dev/log= syslogd /
tmp/
mysql.sock= mysql(4.1) /
mysql-40.sock= mysql(4.0) /
chroot/
named/
dev/log= syslogd /
mail/
dev/log= syslogd /
var/
imap/socket/lmtp= cyrus /chroot/mail
saslauthd/mux= saslauthd /
spool/postfix/
private/
bounce= postfix /chroot/mail
bsmtp= postfix /chroot/mail
cyrus= postfix /chroot/mail
defer= postfix /chroot/mail
error= postfix /chroot/mail
ifmail= postfix /chroot/mail
lmtp= postfix /chroot/mail
local= postfix /chroot/mail
maildrop= postfix /chroot/mail
old-cyrus= postfix /chroot/mail
proxymap= postfix /chroot/mail
relay= postfix /chroot/mail
rewrite= postfix /chroot/mail
smtp= postfix /chroot/mail
uucp= postfix /chroot/mail
virtual= postfix /chroot/mail
public/
cleanup= postfix /chroot/mail
flush= postfix /chroot/mail
pickup| postfix /chroot/mail
qmgr| postfix /chroot/mail
showq= postfix /chroot/mail
www1/
dev/log= syslogd /
www2/
dev/log= syslogd /
¡Ø postfix ´Â ³»ºÎÀûÀ¸·Î unix socketÀ» ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. ^^
¡Ø unix domain socketÀ̳ª named pipe´Â ÀÏ´Ü ³×Æ®¿öÅ©¸¦ ÅëÇØ Á¢¼ÓÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î
(·ÎÄÿ¡¼¸¸ Á¢±Ù °¡´ÉÇϹǷÎ) TCP/IP Æ÷Æ®º¸´Ù´Â ´ú Áß¿äÇÏÁö¸¸,
ÀÏ´Ü ÇØÄ¿°¡ ¾î¶² jail ħÅõ¿¡ ¼º°øÇÑ´Ù¸é
´Ù¸¥ jail À̳ª Àüü ½Ã½ºÅÛÀ¸·Î ħÅõÇÏ´Â °æ·Î°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
0.0.0.0:80 (php) PHP ½ºÅ©¸³Æ® ÇêÁ¡À» ÀÌ¿ë, www1 jail ħÀÔ.
127.0.0.1:953 (rndc) BIND 9 ¹ö±×¸¦ °ø°Ý named jail ħÀÔ
(127.0.0.1À¸·Î Á¢¼Ó °¡´É)
/chroot/www1/dev/log= (syslogd) syslogd ¹ö±×¸¦ ÀÌ¿ëÇÏ¿© /(Àüü ½Ã½ºÅÛ)¿¡ ħÀÔ
(·ÎÄà ÆÄÀϽýºÅÛ Á¢¼Ó °¡´É)
¡Ø syslogd ³ª BIND 9 °¡ ¹ö±×°¡ ÀÖ¾î¼ ¹Ù·Î ¶Õ¸°´Ù´Â ¸»Àº ¾Æ´Õ´Ï´Ù.
(¾ðÁ¨°¡ ÀáÀçµÇ¾î ÀÖ´ø ¹ö±×°¡ ¹ß°ßµÇ¼ ±×·¸°Ô µÉ °¡´É¼ºÀÌ ÀÖ´Ù´Â ¸»ÀÌÁÒ.)
¡Ø ÇϳªÀÇ jail ÀÌ ¶Õ¸®¸é °£´ÜÇÏÁö´Â ¾ÊÁö¸¸ ´Ù¸¥ jail À̳ª
½Ã½ºÅÛ Àüü·Î ÁøÃâÇÒ °¡´É¼ºÀÌ ¾Æ¿¹ ¾ø´Â °ÍÀº ¾Æ´Ï¶õ Á¡À» ÁÖÀÇÇØ¾ß ÇÔ.
¿¹Àü¿¡ tip&tech ¿¡ ¿Ã¸° ±Û Áß¿¡ Á¦ ¼¹ö¿¡ ¿Ã·Á³õÀº ÆÄÀÏ·Î
¸µÅ©°É¾î³õÀº °ÍÀÌ ¸î°Ç ÀÖ¾ú´Âµ¥¿ä. Á¢¼ÓÀÌ ¾ÈµÈ´Ù°í ¸ÞÀÏ ÁֽŠºÐµéÀÌ ¸îºÐ °è½Ê´Ï´Ù.
Á¦ ¼¹ö°¡ ÇØÅ·´çÇØ¼ À¥¼ºñ½º¸¦ ³»·Á³õÀº »óÅÂÀÔ´Ï´Ù. ¤Ð.¤Ð
À̳ðÀú³ð ¸¹À̵µ ¿Í¼ ÇÑ°Í °°Àºµ¥ ¿ÏÀü ´Ù½Ã±î´Â ¼ö¹Û¿¡ ¾ø´Ù´Â »ý°¢ÀÔ´Ï´Ù.
Á¦ÀÏ Â¥Áõ³ª´Â ³ÑÀÌ Á¦·Îº¸µå ÇêÁ¡À» Ÿ°í µé¾î¿Í¼ /tmp ¿¡ perl ½ºÅ©¸³Æ® ¿Ã·Á³õ°í
½ºÆÔ¸ÞÀÏ º¸³»´Â ºê¶óÁú ³ÑµéÀÔ´Ï´Ù.(ȸ»ç ¼¹öµµ Çѹø ´çÇß½À´Ï´Ù. ¤Ð.¤Ð)
±Ùµ¥ ȸ»ç¿¡ ¸ÅÀÎ ¸öÀÌ´Ùº¸´Ï ½Ã°£µµ ¿©ÀÇÄ¡ ¾Ê°í,
Çѹø ÀÌ·¸°Ô ´çÇÏ°í º¸´Ï ´ëÃæ ÇØ¼± ¾ÈµÇ°Ú´Ù´Â »ý°¢¿¡
º¸´Ù ¾ÈÀüÇÑ ¼¹ö ±¸¼º¿¡ ´ëÇØ¼ »ý.°¢.¸¸ Çϰí ÀÖ´Â ÁßÀÔ´Ï´Ù.
(³ªÁß¿¡ ±¸ÇöÀÌ ¿Ï·áµÇ¸é ½ÇÀü ¼¼ÆÃµµ Á¤¸®Çؼ ¿Ã¸®µµ·Ï ÇϰڽÀ´Ï´Ù.)
ÁÖ·Î chroot ¿¡ ±â¹ÝÇÑ ¹æ¹ýÀ» »ý°¢ÁßÀÔ´Ï´Ù.(¿¹Àü¿¡µµ Çѹø ÇØº»ÀûÀÌ ÀÖ´Ùº¸´Ï)
¼¼·ÃµÈ ¹æ¹ýÀº ¾Æ´ÏÁö¸¸ unix ¿ª»ç»ó ¿À·¨µ¿¾È »ç¿ëµÇ¿Â ¹æ¹ýÀ̰í
»ó´çÇÑ È¿°ú¸¦ °ÅµÑ¼ö ÀÖ´Â ¹æ¹ýÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
Ãʱ⠼³Á¤½Ã¿¡ ³ë°¡´Ù¼º ÀÛ¾÷Àº ¸¹Áö¸¸, ¾à°£ÀÇ °³³ä¸¸ Àâ°í ÀÖÀ¸¸é µµÀüÇØ º¼ ¸¸Çϱ¸¿ä.
¶Ç ¼³Á¤ÇØ °¡´Â °úÁ¤¿¡¼ unix µ¿ÀÛ ¹æ½Ä¿¡ ´ëÇØ¼ ¸¹Àº °ÍÀ» ¹è¿ì°Ô µË´Ï´Ù.
¾î¶² ÆÄÀÏÀÌ ¾î¶²µ¥ ¾²ÀÌ´Â °ÍÀΰ¡ ÇÏ´Â °ÍÀ» ¸»ÀÌÁÒ..
selinux µµ °ü½ÉÀ» °¡Áö°í ºÃ´Âµ¥ ¾ÆÁ÷ ³Ê¹« »õ·Î¿î ³ðÀ̶ó ÀÚ·áµµ º°·Î ¾ø°í..
º¸¾È ¸ðµ¨ µî °³³ä ÀÚüºÎÅÍ »ó´çÈ÷ º¹ÀâÇØ¼ ½ÇÀü¿¡ Àû¿ëÇϱⰡ ½±Áö ¾Ê³×¿ä.
Ãß°¡/µýÁö µî ÁÁÀº ÀǰßÀÌ ÀÖÀ¸¸é ¸®Çô޾ÆÁÖ½Ã¸é °¨»ç°Ú½À´Ï´Ù.
¾Æ·¡ ³»¿ëÀ» ÀÌÇØÇϽ÷Á¸é chroot °³³ä°ú jail ±¸¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÌÇØ°¡
ÀÖ¾î¾ß µÉ°ÍÀÔ´Ï´Ù. Âü°í ¸µÅ©·Î ¸¶¶¥ÇÑ°Ô º°·Î ¾ø³×¿ä.. Á˼Û
1. ½Ã½ºÅÛ °ø°Ý ½Ã³ª¸®¿À ¹× ´ëÃ¥
1.1. °ø°Ý ´Ü°è
1) À¥ ½ºÅ©¸³Æ®, ¼ºñ½º µ¥¸óÀÇ ¹ö±×¸¦ ÀÌ¿ë °ø°Ý
2) ÇØÅ· Åø ¾÷·Îµå/¼³Ä¡
3) ÇØÅ· ÅøÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ ±ÇÇÑ Ãëµæ
4) ¹éµµ¾î ¼³Ä¡(¼û°ÜÁø Process, °èÁ¤ »ý¼º µî)
5) ¹«¾ð°¡ °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷À» ¼öÇà
6) Áõ°ÅÀθê(·Î±× ÆÄÀÏ »èÁ¦)
¡Ø ¿äÁò °¡Àå ÈçÇÑ °ø°Ý/ħÅõ °æ·ÎÀÔ´Ï´Ù.
¡Ø '¹«¾ð°¡ °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷'Àº ½Ã½ºÅÛ/µ¥ÀÌÅÍ ÆÄ±«,
´Ù¸¥ ¼¹ö ÇØÅ·(Áß°è°ÅÁ¡), ºñ¹Ðµ¥ÀÌÅÍ À¯Ãâ, ½ºÆÔ¸ÞÀÏ ¹ß¼Û µîµî
2.2. ´Ü°èº° ¹æ¾î ´ëÃ¥
1) À¥ ½ºÅ©¸³Æ®, ¼ºñ½º µ¥¸óÀÇ ¹ö±×¸¦ ÀÌ¿ë °ø°Ý
´ëÃ¥: ÃÖ´ëÇÑ ÁÖÀǸ¦ ±â¿ïÀÌ°í ºÎÁö·±ÇØ¾ß ÇÑ´Ù´Â ¸»¹Û¿¡´Â...
- À¥»çÀÌÆ® °³¹ß ½ÃÁ¡ºÎÅÍ ½ºÅ©¸³Æ®(ƯÈ÷ PHP) º¸¾È °ËÅä öÀú
- º¸¾È ´º½º¸¦ È®ÀÎÇÏ°í ½Ã½ºÅÛ ¾÷µ¥ÀÌÆ® öÀúÈ÷ °ü¸®
- ¿ÜºÎ¿¡¼ Á¢¼ÓÀÌ ²À ÇÊ¿ä ¾ø´Â ¼ºñ½º´Â Á×À̰ųª ¹æÈº® µîÀ» ÀÌ¿ëÇÏ¿© Â÷´ÜÇÑ´Ù.
2) ÇØÅ· Åø ¾÷·Îµå/¼³Ä¡
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- jail ¾È¿¡¼´Â °³¹ß µµ±¸(perl, ÄÄÆÄÀÏ·¯)¸¦ »ç¿ë ¸øÇÏ°Ô ÇÔ
¡Ø ´ëºÎºÐÀÇ ÇØÅ· ÅøÀÌ C ¶Ç´Â perl·Î µÇ¾îÀÖÀ½.
perl °ú C¾ð¾î(gcc)´Â ÀÏ´Ü ½Ã½ºÅÛ¿¡ µé¾î¿À±â¸¸ ÇÏ¸é ¹Ù·Î ÇØÄ¿µéÀÇ ¹«±â°¡ µÇ¹Ç·Î
¼³Ä¡¿©ºÎ¸¦ ½ÅÁßÇÏ°Ô °í·ÁÇØ¾ß ÇÑ´Ù.
¡Ø À¥¼ºñ½º¿ë jail Àº ´ëºÎºÐ php, java µîÀÌ ÀÖ¾î¾ß Çϰí,
¸ÞÀÏ ¼ºñ½º¿ë jail Àº perl ÀÌ ÇÊ¿äÇÏ´Ù.(´ëºÎºÐÀÇ ¸ÞÀÏ °ü·Ã ÅøµéÀÌ perl À» ÇÊ¿ä·Î Çϱ⠶§¹®¿¡)
ÀÌó·³ ´ëºÎºÐ ÇÁ·Î±×·¥ ¾ð¾î ¼³Ä¡°¡ ºÒ°¡ÇÇÇÏÁö¸¸ ÃÖ´ëÇÑ Á¦°ÅÇϵµ·Ï ³ë·ÂÇÒ Çʿ䰡 ÀÖ´Ù.
¿¹¸¦µé¸é cli¿ë php ¹ÙÀ̳ʸ®´Â jail ¾È¿¡´Â ¼³Ä¡ÇÏÁö ¾Ê°í
jail ¹Û¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖµµ·ÏÇϸé php ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ·Á°í ÇØµµ
À¥¼¹ö¸¦ ÅëÇØ¾ß ÇϹǷΠnobody ±ÇÇÑ ¹Û¿¡ °¡Áú ¼ö ¾ø´Ù.
3) ÇØÅ· ÅøÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ ±ÇÇÑ Ãëµæ
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ½Ã½ºÅÛ ±ÇÇÑÀ» ÃëµæÇÏ´õ¶óµµ ÇØ´ç jail ¾È¿¡ ¹¾î³õÀ» ¼ö ÀÖ´Ù.
´Ù¸¥ jail À̳ª Àüü ÆÄÀϽýºÅÛ¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Ù.
4) ¹éµµ¾î ¼³Ä¡(¼û°ÜÁø Process, °èÁ¤ »ý¼º µî)
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ÇÁ·Î¼¼½º¸¦ ¼û±ä´Ù´Â °ÍÀº °ü¸®ÀÚ°¡ ps ¸í·ÉÀ¸·Î È®ÀÎÇÒ ¶§ Ç¥½ÃµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
ÀÌ·¸°Ô ÇϱâÀ§Çؼ´Â ps ÇÁ·Î±×·¥À» ÇØÅ· ÇÁ·Î¼¼½º¸¦ ¼û±âµµ·Ï ¼öÁ¤µÈ ¹öÀüÀ¸·Î ±³Ã¼ÇØ¾ß ÇÑ´Ù.
(±×¸®°í netstat -a ¸¦ ÇßÀ» ¶§ LISTEN Æ÷Æ®°¡ ³ª¿ÀÁö ¾Êµµ·Ï netstat ¸í·ÉÀ» ±³Ã¼ÇØ¾ß ÇÑ´Ù.)
- root ±ÇÇѱîÁö ÃëµæÇß´Ù¸é /bin/ps ¸¦ ±³Ã¼ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª chroot ȯ°æ¿¡¼´Â
jail ¾È¿¡ /bin/ps °¡ ÀÖÀ»¸®µµ ¾ø°í, °ü¸®ÀÚ°¡ »ç¿ëÇÏ´Â °ÍÀº jail ¿ÜºÎÀÇ /bin/ps À̹ǷΠ¾È½É.
- ȤÀº ´ë´ãÇϰԵµ °èÁ¤À» »ý¼º(/etc/passwd¸¦ ¼öÁ¤)Çϰí telnet ¶Ç´Â ssh Á¢¼ÓÀ» ÇÏ·Á ÇÒ ¼öµµ ÀÖ´Ù.
- ±×·¯³ª telnet/ssh ¼ºñ½º´Â jail ¿ÜºÎ¿¡¼ ½ÇÇàµÇ¹Ç·Î jail ¾ÈÀÇ /etc/passwd ¸¦ ¼öÁ¤ÇØ ºÃÀÚ ¼Ò¿ëÀÌ ¾ø´Ù.
¡Ø [Âü°í] ÇØÅ· ´çÇÑ ¼¹ö¿¡ ±³Ã¼µÈ ÁÖ¿ä ¸í·Éµé. ¤Ð.¤Ð (¼ÒÀ¯ÀÚ°¡ root °¡ ¾Æ´Ô. ÇØÄ¿°¡ »ý¼ºÇÑ °èÁ¤Àº »èÁ¦ÇßÀ½)
¾Æ·¡ÀÇ ±³Ã¼ ´çÇÑ ¸í·ÉÀÇ °á°ú´Â ½Å·ÚÇÒ ¼ö ¾ø´Ù.
root@thrall:~]# find /bin -nouser -exec ls -l {} \;
-rwxr-xr-x 1 122 114 54152 Feb 11 2003 /bin/netstat
-rwxr-xr-x 1 122 114 39696 Feb 19 2003 /bin/ls
-rwxr-xr-x 1 122 114 62920 Feb 20 2003 /bin/ps
root@thrall:~]# find /usr/bin -nouser -exec ls -l {} \;
-rwxr-xr-x 1 122 114 12340 Jan 25 2003 /usr/bin/pstree
-rwxr-xr-x 1 122 114 59536 Jan 25 2003 /usr/bin/find
-rwxr-xr-x 1 122 114 39696 Feb 19 2003 /usr/bin/dir
-rwxr-xr-x 1 122 114 31452 Feb 19 2003 /usr/bin/md5sum
-rwxr-xr-x 1 122 114 33992 Feb 20 2003 /usr/bin/top
-rwxr-xr-x 1 122 114 23560 Feb 20 2003 /usr/bin/slocate
À§ ¸í·ÉµéÀ» »ç¿ëÇÏÁö ¾Ê°í ¼û°ÜÁø ÇÁ·Î¼¼½º¸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀº /proc µð·ºÅ丮¸¦ »ç¿ëÇÑ´Ù.
cd /proc
for p in *; do \
if [ -f $p/cmdline ]; then \
if ps ax | egrep -q "^ *$p "; then \
echo $p: `cat $p/cmdline`; \
else \
echo $p: HINNEN: `cat $p/cmdline`; \
fi; \
fi; \
done
5) °ü¸®ÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ÀÛ¾÷À» ¼öÇà
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- jail ¾È¿¡´Â ÇØ´ç ¼ºñ½º¿Í °ü°è ¾ø´Â ÆÄÀÏÀº ÃÖ´ëÇÑ Á¦°ÅÇÏ¿©
º°·Î ÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
¡Ø ¸î°¡Áö ¿¹¸¦µé¸é..
telnet, ssh µî ³×Æ®¿öÅ© Á¢¼Ó ÅøÀ» jail ¾È¿¡ µÎÁö ¾ÊÀ¸¸é
´Ù¸¥ ¼¹ö·Î Á¢¼ÓÇÒ ¼ö ¾øÀ¸¹Ç·Î ÇØÅ· Áß°è °ÅÁ¡À¸·Î »ç¿ëÇÒ ¼ö ¾ø´Ù.
(perl, php, java µîÀº ³×Æ®¿öÅ© ±â´ÉÀÌ ÀÖÀ¸¹Ç·Î °¡´ÉÇÒ¼öµµ ÀÖ´Ù. ¤Ð.¤Ð)
À¥»çÀÌÆ®¿¡¼ ¸ÞÀϺ¸³»´Â ±â´ÉÀÌ ÇÊ¿ä ¾ø´Ù¸é À¥ jail ¿¡¼ /usr/bin/sendmail À» Á¦°ÅÇÒ ¼ö ÀÖ´Ù.
±×·¯¸é À¥ jailÀ» °ø°ÝÇØ¼ ¶Õ¾ú´Ù°í ÇÏ´õ¶óµµ sendmail ÀÌ ¾øÀ¸¹Ç·Î ½ºÆÔ¸ÞÀÏÀ» ¹ß¼ÛÇÒ ¼ö´Â ¾ø´Ù.
6) Áõ°ÅÀθê(·Î±× ÆÄÀÏ »èÁ¦)
´ëÃ¥: CHROOT ȯ°æ ±¸¼º
- ½Ã½ºÅÛ ·Î±×´Â syslogd ¿¡ ÀÇÇØ¼ jail ¿ÜºÎ¿¡ ½×À̹ǷΠjail ¾È¿¡¼´Â ·Î±×¸¦ Áö¿ï ¼ö ¾ø´Ù.
2. CHROOT ¸¦ ÀÌ¿ëÇÑ ½Ã½ºÅÛ ±¸¼º ¹æ¾È
¡Ø ÀüüÀûÀ¸·Î ¾ÆÁ÷Àº ±¸»ó ¼öÁØÀÔ´Ï´Ù.
2.0. ¿ä±¸»çÇ×
- MySQL 4.0
- MySQL 4.1
- Apache 1.3
- PHP 4
- PHP 5
- J2SE 1.4
- J2SE 5
- Tomcat 5
- Postfix
- Cyrus IMAP
- BIND 9
¡Ø ƯÁ¤ÇÑ ¼ºñ½º¸¦ À§ÇѰÍÀÌ ¾Æ´Ï¶ó °³ÀÎ¿ë ¼¹ö¶ó À̰ÍÀú°Í ´Ù ±ò °èȹÀÔ´Ï´Ù.
¡Ø Âü°í·Î ¸»¾¸µå¸®¸é ¿ì¸®³ª¶ó¿¡ ¸¹ÀÌ ¼Ò°³µÇÁö´Â ¾ÊÀº Á¶ÇÕÀÔ´Ï´Ù¸¸..
Àú´Â ¸ÞÀϼºñ½º¿¡ postfix + cyrus-imapd Á¶ÇÕÀ» Áñ°Ü »ç¿ëÇϴµ¥
¡Ø ƯÈ÷ cyrus´Â ¿©·¯°¡Áö ÀÌÁ¡ÀÌ ¸¹½À´Ï´Ù. °¡Àå Áß¿äÇÑ Á¡ÀÌ ±âº»ÀûÀ¸·Î ½Ã½ºÅÛ °èÁ¤À»
»ç¿ëÇÏÁö ¾Ê°í º°µµÀÇ °èÁ¤À» »ç¿ëÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
qmailÀÌ º¸¾ÈÀÌ ¿ì¼öÇÏ´Ù°í ÇÏÁö¸¸ MaildirÀÌ È¨µð·ºÅ丮°¡ ÀÖ¾î¾ß ÇϹǷÎ
´©±º°¡¿¡°Ô ¸ÞÀϼºñ½º¸¦ Á¦°øÇϱâ À§Çؼ´Â ½Ã½ºÅÛ °èÁ¤À» ¹ß±ÞÇØ¾ß ÇÕ´Ï´Ù.
(º¹ÀâÇÏ°Ô ÆÐÄ¡ÇÏ°í ¼³Á¤ÇÏ¸é °¡»ó°èÁ¤À̳ª MySQL µîÀ¸·Î ¼ºñ½º°¡ °¡´ÉÀº ÇϰÚÁö¸¸¿ä..)
cyrus ´Â ¸ÞÀÏ ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£°¡ À¯ÃâµÇ¾îµµ ½Ã½ºÅÛ °èÁ¤ÀÌ ¾Æ´Ï¹Ç·Î
½Ã½ºÅÛ Á¢±ÙÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. ±× »ç¶÷ ¸ÞÀϸ¸ º¼ ¼ö ÀÖÀ» »ÓÀÌÁÒ.
¶ÇÇÑ ±âº»ÀûÀ¸·Î °¡»ó °èÁ¤À̹ǷΠMySQL À̳ª ´Ù¸¥ DB¿Í ¿¬µ¿Çؼ
»ç¿ëÀÚ °ü¸®ÇÒ ¼ö ÀÖ°Ô ±¸¼ºÇϱⰡ ½±½À´Ï´Ù.
2.1. µð·ºÅ丮 ±¸¼º
/
chroot/
bin/ # chroot utilities
www1/ # À¥¼ºñ½º¿ë jail #1
home/
yidigun.com/ # ~yidigun (virtual host user)
www1/ # apache2, php5, tomcat5
www2/ # À¥¼ºñ½º¿ë jail #2
home/
yscript.com/ # ~yscript (virtual host user)
www2/ # apache13, php4, tomcat4
mail/ # ¸ÞÀÏ ¼ºñ½º¿ë jail
mail/ # postfix, cyrus-imapd
var/
spool/
postfix/
cyrus/
imap/
named/ # DNS ¼ºñ½º¿ë jail
named/ # bind 9
var/
named/
data/
mysql/ # mysql data files
mysql40/
mysql41/
home/
dagui/ # ~dagui (non chroot user)
yidigun.com@ -> /chroot/www1/home/yidigun.com/
yscript.com@ -> /chroot/www2/home/yscript.com/
tmp/
mysql.sock=
usr/
local/
mysql@ -> mysql41/
mysql40/ # mysql 4.0
mysql41/ # mysql 4.1
www0/ # apache 2 (static, proxy)
www1/ # apache2, php5, tomcat5
www2/ # apache13, php4, tomcat4
var/
named@ -> /chroot/named/var/named/
spool/
postfix@ -> /chroot/mail/var/spool/postfix/
cyrus@ -> /chroot/mail/var/spool/cyrus/
imap@ -> /chroot/mail/var/spool/imap/
www0@ -> usr/local/www0/
www1@ -> usr/local/www1/
www2@ -> usr/local/www2/
mail@ -> chroot/mail/mail/
named@ -> chroot/named/named/
¡Ø ÆÄÀÏ À̸§ µÚÀÇ /(directory), @(symbolic link), |(named pipe), =(socket) µîÀÇ ±âÈ£´Â
ls -F ÇÒ¶§ ³ª¿À´Â °ÍÀÔ´Ï´Ù. (ls ¸Å´º¾ó ÂüÁ¶)
¡Ø Àß ¾Æ½Ã°ÚÁö¸¸ /bin, /lib, /usr/bin, /usr/lib, /dev, /etc, /tmp µîÀº
°¢°¢ÀÇ jail ¿¡µµ ±âº»ÀûÀ¸·Î ÇÊ¿äÇÕ´Ï´Ù.(³Ê¹« ´ç¿¬ÇÑ °ÍÀº »ý·«ÇÔ)
¡Ø apache, php µî ¼ºñ½º¿ë ÇÁ·Î±×·¥À» jail ÀÇ ³»ºÎ¿Í ¿ÜºÎ¿¡ /www1 ¿¡ Áߺ¹Çؼ
¼³Ä¡ÇÏ´Â °Í, /home ¹Ø¿¡ ¸µÅ©¸¦ °Å´Â °Í µîÀÇ ÀÌÀ¯´Â
jail ³»ºÎ³ª ¿ÜºÎ³ª ÆÄÀÏÀÇ À§Ä¡°¡ µ¿ÀÏÇÏ°Ô Çϱâ À§ÇÔÀÔ´Ï´Ù.
¡Ø apache, php µîÀ» ¼³Ä¡ÇÒ ¶§ /usr/local/www1 ¿¡´Â Àüü ÆÐŰÁö¸¦ ¼³Ä¡Çϰí
/chroot/www1/www1 ¿¡´Â À¥¼¹ö ½ÇÇà½Ã ÇÊ¿äÇÑ °Í¸¸ ¼³Ä¡ÇÕ´Ï´Ù.
(cli php ½ÇÇàÆÄÀÏ, include ÆÄÀÏ, *.a ÆÄÀÏ µîµîÀº Á¦°ÅÇÔ)
2.2. °ø°Ý °¡´É °æ·Î
2.2.1. TCP/IP port
Port Service ROOT
TCP
0.0.0.0:21 proftpd /
0.0.0.0:22 ssh /
0.0.0.0:80 apache(http) /
0.0.0.0:443 apache(https) /
0.0.0.0:53 named(domain) /chroot/named
0.0.0.0:25 postfix(smtp) /chroot/mail
0.0.0.0:60025 postfix(smtp) /chroot/mail
0.0.0.0:110 cyrus(pop3) /chroot/mail
0.0.0.0:995 cyrus(pop3s) /chroot/mail
0.0.0.0:143 cyrus(imap) /chroot/mail
0.0.0.0:993 cyrus(imaps) /chroot/mail
127.0.0.1:3306 mysql(4.1) /
127.0.0.1:53306 mysql(4.0) /
127.0.0.1:953 named(rndc) /chroot/named
127.0.0.1:50080 apache(http) /chroot/www1
127.0.0.1:50081 tomcat(ajp) /chroot/www1
127.0.0.1:60080 apache(http) /chroot/www2
127.0.0.1:60081 tomcat(ajp) /chroot/www2
UDP
0.0.0.0:123 ntpd /
0.0.0.0:53 named(domain) /chroot/named
¡Ø ROOT´Â ¼ºñ½º µ¥¸ó ÇÁ·Î¼¼½º°¡ ÀνÄÇÏ´Â / µð·ºÅ丮ÀÔ´Ï´Ù.
Áï, ÇØÄ¿°¡ Service¿¡ ÀÖ´Â µ¥¸óÀ» ÅëÇØ¼ ½Ã½ºÅÛ ±ÇÇÑÀ» ÃëµæÇßÀ» ¶§
ÇØ´ç µð·ºÅ丮 ÀÌÇϰ¡ À§ÇèÇØÁø´Ù´Â °ÍÀÔ´Ï´Ù.
2.2.2. ¿¸° unix ¼ÒÄÏ ¶Ç´Â named pipe
Socket Service ROOT
/
dev/log= syslogd /
tmp/
mysql.sock= mysql(4.1) /
mysql-40.sock= mysql(4.0) /
chroot/
named/
dev/log= syslogd /
mail/
dev/log= syslogd /
var/
imap/socket/lmtp= cyrus /chroot/mail
saslauthd/mux= saslauthd /
spool/postfix/
private/
bounce= postfix /chroot/mail
bsmtp= postfix /chroot/mail
cyrus= postfix /chroot/mail
defer= postfix /chroot/mail
error= postfix /chroot/mail
ifmail= postfix /chroot/mail
lmtp= postfix /chroot/mail
local= postfix /chroot/mail
maildrop= postfix /chroot/mail
old-cyrus= postfix /chroot/mail
proxymap= postfix /chroot/mail
relay= postfix /chroot/mail
rewrite= postfix /chroot/mail
smtp= postfix /chroot/mail
uucp= postfix /chroot/mail
virtual= postfix /chroot/mail
public/
cleanup= postfix /chroot/mail
flush= postfix /chroot/mail
pickup| postfix /chroot/mail
qmgr| postfix /chroot/mail
showq= postfix /chroot/mail
www1/
dev/log= syslogd /
www2/
dev/log= syslogd /
¡Ø postfix ´Â ³»ºÎÀûÀ¸·Î unix socketÀ» ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. ^^
¡Ø unix domain socketÀ̳ª named pipe´Â ÀÏ´Ü ³×Æ®¿öÅ©¸¦ ÅëÇØ Á¢¼ÓÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î
(·ÎÄÿ¡¼¸¸ Á¢±Ù °¡´ÉÇϹǷÎ) TCP/IP Æ÷Æ®º¸´Ù´Â ´ú Áß¿äÇÏÁö¸¸,
ÀÏ´Ü ÇØÄ¿°¡ ¾î¶² jail ħÅõ¿¡ ¼º°øÇÑ´Ù¸é
´Ù¸¥ jail À̳ª Àüü ½Ã½ºÅÛÀ¸·Î ħÅõÇÏ´Â °æ·Î°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
0.0.0.0:80 (php) PHP ½ºÅ©¸³Æ® ÇêÁ¡À» ÀÌ¿ë, www1 jail ħÀÔ.
127.0.0.1:953 (rndc) BIND 9 ¹ö±×¸¦ °ø°Ý named jail ħÀÔ
(127.0.0.1À¸·Î Á¢¼Ó °¡´É)
/chroot/www1/dev/log= (syslogd) syslogd ¹ö±×¸¦ ÀÌ¿ëÇÏ¿© /(Àüü ½Ã½ºÅÛ)¿¡ ħÀÔ
(·ÎÄà ÆÄÀϽýºÅÛ Á¢¼Ó °¡´É)
¡Ø syslogd ³ª BIND 9 °¡ ¹ö±×°¡ ÀÖ¾î¼ ¹Ù·Î ¶Õ¸°´Ù´Â ¸»Àº ¾Æ´Õ´Ï´Ù.
(¾ðÁ¨°¡ ÀáÀçµÇ¾î ÀÖ´ø ¹ö±×°¡ ¹ß°ßµÇ¼ ±×·¸°Ô µÉ °¡´É¼ºÀÌ ÀÖ´Ù´Â ¸»ÀÌÁÒ.)
¡Ø ÇϳªÀÇ jail ÀÌ ¶Õ¸®¸é °£´ÜÇÏÁö´Â ¾ÊÁö¸¸ ´Ù¸¥ jail À̳ª
½Ã½ºÅÛ Àüü·Î ÁøÃâÇÒ °¡´É¼ºÀÌ ¾Æ¿¹ ¾ø´Â °ÍÀº ¾Æ´Ï¶õ Á¡À» ÁÖÀÇÇØ¾ß ÇÔ.
|