로컬이 아닌 모든 트래픽을 양말 프록시로 리디렉션

로컬이 아닌 모든 트래픽을 양말 프록시로 리디렉션

로컬이 아닌 모든 트래픽을 양말 프록시로 리디렉션할 수 있습니까?

예를 들어 다음과 같습니다.

 4 computers (clients A-D: 10.0.0.1-4 or dhcp)
 1 computer with 2 network cards (gateway-server, eth0: 10.0.0.254, eth1: 192.168.1.1)
 1 computer with 2 network cards (router, eth0: 192.168.1.254, eth1: public-ip)

각 클라이언트의 브라우저를 구성할 필요 없이 게이트웨이 서버를 통과하는 모든 컴퓨터가 게이트웨이 서버에 설치된 sock 프록시를 사용하도록 해야 합니다.

목적은 모든 URL과 대역폭 사용량을 기록하는 것입니다.

문제는..

  1. 가능합니까? 그렇다면 어떻게 해야 할까요?
  2. 가능하지 않다면 대안은 무엇입니까?

답변1

죄송합니다. 이 질문에 답변하기에는 너무 늦을 수 있습니다. 나는 stackexchange를 처음 접했고 오늘 이것을 보았고 이전에는 대답할 수 없었습니다. 일하러 가자...

해당 PC의 모든 요청을 양말 프록시 포트로 리디렉션하려면 일부 iptables가 필요합니다. 포트 9050에 해당 프록시가 있고 카드의 인터페이스 이름이 eth0(가장 가까운 인터넷 측에 연결된 게이트웨이 서버 중 하나를 의미)이라고 가정해 보겠습니다. 왜냐하면 데이터를 제공하지 않기 때문입니다. 상상해 보십시오.

echo 1 > /proc/sys/net/ipv4/ip_forward전달 및 NAT 매스커레이딩을 활성화하려면 iptables 규칙을 실행해야 합니다 .

iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

내부 네트워크 클라이언트의 모든 웹 요청을 원하는 프록시 포트로 리디렉션하려면:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 9050
iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 9050

이러한 규칙에 따르면 요청이 제대로 작동하려면 요청이 도착하는 포트에 잘 구성된 "사물"이 있어야 합니다. 행운을 빌어요! 아니면 제가 늦었다면 이 문제를 어떻게 처리했는지 알려 주실 수 있을 것입니다.

관련 정보