Centos 7에서 Squid의 iptable 규칙

Centos 7에서 Squid의 iptable 규칙

내 프록시 서버에는 eth0과 eth1이라는 두 개의 인터페이스가 있습니다. 여기서 eth0은 로컬(개인) 네트워크에 연결되고 eth1은 인터넷에 연결됩니다. 내 오징어 버전은 3.3.8이고 centos 7이 내 운영 체제입니다. 투명 프록시를 구성해야 합니다. 나는 이것에 대해 단일 변경이 있어야 한다는 것을 알고 있습니다.

http_port 8080 intercept

이 작업을 수행했지만 여전히 인터넷에 액세스할 수 없으며 squid access.log 파일에 정보가 없습니다. 하지만 클라이언트에서 프록시를 활성화하면 오징어 로그가 채워지기 시작합니다.

iptable 규칙이 누락된 것 같습니다. 클라이언트가 프록시(투명 모드)를 통해 인터넷에 액세스할 수 있도록 하려면 이러한 규칙은 무엇이어야 합니까?

두 가지 규칙을 적용했습니다.

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

주어진 두 가지 규칙을 적용한 후 tcpdum에서 다음과 같은 결과를 얻었습니다.

15:56:53.858317 ARP, Request who-has localhost.localdomain tell 192.168.57.100, length 46
15:56:53.858330 ARP, Reply localhost.localdomain is-at 0a:00:27:00:00:01 (oui Unknown), length 28
15:56:53.859825 IP 192.168.57.100.55833 > localhost.localdomain.domain: 17156+ A? www.google.com. (32)
15:56:53.859866 IP localhost.localdomain > 192.168.57.100: ICMP localhost.localdomain udp port domain unreachable, length 68
15:56:53.860006 IP 192.168.57.100.55833 > localhost.localdomain.domain: 56135+ AAAA? www.google.com. (32)

답변1

다음 iptables 규칙을 사용해 보세요.

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

masquerade = 개인 IP가 인터넷에 액세스하도록 허용

--dport 80 -j 리디렉션 --to-port 8080 = 개인 IP에서 웹에 액세스하려는 모든 요청은 프록시 서버의 포트 8080으로 리디렉션됩니다.

관련 정보