🌐 로컬 네트워크용 프록시 서버란?
로컬 네트워크용 프록시 서버는 기업 또는 가정 네트워크 내부에 위치하여 네트워크 내 모든 장치가 단일 제어 지점을 통해 인터넷에 액세스하도록 지원하는 중간 서버입니다.
작동 방식:
- 로컬 네트워크 내의 사용자(컴퓨터, 스마트폰, 태블릿)가 요청을 보냅니다.
- 프록시 서버(192.168.1.100:3128)가 요청을 수신하고 액세스 규칙을 확인합니다.
- 프록시가 자신의 이름으로 인터넷에 요청을 보냅니다.
- 인터넷 서버가 프록시 서버에 응답합니다.
- 프록시가 응답을 사용자에게 다시 전달합니다.
💡 간단한 비유
직원 한 명이 비서 역할을 하는 사무실을 상상해 보세요. 모든 직원은 비서를 통해 요청을 전달하며, 비서는 누가 전화를 걸 수 있는지 통제하고, 모든 통화를 기록하며, 원치 않는 번호를 차단할 수 있습니다. 프록시 서버는 바로 이 "비서"와 같은 역할을 네트워크 전체에 수행합니다.
❓ 로컬 프록시 서버가 필요한 이유
접근 제어
인터넷 리소스에 대한 중앙 집중식 관리. 근무 시간 중 소셜 미디어 차단, 토렌트 금지, 사이트 카테고리별 필터링.
트래픽 모니터링
누가, 언제, 어떤 사이트를 방문했는지, 트래픽을 얼마나 사용했는지에 대한 상세 통계. 사용자 및 부서별 보고서. 데이터 유출 감지.
캐싱
자주 요청되는 파일을 프록시 서버에 저장. 인터넷 회선 최대 40% 절약, Windows 업데이트 및 바이러스 백신 데이터베이스 로딩 속도 향상.
보안
악성 사이트, 피싱, 바이러스로부터 보호. 다운로드 파일 스캔. 네트워크 수준에서 광고 및 트래커 차단.
비용 절감
캐싱 및 제어를 통한 인터넷 비용 절감. 여러 회선 대신 단일 회선 사용. 사용자별 한도 제어.
차단 우회
외부 프록시를 통한 차단된 리소스 액세스. 지역 제한 우회를 위한 프록시 체인 설정.
🎯 로컬 프록시 사용 사례
🏢 기업 네트워크 (직원 50-500명)
- 생산성 제어: 근무 시간 중 소셜 미디어, YouTube, 게임 사이트 차단
- 보안: 악성 사이트 필터링, 다운로드 파일 검사
- 보고: 보안팀 및 IT 부서를 위한 상세 로그
- 비용 절감: Windows, Office, 바이러스 백신 업데이트 캐싱
예시: 직원 200명의 "알파" 회사는 Squid 프록시를 설치하여 캐싱을 통해 인터넷 회선 사용량을 35% 절감했습니다. 절감액: 월 $450.
🏫 교육 기관
- 아동 보호: 18금 콘텐츠, 폭력, 도박 사이트 차단
- 접근 제어: 교사와 학생에게 다른 규칙 적용
- 스케줄링: 정보학 수업 시간에만 YouTube 접근 허용
- 관리자 보고서: 학생 활동 모니터링
🏠 가정 네트워크
- 자녀 보호: 자녀의 특정 사이트 접근 제한
- 광고 차단: 네트워크 내 모든 장치의 광고 제거
- IoT 보안: 스마트 기기(카메라, TV, 스피커) 트래픽 제어
- 트래픽 절약: 데이터 제한이 있는 모바일 인터넷 사용자에게 유용
🧪 테스트 및 개발
- 트래픽 가로채기: 모바일 애플리케이션 API 요청 분석
- 응답 대체: 서버로부터 수정된 데이터로 애플리케이션 테스트
- 느린 인터넷 시뮬레이션: 3G 환경 테스트를 위한 속도 제한(Throttling)
- SSL 검사: 디버깅을 위한 HTTPS 트래픽 분석
🔧 로컬 프록시 서버 유형
📡 HTTP/HTTPS 프록시
목적: 웹 트래픽(브라우저, 애플리케이션) 프록시
예시: Squid, Apache Traffic Server, nginx
특징:
✅ 콘텐츠 캐싱
✅ URL 필터링
✅ 헤더 수정
🔌 SOCKS 프록시
목적: 모든 TCP/UDP 트래픽의 범용 프록시
예시: Dante, Shadowsocks, 3proxy
특징:
✅ 모든 프로토콜 지원
✅ UDP 지원(SOCKS5)
✅ 최소 지연 시간
🪟 투명(Transparent) 프록시
목적: 클라이언트 설정 없이 보이지 않게 프록시 처리
예시: transparent 모드의 Squid + iptables
특징:
✅ 클라이언트 설정 불필요
✅ 라우터 수준에서 가로채기
⚠️ HTTPS의 경우 더 복잡함
🔗 리버스(Reverse) 프록시
목적: 웹 서버의 부하 분산 및 보호
예시: nginx, HAProxy, Apache mod_proxy
특징:
✅ 부하 분산
✅ SSL 종료(Termination)
✅ DDoS 방어
🏗️ 프록시 서버를 이용한 로컬 네트워크 아키텍처
일반적인 기업 네트워크 구성도
┌─────────────────────────────────────────────────┐
│ 🌐 인터넷 (INTERNET) │
└────────────────┬────────────────────────────────┘
│
┌───────▼────────┐
│ 🛡️ 방화벽 (Firewall) │ (경계 보호)
│ 192.168.0.1 │
└───────┬────────┘
│
┌───────▼────────┐
│ 🔄 라우터 (Router) │ (경로 지정)
│ 192.168.1.1 │
└───────┬────────┘
│
┌────────────┼────────────┐
│ │ │
┌───▼────┐ ┌───▼────┐ ┌───▼────┐
│ 💻 PC1 │ │ 💻 PC2 │ │ 📱 Phone│
│.10 │ │.11 │ │.12 │
└────────┘ └────────┘ └─────────┘
│ │ │
└────────────┼────────────┘
│ (모든 요청은 프록시를 통해 전송됨)
┌───────▼────────┐
│ 🔧 프록시 (PROXY) │ (Squid/CCProxy)
│ 192.168.1.100 │ 포트: 3128
│ + 캐시 (500GB) │
│ + 로그 │
│ + 필터 │
└────────────────┘
구성도 작동 방식:
- 사용자(PC1)가 브라우저에서 프록시 설정:
192.168.1.100:3128 - 요청은 인터넷으로 직접 가지 않고 프록시 서버로 전송됩니다.
- 프록시가 접근 규칙을 확인합니다 (해당 사이트 허용 여부).
- 프록시가 사용자 대신 콘텐츠를 요청합니다.
- 프록시가 응답을 받아 사용자에게 전달합니다.
- 재요청 시 프록시가 캐시에서 데이터를 즉시 제공합니다.
⚠️ 아키텍처의 중요 사항
- 내결함성: 프록시가 다운되면 모든 네트워크가 인터넷 접근 불가 (해결책: 백업 프록시)
- 성능: 프록시는 네트워크의 모든 트래픽을 처리해야 함 (100명 기준 최소 4코어 CPU, 8GB RAM)
- 저장 공간: 캐싱을 위해 빠른 SSD 디스크 필요 (100-200명 기준 500GB 이상 권장)
- 대역폭: 프록시의 네트워크 카드는 인터넷 회선보다 느리지 않아야 함 (최소 Gigabit Ethernet)
⚖️ 로컬 프록시의 장점과 단점
✅ 장점
🎯 중앙 집중식 제어
네트워크 전체에 대한 단일 제어 지점. 모든 장치에서 개별 설정 없이 변경 사항이 즉시 적용됩니다.
📊 상세 분석
모든 요청이 로깅됩니다. 누가, 언제, 어떤 사이트를 방문했고, 트래픽을 얼마나 사용했는지 확인할 수 있습니다. 감사 및 최적화에 이상적입니다.
💰 회선 절약
캐싱을 통해 인터넷 사용량을 30-40% 절감할 수 있습니다. OS 업데이트, 바이러스 백신, 인기 사이트에 특히 효과적입니다.
🛡️ 네트워크 보호
프록시 수준에서 악성 사이트, 피싱, 바이러스 차단. 컴퓨터의 바이러스 백신 외에 추가적인 보호 계층.
🔒 내부 구조 숨김
모든 요청은 프록시 서버의 IP로 나갑니다. 외부에서는 실제 워크스테이션의 IP 주소를 볼 수 없습니다.
❌ 단점
⚠️ 단일 장애 지점
프록시 서버가 고장나면 네트워크 전체가 인터넷 접근 권한을 잃습니다. 해결책: 백업 서버 또는 자동 우회 설정.
🐌 속도 저하 가능성
서버 성능이 부족하면 지연이 발생할 수 있습니다. 사용자 수에 맞게 하드웨어를 올바르게 선택해야 합니다.
🔧 설정 복잡성
숙련된 시스템 관리자가 필요합니다. Squid, 필터링 규칙, SSL 검사 설정은 초보자에게는 어렵습니다.
💾 리소스 요구 사항
캐시를 위한 대용량 디스크와 우수한 하드웨어를 갖춘 전용 서버가 필요합니다. 200명 사용자 기준: 8-16GB RAM, 500GB+ SSD.
👁️ HTTPS 문제
HTTPS 검사를 위해서는 모든 장치에 루트 인증서를 설치해야 합니다. 일부 애플리케이션은 작동하지 않을 수 있습니다.
💡 결론
로컬 프록시 서버는 20명 이상의 기업 네트워크에 필수 요소입니다. 제어, 보안 및 비용 절감 측면의 이점이 설정 및 유지 관리의 복잡성을 상회합니다. 가정용의 경우 기술적 지식이 있고 특정 작업(자녀 보호, 광고 차단)이 필요할 때 고려할 만합니다.
비즈니스를 위한 준비된 프록시가 필요하신가요?
직접 서버를 설정하는 대신 ProxyCove의 준비된 솔루션을 이용하세요!
프로모션 코드 ARTHELLO로 등록하고 $1.3를 추가로 받으세요!
프록시 유형 선택:
📖 다음 편 보기: 파트 2: Windows 및 Linux용 Squid, CCProxy, 3proxy 설치 및 설정 방법
Squid 프록시 서버 설치
파트 2: Ubuntu/Debian/CentOS용 Squid 설치, 인증, 사이트 필터링, 캐싱, 클라이언트 설정 방법.
시리즈 계속 | 예상 독서 시간: 15분
📦 Squid 프록시 서버 설치
🐧 Ubuntu/Debian에 설치
# 시스템 업데이트
sudo apt update && sudo apt upgrade -y
# Squid 설치
sudo apt install squid -y
# 버전 확인
squid -v
# Squid Cache: Version 5.2
# 서비스 상태 확인
sudo systemctl status squid
# 자동 시작 활성화
sudo systemctl enable squid
🎩 CentOS/RHEL/Rocky Linux에 설치
# Squid 설치
sudo dnf install squid -y
# 또는 이전 CentOS 버전의 경우
sudo yum install squid -y
# 서비스 시작
sudo systemctl start squid
# 자동 시작 활성화
sudo systemctl enable squid
# 방화벽에서 포트 열기
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
📂 중요 파일 및 디렉토리
| 파일/디렉토리 | 용도 |
/etc/squid/squid.conf |
주요 설정 파일 |
/var/log/squid/access.log |
접근 로그 (모든 요청) |
/var/log/squid/cache.log |
서비스 작동 로그 |
/var/spool/squid/ |
캐시 디렉토리 |
/etc/squid/blocked_sites.txt |
차단된 사이트 목록 (수동 생성) |
⚙️ Squid 기본 설정
⚠️ 시작 전 중요 사항
설정 파일을 편집하기 전에 항상 백업하십시오:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
최소 작동 구성
# /etc/squid/squid.conf
# 프록시 포트
http_port 3128
# 로컬 네트워크 정의
acl localnet src 192.168.1.0/24
# 로컬 네트워크 접근 허용
http_access allow localnet
# 나머지 모두 거부
http_access deny all
# 메모리 캐시 크기 (256 MB)
cache_mem 256 MB
# 디스크 캐시 디렉토리 및 크기 (10 GB)
cache_dir ufs /var/spool/squid 10000 16 256
# 캐시 가능한 최대 파일 크기
maximum_object_size 100 MB
# 로그에 표시될 호스트 이름
visible_hostname proxy.company.local
# 로그 형식 (확장)
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %h" "%{User-Agent}>h"
access_log /var/log/squid/access.log combined
# 관리자 이메일 (오류 발생 시 표시됨)
cache_mgr admin@company.local
설정 적용
# 설정 오류 확인
sudo squid -k parse
# 오류가 없으면 Squid 재시작
sudo systemctl restart squid
# 상태 확인
sudo systemctl status squid
# 실시간 로그 확인
sudo tail -f /var/log/squid/access.log
🔐 사용자 인증
인증을 통해 로그인/암호를 기반으로 접근을 제어하고 통계를 기록할 수 있습니다.
사용자 파일 생성
# htpasswd 유틸리티 설치
sudo apt install apache2-utils -y
# 암호 파일 생성
sudo touch /etc/squid/passwords
# 사용자 ivan 추가 (암호 입력 요청)
sudo htpasswd /etc/squid/passwords ivan
# 다른 사용자 추가
sudo htpasswd /etc/squid/passwords maria
sudo htpasswd /etc/squid/passwords admin
# 올바른 권한 설정
sudo chown proxy:proxy /etc/squid/passwords
sudo chmod 640 /etc/squid/passwords
# 내용 확인
sudo cat /etc/squid/passwords
# ivan:$apr1$xyz...
# maria:$apr1$abc...
# admin:$apr1$def...
squid.conf 설정 (인증용)
# /etc/squid/squid.conf에 추가
# 기본 인증 설정
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm Proxy Server Authentication
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on
# 인증된 사용자를 위한 ACL 생성
acl authenticated proxy_auth REQUIRED
# 인증된 사용자만 접근 허용
http_access allow authenticated
# 로그에 사용자 이름 표시
logformat authenticated %{%Y-%m-%d %H:%M:%S}tl %>a %un "%rm %ru" %>Hs %
변경 사항 적용:
sudo squid -k parse && sudo systemctl restart squid
✅ 인증 확인
이제 프록시를 사용하려고 하면 브라우저에서 로그인 및 암호를 요청합니다. 설정 형식:
🚫 사이트 및 콘텐츠 필터링
🔒 도메인별 사이트 차단
1단계: 차단할 도메인 목록 파일 생성
# 파일 생성
sudo nano /etc/squid/blocked_sites.txt
# 도메인 추가 (줄당 하나씩)
.facebook.com
.vk.com
.instagram.com
.tiktok.com
.youtube.com
.reddit.com
casino
betting
porn
xxx
# 앞에 점이 있으면 모든 서브도메인 차단
# facebook.com, www.facebook.com, m.facebook.com - 모두 차단됨
2단계: squid.conf에 규칙 추가
# 차단된 사이트 ACL 정의
acl blocked_sites dstdomain "/etc/squid/blocked_sites.txt"
# 해당 사이트 접근 거부
http_access deny blocked_sites
# 오류 발생 시 사용자 지정 페이지 표시
deny_info ERR_BLOCKED_SITE blocked_sites
⏰ 시간대별 차단
근무 시간(9:00-18:00, 월-금)에만 소셜 미디어 차단:
# 근무 시간 정의
acl work_hours time MTWHF 09:00-18:00
# 소셜 네트워크 목록
acl social_networks dstdomain .facebook.com .vk.com .instagram.com
# 근무 시간에만 소셜 네트워크 차단
http_access deny social_networks work_hours
# 근무 시간 외에는 허용
http_access allow social_networks
📊 파일 유형별 차단
# 토렌트, 비디오, exe 파일 차단
acl blocked_files urlpath_regex -i \.torrent$ \.exe$ \.msi$ \.mp4$ \.mkv$ \.avi$
http_access deny blocked_files
# MIME 타입으로 비디오 차단
acl video_content rep_mime_type video/mpeg video/x-msvideo video/mp4
http_reply_access deny video_content
💾 캐싱 설정
올바른 캐시 설정을 통해 인터넷 회선 사용량을 30-40% 절감할 수 있습니다.
최적의 캐시 구성
# RAM 캐시 크기 (512 MB)
cache_mem 512 MB
# 디스크 캐시: 50GB, 1차 디렉토리 32개, 2차 디렉토리 256개
cache_dir ufs /var/spool/squid 50000 32 256
# 캐시 가능한 최소/최대 객체 크기
minimum_object_size 0 KB
maximum_object_size 500 MB
# 메모리 내 최대 객체 크기
maximum_object_size_in_memory 512 KB
# 캐시 보존 기간
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# Windows 업데이트 캐싱 (회선 트래픽 최대 40% 절약!)
refresh_pattern windowsupdate.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
# 인기 파일 더 오래 캐싱
refresh_pattern -i \.(jpg|jpeg|png|gif|bmp|webp)$ 1440 90% 10080
refresh_pattern -i \.(pdf|doc|docx|xls|xlsx)$ 1440 80% 10080
refresh_pattern -i \.(js|css)$ 720 50% 4320
설정 후 캐시 초기화:
sudo squid -z
sudo systemctl restart squid
📊 캐시 통계
# 캐시 통계 확인
squidclient -p 3128 mgr:info | grep "Hit Ratio"
# 전체 캐시 삭제
sudo systemctl stop squid
sudo rm -rf /var/spool/squid/*
sudo squid -z
sudo systemctl start squid
💻 프록시 사용을 위한 클라이언트 설정
🪟 Windows
- 설정 → 네트워크 및 인터넷 → 프록시 서버 열기
- "프록시 서버 사용" 켜기
- 주소:
192.168.1.100 - 포트:
3128 - "저장" 클릭
🍎 macOS
- 설정 → 네트워크 열기
- 활성 연결(Wi-Fi/Ethernet) 선택
- "세부사항" → "프록시" 탭 클릭
- "웹 프록시(HTTP)" 체크
- 서버:
192.168.1.100:3128 - "확인" → "적용" 클릭
🌐 Google Chrome / Edge
Chrome은 시스템 프록시 설정을 사용하지만, 다음 매개변수로 실행할 수 있습니다.
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --proxy-server="192.168.1.100:3128"
# Linux
google-chrome --proxy-server="192.168.1.100:3128"
# 인증 포함
--proxy-server="http://user:password@192.168.1.100:3128"
🦊 Firefox
- 설정 → 기본 → 네트워크 설정 열기
- "수동 프록시 구성" 선택
- HTTP 프록시:
192.168.1.100포트3128 - ✅ "모든 프로토콜에 이 프록시 서버 사용" 체크
- "확인" 클릭
🐧 Linux (시스템 프록시)
# ~/.bashrc 또는 /etc/environment에 추가
export http_proxy="http://192.168.1.100:3128"
export https_proxy="http://192.168.1.100:3128"
export ftp_proxy="http://192.168.1.100:3128"
# 인증 포함
export http_proxy="http://user:password@192.168.1.100:3128"
# 변경 사항 적용
source ~/.bashrc
# 확인
curl -I http://google.com
복잡한 설정 없이 준비된 프록시가 필요하신가요?
Squid 설정, 구성 파일, 서버 관리 걱정은 잊으세요 — ProxyCove를 사용하세요!
프로모션 코드 ARTHELLO 등록 시 보너스 $1.3 지급
📖 다음 편: 파트 3: Windows용 CCProxy 및 3proxy, SSL 검사, 모니터링 및 문제 해결
Windows용 프록시 및 모니터링
파트 3: Windows Server용 CCProxy 및 3proxy. SSL 검사, 트래픽 모니터링, 문제 해결 방법.
마지막 파트 | 예상 독서 시간: 12분
🪟 Windows Server용 CCProxy
CCProxy는 그래픽 인터페이스를 갖춘 인기 있는 상용 Windows 솔루션입니다. 명령줄을 다루고 싶지 않은 관리자에게 이상적입니다.
📥 CCProxy 설치
- 공식 웹사이트에서 다운로드:
www.youngzsoft.net - 설치 프로그램
ccproxysetup.exe실행 - 설치 디렉토리 선택 (기본값
C:\Program Files\CCProxy) - 설치 후 관리자 권한으로 CCProxy 실행
- 첫 실행 시 프록시를 사용할 네트워크 어댑터 선택
💰 라이선스 비용 (2025년 기준):
- 무료: 사용자 3명까지 (테스트용)
- Standard: $199 (최대 100명)
- Enterprise: $399 (최대 500명)
- Unlimited: $799 (제한 없음)
⚙️ CCProxy 기본 설정
1. 포트 설정
- 메뉴 Options → Advanced → Network
- HTTP 포트:
808(또는 기본값 3128) - SOCKS 포트:
1080 - ✅ 필요한 프로토콜 활성화 (HTTP, HTTPS, SOCKS, FTP)
2. 사용자 추가
- 메뉴 Account → New
- 로그인 지정:
ivan - 암호:
SecurePass123 - 허용 IP (선택 사항):
192.168.1.50 - 속도 제한:
10 Mbps - 트래픽 할당량:
월 50 GB
3. 사이트 필터링
- 메뉴 Options → Filter → Web Filter
- Banned Websites 탭
- 도메인을 하나씩 추가하거나 목록 가져오기
- 예시:
*.facebook.com,*.gambling.* - ✅ Enable Web Filter
4. 캐싱
- 메뉴 Options → Advanced → Cache
- ✅ Enable Cache
- Cache Directory:
D:\CCProxyCache - Max Cache Size:
50 GB - Cache Time:
7 days
✅ CCProxy 장점
- ✅ 그래픽 인터페이스 — 5분 만에 설정 완료
- ✅ 실시간 통계 내장
- ✅ 할당량 및 제한이 있는 사용자 관리
- ✅ 카테고리별 사이트 필터링
- ✅ HTTP, HTTPS, SOCKS4/5, FTP, SMTP 지원
- ❌ 유료 라이선스 (최소 $199)
- ❌ Windows 전용
🔧 3proxy — 무료 대안
3proxy는 오픈 소스 무료 프록시 서버입니다. Windows와 Linux 모두에서 작동합니다.
📥 Windows에 3proxy 설치
- 다운로드:
github.com/3proxy/3proxy/releases C:\3proxy에 압축 해제- 구성 파일
3proxy.cfg생성 - Windows 서비스로 설치
3proxy.cfg 예시:
# 데몬 모드
daemon
# 로그 파일
log C:\3proxy\logs\3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
# 사용자 (username:password)
users ivan:CL:SecurePass123
users maria:CL:Pass456
# 로컬 네트워크 허용
allow * 192.168.1.0/24
# 포트 3128의 HTTP 프록시
auth strong
proxy -p3128 -a
# 포트 1080의 SOCKS5 프록시
socks -p1080 -a
Windows 서비스로 설치:
cd C:\3proxy
3proxy.exe --install
net start 3proxy
🔐 추가 보안 설정
# 사용자당 속도 제한 (1 MB/s)
bandlimin 1024000
# 연결 시간 초과
timeouts 10 30 30 60 180 1800 15 60
# 단일 IP당 최대 연결 수
maxconn 50
# 도메인 차단
deny * * *.facebook.com *
deny * * *.gambling.* *
# 특정 포트만 허용
allow * * * 80,443,21,22
🔒 HTTPS 트래픽 SSL 검사
⚠️ SSL 검사란?
기본적으로 프록시는 HTTPS 요청의 도메인만 볼 수 있고 내용은 볼 수 없습니다. SSL 검사는 프록시가 자체 SSL 인증서를 사용하여 HTTPS 트래픽을 복호화하여 필터링 및 모니터링할 수 있게 합니다.
Squid에서 SSL 검사 설정
1단계: CA 인증서 생성
# 인증서 디렉토리 생성
sudo mkdir -p /etc/squid/ssl_cert
cd /etc/squid/ssl_cert
# 개인 키 생성
sudo openssl genrsa -out squid-ca-key.pem 4096
# 루트 인증서 생성
sudo openssl req -new -x509 -days 3650 -key squid-ca-key.pem \
-out squid-ca-cert.pem -utf8 \
-subj "/CN=Squid Proxy CA/O=Company Name/C=RU"
# 단일 파일로 결합
sudo cat squid-ca-cert.pem squid-ca-key.pem > squid-ca.pem
# 권한 설정
sudo chown -R proxy:proxy /etc/squid/ssl_cert
sudo chmod 400 squid-ca.pem
2단계: squid.conf 설정
# HTTPS 포트 SSL Bump 설정
https_port 3129 intercept ssl-bump \
cert=/etc/squid/ssl_cert/squid-ca.pem \
generate-host-certificates=on \
dynamic_cert_mem_cache_size=16MB
# SSL Bump 규칙
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
# 동적 인증서 생성을 위한 프로그램
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/ssl_db -M 16MB
# 인증서 데이터베이스 초기화
# sudo /usr/lib/squid/security_file_certgen -c -s /var/lib/ssl_db
# sudo chown -R proxy:proxy /var/lib/ssl_db
3단계: 클라이언트 인증서 설치
squid-ca-cert.pem 파일을 모든 컴퓨터에 복사하여 신뢰할 수 있는 루트 CA에 설치해야 합니다.
- Windows: 더블 클릭 → 인증서 설치 → 신뢰할 수 있는 루트 인증 기관
- macOS: 더블 클릭 → 키체인 접근 → 항상 신뢰
- Linux:
sudo cp squid-ca-cert.pem /usr/local/share/ca-certificates/ && sudo update-ca-certificates
⚠️ 법적 측면
중요: SSL 검사는 개인 정보 보호를 침해할 수 있습니다. 구현 전에 다음 사항을 확인하십시오.
✅ 직원들에게 모니터링 사실 통보 (노동법 준수)
✅ 사내 규정에 관련 규칙 명시
✅ 은행, 의료 관련 사이트는 복호화하지 않음
✅ 로그는 안전한 장소에 보관
📊 모니터링 및 로그 분석
인기 있는 모니터링 도구
SARG (Squid Analysis Report Generator)
Squid 로그를 분석하여 상위 사이트, 사용자, 트래픽 사용량에 대한 HTML 보고서를 생성합니다.
sudo apt install sarg -y
sudo sarg
# 보고서는 /var/www/html/squid-reports/ 에 생성됨
Lightsquid
Squid 통계를 실시간으로 시각화하는 가벼운 Perl 스크립트입니다.
sudo apt install lightsquid -y
# 웹 인터페이스:
# http://192.168.1.100/lightsquid
로그 분석에 유용한 명령어
# 상위 10개 방문 사이트
awk '{print $7}' /var/log/squid/access.log | sort | uniq -c | sort -rn | head -10
# 트래픽 사용량 기준 상위 10명 사용자
awk '{user[$8] += $5} END {for (u in user) print u, user[u]}' \
/var/log/squid/access.log | sort -k2 -rn | head -10
# 시간대별 요청 수
awk '{print $1}' /var/log/squid/access.log | cut -d: -f2 | sort | uniq -c
# 특정 사용자 요청 검색
grep "ivan" /var/log/squid/access.log | tail -50
# 캐시 통계 (HIT/MISS)
awk '{print $4}' /var/log/squid/access.log | sort | uniq -c
# 로그 실시간 모니터링
tail -f /var/log/squid/access.log | grep --color "TCP_DENIED"
🔧 일반적인 문제 해결
❌ 문제: 프록시가 시작되지 않음
해결책:
# 설정 구문 확인
sudo squid -k parse
# 오류 로그 확인
sudo tail -f /var/log/squid/cache.log
# 디렉토리 권한 확인
sudo chown -R proxy:proxy /var/log/squid /var/spool/squid
❌ 문제: 클라이언트가 연결할 수 없음
해결책:
- 방화벽 확인:
sudo ufw allow 3128/tcp - Squid가 올바른 인터페이스에서 수신 대기 중인지 확인:
netstat -tlnp | grep 3128 - squid.conf에서 ACL 확인 (서브넷이 올바르게 지정되었는지)
❌ 문제: 느린 속도 / 높은 부하
해결책:
cache_mem증가 (최소 512MB)- 캐시를 빠른 SSD 디스크로 이전
- 최대 연결 수 제한:
http_access deny all maxconn 100 - 스레드 수 증가:
workers 4
❌ 문제: 일부 사이트가 열리지 않음
해결책:
- 로그 확인:
tail -f /var/log/squid/access.log | grep DENIED - 민감한 사이트(은행, 의료)에 대해 SSL Bump 비활성화
- 화이트리스트에 예외 추가
❌ 문제: 캐시가 작동하지 않음
해결책:
# 캐시 통계 확인
squidclient -p 3128 mgr:info | grep "Request Hit Ratios"
# 0%인 경우 - 캐시 디렉토리 권한 확인
ls -la /var/spool/squid/
# 캐시 구조 재설정
sudo systemctl stop squid
sudo rm -rf /var/spool/squid/*
sudo squid -z
sudo systemctl start squid
🎯 결론 및 권장 사항
✅ 로컬 프록시를 도입해야 하는 경우
- ✅ 직원 20명 이상의 사무실 — 접근 제어 및 모니터링의 이점이 큼
- ✅ 제한된 인터넷 회선 — 캐싱을 통해 최대 40% 트래픽 절약
- ✅ 보안 요구 사항 — 악성 사이트 필터링, 데이터 유출 방지
- ✅ 보고서 필요성 — 보안팀, HR, 경영진을 위한 로그
- ✅ 교육 기관 — 아동 보호, 학생 접근 제어
❌ 로컬 프록시가 과도한 경우
- ❌ 소규모 사무실 (10명 이하) — 관리 비용이 너무 높음
- ❌ IT 전문가 부재 — 시스템을 유지 관리하고 모니터링할 사람이 없음
- ❌ 무제한 고속 인터넷 — 캐싱으로 인한 이점이 크지 않음
- ❌ 민감한 데이터 취급 — SSL 검사가 규정 준수를 위반할 수 있음
🔧 솔루션 선택 권장 사항
다음과 같은 경우 Squid(Linux)를 선택하세요.
- 사내에 Linux 관리자가 있는 경우
- 최대 성능이 필요한 경우
- 예산이 제한적인 경우 (무료 솔루션)
- 구성 파일을 통한 유연한 설정이 필요한 경우
다음과 같은 경우 CCProxy(Windows)를 선택하세요.
- 인프라가 Windows Server 기반인 경우
- 명령줄 없이 그래픽 인터페이스가 필요한 경우
- 라이선스 비용($199-$799)을 지불할 의향이 있는 경우
- 빠른 배포(5-10분)가 필요한 경우
다음과 같은 경우 3proxy를 선택하세요.
- 불필요한 기능이 없는 가벼운 솔루션이 필요한 경우
- 예산 없이 Windows에서 작업하는 경우
- 기본 필터링만 필요한 경우
- 캐싱 및 고급 분석이 필요하지 않은 경우
💡 핵심 조언
로컬 프록시 서버는 지속적인 관리가 필요한 인프라 솔루션입니다. 전담 IT 전문가가 없거나 해당 수준의 제어가 필요하지 않은 경우, 클라우드 기반 프록시 서비스를 대안으로 고려하십시오. 장비 유지 관리 및 복잡한 구성 설정의 부담을 덜어줄 수 있습니다.
설정 작업 없이 바로 사용하고 싶으신가요?
서버 설치, 구성 파일, 관리 걱정은 ProxyCove로 해결하세요!
프로모션 코드 ARTHELLO로 등록하고 $1.3 보너스를 받으세요.
ProxyCove 2025년 요금제:
📚 유용한 자료
📖 Squid 문서:
wiki.squid-cache.org
🔧 CCProxy 공식 사이트:
www.youngzsoft.net
⚙️ 3proxy GitHub:
github.com/3proxy/3proxy
✅ 본문 완료! 로컬 네트워크 프록시 서버에 대한 모든 것을 알아보셨습니다.
이론과 아키텍처부터 Squid, CCProxy, 3proxy의 실질적인 설정, 모니터링, 문제 해결까지 모두 다루었습니다.