Linux에서 Squid Cache 및 Cisco Router를 사용하여 웹 트래픽을 제어하는 방법
네트워크에서 중요한 작업 중 하나는 직원의 웹 서핑 트래픽을 제어하고 관리하는 것입니다.이 문제를 처리 할 수있는 많은 솔루션이 있습니다. 최고의 솔루션 중 하나는 Linux 시스템에서 squid 캐시를 사용하는 것입니다. Squid는 예를 들어 LAN에서 인터넷으로 연결되는 웹 트래픽 흐름을 한 네트워크에서 다른 네트워크로 검사, 제한 및 캐시 할 수 있습니다.

클라이언트의 웹 요청을 squid 머신으로 리디렉션하는 몇 가지 방법이 있습니다.이 기사에서는 WCCP 프로토콜을 사용하여 CISCO 라우터에서 Squid Cache 머신으로 웹 트래픽을 리디렉션하는 방법을 보여줍니다.
아래 그림은 기본 시나리오의 예입니다.

위 그림에서 볼 수 있듯이 모든 클라이언트의 웹 트래픽은 먼저 Cisco 라우터 (기본 게이트웨이)로 이동 한 다음 라우터가 자동으로 패킷을 squid 머신으로 리디렉션합니다. 이제 squid가 역할을 수행 할 수 있습니다. 주요 역할은 웹 콘텐츠 캐싱, 액세스 제한 "도메인, 시간 간격, IP 주소, 파일 크기 등.
이 시나리오의 구성을 두 가지 주요 단계로 검토합니다. 먼저 squid와 Linux를 설치 및 구성한 다음 WCCP 프로토콜을 사용하여 웹 트래픽 패킷을 squid로 리디렉션하도록 라우터를 구성해야합니다.
이 시나리오에서는 CENTOS 6.5를 LINUX 서버로 사용하고 Cisco 2691을 라우터 시스템으로 사용합니다.
Operating System: CENTOS 6.5 Application: Squid Router: Cisco 2691
1 단계 : Squid Cache 설치
Squid는 CENTOS의 기본 저장소에서 사용할 수 있습니다. 먼저 멋진 yum 명령을 사용하여 설치 한 다음 서비스를 시작하고 마지막으로 squid 서비스의 자동 시작을 설정합니다.
# yum -y install squid # service squid start # chkconfig squid on
2 단계 : 오징어 캐시 준비
이제 centos 운영 체제의 몇 가지 기본 동작을 변경해야합니다. 패킷 전달을 활성화하고 RPF (역방향 경로 필터)를 비활성화해야합니다. 패킷 전달을 활성화하여 centos가 라우터와 같은 투명 전달자 역할을 할 수 있도록합니다.
예를 들어 클라이언트가 브라우저에서 www.example.com을 입력하면 http 요청 패킷이 생성되고 클라이언트 시스템의 소스 IP 주소가있는 경우와 같이 트래픽이 centos 단위로 들어 오면 소스 및 대상 주소가 있습니다. "(예 : 192.168.1.20) 및 example.com 서버의 대상 IP 주소 (예 : 2.2.2.2).
따라서 centos에서 패킷을 수신하면 centos ip 주소가 패킷의 대상 주소가 아니기 때문에 잘못된 패킷으로 감지됩니다. 보안상의 이유로 centos는 패킷을 삭제하지만 squid에서 투명 모드로 작동하기를 원합니다. 패킷 전달 포션을 활성화하여이 상황을 centos에 알립니다.
다음으로 역경로 필터링을 비활성화하여 centos가 squid 머신에서 액세스 할 수없는 패킷이나 squid 머신의 동일한 서브넷에 IP 주소가없는 패킷을 허용하도록해야합니다.
# nano /etc/sysctl.conf
net.ipv4.ip_forward = 1 #set to 1 for enable the packet forwarding feature net.ipv4.conf.default.rp_filter = 0 # set to 0 for disable the reverse path filter behavior
다음으로 CENTOS 컴퓨터에서 GRE 인터페이스를 만들어야합니다. 자세히 설명하겠습니다. WCCP 프로토콜은 GRE 터널을 통해 작동합니다. 즉, 라우터와 Squid 간의 언어는 GRE이므로 centos는 GRE 패킷 캡슐화 해제를위한 GRE 인터페이스가 필요합니다.
“/ etc/sysconfig/network-script/ifcfg-gre0”경로에 GRE 인터페이스에 대한 구성 파일을 만들어야합니다.
ifcfg-gre0 구성 파일에 아래 코드를 입력하십시오.
DEVICE=gre0 BOOTPROTO=static IPADDR=10.0.0.2 #unused ip address in your network NETMASK=255.255.255.252 ONBOOT=yes IPV6INIT=no
GRE 인터페이스를 만든 후에는 네트워크 서비스를 다시 시작해야합니다.
# service network restart
3 단계 : Squid 캐시 구성
라우터에서 WCCP 패킷을받는 squid에게 알려야합니다. /etc/squid/squid.conf 파일에 아래 코드를 입력하십시오.
http_port 3128 intercept # Define SQUID listening port wccp2_router 192.168.1.254 #ip address of the router wccp2_forwarding_method gre wccp2_return_method gre wccp2_service standard 0
구성 파일을 저장하고 squid 서비스를 다시 시작합니다.
# service squid restart
Squid는 3128 포트에서 패킷을 수신하지만 패킷의 대상 포트 번호는 80이므로 대상 포트 80을 3128로 변경하려면 CENTOS 통합 방화벽 (iptable이라는 이름)에 NAT 규칙을 만들어야합니다.
# iptables -t nat -A PREROUTING -i gre0 -p tcp --dport 80 -j REDIRECT --to-port 3128 # iptables -t nat -A POSTROUTING -j MASQUERADE
4 단계 : Cisco 라우터 구성
먼저 Cisco 라우터에서 WCCP를 활성화해야합니다.
R1(config)# ip wccp version 2 Then we must use an ACL for introducing SQUID cache machine to router R1(config)# ip access-list standard SQUID-MACHINE R1(config-std-nacl)# permit host 192.168.1.10
다음으로 두 가지 다른 목적으로 다른 액세스 목록을 정의합니다. 먼저 WCCP 프로토콜에 의해 리디렉션되는 SQUID 트래픽을 제외해야합니다 (무한 루프에 빠지지 않는 경우 !!). 둘째, WCCP 및 SQUID를 통과 할 LAN 트래픽을 정의합니다.
R1(config)#ip access-list LAN-TRAFFICS R1(config-ext-nacl)#deny ip host 192.168.1.10 any #Prevent SQUID to get in loop R1(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 any equal www #define LAN Traffics
액세스 목록을 만든 후 라우터에서 WCCP 프로토콜을 구성해야합니다.
R1(config)# ip wccp web-cache redirect-list LAN-TRAFFIC group-list SQUID-MACHINE
모든 것이 최종 단계를위한 준비가되었으므로 어떤 인터페이스/인터페이스에서 WCCP 구성을 사용하여 트래픽을 리디렉션해야하는지 라우터에 알려야합니다.
R1(config)#interface fastEthernet 0/0 R1((config-if)# ip wccp web-cache redirect in
요약
더 나은 이해를 위해 모든 명령과 텍스트를 몇 줄로 요약 할 때입니다. 시나리오에 따라 직원 웹 서핑 패킷 (TCP 포트 80)을 라우터 (클라이언트의 기본 게이트웨이)에서 오징어 캐시로 리디렉션합니다. WCCP 프로토콜을 사용하는 기계.
이러한 모든 프로세스는 자동으로 수행되었으며 클라이언트 측에는 추가 구성이 없습니다. 따라서 LAN의 웹 트래픽에 대한 정책을 제어하고 설정할 수 있습니다. 예를 들어 제한된 시간 내에 웹 서핑 액세스 권한을 얻고, 최대 다운로드 크기를 제한하고, 사용자 지정 블랙리스트 및 화이트리스트를 정의하고, 인터넷 활동 사용에 대한 전체 보고서를 생성 할 수 있습니다.
이 시나리오에서 흥미로운 사실 중 하나는 오징어 머신이 다운 될 때 라우터가이 문제를 감지하고 패킷 리디렉션을 중지하므로 네트워크의 다운 타임없이 즐길 수 있습니다.
이 기사에 대한 질문이 있으시면 아래 댓글 상자를 통해 답장을 남겨주세요.