Squid를 활용한 Proxy서버 구축

Proxy서버는 Cache서버 라고도 불리우며 네트워크 상의 각 노드들이
네트워크 서비스(외부:WAN)으로 접속하려 할 때, 각 노드들이 기존에 접속했던 정보를 쿠키(Cookie)로 보유함으로써
내부 네트워크 (내부:LAN)와외부 네트워크 서버 사이에서 연결에 대한 도움을 주는 중계기 같은 역할을 하는 서버이다.

네트워크 구성도

예를들어 위와 같은 그림의 구조를 가진 네트워크에서 1 ~3 번 노드들이
기존에 접속했었던 서버의 정보(쿠키)를 프록시 서버에 저장 해두었다가.
추후 동일한 서버로의 접속을 요청하면 외부(ex. Global DNS)로 쿼리를 하지않고,

내부의 프록시 서버가 경로를 지정해주므로 경로가 단순화 될 수 있다는 장점(트래픽 감소)이 존재하며
유해 사이트 및 접근해서는 안되는 서버를 ACL로 Permit, Deny로 통제해주는 역할을 수행한다.

많이 사용하게 되는 웹 브라우저에 프록시 서버를 지정하여 접속 제한을 하는 진행

* 실습환경 : M1 Based Mac(ARM64)
** 네트워크 대역 : 10.211.55.0/24
*** 해당 실습에서 사용된 가상 머신 : Fedora(.30= Proxy Server), Fedora(.20 = Just Node..)

● Proxy Server 구축

sudo dnf install -y squid

프록시 서버 구축을 위한 Squid 패키지를 다운로드

# 원본파일 백업
sudo cp -arp /etc/squid/squid.conf /etc/squid/squid.conf.bak

# Squid 설정파일 수정
sudo vim /etc/squid/squid.conf

[squid.conf 수정내용]
2 # Recommended minimum configuration:
5 # Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
7 # should be allowed
8 acl bad url_regex -i "/etc/squid/blocked"	### 해당부분에 룰과 참조파일 경로를 지정
9 acl localnet sc 0.0.0.1-0.255.255.255
10 acl localnet sc 10.0.0.0/8
11 acl localnet sc 100.64.0.0/10
12 acl localnet sc 169.254.0.0/16
13 #acl localnet sc 172.16.0.0/12
14 acl localnet sc 10.211.55.0/24
.
.
.
52 # Example rule allowing access from your local networks.
53 # Adapt localnet in the AL section to list your (internal IP networks
54 # from where browsing should be allowed
55 http access allow localnet !bad			### bad로 지정되지 않는 IP접속은 허가
56 http_access allow localhost

58 # And finally deny all other access to this proxy
59 http_access deny all

61 # Squid normally listens to port 3128
62 http port 3128							### Proxy 서버로 사용할 Port 번호
63 # Uncomment and adjust the following to add a disk cache directory.
64 #cache dir ufs /var/spool/squid 100 16 256

66 # Leave coredumps in the first cache dir
67 coredump_dir /var/spool/squid


/etc/squid/squid.conf
/etc/squid/sqiud.conf


# 차단될 FQDN(목적지)가 정의된 파일생성
sudo vim /etc/squid/blocked

[파일내용]
1 www.youtube.com
2 .daum.net
3 .naver.com

# 앞 부분 ~.[FQDN]을 사용하면 프로토콜과 관계 없이 도메인 전체차단의 효과
# 정규표현식의 Asterisk(*)과 유사한효과


[방화벽 설정]
sudo firewall-cmd --permanent --zone=public --add-service=squid 
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

[포트확인 Open상태 확인]
sudo ss -nltp | grep LISTEN
방화벽과 포트 LISTEN 상태를 확인



● Fedora(.20 = Node)에서 프록시 서버를 지정

Firefox

웹 브라우저 우측 상단의 삼단바를 클릭하여 Setting 클릭 후,
설정 페이지로 접근

Firefox

우측의 검색창에 'proxy'를 입력 후 검색

Firefox

'Manual Proxy Configuration' 체크란에 체크 후, 앞에서 프록시 서버로 구축한
프록시 서버의 주소(10.211.55.30)와 포트번호 '3128'을 기재하여 저장

Firefox

앞에서 정의한 'blocked'에 지정 되어있지 않은 facebook 웹 사이트 접속은 정상적으로 가능

Firefox

차단 목록에 포함 되어있는 ~.naver.com 사이트 접속요청 시
'The Proxy server is refusing' 이라는 경고문과 함께
접근이 차단되는 것을 확인할 수 있다.

'Linux_System' 카테고리의 다른 글

[Linux]Log_Server  (0) 2023.02.10
[Linux]DHCP  (0) 2023.02.10
[Linux]Ansible  (0) 2023.02.04
[Linux]YUM_Priority  (0) 2023.01.18
[Linux]ZFS  (0) 2023.01.16

+ Recent posts