squid¼³Ä¡(Åõ¸í ÇÁ¶ô½Ã¿Í À¥°¡¼Ó¸ðµå) | ÀÛ¼ºÀÏ : 2003/11/18 14:28 |
Á¶È¸¼ö : 14157 |
squid http°¡¼Ó ¸ðµå¿Í ÇÁ¶ô½Ã ij½Ì ¸ðµå ÀÌ µÎ°¡Áö ¸ðµå·Î µ¿ÀÛÇÒ ¼ö Àִµ¥ http°¡¼Ó ¸ðµå´Â ƯÁ¤ ¸î¸î »çÀÌÆ®ÀÇ À¥ÆäÀÌÁö¸¦ ÀÚ½ÅÀÇ Ä³½Ã µð·ºÅ丮¿¡ ÀúÀåÇØµÎ°í ¿äûÇϴ Ŭ¶óÀ̾ðÆ®¿¡ ÀÚ½ÅÀÇ Ä³½Ã Á¤º¸¸¦ ºü¸£°Ô º¸¿©ÁÖ´Â ¿ªÈ°À» Çϴ°ÍÀÌ´Ù. Áï ½ÇÁ¦ À¥¼¹ö´Â 81¹ø Æ÷Æ®·Î ¼ºñ½º¸¦ ÇÏ°í http°¡¼Ó ¸ðµå·Î µ¿ÀÛÇÏ´Â squid´Â 80Æ÷Æ®·Î ¼ºñ¸¦ ÇÏ°Ô µÈ´Ù. Áï À¥¼¹ö¿Í ÇÁ¶ô½Ã¸¦ ÇϳªÀÇ ¼¹ö¿¡ ¼³Ä¡ÇÒ °æ¿ì ÀÌ´Ù. ³ª´Â ÀÌ °æ¿ì¿¡ ´ëÇÑ ¼³Á¤¸¸ ´Ù·çµµ·Ï ÇÑ´Ù. º°µµÀÇ http °¡¼Ó ¸ðµå·Î ¼¹ö¸¦ Çϳª ¸¶·ÃÇÒ°æ¿ì´Â ¾Æ¸¶µµ »ç¿øµé¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â ºü¸£°Ô Á¢±ÙÇØ¾ß ÇÒ ÆäÀÌÁö°¡ ÀÖÀ»°æ¿ì¿¡ Çϸé Àû´çÇÒ µíÇÏ´Ù. »ç½Ç ÇÁ¶ô½Ã ij½Ì ¼¹ö¶ó´Â °³³äÀº ¾Æ´Â »ç¶÷Àº ¾Ë°ÍÀÌÁö¸¸ Àß »ç¿ëÀ» ¾ÈÇÏ´Â°Í °°´Ù. ±×·¯³ª http °¡¼Ó ¸ðµå´Â ²Ï³ª À¯¿ëÇÒ ¼öµµ ÀÖÀ»°Å °°´Ù. ½Ç¹«¿¡¼´Â ÇÁ¶ô½Ã ¼¹ö¿Í ¹æȺ®±â´ÉÀ» »ó¿ë ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏ°í ¸®´ª½º ¸»°í freebsd¸¦ »ç¿ëÇÏ´õ¶ó. ±×·¯³ª ±×·¸´ÙÇÏ´õ¶óµµ °³³äÀº ¸®´ª½ºÀÇ iptable°ú squid¸¦ ÀÌ¿ëÇÑ ÇÁ¶ô½Ã¿Í °°´Ù. ±×·¯¹Ç·Î ³ªÁß¿¡ »ó¿ë ÇÁ¶ô½Ã³ª ¹æȺ®À» ÀÌ¿ëÇҽÿ¡ ºÐ¸íÈ÷ °³³äÀ» ÀÌÇØÇϴµ¥ ¸¹Àº µµ¿òÀÌ µÈ´Ù. ±×·¡¼ °øºÎ°â Çؼ Çѹø ¼³Ä¡Çغ¸°í ½ÇÁ¦ À¥¼¹ö¿¡ http °¡¼Ó ¸ðµå·Î ¼³Ä¡ÇÏ´Ï »óȲ¿¡ µû¶ó ³ªÀº ¼º´ÉÀ» ¹ßÈÖÇϱ⵵ Çß´Ù. ±×·¸Áö¸¸ ¼ÖÁ÷È÷ ½ÇÁ¦ ¼ºñ½º½Ã¿¡´Â »ç¿ëÀ» ¾ÈÇÏ´Â°Ô ´õ ³ªÀ»Áöµµ ¸ð¸£°Ù´Ù. squid¸¦ ÀÌ¿ëÇÏ¿© http°¡¼Ó ¸ðµå¿Í ÇÁ¶ô½Ã ij½Ì ¸ðµå ¼³Ä¡½Ã µÑ´Ù ¼³Ä¡´Â ¶È°°À¸³ª ¼³Á¤ÆÄÀÏÀ» ¼³Á¤Çϴ°͸¸ ´Ù¸£´Ù. squid¼¹ö¸¦ ¼³Ä¡Çϱâ Àü¿¡ mallocÀ̶ó´Â ¼Ò½º¸¦ ¸ÕÀú ¼³Ä¡¸¦ Çϴµ¥. À̳ðÀ» ¼³Ä¡ÇÏ´Â ÀÌÀ¯´Â squid¸¦ µ¹¸±¶§ Á¶±Ý´õ ¼º´ÉÀÌ ³´´Ù°í ÇÑ´Ù. Á¤È®È÷´Â ³ªµµ À߸ð¸£Áö¸¸ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÒ °æ¿ìµî¿¡ gnu mallocÀ» ¼³Ä¡Çϸé ÇØ°áµÈ´Ù°í ÇÑ´Ù. ¸ÕÀú °¢ ¼Ò½º¸¦ ´Ù¿î ¹Þ´Â´Ù. gnu mallocÀ» ¾Æ·¡ »çÀÌÆ®¿¡¼ ´Ù¿î ¹Þ´Â´Ù. ftp://ftp.linux.sarang.net/mirror/gnu/gnu/malloc.tar.gz squid¸¦ ¾Æ·¡ »çÀÌÆ®¿¡¼ ´Ù¿î ¹Þ´Â´Ù. http://www.squid-cache.org/Versions/v2/2.5/ echo "########################" echo "### malloc install ###" echo "########################" ¼Ò½º ÆÄÀÏÀÇ ¾ÐÃàÀ» ÇØÁ¦ tar xpzf malloc.tar.gz -C /var/tmp ¾ÐÃàÇØÁ¦ °æ·Î·Î À̵¿ cd /var/tmp/malloc ÄÄÆÄÀÏ ¿É¼Ç ¼³Á¤ export CC=gcc;export CFLAGS="-O2 -march=i686 -funroll-loops -fomit-frame-pointer" ÄÄÆÄÀÏ make ÄÄÆÄÀÏÇÑ ÆÄÀÏ ³» ½Ã½ºÅÛ ¶óÀ̺귯¸®·Î º¹»ç cp -f libmalloc.a /usr/lib/libgnumalloc.a cp -f malloc.h /usr/include/gnumalloc.h echo "### squid ¼¹ö ¼³Ä¡ ###" ¹ÞÀº ¼Ò½ºÀÇ ¾ÐÃàÀ» ÇØÁ¦ ÇÑ´Ù. tar xpzf squid-2.5.STABLE1.tar.gz -C /var/tmp ¼Ò½º °æ·Î·Î À̵¿ cd /var/tmp/squid-2.5.STABLE1 ÀÌÁ¦ ¼Ò½ºÀÇ ¼³Á¤ÆÄÀϵéÀ» ¼öÁ¤Çؼ ÇÁ¸®ÇȽº¸¦ ·¹µåÇÞ ±âÁØÀ¸·Î °íÄ¡°Ú´Ù. src/Makefile.in ÆÄÀÏÀ» ¼öÁ¤ (·Î±× °æ·Î /var/log/squid·Î º¯°æ) DEFAULT_LOG_PREFIX = $(localstatedir)/logs ¶óÀÎÀ» DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid ·Î ¼öÁ¤ src/Makefile.in ÆÄÀÏÀ» ¼öÁ¤ (ij½¬ ÀúÀå °æ·Î /var/log/squid·Î º¯°æ) DEFAULT_SWAP_DIR = $(localstatedir)\/cache DEFAULT_SWAP_DIR = $(localstatedir)\/spool\/squid squid µ¥¸ó À¯Àú Ãß°¡ useradd -r -d /var/spool/squid -s /bin/false -c "squid Server" -u 23 squid ÄÄÇÇ±× Çϱâ CFLAGS="-O2 -march=i686 -funroll-loops" \ ./configure \ --prefix=/usr \ --bindir=/usr/sbin \ --libexecdir=/usr/lib/squid \ --localstatedir=/var \ --sysconfdir=/etc/squid \ --mandir=/usr/share/man \ --enable-dlmalloc \ --enable-gnuregex \ --enable-xmalloc-statistics \ --with-pthreads \ --enable-removal-policies="heap" \ --enable-cachemgr-hostname=`hostname` \ --enable-storeio=diskd,ufs \ --enable-delay-pools \ --enable-cache-digests \ --enable-default-err-language=Korean \ --enable-err-language=Korean \ --enable-poll \ --enable-linux-netfilter \ --enable-truncate À§¿¡¼ --enable-cachemgr-hostname=`hostname` ÀÌ ¿É¼ÇÀº ÀÚ½ÅÀÇ Ä³½Ã ¸Å´ÏÀú·Î Á¢¼ÓÇÒ È£½ºÆ®¸¦ ÁöÁ¤ÇÒ ¼ö Àִ°ÍÀε¥.... À§Ã³·³ `hostname`À̶ó°í µÇ¾îÀÖ´Â°Ç ±âº»ÀûÀ¸·Î ÀÚ½ÅÀÇ localhost¸¦ À̾߱âÇϴ°ÍÀÌ´Ù. ´Ù¸¥ À¥¼¹ö¿¡¼ cachemgr.cgi¸¦ »ç¿ëÇؼ ³» squid¼¹öÀÇ Ä³½Ì »óŸ¦ º¸°íÀÚ ÇÑ´Ù¸é ´Ù¸¥ À¥¼¹öÀÇ È£½ºÆ®¸íÀ» Àû¾îÁÖ¸é µÈ´Ù. ÄÄÆÄÀÏ make find /* > /root/"$PACKAGE"1 ½ÇÁ¦ ¼³Ä¡ make install ·Î±×¿Í ij½¬ µð·ºÅ丮 »ý¼º ¹× ÆÛ¹Ì¼Ç Á¶Á¤ mkdir -p /var/spool/squid mkdir -p /var/log/squid chown squid.squid /var/spool/squid/ chown squid.squid /var/log/squid/ chmod 750 /var/spool/squid/ chmod 750 /var/log/squid/ ¼³Ä¡½Ã ¸¸µé¾îÁö´Â ·Î±× °æ·Î »èÁ¦ rm -rf /var/logs/ ½ÇÇà ¹ÙÀ̳ʸ®(½ÇÇàÆÄÀÏ) ¸µÅ© Á¦°Å strip /usr/sbin/RunCache strip /usr/sbin/squid strip /usr/sbin/squidclient strip /usr/lib/squid/* ¶óÀ̺귯¸® °æ·Î Àç¼³Á¤ ldconfig ÷ºÎÆÄÀÏÀ» ´Ù¿î ¹Þ¾Æ¼ ÆÔ°ú ½ÃÀÛ½ºÅ©¸³·Î º¹»ç \cp -f sysconfig/squid /etc/sysconfig/ \cp -f pam.d/squid /etc/pam.d/ \cp -f logrotate.d/squid /etc/logrotate.d/ \cp -f init.d/squid /etc/rc.d/init.d/ find /* > /root/"$PACKAGE"2 ½ÃÀÛ ½ºÅ©¸³Æ® µî·Ï chmod 700 /etc/rc.d/init.d/squid chown 0.0 /etc/rc.d/init.d/squid chkconfig --add squid chkconfig --level 345 squid on squid¼¹öÀÇ Ä³½Ì »óŸ¦ º¼¼ö ÀÖ´Â cgi½ºÅ©¸³Æ®°¡ ¼Ò½º¿¡ Æ÷ÇԵǾîÀִµ¥. cachemgr.cgi¶ó´Â ÆÄÀÏÀÌ´Ù.(¸¸¾à ´Ù¸¥°÷¿¡ ÀÖ´Â À¥¼¹ö¸¦ ÀÌ¿ë½Ã´Â ±× À¥¼¹ö·Î ¾Æ·¡ ÆÄÀÏÀ» º¹»ç) ij½Ã ¸Å´ÏÀú¸¦ ÀÚ½ÅÀÇ À¥¼¹öÀÇ cgi¸¦ ½ÇÇàÇÒ¼ö ÀÖ´Â °÷¿¡ º¹»çÇÑ´Ù. install -m755 -owww -gwww /usr/lib/squid/cachemgr.cgi /home/httpd/cgi-bin/ ³ªÀÇ °æ¿ì´Â ¾ÆÆÄÄ¡ÀÇ cgi·çÆ®°¡ /home/httpd/cgi-binÀ̹ǷΠÀ§Ã³·³ º¹»çÇß´Ù. ------------ httpd accelerator mode ·Î »ç¿ë½Ã ¼³Á¤ ½ÃÀÛ ----------------------------- ¾Æ·¡Ã³·³ squid¼³Á¤ ÆÄÀÏ »ý¼º echo "http_port 80 icp_port 0 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 128 MB #redirect_rewrites_host_header off cache_replacement_policy heap GDSF memory_replacement_policy heap GDSF cache_dir diskd /var/spool/squid 1000 16 256 cache_store_log none emulate_httpd_log on acl all src 0.0.0.0/0.0.0.0 http_access allow all cache_mgr vitro@vitro.pe.kr cache_effective_user squid cache_effective_group squid httpd_accel_uses_host_header on httpd_accel_host $HOSTNAME httpd_accel_host mail.$HOSTNAME httpd_accel_host www.$HOSTNAME httpd_accel_host jsp.$HOSTNAME httpd_accel_host smtp.$HOSTNAME httpd_accel_port 81 logfile_rotate 0 log_icp_queries off cachemgr_passwd 9192 all buffered_logs on #httpd_accel_with_proxy on" > /etc/squid/squid.conf À§ÀÇ ¼³Á¤¿¡¼ http_port 80´Â squid°¡ ¼ºñ½ºÇÒ Æ÷Æ®°í httpd_accel_port 81 ´Â ¾ÆÆÄÄ¡ÀÇ Æ÷Æ®´Ù. virtual hostname = $HOSTNAME virtual hostname = www.$HOSTNAME virtual hostname = jsp.$HOSTNAME virtual hostname = mail.$HOSTNAME virtual hostname = smtp.$HOSTNAME ÀÇ $HOSTNAMEÀ» ÀÚ½ÅÀÌ »ç¿ëÇÏ°í ÀÖ´Â ¹öÃß¾ó È£½ºÆà ¼¹ö¸íÀ¸·Î °íÄ¡¸é µÈ´Ù. ±×¸®°í ¾ÆÆÄÄ¡°¡ 80¹øÀ¸·Î µ¹¾Æ°¡°í Àִ°ÍÀ» ¾ÆÆÄÄ¡¼³Á¤ÆÄÀÏ(httpd.conf)¸¦ ¿¾î¼ 80Æ÷Æ®·Î µÈ°ÍÀ» 81¹ø Æ÷Æ®·Î ´Ù °íÃÄÁØ´Ù. ------------ httpd accelerator mode ·Î »ç¿ë½Ã ¼³Á¤ ³¡ ----------------------------- ------------ Proxy mode ·Î »ç¿ë½Ã ¼³Á¤ ½ÃÀÛ ----------------------------- echo "icp_port 0 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 128 MB cache_replacement_policy heap GDSF memory_replacement_policy heap GDSF cache_dir diskd /var/spool/squid 2000 16 256 cache_store_log none #acl localnet src 192.168.1.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl Safe_ports port 80 443 210 70 21 1025-65535 acl CONNECT method CONNECT acl all src 0.0.0.0/0.0.0.0 #http_access allow localnet http_access allow localhost http_access allow all http_access deny !Safe_ports http_access deny CONNECT #http_access deny all cache_mgr vitro@vitro.pe.kr cache_effective_user squid cache_effective_group squid logfile_rotate 0 log_icp_queries off cachemgr_passwd 9192 all buffered_logs on #httpd_accel_with_proxy on" > /etc/squid/squid.conf À§ÀÇ ¼³Á¤¿¡¼ squid°¡ ¼ºñ½ºÇÒ Æ÷Æ®¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Âµ¥ ÁöÁ¤ÇÏÁö ¾ÊÀ»°æ¿ì ±âº»À¸·Î 3128Æ÷Æ®¸¦ »ç¿ëÇÑ´Ù. ÀÌÁ¦ À¥ºê¶ó¿ìÀúÀÇ µµ±¸ -> ÀÎÅÍ³Ý ¿É¼Ç -> ¿¬°á -> ·£¼³Á¤ -> »ç¿ëÀÚ·£¿¡ ÇÁ·Ï½Ã »ç¿ëÀ» üũÇÑµÚ ÀÚ½ÅÀÇ ¸®´ª½º ÇÁ¶ô½Ã·Î ipÁÖ¼Ò¸¦ Àû°í Æ÷Æ®¸¦ 3128·Î ÁöÁ¤ÇØÁÖ°í ÀÎÅͳÝÀ» Çϸé ÀÌÁ¦ºÎÅÍ º¸ÀÌ´Â À¥ »çÀÌÆ® ȸéÀº ¸ÕÀú ÇÁ¶ô½Ã¿¡¼ ÆäÀÌÁö¸¦ Àоî¿ÂµÚ¿¡ À©µµ¿ì À¥ºê¶ó¿ìÀú·Î º¸¿©Áö´Â°ÍÀÌ´Ù. ÀÌ¿Í °°Àº ºê¶ó¿ìÀú¿¡¼ÀÇ ÇÁ¶ô½Ã ¼³Á¤À» ÇÏÁö ¾Ê°í »ç¿ëÇÏ°í ½ÍÀ»¶§ ÆÐŶÇÊÅÍ ¹æȺ®¼³Á¤À» ÇÏ¿©¼ 80Æ÷Æ®·Î °¡´Â ÆÐŶÀ» 3128¹ø Æ÷Æ®·Î ¸®´ÙÀÌ·ºÆ®ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» Transparent Proxy(Åõ¸í ÇÁ¶ô½Ã)¶ó°í Çϴµ¥ ÀÌ°ÍÀ» ¼³Á¤ÇÏ´Â °ÍÀº ½¬¿ì¸ç Á© ¾Æ·¡¿¡ ¼³Á¤À» Ãß°¡ÇÒ ºÎºÐÀ» Ãß°¡ÇÑ´Ù. ------------ Proxy mode ·Î »ç¿ë½Ã ¼³Á¤ ³¡ ----------------------------- squidµ¥¸ó ½ºÅ¸Æ® /etc/rc.d/init.d/squid start --------------------- Åõ¸í ÇÁ¶ô½Ã »ç¿ëÇҽà --------------------------- Åõ¸í ÇÁ¶ô½Ã¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ³»ºÎ ³×Æ®¿öÅ©(192.168.0.0)°¡ ÇÊ¿äÇÏ°í °øÀÎ ¾ÆÇǸ¦ °¡Áø ¸®´ª½º°¡ ÇÑ´ë ÀÖ´Ù°í °¡Á¤ÇÏ°í ÀÌ ¸®´ª½º¿¡´Â ·£Ä«µå°¡ µÎ°³ ÀÖ¾î¾ßÇÑ´Ù. Áï ¸®´ª½º gateway¼¹ö·Î µ¹¾Æ°¡´Â ¸®´ª½º°¡ ÇÑ´ë ÇÊ¿äÇÏ´Ù. gateway¼³Á¤Àº kldp¸¦ ÂüÁ¶Ç϶ó. gateway¼³Á¤Àº Àß µÇ¾îÀÖ´Ù°í º¸°í ¾Æ·¡¿Í °°Àº ¼³Á¤À» °ÔÀÌÆ®¿þÀÌÀÇ iptables·ê¿¡ Ãß°¡ÇÑ´Ù. Ȥ½Ã ¸ð¸£¹Ç·Î ¾Æ·¡°°Àº ¸¶½ºÅ©·¹ÀÌµå ·êÀÌ Àû¿ë ¾ÈµÇ¾ú´Ù¸é Àû¿ëÇضó iptables -t nat -A POSTROUTING -p TCP -s 0/0 --dport 21 -j MASQUERADE iptables -t nat -A POSTROUTING -p TCP -d 0/0 --dport 20 -j MASQUERADE iptables -t nat -A POSTROUTING -p TCP --dport 25 -j MASQUERADE iptables -t nat -A POSTROUTING -p TCP --dport 110 -j MASQUERADE iptables -t nat -A POSTROUTING -p TCP --dport 22 -j MASQUERADE iptables -t nat -A POSTROUTING -p TCP --dport 23 -j MASQUERADE echo "###################################################################################" echo "### Transparent Proxy with Squid ###" echo "### iptables -t nat -A PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 3128 ###" echo "###################################################################################" ±×¸®°í squid.conf¿¡ ´ÙÀ½ÀÇ ¼³Á¤À» Ãß°¡ÇÑ´Ù. httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on ÀÌÁ¦ squid¸¦ µ¥¸óÀ» Àç½ÃÀÛÇϸé ÀÌ ¸®´ª½º gatewayÀ» ÅëÇÏ¿© ÀÎÅͳÝÀ» »ç¿ëÇÏ´Â ÄÄÅÍ´Â ¸ðµÎ À¥Ä³½ÌÀ» ÇÏ¿© ÀÎÅͳÝÀ» ÇÏ°Ô µÈ´Ù. |
Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=129 |