특정 사이트만 로컬 프록시를 통한 설정

소개



집의 V6 플러스 환경에서는 일부 사이트(또는 근무처)에 연결하기 어려운 문제가 있습니다.
앞으로도 미래에 할 수있는 텔레 워크의 장애가 될 것 같았기 때문에 VPN으로 연결하는 사쿠라 VPS에 로컬 프록시를 구축하고 해당 사이트 만 프록시를 통해 연결하도록합니다. 시도했습니다.
(뭐 전부 프록시 경유에서도 좋은 생각은 합니다만, 확실히 Youtube 따위로 VPS의 대역 제한에 걸려도 싫기 때문에···)

전제 환경


  • 서버: debian 10 Buster
  • 클라이언트: Windows 10
  • 집 서버와 VPS가 거점 간 VPN으로 연결되어 있습니다

  • 작업 개요



    VPS(debian 10 Buster)


  • squid 설정

  • 집 서버 (debian 10 Buster)


  • nginx 설치 (기본 설정 전용)
  • PAC 파일 배치

  • LAN 내 PC(Windows 10)


  • 자동 프록시 설정

  • 구축 절차



    VPS



    squid 설치


    # apt install squid
    

    squid 설정


    # vi /etc/squid/squid.conf
    

    /etc/squid/squid.conf
    # ローカルネットワークのネットワークアドレス
    acl lan src 192.168.1.0/24
    
    # 接続先として指定されているポート以外を拒否
    acl Safe_ports port 80      # http
    acl Safe_ports port 21      # ftp
    acl Safe_ports port 443     # https
    acl Safe_ports port 70      # gopher
    acl Safe_ports port 210     # wais
    acl Safe_ports port 1025-65535  # unregistered ports
    acl Safe_ports port 280     # http-mgmt
    acl Safe_ports port 488     # gss-http
    acl Safe_ports port 591     # filemaker
    acl Safe_ports port 777     # multiling http
    http_access deny !Safe_ports
    
    # SSL接続時に 443 ポート以外の CONNECT を拒否
    acl SSL_ports port 443
    acl CONNECT method CONNECT
    http_access deny CONNECT !SSL_ports
    
    # ローカルホストを許可
    http_access allow localhost
    
    # ローカルアドレスを許可
    http_access allow lan
    
    # その他のアドレスを拒否
    http_access deny all
    
    # 応答ポートを指定
    http_port 8080
    
    # コアダンプ出力場所
    coredump_dir /var/spool/squid
    
    # キャッシュの設定
    refresh_pattern ^ftp:       1440    20% 10080
    refresh_pattern ^gopher:    1440    0%  1440
    refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
    refresh_pattern .       0   20% 4320
    
    # squidを経由していることを隠す
    request_header_access Referer deny all
    request_header_access X-Forwarded-For deny all
    request_header_access Via deny all
    request_header_access Cache-Control deny all
    forwarded_for off
    
    # ログローテートの設定
    logfile_rotate 0
    

    설정이 끝나면 squid를 다시 시작합니다.
    
    # systemctl restart squid
    

    집 서버



    nginx 설치



    설정은 아무것도 필요 없습니다 w어차피 로컬 운용이고.
    # apt install nginx
    

    PAC 파일 배치



    nginx의 기본 루트 폴더 (/var/www/html) 아래에 proxy.pac를 만듭니다.
    # vi /var/www/html/proxy.pac
    

    /var/www/html/proxy.pac
    function FindProxyForURL(url,host){
            if(shExpMatch(host,"<ホスト名のマッチング文字列>")){
                    return "PROXY <VPSのVPNアドレス>:<ポート番号>";
            }
            return "DIRECT";
    }
    

    작성한 proxy.pac의 소유자를 www-data로 변경
    # chown www-data:www-data /var/www/html/proxy.pac
    

    작성한 proxy.pac의 권한 변경
    # chmod 644 /var/www/html/proxy.pac
    

    LAN 내 PC(Windows 10)



    자동 프록시 설정



    [시작 메뉴] → [설정] → [네트워크 및 인터넷] → [프록시]를 열고
    자동 프록시 설정
    설치 스크립트 사용을 선택하고,
    스크립트 주소로
    http://<VPSのVPNアドレス>/proxy.pac를 입력합니다.

    그리고는 브라우저를 열어, 사이트에 정상적으로 액세스 할 수 있는지 확인해 종료입니다!

    좋은 웹페이지 즐겨찾기