블로그로 돌아가기

로컬 네트워크 프록시 설정: 기업 환경 활용 가이드

<p>예시: 200명의 직원을 둔 "알파" 회사는 Squid 프록시를 설치하고 캐싱을 통해 인터넷 채널 사용량을 35% 절감했습니다. 절감액: 월 $450.</p>

📅2025년 11월 13일

🌐 로컬 네트워크용 프록시 서버란?

로컬 네트워크용 프록시 서버는 기업 또는 가정 네트워크 내부에 위치하여 네트워크 내 모든 장치가 단일 제어 지점을 통해 인터넷에 액세스하도록 지원하는 중간 서버입니다.

작동 방식:

  1. 로컬 네트워크 내의 사용자(컴퓨터, 스마트폰, 태블릿)가 요청을 보냅니다.
  2. 프록시 서버(192.168.1.100:3128)가 요청을 수신하고 액세스 규칙을 확인합니다.
  3. 프록시가 자신의 이름으로 인터넷에 요청을 보냅니다.
  4. 인터넷 서버가 프록시 서버에 응답합니다.
  5. 프록시가 응답을 사용자에게 다시 전달합니다.

💡 간단한 비유

직원 한 명이 비서 역할을 하는 사무실을 상상해 보세요. 모든 직원은 비서를 통해 요청을 전달하며, 비서는 누가 전화를 걸 수 있는지 통제하고, 모든 통화를 기록하며, 원치 않는 번호를 차단할 수 있습니다. 프록시 서버는 바로 이 "비서"와 같은 역할을 네트워크 전체에 수행합니다.

❓ 로컬 프록시 서버가 필요한 이유

🔒

접근 제어

인터넷 리소스에 대한 중앙 집중식 관리. 근무 시간 중 소셜 미디어 차단, 토렌트 금지, 사이트 카테고리별 필터링.

📊

트래픽 모니터링

누가, 언제, 어떤 사이트를 방문했는지, 트래픽을 얼마나 사용했는지에 대한 상세 통계. 사용자 및 부서별 보고서. 데이터 유출 감지.

💾

캐싱

자주 요청되는 파일을 프록시 서버에 저장. 인터넷 회선 최대 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)  │
         │ + 로그         │
         │ + 필터        │
         └────────────────┘

구성도 작동 방식:

  1. 사용자(PC1)가 브라우저에서 프록시 설정: 192.168.1.100:3128
  2. 요청은 인터넷으로 직접 가지 않고 프록시 서버로 전송됩니다.
  3. 프록시가 접근 규칙을 확인합니다 (해당 사이트 허용 여부).
  4. 프록시가 사용자 대신 콘텐츠를 요청합니다.
  5. 프록시가 응답을 받아 사용자에게 전달합니다.
  6. 재요청 시 프록시가 캐시에서 데이터를 즉시 제공합니다.

⚠️ 아키텍처의 중요 사항

  • 내결함성: 프록시가 다운되면 모든 네트워크가 인터넷 접근 불가 (해결책: 백업 프록시)
  • 성능: 프록시는 네트워크의 모든 트래픽을 처리해야 함 (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

✅ 인증 확인

이제 프록시를 사용하려고 하면 브라우저에서 로그인 및 암호를 요청합니다. 설정 형식:

http://ivan:password123@192.168.1.100:3128

🚫 사이트 및 콘텐츠 필터링

🔒 도메인별 사이트 차단

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

  1. 설정 → 네트워크 및 인터넷 → 프록시 서버 열기
  2. "프록시 서버 사용" 켜기
  3. 주소: 192.168.1.100
  4. 포트: 3128
  5. "저장" 클릭

🍎 macOS

  1. 설정 → 네트워크 열기
  2. 활성 연결(Wi-Fi/Ethernet) 선택
  3. "세부사항" → "프록시" 탭 클릭
  4. "웹 프록시(HTTP)" 체크
  5. 서버: 192.168.1.100:3128
  6. "확인" → "적용" 클릭

🌐 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

  1. 설정 → 기본 → 네트워크 설정 열기
  2. "수동 프록시 구성" 선택
  3. HTTP 프록시: 192.168.1.100 포트 3128
  4. ✅ "모든 프로토콜에 이 프록시 서버 사용" 체크
  5. "확인" 클릭

🐧 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 설치

  1. 공식 웹사이트에서 다운로드: www.youngzsoft.net
  2. 설치 프로그램 ccproxysetup.exe 실행
  3. 설치 디렉토리 선택 (기본값 C:\Program Files\CCProxy)
  4. 설치 후 관리자 권한으로 CCProxy 실행
  5. 첫 실행 시 프록시를 사용할 네트워크 어댑터 선택

💰 라이선스 비용 (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 설치

  1. 다운로드: github.com/3proxy/3proxy/releases
  2. C:\3proxy에 압축 해제
  3. 구성 파일 3proxy.cfg 생성
  4. 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 보너스를 받으세요.

📚 유용한 자료

📖 Squid 문서:
wiki.squid-cache.org

🔧 CCProxy 공식 사이트:
www.youngzsoft.net

⚙️ 3proxy GitHub:
github.com/3proxy/3proxy

✅ 본문 완료! 로컬 네트워크 프록시 서버에 대한 모든 것을 알아보셨습니다.

이론과 아키텍처부터 Squid, CCProxy, 3proxy의 실질적인 설정, 모니터링, 문제 해결까지 모두 다루었습니다.