匿名プロキシとしてだけでなく、VPS ...

現在、すべてのインターネットユーザーはVPSを購入し、リモートサーバーを使用して、たとえば、独自のWebサイトをホストしたり、DNSサーバーを整理したりできます。 この投稿では、VPSの非標準的な使用方法について説明します。個人の匿名プロキシサーバーを作成し、既存のサービスへのバックアップアクセスを提供する方法です。



ソースデータ:





匿名プロキシサーバーを介したインターネットリソースへのアクセス



クライアント--->インターネットゲートウェイ(PF)--rdr->ローカルプロキシサーバー(SQUID)--vpn-> VPSプロキシサーバー(SQUID)--->インターネット



インターネットゲートウェイ上のPFファイアウォール


特定のリソースへの匿名アクセスのために、PF IPアドレスの特別なテーブルを作成します。

table <anonymous> persist file "/etc/pf/iplists/anonymsites.txt"
      
      





このスキームでは、クライアントは透過プロキシを使用するため、PFではリダイレクトを作成する必要があります。

 $ext_ip="xxx.xxx.xxx.xxx" $int_if=" " rdr on $int_if proto tcp from $clients to <anonymous> port 80 -> $ext_ip port 3129 rdr on $int_if proto tcp from $clients to <anonymous> port 443 -> $ext_ip port 3129
      
      





ポート80、443上のクライアントからのトラフィックを、ローカルプロキシサーバー(ポート3129)を介して特定のリソースにリダイレクトします。



ローカルプロキシサーバーSQUID


ローカルネットワークのプロキシとして、次のディレクティブを標準のSQUID2.7構成に導入する必要があります。

 http_port 3129 #    header_access From deny all header_access Server deny all header_access User-Agent deny all header_access WWW-Authenticate deny all header_access Link deny all header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all forwarded_for off #          VPS  vpn- cache_peer 10.10.10.250 parent 3128 0 no-query no-digest cache_peer_access 10.10.10.250 allow all never_direct allow all
      
      





OpenVPNトンネル


openvpnサーバー(10.10.10.1)をゲートウェイにインストールし、クライアントをVPS(10.10.10.250)にインストールすることにより、インターネットゲートウェイとVPSの間にvpnトンネルを作成します。

 # OpenVPN  mode server tls-server port 2080 proto udp dev tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/ta.key 0 topology subnet ifconfig 10.10.10.1 255.255.255.0 keepalive 10 120 max-clients 10 comp-lzo cipher DES-EDE3-CBC user nobody group nogroup persist-key persist-tun verb 4 mute 20 client-to-client client-config-dir /etc/openvpn/ccd status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log
      
      





 # OpenVPN  client dev tun proto udp remote xxx.xxx.xxx.xxx 2080 pull topology subnet user nobody group nobody persist-key persist-tun ca /usr/local/etc/openvpn/keys/ca.crt cert /usr/local/etc/openvpn/keys/vps.crt key /usr/local/etc/openvpn/keys/vps.key tls-client tls-auth /usr/local/etc/openvpn/keys/ta.key 1 cipher DES-EDE3-CBC comp-lzo verb 3 status /var/log/openvpn-status.log log /var/log/openvpn.log mute 20
      
      





VPSプロキシサーバーSQUID


匿名アクセスを使用したSQUID2.7標準構成。

 http_port 3128 #   header_access From deny all header_access Server deny all header_access User-Agent deny all header_access WWW-Authenticate deny all header_access Link deny all header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all forwarded_for off
      
      







外部からサーバー(HTTP、HTTP)へのバックアップアクセス



インターネット---> VPS(PF)--vpn + stunnel->インターネットゲートウェイ(PF)--->ローカルサーバー(HTTP、HTTPs)



VPS上のPFファイアウォール


VPSのPFファイアウォールにリダイレクトを追加します。

 $ext_if=" " rdr on $ext_if proto tcp from any to $ext_if port 80 -> 127.0.0.1 port 8180 rdr on $ext_if proto tcp from any to $ext_if port 443 -> 127.0.0.1 port 4443
      
      





インターネットゲートウェイの背後のWebサーバー宛てのトラフィックを、Stunnelが実行されているポート8180および4443のローカルループアドレスにリダイレクトします。



トンネルトンネル


もちろん、Stunnelを使用せずに、単純に静的ルートとPFのポート転送をローカルサーバーに追加することもできましたが、実験することにしました。 この場合、Stunnelは外部トラフィックをローカルWebサーバー(192.168.XXX.YYY)にプロキシするために必要です。 VPSおよびインターネットゲートウェイのトンネル構成:

 #stunnel.conf  VPS pid = /var/run/stunnel.pid debug = 4 output = /var/log/stunnel.log cert = /usr/local/etc/stunnel/stunnel.cert key = /usr/local/etc/stunnel/stunnel.key sslVersion = SSLv3 options = DONT_INSERT_EMPTY_FRAGMENTS ciphers = AES256-SHA socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 compression = rle [http] client = yes accept = 8180 connect = 10.10.10.1:8180 TIMEOUTclose = 0 [https] client = yes accept = 4443 connect = 10.10.10.1:4443 TIMEOUTclose = 0
      
      





 #stunnel.conf  - pid = /var/run/stunnel.pid debug = 4 output = /var/log/stunnel.log cert = /usr/local/etc/stunnel/stunnel.cert key = /usr/local/etc/stunnel/stunnel.key sslVersion = SSLv3 options = DONT_INSERT_EMPTY_FRAGMENTS ciphers = AES256-SHA socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 compression = rle [http] accept = 8180 connect = 192.168.XXX.YYY:80 TIMEOUTclose = 0 [https] accept = 4443 connect = 192.168.XXX.YYY:443 TIMEOUTclose = 0
      
      





そのため、追加のホワイトIPを介してサービスへのバックアップアクセスを提供できます。 たとえば、DNSのドメインexample.com



はメインの外部IPにマッピングでき、サブドメインは www.example.com



www.example.com



(多くの場合、メインのエイリアス)-リモートVPSのIP。




All Articles