Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ
  squid¼³Ä¡(Åõ¸í ÇÁ¶ô½Ã¿Í À¥°¡¼Ó¸ðµå) ÀÛ¼ºÀÏ : 2003/11/18 14:28
 
  • ±Û¾´ÀÌ : ºñÃ÷·Î ( http://vitro.pe.kr/ )
  • Á¶È¸¼ö : 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