Image

지식 기반 → NAT를 사용하여 iptables에서 squid transperent를 통한 트래픽 계산

[가상 서버]
출판 날짜: 12.03.2024

기본적으로 서버는 라우터 모드에서 작동하며 작업은 서버에 연결된 모든 로컬 장치의 모든 웹 트래픽을 고려하는 것입니다.

현재 구성은 여기에 설명되어 있습니다: Linux Debian에서 NAT 구성(로컬 네트워크의 인터넷)

우리는 모든 웹 트래픽을 Squid로 전송할 것이며 이를 통해 장치별로 그룹화된 모든 사이트에 대한 자세한 통계를 얻을 수 있습니다.

1. Squid 및 SSL 구성 요소 설치

apt install squid squid-openssl

1.1 자체 서명된 인증서를 생성해 보겠습니다

포트 443에서 트래픽 리디렉션을 구성해야 합니다

mkdir -p /etc/squid/ssl
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squidCA.pem -out /etc/squid/ssl/squidCA.pem

1.2 오징어 구성을 다음 형식으로 가져오겠습니다

nano /etc/squid/squid.conf
...
acl localnet src 100.100.100.0/24
...
acl SSL_ports port 443
acl Safe_ports port 80		# http
...
http_access allow localhost
...
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
...
http_port 3128
http_port 3129 intercept
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice all
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squidCA.pem

1.2.1 서비스를 다시 시작하자

service squid restart

1.3 웹 트래픽을 프록시로 전환해 보겠습니다

iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 3130

1.4 교통 흐름을 확인해 보자

tail -f /var/log/squid/access.log

로컬 네트워크의 장치에서 웹사이트를 열어 보겠습니다. 작업과 관련된 이벤트가 로그에 표시됩니다.

1710202038.351   5012 100.100.100.101 TCP_TUNNEL/500 3815 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -
1710202108.954  75616 100.100.100.101 TCP_TUNNEL/500 9916 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -

완료되었습니다. 이제 모든 웹 트래픽은 squid 서비스를 통과하며 SARG를 사용하여 편리하게 읽을 수 있는 로그를 얻을 수 있습니다. 구성 방법은 여기에 설명되어 있습니다: SQUID 프록시 서버에 SARG 설치 및 구성.

이제 사무실에 있는 모든 장치의 모든 웹 트래픽이 고려되며 시간과 데이터 양을 포함하여 어떤 장치에서 어떤 사이트가 열렸는지 언제든지 확인할 수 있습니다.





No Comments Yet