GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04VPSで独自のWebプロキシを設定する方法

このチュートリアルでは、Ubuntu16.04で独自のWebプロキシを設定する方法を示します。 Webプロキシは、ユーザーが特定のURLを入力してWebサイトのブロックを解除するWebサイトです。独自のWebプロキシを設定するために使用できるWebプロキシスクリプトは多数あります。 Glype およびPHPプロキシ このチュートリアルで使用されます。 Glype は非常に人気のあるWebプロキシスクリプトであり、 PHP-Proxy 良い選択肢です。そのうちの1つを選択できます。私のテストでは、PHP-Proxyはアクティブに更新されているため、Facebook、Twitter、YouTubeなどの人気のあるWebサイトでより高速で、より適切に機能します。 Apache / Nginxを使用してそれらを設定し、Let’sEncryptを使用してHTTPSを有効にする方法を説明します。

通常、私はShadowsocksプロキシとOpenConnect VPNを使用してインターネット検閲を回避していますが、私の国ではこれら2つのツールがブロックされる可能性があります。 Webプロキシは、SOCKSプロキシとVPNの特性を持たないため、優れたバックアップ方法です。インターネットファイアウォールの観点からは、これは通常のHTTPSトラフィックです。オンラインには何万もの無料のWebプロキシがあります。欠点は、これらのパブリックWebプロキシがよく知られるようになると、簡単にブロックできることです。独自のプライベートWebプロキシを設定すると、その存在を知っているのは自分だけであるという利点があります。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • ブロックされたWebサイト(国外またはインターネットフィルタリングシステム)に自由にアクセスできるVPS(仮想プライベートサーバー)とドメイン名。 VPSには、Vultrをお勧めします。月額わずか2.5ドルで512Mメモリの高性能KVMVPSを提供します。これは、プライベートプロキシサーバーに最適です。
  • WebサーバーとPHPをインストールします

ドメイン名も必要なので、HTTPS暗号化を追加してWebトラフィックを保護できます。 NameCheapからドメイン名を購入することをお勧めします。これは、価格が低く、whoisのプライバシー保護が一生無料になるためです。

ステップ1:WebサーバーとPHPをインストールする

Ubuntu16.04VPSにSSHで接続します。 NginxをWebサーバーとして使用する場合は、次のコマンドを実行してNginxとPHP7をインストールします。

sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip

ApacheをWebサーバーとして使用する場合は、

を実行します。
sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip

ステップ2:GlypeまたはPHP-Proxyをダウンロードする

Glype

次のコマンドを実行してGlypeをダウンロードします。

wget https://www.php-proxy.com/download/glype-1.4.15.zip

/var/www/proxy/に抽出します ディレクトリ。

sudo apt install unzip

sudo mkdir -p /var/www/proxy/

sudo unzip glype-1.4.15.zip -d /var/www/proxy/

www-dataを設定します (Webサーバーユーザー)所有者として。

sudo chown www-data:www-data /var/www/proxy/ -R

PHPプロキシ

Composerを使用してPHP-Proxyをダウンロードできます。 Ubuntu16.04リポジトリからComposerをインストールします。

sudo apt install composer

次に、PHP-Proxyを/var/www/proxy/にダウンロードします。 ディレクトリ。

sudo mkdir -p /var/www/proxy/

sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/

www-dataを設定します (Webサーバーユーザー)所有者として。

sudo chown www-data:www-data /var/www/proxy/ -R

ステップ3:Webサーバーを構成する

このステップでは、Webプロキシ用のNginxサーバーブロックまたはApache仮想ホストを作成する必要があります。

Nginxサーバーブロックの作成

/etc/nginx/conf.d/の下にサーバーブロックを作成します ディレクトリ。

sudo nano /etc/nginx/conf.d/web-proxy.conf

次の行をコピーしてファイルに貼り付けます。 proxy.example.comを置き換えます あなたの本当のドメイン名で。 DNSマネージャーにAレコードを設定することを忘れないでください。

server {
        listen 80;
        server_name proxy.example.com;

        root /var/www/proxy/;
        index index.php;

        location / {
          try_files $uri $uri/ /index.php;
        }

         location ~ \.php$ {
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                include snippets/fastcgi-php.conf;
        }
}

ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

Apache仮想ホストの作成

/etc/apache2/sites-avaialable/にApache仮想ホストを作成します ディレクトリ。

sudo nano /etc/apache2/sites-available/web-proxy.conf

次の行をコピーしてファイルに貼り付けます。 proxy.example.comを置き換えます あなたの本当のドメイン名で。 DNSマネージャーにAレコードを設定することを忘れないでください。

<VirtualHost *:80>        
        ServerName proxy.example.com

        DocumentRoot /var/www/proxy

        ErrorLog ${APACHE_LOG_DIR}/proxy.error.log
        CustomLog ${APACHE_LOG_DIR}/proxy.access.log combined
</VirtualHost>

ファイルを保存して閉じます。次に、この仮想ホストを有効にします。

sudo a2ensite web-proxy.conf

変更を有効にするためにApacheをリロードします。

sudo systemctl reload apache2

Webインターフェイス

次に、proxy.example.comにアクセスします Webブラウザで。 Glypeを使用している場合は、管理コントロールパネル(proxy.example.com/admin.php)にリダイレクトされます。 。

PHP-Proxyを使用している場合は、URLの入力を待機しているWebプロキシが機能していることがわかります。

それでは、Let’sEncryptを使用してHTTPSを有効にしましょう。

ステップ4:Webプロキシ用にLet'sEncryptを使用してHTTPSを有効にする

次のコマンドを実行することで、公式PPAからLet’s Encryptクライアント(certbot)をインストールできます。

sudo apt install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

sudo apt install certbot

Nginx ユーザーは、CertbotNginxプラグインもインストールする必要があります。

sudo apt install python-certbot-nginx

NginxプラグインでHTTPSを有効にします。

sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address

アパッチ ユーザーはCertbotApacheプラグインをインストールする必要があります。

sudo apt install python-certbot-apache

ApacheプラグインでHTTPSを有効にします。

sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address

次のエラーメッセージが表示された場合。

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

Let’sEncryptフォーラムのこの投稿をチェックして修正してください。

証明書が正常にインストールされたら、HTTPSを使用するようにWebブラウザでプロキシを更新します。

(オプション)WebプロキシをCDNの背後に配置する

インターネット検閲者がWebサイトをブロックする方法は少なくとも3つあります。

  • WebサイトのIPアドレスをブロックします。
  • DNS応答を乗っ取って、エンドユーザーに間違ったIPアドレスを与えます。
  • サーバー名表示(SNI)を確認して、TLS接続をブロックします

Webプロキシがインターネット検閲者によってブロックされていることが心配な場合は、CloudflareなどのCDN(コンテンツ配信ネットワーク)の背後にWebプロキシを配置できます。このように、サーバーのIPアドレスは非表示になり、インターネット検閲者がCloudflareのIPアドレスをブロックすることを決定した場合、同じIPアドレスを使用している他の多くのWebサイトがあるため、巻き添え被害が発生します。これにより、インターネット検閲者はそうする前に2度考えさせられます。

DNSポイズンを防ぐために、エンドユーザーはDNSoverTLSまたはDNSoverHTTPSを使用する必要があります。 SNI情報の漏洩を防ぐために、Webサイトでは暗号化されたSNIを使用する必要があります。

結論

それでおしまい!このチュートリアルが、Ubuntu16.04で独自のWebプロキシを作成するのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。


Ubuntu
  1. Ubuntu18.04にSquidプロキシサーバーをセットアップしてインストールする方法

  2. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  3. Ubuntu – Ubuntuで静的IPを設定する方法は?

  1. Ubuntuのバージョンを確認する方法

  2. Ubuntu 20.04/18.04にRedisをインストールする方法

  3. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  1. Ubuntu18.04でDNSネームサーバーを設定する方法

  2. Ubuntu18.04でWireGuardVPNを設定する方法

  3. Ubuntu20.04でWireGuardVPNを設定する方法