저는 집에 있는 Arch Linux 서버에서 LAMP 스택을 실행하고 있으며, 라우터 방화벽 포트 80은 전 세계에 열려 있습니다.
최근에 저는 아이들을 위한 웹 필터링을 수행하기 위해 dansguardian 투명 프록시를 설정하기로 결정했습니다.
내 LAN에서는 모든 것이 정상입니다.
그런데 dansguardian 로그를 확인하던 중 우리 집이 중국 IP 주소의 프록시가 되어 있는 것을 발견했습니다. 내 iptables 설정을 사용하면 포트 80으로 들어오는 요청을 내 LAN dansguardian 설정으로 보낼 수 있습니다!
이제 포트 80을 닫았지만 홈페이지 웹사이트를 계속 운영하고 싶습니다. dansguardian을 통해 LAN http 요청을 투명하게 프록시하려면 iptables를 설정해야 하지만 포트 80에서 들어오는 요청은 프록시하지 않도록 설정해야 합니다.
이것은 iptables-save의 출력입니다:
# Generated by iptables-save v1.4.18 on Tue May 20 18:51:46 2014
*filter
:INPUT ACCEPT [99752358:83925475634]
:FORWARD ACCEPT [1137723:181159087]
:OUTPUT ACCEPT [57478321:118350587619]
COMMIT
# Completed on Tue May 20 18:51:46 2014
# Generated by iptables-save v1.4.18 on Tue May 20 18:51:46 2014
*nat
:PREROUTING ACCEPT [3362634:253695591]
:INPUT ACCEPT [3450241:258605740]
:OUTPUT ACCEPT [3451732:250709703]
:POSTROUTING ACCEPT [3492061:253533144]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9809
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue May 20 18:51:46 2014
업데이트: 가능한 해결책을 찾았습니다.
이것은 작동하는 것 같습니다:
에서:
https://help.ubuntu.com/community/DansGuardian
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j ACCEPT
sudo iptables -t nat -A OUTPUT -p tcp --dport 3128 -m owner --uid-owner proxy -j ACCEPT
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
sudo iptables -t nat -A OUTPUT -p tcp --dport 3128 -j REDIRECT --to-ports 8080