728x90
반응형
Proxy Server 정리
**Proxy Server(프록시 서버)**는 로컬 네트워크의 호스트들이 외부 인터넷에 접속할 때 중개 역할을 하여 접속 속도를 향상시키고 보안 기능을 제공합니다. 이를 통해 캐시 서버로도 사용되며, 주로 웹 속도 향상과 접속 제어를 위한 도구로 사용됩니다. 또한, 보안상의 기능을 통해 특정 사이트의 접속을 제한할 수 있습니다.
1. 프록시 서버의 기능 🖥️
- 캐시 기능: 프록시 서버는 웹사이트의 IP 주소를 캐시(저장)하여, 동일한 사이트에 접속할 때 빠른 속도로 연결합니다. 예를 들어, 호스트 A가 www.daum.net에 접속했다면, 프록시 서버는 해당 사이트의 IP 주소를 캐시해두고, 호스트 B가 같은 사이트에 접속할 때 바로 캐시된 정보를 사용합니다. 이를 통해 대역폭 절약과 속도 향상이 이루어집니다. ⚡
- 접속 제어: 프록시 서버는 **ACL(Access Control List)**을 사용하여 특정 사이트나 서비스를 차단하거나 허용할 수 있습니다. 모든 인터넷 트래픽이 프록시 서버를 거쳐가므로, 보안 측면에서도 특정 사이트에 대한 접속을 제한할 수 있습니다. 🚫
2. 프록시 서버의 작동 원리 🌐
- 프록시 서버는 Proxy Cache를 사용하여, 외부 사이트에 접속할 때 해당 사이트의 IP 주소와 도메인 이름을 저장합니다. 이를 통해 이후 동일한 사이트를 요청할 때 DNS 조회를 다시 하지 않고, 빠르게 캐시된 정보를 사용하여 접속할 수 있습니다.
- Proxy Cache에는 IP - domain_name 정보가 저장되며, 최초의 이름 풀이(Name Resolution)은 DNS 서버가 담당합니다.
3. 프록시 서버의 보안적 문제점 🔒
- 해킹 위험: 프록시 서버는 로컬 네트워크의 모든 인터넷 트래픽을 중계하기 때문에, 해커가 프록시 서버를 공격하면 내부 사용자들의 인터넷 사용 기록과 패킷 정보가 노출될 수 있습니다. 이로 인해 웹 해킹 도구(예: Burp Suite, Paros)로 패킷을 조작하거나 가로챌 수 있는 위험이 존재합니다.
- 프록시 서버 해킹이 일어나면, 내부 사용자의 인터넷 기록이 유출되고, 웹 트래픽이 중단되거나 변조될 수 있으므로 관리자는 프록시 서버의 보안을 철저히 관리하고, 쿠키 삭제를 정기적으로 진행해야 합니다. 🛡️
4. 프록시 서버 설정 🛠️
- 로컬 네트워크에서 사용: 로컬 네트워크 내의 각 호스트는 웹 브라우저에서 프록시 서버의 IP 주소를 지정하여 인터넷을 사용할 때, 반드시 프록시 서버를 경유하게 됩니다. 이때, 프록시 서버는 게이트웨이 역할을 하여 트래픽을 중계합니다.
- DNS와의 차이점: LAN에서는 ARP Cache를 사용하여 IP-MAC 정보를 관리하고, WAN에서는 Proxy Cache를 사용하여 IP-도메인 정보를 저장하여 빠른 접속을 지원합니다.
1. Squid Proxy 서버 예시 (리눅스 기반)
Squid는 널리 사용되는 오픈 소스 프록시 서버 소프트웨어입니다. 캐싱 및 요청 중계 기능을 제공하여 성능을 개선할 수 있습니다.
Squid 설치 및 설정 예시 (Ubuntu 기준)
- Squid 설치
- sudo apt update sudo apt install squid
- Squid 설정 기본적으로 Squid 설정 파일은 /etc/squid/squid.conf에 위치합니다. 설정 파일을 편집합니다.
- sudo nano /etc/squid/squid.conf
- 기본 설정 예시:
- http_port : Squid가 요청을 받을 포트 (기본값: 3128)
- acl : 클라이언트 접근 제어 설정
- http_access : 허용된 클라이언트가 프록시를 사용할 수 있도록 설정
- # 프록시 서버가 요청을 받을 포트 http_port 3128 # 로컬 네트워크에서만 접근을 허용 acl localnet src 192.168.1.0/24 http_access allow localnet # 다른 모든 요청은 차단 http_access deny all
- Squid 서비스 재시작 설정 파일을 변경한 후, Squid 서비스를 재시작하여 변경 사항을 적용합니다.
- sudo systemctl restart squid
- 프록시 서버 사용 이제 클라이언트 컴퓨터에서 프록시 설정을 추가하여 Squid 서버를 통해 인터넷에 접근할 수 있습니다. 예를 들어, 브라우저에서 프록시 서버 주소(192.168.1.x:3128)를 입력하면 됩니다.
2. Nginx Reverse Proxy 서버 예시
Nginx는 웹 서버로 유명하지만, 리버스 프록시 서버로도 사용됩니다. 리버스 프록시 서버는 클라이언트의 요청을 다른 서버로 전달하는 역할을 합니다. 예를 들어, 로드 밸런싱이나 보안 목적으로 사용됩니다.
Nginx 설치 및 설정 예시
##Nginx 설치
sudo apt update
sudo apt install nginx
###Nginx 설정 (리버스 프록시) Nginx 설정 파일을 편집합니다.
sudo nano /etc/nginx/sites-available/default
###리버스 프록시 설정 예시:
###Nginx가 클라이언트 요청을 다른 서버(예: http://192.168.1.100:80)로 전달하는 설정입니다.
###예시 설정:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://192.168.1.100:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
###Nginx 서비스 재시작 설정 파일을 변경한 후, Nginx 서비스를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart nginx
####리버스 프록시 사용 이제 example.com을 요청하면 Nginx가 192.168.1.100:80으로 요청을 전달하게 됩니다.
3. Squid 프록시 서버 예시 (Windows 기반)
Windows에서 Squid를 사용하는 방법도 있습니다. Windows에서는 Squid for Windows를 설치하여 사용할 수 있습니다.
- Squid for Windows 다운로드
- 설치 및 설정 설치 후 squid.conf 파일을 편집하여 설정을 변경합니다.
http_port 3128 acl localnet src 192.168.1.0/24 http_access allow localnet http_access deny all
- 예시 설정:
- 서비스 시작
- Squid를 설치하고, squid.exe를 실행하여 프록시 서버를 시작합니다.
- 클라이언트 설정
- Windows에서 인터넷 설정에서 프록시 서버를 192.168.1.x:3128로 설정합니다.
프록시 서버의 활용 예시:
- 인터넷 필터링: 특정 웹사이트를 차단하고, 로그를 기록하여 인터넷 사용을 모니터링합니다.
- 캐시 서버: 자주 요청되는 데이터를 캐시하여 네트워크 대역폭을 절약하고 성능을 향상시킵니다.
- 보안: 외부 네트워크와의 직접적인 연결을 차단하고, 내부 네트워크는 프록시를 통해서만 연결하게 합니다.
- 로드 밸런싱: 여러 서버로 요청을 분산하여 부하를 고르게 분산시킵니다.
이처럼 프록시 서버는 다양한 목적으로 설정되고 활용될 수 있습니다.
반응형
'Linux' 카테고리의 다른 글
DHCP (0) | 2025.03.26 |
---|---|
NTP 설정 및 활용 (0) | 2025.03.26 |
Mail Server (0) | 2025.03.25 |
NFS & Samba (0) | 2025.03.25 |
Web Server (1) | 2025.03.25 |