IP 테이블을 사용하여 인터넷 트래픽을 로컬에서 프록시 서버로 리디렉션하는 방법(DEBIAN 6)

IP 테이블을 사용하여 인터넷 트래픽을 로컬에서 프록시 서버로 리디렉션하는 방법(DEBIAN 6)

그래서 그림과 같이 토폴로지를 만들었습니다.

토폴로지

라우터에는 다음과 같은 3개의 인터페이스가 있습니다.

eth0을 인터넷 측으로(IP 사용)192.168.1.10/24게이트웨이192.168.1.254/24).

eth1을 서버 PC에 (ip로192.168.20.1/28)

eth2를 클라이언트로(IP 포함)172.16.20.1/29)

서버와 클라이언트가 연결되어 라우터 컴퓨터에서 인터넷을 얻습니다. Server-pc는 고정 IP(192.168.20.2), 클라이언트는 router-pc의 DHCP에서 자동 IP를 얻는 동안

클라이언트의 인터넷을 내 서버 PC의 프록시 서버로 리디렉션하기 위해 내 라우터 PC에서 iptables를 구성하고 싶습니다. 따라서 클라이언트는 인터넷에 액세스하기 위해 자격 증명을 사용해야 합니다(저는 오징어에 인증 프록시를 구성했고 클라이언트 측에서 프록시를 수동으로 구성했습니다).

내가 실행 중인 방화벽은 다음과 같습니다.

iptables -t nat -A 사전 설정 -p tcp -s 172.16.20.0/29 -j DNAT --to 192.168.20.2

192.168.20.2는 내 서버의 IP 주소입니다. 그러면 제가 만든 구성을 수정하여 필요에 따라 작동하도록 도와주실 수 있나요?

죄송합니다. 제 영어 실력이 좋지 않습니다. 감사해요.

답변1

첫째: Debian 6 "squeeze"는 2013년부터 주요 지원이 중단되었으며, 장기 지원도 2016년부터 중단되었습니다. 데비안 6에서 이러한 방식으로 인터넷 액세스를 차단하는 것은 제한 사항을 우회할 수 있는 보안 허점, 요청된 규칙 세트를 구현하지 못하게 하는 기능 부족 또는 두 가지 모두로 인해 비효율적일 가능성이 높습니다. 나강하게시스템을 지원되는 Debian 버전(Debian 9 "stretch")으로 업그레이드하는 것이 좋습니다.

둘째, 인증된 프록시와 투명 프록시 모드를 결합하면 제대로 작동하지 않습니다. 문제는 궁극적으로 호스트가반품인증이 필요합니다(예: HTTP 수준 인증이 필요한 DAV 서버에 로그인하기 때문에). 그러면 투명 프록시가 해당 자격 증명을 먹거나 혼동하게 됩니다.

대신 내 조언은 다음과 같습니다.

  • 프록시를 통과하지 않는 모든 트래픽을 차단합니다.

    iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 443 -j REJECT
    iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 80 -j REJECT
    

    이렇게 하면 프록시를 통과하지 않는 모든 인터넷 트래픽이 차단됩니다.

  • 클라이언트에 도메인 이름을 보내도록 DHCP 서버를 구성합니다.

    subnet 172.16.20.1/29 {
        (...)
        option domain-name "example.com";
    };
    

    (여기가 아닌 로컬 도메인 이름을 사용하세요 example.com)

  • wpad.example.com라우터를 가리켜야 하는 호스트 이름을 알 수 있도록 DNS 서버를 구성하십시오 (다시 말하지만, example.com도메인 이름을 바꾸십시오).
  • wpad.dat 파일을 만들고 다음 내용을 추가합니다.

    function FindProxyForURL(url, host) {
        return "PROXY 172.16.20.1:3128";
    }
    

    이는 간단한 Javascript입니다. 대상 URL을 기반으로 다른 프록시를 사용하려면 함수를 수정하면 됩니다.

    그런 다음 파일은 라우터에서 HTTP를 통해 "/wpad.dat"로 제공됩니다. 파일의 MIME 유형이 application/x-ns-proxy-autoconfig또는 인지 확인하세요 application/x-javascript-config.

이렇게 하면 네트워크의 브라우저가 자동으로 프록시를 사용하도록 구성되며("자동으로 설정 검색" 옵션이 켜져 있는 경우(해당되는 경우)) 사용자는 인증에 대해 혼동하지 않습니다.

관련 정보