GNU/Linux >> Linux の 問題 >  >> Panels >> OpenVPN

VyOSとViscosityを使用したOpenVPNサーバーのセットアップ

仮想プライベートネットワーク(VPN)は、非常に便利な多くのアプリケーションに利用できます。公共のWiFiホットスポットに安全に接続できます。お気に入りのWebサイトの地理的ブロッキングの制限を克服できます。また、まるで机の前に座っているかのように、世界中のどこからでも自宅やオフィスのネットワークに接続できます。このガイドでは、独自のOpenVPNサーバーをセットアップし、Viscosityのコピーを使用してサーバーに接続するプロセスについて説明します。

独自のOpenVPNサーバーを実行すると、インターネット上で行うすべてのことを暗号化できるため、お気に入りのカフェで無料WiFiを使用してオンラインバンキングを安全に行うことができます。 VPN接続を介して送信するものはすべて、自宅のOpenVPNサーバーに到達するまでデバイスから暗号化されます。自宅またはオフィスのネットワークにアクセスするようにOpenVPNサーバーを設定すると、ネットワーク上のすべてのファイルに完全にアクセスできます。

このガイドでは、VyOSホスト上にOpenVPNサーバーをセットアップする手順について説明します。これにより、リモートの場所からホーム/オフィスネットワークに安全にアクセスし、オプションですべてのネットワークトラフィックを送信してインターネットにアクセスできるようになります。安全にも。

準備

このガイドでは、次のことを前提としています。

  • すでに最新バージョンのVyOSをインストールしています (執筆時点で1.1)
  • アカウントにsudoがあります このインストールの権限
  • このVyOSのインストールは新規インストールです
  • クライアントデバイスにViscosityのコピーがすでにインストールされています

VyOSのコピーをダウンロードしてインストールする必要がある場合は、http://vyos.net/wiki/Main_Pageにコピーがあります。 VyOSインスタンスの設定の詳細については説明しません。多くのガイドがオンラインで見つかります。別のバージョンのVyOSを実行している場合は、このガイドで概説されている手順の多くまたはすべてが引き続き適用される可能性が非常に高くなります。別のオペレーティングシステムでOpenVPNサーバーをセットアップする場合は、他のガイドを確認してください。

クライアントにViscosityのコピーがまだインストールされていない場合は、Viscosity(Mac | Windows)をインストールするためのこのセットアップガイドを確認してください。

サポート

残念ながら、独自のOpenVPNサーバーをセットアップするための直接サポートを提供することはできません。このガイドは、Viscosityのコピーを開始し、最大限に活用できるようにするための礼儀として提供されています。このガイドの手順を徹底的にテストして、以下の手順に従えば、独自のOpenVPNサーバーを実行するメリットを十分に享受できるようになります。

VyOSの詳細やヘルプについては、https://vyos.io/

で利用できるさまざまなリソースとフォーラムがあります。 はじめに

ネットワークインターフェースはすでにそのように設定されていると想定します:

  • 'OUTSIDE'-インターネットに接続されたeth0
  • 'INSIDE'-ローカルホームネットワークに接続されたeth1
証明書とキーの生成

次のステップは、サーバーとクライアントの構成、およびそれらに対応する証明書を生成することです。これは、証明書とキーの作成ガイドに従って簡単に行うことができます。 PCまたはMacですべてを生成してから、サーバーへのパスをメモします 作成されたフォルダ。後でここでファイルを使用します。

デフォルトのDNSサーバー(10.8.0.1)を使用する場合は、自分でDNSサーバーをセットアップする必要があります。手順はこの記事の最後にあります。代わりに、既存のDNSサーバーを使用することをお勧めします。Google(8.8.8.8および8.8.4.4)のような公開されているDNSサーバーが最も簡単です。

次に、次のファイルを/config/auth/にコピーする必要があります。 サーバーにあるVyOSアプライアンスのディレクトリ openvpn-generateが作成したばかりのフォルダー。SCPの使用をお勧めします。 SCPに慣れていない場合は、紹介ガイドでSCPを使用してファイルを転送する方法についてサポートがあります。

  • ca.crt
  • server.crt
  • server.key
  • dh.pem

コマンドラインからSCPを使用している場合、コマンドの例は次のようになります。
scp path/to/server/ca.crt [email protected]:/config/auth/

OpenVPNサーバー構成

OpenVPNサーバー構成でカスタマイズする必要のあるさまざまな設定がいくつかあります。ターミナルで、次のように入力して設定モードに入ります。

configure

$からのプロンプトの変更が表示されます へ 。次の設定コマンドの入力を間違えた場合は、前に入力したコマンドを繰り返して削除できますが、先頭の「set」という単語を「delete」という単語に置き換えます。

以下をターミナルウィンドウに貼り付けます:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

set interfaces openvpn vtun0 server push-route 192.168.0.0/24のIPアドレスに特に注意してください 。このサブネットがホーム/オフィスのLANIPサブネットと一致していることを確認してください。このVPNサーバーをホーム/オフィスLANにアクセスするように設定していない場合は、この行を完全にスキップできます。

ファイアウォールルール

VyOSにデフォルトでインストールされているファイアウォールを使用します。すでに独自のファイアウォールが設定されているサーバーにOpenVPNをインストールする場合は、OpenVPNトラフィックを許可するルールを必ず追加してください。ただし、これが単純なスタンドアロンVyOSサーバーである場合は、OpenVPNサーバーを起動して実行するには、以下のファイアウォール設定で十分です。

まだ構成モード 、以下をターミナルウィンドウに貼り付けます。

# First we will set the rules for traffic passing through the server. We want
# the firewall to allow traffic for existing connections to the server, and drop 
# any new ones:
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Next we will set the rules to allow the local network to talk to the outside world
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'</code>

# If you would like the ability to ping your VyOS server externally, add the following
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

# If you would like the ability to SSH into your server externally (without a VPN connected), add the following
# NOTE - This can be a security risk and is not recommended
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

# Allow external connections to the OpenVPN port. This will allow you to VPN to your server
# from somewhere outside your local network (like a coffee shop)
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 destination port '1194'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'udp'

# Apply these firewall policies:
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

# Lastly, we need to enable NAT masquerade:
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.8.0.0/24'
set nat source rule 100 translation address 'masquerade'
set nat source rule 200 outbound-interface 'eth1'
set nat source rule 200 source address '10.8.0.0/24'
set nat source rule 200 translation address 'masquerade'

DNSサーバー

VPNサーバーを介してすべてのネットワークトラフィックを暗号化することを計画している場合は、独自のDNSサーバーを有効にすることをお勧めします。 VyOSにはデフォルトでDNSフォワーダーがインストールされており、これを使用してVPN接続用の独自のDNSサーバーを提供し、DNS関連の攻撃を防ぐことができます。

まだ構成モード 、以下をターミナルウィンドウに貼り付けます。

# We will set the DNS forwarder to store 100 lookups locally, to speed up 
# repeated DNS requests:
set service dns forwarding cache-size '100'

# DNS queries will be resolved coming from the local network:
set service dns forwarding listen-on 'eth1'

# DNS queries will be resolved coming from our VPN connection:
set service dns forwarding listen-on 'vtun0'

# We will use the Google DNS servers (you are free to use your DNS resolution
# service of choice):
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'

構成のセットアップが完了したので、ターミナルに次のように入力して変更を保存します。

commit;save

構成モードを終了します:

exit

ルーターの設定

VyOSサーバーに直接アクセスできる場合 、次にこのセクションをスキップできます 。構成するルーターはありません。

ただし、VyOSサーバーがルーターの背後にある場合(自宅のWiFiなど)、VPNトラフィックを許可するようにルーターを構成する必要があります。ルーターとネットワーク構成にはさまざまなモデルがあるため、VPNトラフィックを許可するようにルーターを設定する方法についてのステップバイステップガイドを提供することはできません。ただし、変更が必要になる可能性のある設定がいくつかあるため、ここで概要を説明します。

ルーターはOpenVPNサーバーとの間ですべてのトラフィックを転送するため、ポート転送を設定する必要があります OpenVPNサーバーに外部からアクセスできるようにします。ポート転送は、ルーター管理インターフェイスの「仮想サーバー」という名前のセクションの下にある場合があります。一般に、OpenVPNポート(1194)でルーターに着信するトラフィックを転送する必要があります。これらのポートのUDPトラフィックをOpenVPNサーバーのローカルIPアドレス(おそらく192.168.0.xの範囲にあるもの)に送信するルールを設定する必要があります。

ポートフォワーディングを設定している場合は、外部WANIPアドレスもメモしてください。 。これは、インターネットサービスプロバイダー(ISP)によってルーターに割り当てられたIPアドレスです。このアドレスは、以下のViscosityで接続を構成するときに必要になります。

考慮する必要がある他の主要なルーター設定は静的ルーティングです。 VPNを設定するため、10.8.0.xの範囲の送信元または宛先IPを使用してルーターにトラフィックが送信されます。ホストがVPNクライアント(10.8.0.xサブネット上)から要求を受信し、そのアドレスに応答を送信するときに、ルーターが10.8を変換する方法を認識できるように、このトラフィックには静的ルーティングを設定する必要があります。 0.x IPアドレスを理解できるアドレス(つまり、192.168.0.x)に変換します。したがって、次のプロパティを持つ静的ルーティングルールを設定する必要があります。

宛先:10.8.0.0サブネットマスク:255.255.255.0デフォルトゲートウェイ:your-server-IP

ここで、 your-server-IP ローカルネットワーク上のOpenVPNサーバーのIPアドレスです(192.168.0.xの範囲内のもの)。

粘度の設定

最後のステップは、粘度を設定することです。 openvpn-generateのおかげで、これはインポートして接続するのと同じくらい簡単です。

インポート

openvpn-generateで作成した*.viszファイルをViscosityがインストールされているMacまたはWindowsマシンにコピーし、ファイルをダブルクリックします。構成が正常にインポートされたことを示すプロンプトが表示されます。

インポートしたら、接続を編集して[詳細設定]タブに移動します。新しい行に次の2つのコマンドを追加します。

cipher AES-256-CBC
auth SHA256

VPN接続の接続と使用

これで接続する準備が整いました。 macOSメニューバーまたはWindowsシステムトレイの粘度アイコンをクリックして粘度メニューを開き、インポートした接続を選択すると、粘度が接続されます。

VPNが稼働していることを確認するには、[粘度]メニューから[詳細]ウィンドウを開きます。これにより、接続の詳細、トラフィック、OpenVPNログを表示できます。



これで、独自のOpenVPNサーバーをセットアップできました。おめでとうございます。これで、独自のOpenVPNサーバーを操作するメリットを自由に享受できます。


OpenVPN
  1. Dockerを使用してOpenVPNサーバーをインストールしてホストする方法

  2. Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

  3. OpenVPNサーバーFreeBSD12のインストールと設定

  1. Ubuntu22.04でOpenVPNサーバーをセットアップおよび構成する方法

  2. ObfsproxyとViscosityを使用した難読化サーバーのセットアップ

  3. CentOSとViscosityを使用したOpenVPNサーバーのセットアップ

  1. DD-WRTとViscosityを使用したOpenVPNサーバーのセットアップ

  2. NetgearとViscosityを使用したOpenVPNサーバーのセットアップ

  3. OktaシングルサインオンWeb認証と粘度を使用したOpenVPNサーバーのセットアップ