Skip to content

junseul/HowToUseSquid

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 

Repository files navigation

μŠ€ν€΄λ“œ(Squid)둜 ν”„λ‘μ‹œ μ„œλ²„ κ΅¬μΆ•ν•˜κΈ°

squid main

μŠ€ν€΄λ“œ(Squid)

  • 사전적인 μ˜λ―Έλ‘œλŠ” β€˜μ˜€μ§•μ–΄β€™
  • μ˜€ν”ˆ μ†ŒμŠ€(GPL) μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘μ‹œ μ„œλ²„μ΄μž μ›Ή μΊμ‹œ
  • 반볡된 μš”μ²­μ„ μΊμ‹±ν•¨μœΌλ‘œ μ›Ήμ„œλ²„μ˜ 속도λ₯Ό ν–₯μƒμ‹œν‚΄
  • λ„€νŠΈμ›Œν¬ μžμ›μ„ κ³΅μœ ν•˜λ €λŠ” μ‚¬λžŒλ“€μ—κ²Œ μ›Ή, DNS와 λ‹€λ₯Έ λ„€νŠΈμ›Œν¬ κ²€μƒ‰μ˜ 캐싱을 μ œκ³΅ν•¨
  • νŠΈλž˜ν”½μ„ 걸러쀌으둜써 μ•ˆμ •μ„±μ— 도움을 μ£ΌλŠ” 등에 이λ₯΄κΈ°κΉŒμ§€ κ΄‘λ²”μœ„ ν•˜κ²Œ 이용됨

ν”„λ‘μ‹œ μ„œλ²„(Proxy server)

  • 사전적인 μ˜λ―Έλ‘œλŠ” β€˜λŒ€λ¦¬μΈ'
  • ν΄λΌμ΄μ–ΈνŠΈκ°€ μžμ‹ μ„ ν†΅ν•΄μ„œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬ μ„œλΉ„μŠ€μ— κ°„μ ‘μ μœΌλ‘œ 접속할 수 있게 ν•΄ μ£ΌλŠ” μ»΄ν“¨ν„°λ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨
  • μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄μ—μ„œ μ€‘κ³„κΈ°λ‘œμ„œ λŒ€λ¦¬λ‘œ 톡신을 μˆ˜ν–‰ν•˜λŠ” κΈ°λŠ₯을 κ°€λ¦¬μΌœ 'ν”„λ‘μ‹œ', κ·Έ 쀑계 κΈ°λŠ₯을 ν•˜λŠ” 것을 'ν”„λ‘μ‹œ μ„œλ²„' 라고 뢀름

ν”„λ‘μ‹œ μ„œλ²„μ˜ μž₯점

  • ν”„λ‘μ‹œ μ„œλ²„μ— μš”μ²­λœ λ‚΄μš©λ“€μ„ μΊμ‹œμ— μ €μž₯ ν›„, μΊμ‹œ μ•ˆμ— μžˆλŠ” 정보λ₯Ό μ΄μš©ν•¨μœΌμ¨ λΆˆν•„μš”ν•˜κ²Œ μ™ΈλΆ€μ™€μ˜ 연결을 ν•˜μ§€ μ•Šμ•„ 전솑 μ‹œκ°„μ„ μ ˆμ•½ ν•  수 있음
  • μ™ΈλΆ€μ™€μ˜ νŠΈλž˜ν”½μ„ μ€„μ΄κ²Œ 됨으둜써 λ„€νŠΈμ›Œν¬ 병λͺ© ν˜„μƒμ„ λ°©μ§€ν•˜λŠ” νš¨κ³Όλ„ 얻을 수 있음

ν”„λ‘μ‹œ μ„œλ²„ μ‚¬μš© λͺ©μ 

  • μΊμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¦¬μ†ŒμŠ€λ‘œμ˜ 접근을 λΉ λ₯΄κ²Œ ν•˜κΈ° μœ„ν•΄
  • μ›ν•˜μ§€ μ•ŠλŠ” μ‚¬μ΄νŠΈλ₯Ό 차단을 μœ„ν•΄
  • 인터넷 이용λ₯ μ„ 기둝, 검사λ₯Ό μœ„ν•΄
  • μ•…μ˜μ μΈ μ˜λ„λ‘œ λ°”μ΄λŸ¬μŠ€, μ•…μ„± 루머 μ „νŒŒ λ˜λŠ”, λ‹€λ₯Έ 정보듀을 λΉΌλ‚Ό λͺ©μ μœΌλ‘œ
  • IP 좔적을 λ‹Ήν•˜μ§€ μ•Šμ„ λͺ©μ μœΌλ‘œ
  • λ°–μœΌλ‘œ λ‚˜κ°€κ±°λ‚˜, μ•ˆμœΌλ‘œ λ“€μ–΄μ˜€λŠ” μ½˜ν…μΈ λ₯Ό κ²€μ‚¬ν•˜κΈ° μœ„ν•΄
  • μš°νšŒν•˜κΈ° μœ„ν•΄

μŠ€ν€΄λ“œ(Squid) μ„€μΉ˜

  • homebrew λ₯Ό μ΄μš©ν•œ μŠ€ν€΄λ“œ μ„€μΉ˜

brew install squid

  • yum 을 μ΄μš©ν•œ μŠ€ν€΄λ“œ μ„€μΉ˜

yum install squid


μŠ€ν€΄λ“œ(Squid) ꡬ성

  1. squid/bin : squid μ‹€ν–‰κ³Ό κ΄€λ ¨λœ 슀크립트 파일이 μžˆλŠ” 디렉토리
  2. squid/etc : squid κ΄€λ ¨ ν™˜κ²½ μ„€μ • 파일인 squid.conf κ°€ μžˆλŠ” 디렉토리
  3. squid/libexec : μ„œλ²„μš΄μ˜κ³Ό κ΄€λ ¨λœ 슀크립트 파일이 μžˆλŠ” 디렉토리
  4. squid/lib : ν”„λ‘œκ·Έλž¨ κ°œλ°œμ— ν•„μš”ν•œ 라이브러리 정보듀이 μžˆλŠ” 디렉토리
  5. squid/man : man λͺ…λ Ή κ΄€λ ¨ 정보듀이 μžˆλŠ” 디렉토리
  6. squid/sbin : squid μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” squid λΌλŠ” λͺ…령이 μœ„μΉ˜ν•˜λŠ” 디렉토리
  7. squid/share : squid λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ λ°œμƒν•˜λŠ” μ—λŸ¬ λ©”μ‹œμ§€μ— λŒ€ν•œ 정보듀이 μžˆλŠ” 디렉토리
  8. squid/var : 둜그 νŒŒμΌμ— λŒ€ν•œ 정보듀이 μžˆλŠ” 디렉토리

μŠ€ν€΄λ“œ(Squid) μ„€μ •

  • squid.conf νŒŒμΌμ„ μˆ˜μ •ν•˜λ©΄ 됨

포트 μ„€μ •

http_port 3128
 - μŠ€ν€΄λ“œ μ„œλ²„ 포트λ₯Ό μ„€μ •ν•œλ‹€.
 - default 값은 3128 이닀.

μΊμ‹œ μ„€μ •

cache_mem 8 MB
 - μŠ€ν€΄λ“œ μ„œλ²„μ—μ„œ μ‚¬μš©ν•˜λŠ” μΊμ‹œ μ‚¬μ΄μ¦ˆλ₯Ό μ„€μ •ν•œλ‹€.
maximum_object_size 4096 KB
 - μΊμ‹œ μ„œλ²„μ— μ €μž₯될 수 μžˆλŠ” 객체 즉, 파일의 크기λ₯Ό μ œν•œν•˜λŠ” μ˜΅μ…˜μ΄λ‹€.
cache_dir ufs /usr/local/squid/cache 100 16 256
 - μΊμ‹œκ°€ μ €μž₯될 경둜λ₯Ό μ§€μ •ν•΄μ£ΌλŠ” ν•­λͺ©μœΌλ‘œ 크기와 생성될 ν•˜μœ„ 1μ°¨ 및 2μ°¨ λ””λ ‰ν† λ¦¬μ˜ 수λ₯Ό μ§€μ •ν•œλ‹€. 
 - ν˜„μž¬ 섀정은 /usr/local/squid/cache 디렉토리에 μΊμ‹œλ°μ΄ν„°λ“€μ΄ μ΅œλŒ€ 100MB κΉŒμ§€ μ €μž₯될 수 있고, μΊμ‹œκ°€ μ €μž₯될 1μ°¨ λ””λ ‰ν† λ¦¬λŠ” 16 개둜 μ„€μ •ν•˜κ³  κ·Έ 밑에 2μ°¨ 디렉토리 수λ₯Ό 256 개둜 μ„€μ •ν•œλ‹€.
cache_mgr admin
 - μΊμ‹œμ„œλ²„μ˜ κ΄€λ¦¬μž 계정을 μ§€μ •ν•œλ‹€.
cache_effective_user squid
cache_effective_group squid
 - μŠ€ν€΄λ“œ μ„œλ²„ 캐쉬 λ””λ ‰ν† λ¦¬μ˜ μ†Œμœ μžμ™€ μ†Œμœ μžκ·Έλ£Ήμ„ λ‚˜νƒ€λ‚Έλ‹€.
 - ν˜„μž¬ 섀정은 cache κ°€ squid λž€ uid/gid 둜 μž‘λ™ν•˜λ„λ‘ μ„€μ •ν•œλ‹€.

둜그 μ„€μ •

cache_access_log /usr/local/squid/logs/access.log
 - μ ‘κ·Όλ‘œκ·Έλ₯Ό κΈ°λ‘ν•˜λŠ” νŒŒμΌμ„ μ„€μ •ν•œλ‹€.
cache_log /usr/local/squid/logs/cache.log
 - 캐쉬섀정에 κ΄€ν•œ 둜그λ₯Ό κΈ°λ‘ν•˜λŠ” νŒŒμΌμ„ μ„€μ •ν•œλ‹€.
cache_store_log /usr/local/squid/logs/store.log
 - μ €μž₯λ˜λŠ” 둜그(이미지, μ•„μ΄μ½˜ λ“±)λ₯Ό κΈ°λ‘ν•˜λŠ” νŒŒμΌμ„ μ„€μ •ν•œλ‹€.
debug_options ALL,1
 - μŠ€ν€΄λ“œκ°€ λ™μž‘ν•  λ•Œ 였λ₯˜μ²΄ν¬ κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ λ‘œκ·ΈνŒŒμΌμ— 기둝할 수 있게 ν•˜λŠ” μ˜΅μ…˜μ΄λ‹€.
 - ν˜„μž¬ 섀정은 λͺ¨λ“  ν•­λͺ©μ— λŒ€ν•΄ 기본적인 κ°’λ§Œ λ‘œκ·Έμ— 남도둝 μ„€μ •ν•œ 것이닀.
buffered_logs on
 - 둜그 κΈ°λ‘μ‹œ μ‚¬μš©λ˜λŠ” μ‹œμŠ€ν…œ μžμ›μ„ μ ˆμ•½ν•¨μœΌλ‘œμ¨ μ•½κ°„μ˜ 속도 ν–₯상을 κΈ°λŒ€ν•  수 μžˆλŠ” μ˜΅μ…˜μ΄λ‹€.

νŠΉμ •μ‚¬μ΄νŠΈ 차단

acl blocksitelist dstdomain "blockwebsites.lst"
http_access deny blocksitelist
cat blockwebsites.lst
www.naver.com
www.jejunu.ac.kr

μ ‘κ·Ό μ„€μ •

 visible_hostname ν˜ΈμŠ€νŠΈμ΄λ¦„
  - squid μ„œλ²„μ— νŠΉμ • 호슀트 이름을 λΆ€μ—¬ν• μˆ˜ μžˆλ‹€.
acl all src 0.0.0.0/0.0.0.0
 - ACL은 Access Control의 μ•½μžλ‘œ ν”„λ‘μ‹œ μ„œλ²„μ— μ ‘κ·Όν•  수 μžˆλŠ” λ²”μœ„λ₯Ό μ„€μ •ν•˜λŠ” μ˜΅μ…˜μœΌλ‘œ http_access와 ν•¨κ»˜ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. 
 - all의 λ²”μœ„λŠ” srcμ˜΅μ…˜μœΌλ‘œ μ§€μ •ν•œ λ²”μœ„λŠ” μ†ν•˜λŠ” λ„€νŠΈμ›Œν¬λ₯Ό μ§€μ •ν•œλ‹€. 
 - ν˜„μž¬μ²˜λŸΌ 0.0.0.0/0.0.0.0으둜 μ„€μ •ν•˜λ©΄ λͺ¨λ“  λ„€νŠΈμ›Œν¬μ— λŒ€ν•΄μ„œ ν”„λ‘μ‹œμ„œλ²„μ— μ ‘κ·Όν•  수 μžˆλ‹€. 
 - μžμ‹ μ˜ ν”„λ‘μ‹œμ„œλ²„μ— μ œν•œμ—†μ΄ λͺ¨λ“  λ„€νŠΈμ›Œν¬λ“€μ΄ μ ‘κ·Όν•  수 μžˆλ„λ‘ μ„€μ •ν•œ ν›„ httpd_access둜 ν”„λ‘μ‹œ μ„œλ²„μ‚¬μš©κΆŒν•œμ„ λΆ€μ—¬ν•  수 μžˆλ‹€.
acl all src 0.0.0.0/0.0.0.0
http_access allow all
 - λͺ¨λ“  λ„€νŠΈμ›Œν¬λ“€μ΄ μžμ‹ μ˜ ν”„λ‘μ‹œμ„œλ²„λ₯Ό μ΄μš©ν•  수 있게 μ§€μ •ν•œ 것이닀. 
 - 이 κ²½μš°μ—λŠ” λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ μ΄ˆλž˜ν•  수 μžˆλ‹€. 
http_access deny all
 - ν΄λΌμ΄μ–ΈνŠΈκ°€ ν”„λ‘μ‹œ μ„œλ²„μ— 접속을 ν—ˆμš©ν•  것인지 κ±°λΆ€ν•  것인지 κ²°μ •ν•΄μ£ΌλŠ” μ˜΅μ…˜μœΌλ‘œ aclκ³Ό ν•¨κ»˜ μ‚¬μš©λœλ‹€. 
 - http_accessλ‹€μŒμ— all λ˜λŠ” denyλ₯Ό μ§€μ •ν•˜κ³  acl리슀트 쀑 ν•˜λ‚˜λ₯Ό 지정해 μ‚¬μš©ν•œλ‹€.
acl user src 192.168.3.69
acl all src 0.0.0.0/0.0.0.0
http_access allow ser
http_access deny all
 - 192.168.3.69 λ„€νŠΈμ›Œν¬μ£Όμ†Œλ₯Ό user 만 ν”„λ‘μ‹œμ„œλ²„ 접속을 ν—ˆμš©ν•˜κ³ , λ‹€λ₯Έ λ„€νŠΈμ›Œν¬μ— λŒ€ν•΄μ„œλŠ” 접속을 κ±°λΆ€ν•œλ‹€.
acl members src 192.168.3.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow members
http_access deny all
 - 192.168.3.0 λ„€νŠΈμ›Œν¬μ£Όμ†Œλ₯Ό members λ²”μœ„λ‘œ κ·œμ •ν•˜μ—¬ http_access μ—μ„œ ν”„λ‘μ‹œμ„œλ²„ 접속을 ν—ˆμš©ν•˜κ³ , λ‹€λ₯Έ λ„€νŠΈμ›Œν¬μ— λŒ€ν•΄μ„œλŠ” 접속을 κ±°λΆ€ν•œλ‹€.

μŠ€ν€΄λ“œ(Squid) μ„œλ²„ μ‹œμž‘/μ’…λ£Œ

  1. squid.conf μ—μ„œ ν™˜κ²½μ„€μ •

    vi /squid/etc/squid.conf

  2. μΊμ‹œ μ˜μ—­μœΌλ‘œ μ‚¬μš©ν•  디렉토리λ₯Ό /squid/var ν•˜λ‚˜μœ„μ— 생성

    mkdir /squid/var/cache

  3. λͺ¨λ“  μ‚¬λžŒλ“€μ΄ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν—ˆκ°€κΆŒμ„ μ„€μ •

    chmod 777 /squid/var/cache

  4. μΊμ‹œμš© 디렉토리λ₯Ό μ΄ˆκΈ°ν™”

    /squid/sbin/squid -z

  5. 데λͺ¬μ„ μ‹€ν–‰

    • /squid/sbin/squid

    • service squid start

  6. 데λͺ¬μ„ μ’…λ£Œ

    • squid -k shutdown

    • service squid stop

  7. 데λͺ¬μ„ μž¬μ‚΄ν–‰

    • squid restart

    • service squid restart

  8. 싀행쀑인 데λͺ¬ 확인

    • service squid status

    • ps -ef | grep squid


ν”„λ‘μ‹œ μ„œλ²„ μ‚¬μš©ν•˜κΈ°

  • μ›ΉλΈŒλΌμš°μ €μ— λ§žμΆ°μ„œ ν™˜κ²½μ„€μ •μ—μ„œ ν•΄μ£Όλ©΄ 됨

PC 의 경우

크둬(Chrome)

1. 크둬 λ§žμΆ€μ„€μ • 및 μ œμ–΄μ—μ„œ 'μ„€μ •' 탭을 클릭

chrome_1

2. 'κ³ κΈ‰ μ„€μ • ν‘œμ‹œ' 클릭

chrome_2

3. 'ν”„λ‘μ‹œ μ„€μ • λ³€κ²½' 클릭

chrome_3

4. ν”„λ‘μ‹œ μ„œλ²„ IP 와 Port λ₯Ό μ„€μ • ν›„ 승인

chrome_4


νŒŒμ΄μ–΄ν­μŠ€(Firefox)

1. νŒŒμ΄μ–΄ν­μŠ€ 메뉴 μ—΄κΈ°μ—μ„œ 'ν™˜κ²½' 탭을 클릭

firefox_1

2. 'κ³ κΈ‰ μ„€μ •'μ—μ„œ 'λ„€νŠΈμ›Œν¬' νƒ­μ—μ„œ 'μ„€μ •' 클릭

firefox_2

3. 'ν”„λ‘μ‹œ μˆ˜λ™ μ„€μ •' μ—μ„œ ν”„λ‘μ‹œ μ„œλ²„ IP 와 Port λ₯Ό μ„€μ • ν›„ 확인

firefox_3


Mobile(Android) 의 경우

1. λ¬΄μ„ λ„€νŠΈμ›Œν¬λ₯Ό 길게 λˆ„λ₯΄κ³ , 'λ„€νŠΈμ›Œν¬ μ„€μ • λ³€κ²½' 클릭
2. 'κ³ κΈ‰ μ˜΅μ…˜ ν‘œμ‹œ' μ²΄ν¬λ°•μŠ€λ₯Ό μ„€μ •ν•˜κ³  '아이피 와 포트번호' μž…λ ₯ ν›„ μ €μž₯

firefox_2


μ£Όμ˜μ‚¬ν•­

  • μ ‘κ·Ό μ„€μ • μˆœμ„œ
    1. νŠΉμ •μ‚¬μ΄νŠΈ 차단
    2. μ ‘κ·Ό μ„€μ •
    3. λ‚˜λ¨Έμ§€ μ‚¬μš©μž 차단('http_access deny all')
  • λͺ¨λ“  μ‚¬μš©μž κ°€ μΊμ‹œ(cache) 디렉토리 접근을 μœ„ν•΄ μ ‘κ·ΌκΆŒν•œ (chmod 777)을 μ€˜μ•Όν•¨
  • κ·Έλž˜λ„, μΊμ‹œ(cache) 디렉토리 접근을 λͺ»ν•  μ‹œ μ†Œμœ μž 와 μ†Œμœ μž κ·Έλ£Ή 을 확인
  • νŠΉμ •μ‚¬μ΄νŠΈ 차단을 νŒŒμΌμ„ 톡해 μ„€μ • μ‹œ, 파일 μ•ˆμ— μ•„λ¬΄λ‚΄μš©μ΄ 없을 경우 κ²½κ³ λ₯Ό 좜λ ₯함
  • μŠ€ν€΄λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” 쀑에 μ—λŸ¬κ°€ λ°œμƒν•  경우 '/var/log/messages' λ₯Ό 확인

참고자료


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published