setup-ipsec-vpn

English | 中文 | 日本語

IPsec VPN サーバー自動セットアップスクリプト

Build Status GitHub Stars Docker Stars Docker Pulls

数分で自分のIPsec VPNサーバーをセットアップし、IPsec/L2TP、Cisco IPsec、IKEv2をサポートします。

IPsec VPNはネットワークトラフィックを暗号化し、インターネット経由でデータが送信される際に、VPNサーバーとあなたの間の誰もがデータを盗聴できないようにします。これは、コーヒーショップ、空港、ホテルの部屋などの安全でないネットワークを使用する際に特に有用です。

IPsecサーバーとしてLibreswanを使用し、L2TPプロバイダーとしてxl2tpdを使用します。

» :book: 本: VPNサーバーの構築方法 [日本語 English 中文 Español Deutsch Français Italiano]

クイックスタート

まず、Ubuntu、Debian、またはCentOSをインストールしたLinuxサーバー*を準備します。

このワンライナーを使用してIPsec VPNサーバーをセットアップします:

wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

VPNログイン情報はランダムに生成され、完了時に表示されます。

オプション: 同じサーバーにWireGuardおよび/またはOpenVPNをインストールします。

スクリプトの動作を確認する(ターミナル記録)。 **注:** この記録はデモ目的のみです。この記録のVPN資格情報は**無効**です。

ダウンロードできない場合はこちらをクリックしてください。 `curl`を使用してダウンロードすることもできます: ```bash curl -fsSL https://get.vpnsetup.net -o vpn.sh && sudo sh vpn.sh ``` 代替セットアップURL: ```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh ``` ダウンロードできない場合は、[vpnsetup.sh](/setup-ipsec-vpn/vpnsetup.sh)を開き、右側の`Raw`ボタンをクリックします。`Ctrl/Cmd+A`を押してすべて選択し、`Ctrl/Cmd+C`を押してコピーし、お気に入りのエディタに貼り付けます。

事前構築されたDockerイメージも利用可能です。他のオプションやクライアントのセットアップについては、以下のセクションを参照してください。

* クラウドサーバー、仮想プライベートサーバー(VPS)、または専用サーバー。

機能

要件

以下のいずれかのインストールを備えたクラウドサーバー、仮想プライベートサーバー(VPS)、または専用サーバー:

他のサポートされているLinuxディストリビューション。 - Raspberry Pi OS(Raspbian) - Kali Linux - Alpine Linux - Red Hat Enterprise Linux(RHEL)

これは、DigitalOceanVultrLinodeOVH、およびMicrosoft AzureなどのパブリッククラウドのLinux VMも含まれます。パブリッククラウドユーザーは、ユーザーデータを使用してデプロイすることもできます。

クイックデプロイ:

Deploy to Linode  Deploy to AWS  Deploy to Azure

» 自分のVPNを運用したいが、そのためのサーバーがない

外部ファイアウォールを持つサーバー(例:EC2/GCE)の場合、VPNのUDPポート500および4500を開きます。

事前構築されたDockerイメージも利用可能です。上級ユーザーはRaspberry Piにインストールできます。[1] [2]

:warning: これらのスクリプトをPCやMacで実行しないでください!これらはサーバーでのみ使用する必要があります!

インストール

まず、サーバーを更新します:sudo apt-get update && sudo apt-get dist-upgrade(Ubuntu/Debian)またはsudo yum updateを実行し、再起動します。これはオプションですが、推奨されます。

VPNをインストールするには、次のオプションのいずれかを選択してください:

オプション1: スクリプトにランダムなVPN資格情報を生成させる(完了時に表示されます)。

wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

オプション2: スクリプトを編集し、自分のVPN資格情報を提供する。

wget https://get.vpnsetup.net -O vpn.sh
nano -w vpn.sh
[自分の値に置き換える:YOUR_IPSEC_PSK、YOUR_USERNAME、およびYOUR_PASSWORD]
sudo sh vpn.sh

注: 安全なIPsec PSKは少なくとも20のランダムな文字で構成されるべきです。

オプション3: 環境変数として自分のVPN資格情報を定義する。

# すべての値は 'シングルクォート' で囲む必要があります
# これらの特殊文字を値に使用しないでください: \ " '
wget https://get.vpnsetup.net -O vpn.sh
sudo VPN_IPSEC_PSK='your_ipsec_pre_shared_key' \
VPN_USER='your_vpn_username' \
VPN_PASSWORD='your_vpn_password' \
sh vpn.sh

同じサーバーにWireGuardおよび/またはOpenVPNをインストールすることもできます。サーバーがCentOS Stream、Rocky Linux、またはAlmaLinuxを実行している場合、最初にOpenVPN/WireGuardをインストールし、その後IPsec VPNをインストールします。

ダウンロードできない場合はこちらをクリックしてください。 `curl`を使用してダウンロードすることもできます。例えば: ```bash curl -fL https://get.vpnsetup.net -o vpn.sh sudo sh vpn.sh ``` 代替セットアップURL: ```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh ``` ダウンロードできない場合は、[vpnsetup.sh](/setup-ipsec-vpn/vpnsetup.sh)を開き、右側の`Raw`ボタンをクリックします。`Ctrl/Cmd+A`を押してすべて選択し、`Ctrl/Cmd+C`を押してコピーし、お気に入りのエディタに貼り付けます。
古いLibreswanバージョン4をインストールしたい。 一般的には、最新の[Libreswan](https://libreswan.org/)バージョン5を使用することをお勧めします。これはこのプロジェクトのデフォルトバージョンです。ただし、古いLibreswanバージョン4をインストールしたい場合: ```bash wget https://get.vpnsetup.net -O vpn.sh sudo VPN_SWAN_VER=4.15 sh vpn.sh ``` **注:** Libreswanバージョン5がすでにインストールされている場合、最初に[VPNをアンインストール](/setup-ipsec-vpn/docs/uninstall.html)してからLibreswanバージョン4をインストールする必要があるかもしれません。あるいは、[アップデートスクリプト](#upgrade-libreswan)をダウンロードし、`SWAN_VER=4.15`を指定して編集し、スクリプトを実行します。

VPNオプションのカスタマイズ

代替DNSサーバーの使用

デフォルトでは、VPNがアクティブなときにクライアントはGoogle Public DNSを使用するように設定されています。VPNをインストールする際に、すべてのVPNモードに対してカスタムDNSサーバーを指定することができます。例:

sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh

VPN_DNS_SRV1を使用してプライマリDNSサーバーを指定し、VPN_DNS_SRV2を使用してセカンダリDNSサーバーを指定します(オプション)。

以下は、参考のためのいくつかの人気のあるパブリックDNSプロバイダーのリストです。

プロバイダー プライマリDNS セカンダリDNS 注記
Google Public DNS 8.8.8.8 8.8.4.4 このプロジェクトのデフォルト
Cloudflare 1.1.1.1 1.0.0.1 参照:Cloudflare for families
Quad9 9.9.9.9 149.112.112.112 悪意のあるドメインをブロック
OpenDNS 208.67.222.222 208.67.220.220 フィッシングドメインをブロック、設定可能。
CleanBrowsing 185.228.168.9 185.228.169.9 ドメインフィルター利用可能
NextDNS さまざま さまざま 広告ブロック、無料プラン利用可能。詳細はこちら
Control D さまざま さまざま 広告ブロック、設定可能。詳細はこちら

VPNセットアップ後にDNSサーバーを変更する必要がある場合は、高度な使用法を参照してください。

注: サーバーにIKEv2がすでに設定されている場合、上記の変数はIKEv2モードには影響しません。その場合、DNSサーバーなどのIKEv2オプションをカスタマイズするには、まずIKEv2を削除し、sudo ikev2.shを使用して再設定します。

IKEv2オプションのカスタマイズ

VPNをインストールする際に、上級ユーザーはオプションでIKEv2オプションをカスタマイズできます。

オプション1: VPNセットアップ時にIKEv2をスキップし、カスタムオプションを使用してIKEv2を設定します。 VPNをインストールする際に、IKEv2をスキップし、IPsec/L2TPおよびIPsec/XAuth("Cisco IPsec")モードのみをインストールできます: ```bash sudo VPN_SKIP_IKEV2=yes sh vpn.sh ``` (オプション)VPNクライアントにカスタムDNSサーバーを指定する場合は、`VPN_DNS_SRV1`およびオプションで`VPN_DNS_SRV2`を定義します。詳細については、[代替DNSサーバーの使用](#use-alternative-dns-servers)を参照してください。 その後、IKEv2ヘルパースクリプトを実行して、カスタムオプションを使用して対話的にIKEv2を設定します: ```bash sudo ikev2.sh ``` 次のオプションをカスタマイズできます:VPNサーバーのDNS名、最初のクライアントの名前と有効期間、VPNクライアントのDNSサーバー、およびクライアント構成ファイルをパスワードで保護するかどうか。 **注:** サーバーにIKEv2がすでに設定されている場合、`VPN_SKIP_IKEV2`変数は影響しません。その場合、IKEv2オプションをカスタマイズするには、まず[IKEv2を削除](/setup-ipsec-vpn/docs/ikev2-howto.html#remove-ikev2)し、`sudo ikev2.sh`を使用して再設定します。
オプション2: 環境変数を使用してIKEv2オプションをカスタマイズします。 VPNをインストールする際に、オプションでIKEv2サーバーアドレスのDNS名を指定できます。DNS名は完全修飾ドメイン名(FQDN)である必要があります。例: ```bash sudo VPN_DNS_NAME='vpn.example.com' sh vpn.sh ``` 同様に、最初のIKEv2クライアントの名前を指定できます。指定しない場合、デフォルトは`vpnclient`です。 ```bash sudo VPN_CLIENT_NAME='your_client_name' sh vpn.sh ``` デフォルトでは、VPNがアクティブなときにクライアントは[Google Public DNS](https://developers.google.com/speed/public-dns/)を使用するように設定されています。すべてのVPNモードに対してカスタムDNSサーバーを指定できます。例: ```bash sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh ``` デフォルトでは、IKEv2クライアント構成のインポート時にパスワードは必要ありません。ランダムなパスワードを使用してクライアント構成ファイルを保護することを選択できます。 ```bash sudo VPN_PROTECT_CONFIG=yes sh vpn.sh ```
参考のために:IKEv1およびIKEv2パラメータのリスト。 | IKEv1パラメータ\* | デフォルト値 | カスタマイズ(環境変数)\*\* | | ------------ | ---- | ----------------- | | サーバーアドレス(DNS名)| - | いいえ、ただしDNS名を使用して接続できます | | サーバーアドレス(パブリックIP)| 自動検出 | VPN_PUBLIC_IP | | IPsec事前共有キー | 自動生成 | VPN_IPSEC_PSK | | VPNユーザー名 | vpnuser | VPN_USER | | VPNパスワード | 自動生成 | VPN_PASSWORD | | クライアントのDNSサーバー | Google Public DNS | VPN_DNS_SRV1、VPN_DNS_SRV2 | | IKEv2セットアップをスキップ | いいえ | VPN_SKIP_IKEV2=yes | \* これらのIKEv1パラメータは、IPsec/L2TPおよびIPsec/XAuth("Cisco IPsec")モード用です。 \*\* vpn(setup).shを実行する際に、これらを環境変数として定義します。 | IKEv2パラメータ\* | デフォルト値 | カスタマイズ(環境変数)\*\* | カスタマイズ(対話型)\*\*\* | | ----------- | ---- | ------------------ | ----------------- | | サーバーアドレス(DNS名)| - | VPN_DNS_NAME | ✅ | | サーバーアドレス(パブリックIP)| 自動検出 | VPN_PUBLIC_IP | ✅ | | 最初のクライアントの名前 | vpnclient | VPN_CLIENT_NAME | ✅ | | クライアントのDNSサーバー | Google Public DNS | VPN_DNS_SRV1、VPN_DNS_SRV2 | ✅ | | クライアント構成ファイルを保護する | いいえ | VPN_PROTECT_CONFIG=yes | ✅ | | MOBIKEの有効/無効 | サポートされている場合は有効 | ❌ | ✅ | | クライアント証明書の有効期間 | 10年(120ヶ月)| VPN_CLIENT_VALIDITY\*\*\*\* | ✅ | | CAおよびサーバー証明書の有効期間 | 10年(120ヶ月)| ❌ | ❌ | | CA証明書名 | IKEv2 VPN CA | ❌ | ❌ | | 証明書キーサイズ | 3072ビット | ❌ | ❌ | \* これらのIKEv2パラメータは、IKEv2モード用です。 \*\* vpn(setup).shを実行する際、または自動モードでIKEv2を設定する際に、これらを環境変数として定義します(`sudo ikev2.sh --auto`)。 \*\*\* 対話型IKEv2セットアップ中にカスタマイズできます(`sudo ikev2.sh`)。上記のオプション1を参照してください。 \*\*\*\* `VPN_CLIENT_VALIDITY`を使用して、クライアント証明書の有効期間を月単位で指定します。1から120の間の整数である必要があります。 これらのパラメータに加えて、上級ユーザーはVPNセットアップ中に[VPNサブネットをカスタマイズ](/setup-ipsec-vpn/docs/advanced-usage.html#customize-vpn-subnets)することもできます。

次のステップ

他の言語で読む:English中文日本語

コンピュータやデバイスをVPNに接続します。詳細は以下のリンク(英語)をご覧ください。

IKEv2 VPNクライアントの設定(推奨)

IPsec/L2TP VPNクライアントの設定

IPsec/XAuth(”Cisco IPsec”)VPNクライアントの設定

:book: VPN本を読んで追加コンテンツにアクセスしてください。

自分のVPNを楽しんでください! :sparkles::tada::rocket::sparkles:

重要な注意事項

Windowsユーザー:IPsec/L2TPモードの場合、VPNサーバーまたはクライアントがNAT(例:家庭用ルーター)の背後にある場合、一度だけレジストリを変更する必要があります。

同じVPNアカウントを複数のデバイスで使用できます。ただし、IPsec/L2TPの制限により、同じNAT(例:家庭用ルーター)の背後から複数のデバイスを接続する場合は、IKEv2またはIPsec/XAuthモードを使用する必要があります。VPNユーザーアカウントを表示または更新するには、VPNユーザーの管理を参照してください。

外部ファイアウォールを持つサーバー(例:EC2/GCE)の場合、VPNのUDPポート500および4500を開きます。Aliyunユーザーは、#433を参照してください。

クライアントは、VPNがアクティブなときにGoogle Public DNSを使用するように設定されています。別のDNSプロバイダーを好む場合は、高度な使用法を参照してください。

カーネルサポートを使用すると、IPsec/L2TPのパフォーマンスが向上する可能性があります。これはすべてのサポートされているOSで利用可能です。Ubuntuユーザーはlinux-modules-extra-$(uname -r)パッケージをインストールし、service xl2tpd restartを実行する必要があります。

スクリプトは、変更を加える前に既存の構成ファイルをバックアップし、.old-date-timeサフィックスを付けます。

Libreswanのアップグレード

このワンライナーを使用して、VPNサーバー上のLibreswan変更ログ アナウンス)を更新します。
wget https://get.vpnsetup.net/upg -O vpnup.sh && sudo sh vpnup.sh
ダウンロードできない場合はこちらをクリックしてください。 `curl`を使用してダウンロードすることもできます: ```bash curl -fsSL https://get.vpnsetup.net/upg -o vpnup.sh && sudo sh vpnup.sh ``` 代替アップデートURL: ```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnupgrade.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnupgrade.sh ``` ダウンロードできない場合は、[vpnupgrade.sh](/setup-ipsec-vpn/extras/vpnupgrade.sh)を開き、右側の`Raw`ボタンをクリックします。`Ctrl/Cmd+A`を押してすべて選択し、`Ctrl/Cmd+C`を押してコピーし、お気に入りのエディタに貼り付けます。

最新のサポートされているLibreswanバージョンは5.2です。インストールされているバージョンを確認します:ipsec --version

注: xl2tpdは、Ubuntu/Debianのapt-getなどのシステムのパッケージマネージャーを使用して更新できます。

VPNユーザーの管理

VPNユーザーの管理(英語)を参照してください。

高度な使用法

高度な使用法(英語)を参照してください。

VPNのアンインストール

IPsec VPNをアンインストールするには、ヘルパースクリプトを実行します:

警告: このヘルパースクリプトは、サーバーからIPsec VPNを削除します。すべてのVPN構成は永久に削除され、Libreswanおよびxl2tpdは削除されます。これは元に戻すことはできません

wget https://get.vpnsetup.net/unst -O unst.sh && sudo bash unst.sh
ダウンロードできない場合はこちらをクリックしてください。 `curl`を使用してダウンロードすることもできます: ```bash curl -fsSL https://get.vpnsetup.net/unst -o unst.sh && sudo bash unst.sh ``` 代替スクリプトURL: ```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnuninstall.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnuninstall.sh ```

詳細については、VPNのアンインストールを参照してください。

フィードバックと質問

ライセンス

著作権 (C) 2014-2025 Lin Song View my profile on LinkedIn
Thomas Sarlandieの作品に基づく(著作権2012)

Creative Commons License
この作品はクリエイティブ・コモンズ表示-継承3.0非移植ライセンスの下でライセンスされています。
帰属が必要です:私の名前を派生物に含め、改善方法を教えてください!