로컬이 아닌 모든 트래픽을 양말 프록시로 리디렉션할 수 있습니까?
예를 들어 다음과 같습니다.
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
죄송합니다. 이 질문에 답변하기에는 너무 늦을 수 있습니다. 나는 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
이러한 규칙에 따르면 요청이 제대로 작동하려면 요청이 도착하는 포트에 잘 구성된 "사물"이 있어야 합니다. 행운을 빌어요! 아니면 제가 늦었다면 이 문제를 어떻게 처리했는지 알려 주실 수 있을 것입니다.