仮想プライベートネットワーク(VPN)は、非常に便利な多くのアプリケーションに利用できます。公共のWiFiホットスポットに安全に接続できます。お気に入りのWebサイトの地理的ブロッキングの制限を克服できます。また、まるで机の前に座っているかのように、世界中のどこからでも自宅やオフィスのネットワークに接続できます。このガイドでは、独自のOpenVPNサーバーをセットアップし、Viscosityのコピーを使用してサーバーに接続するプロセスについて説明します。
独自のOpenVPNサーバーを実行すると、インターネット上で行うすべてのことを暗号化できるため、お気に入りのカフェで無料WiFiを使用してオンラインバンキングを安全に行うことができます。 VPN接続を介して送信するものはすべて、自宅のOpenVPNサーバーに到達するまでデバイスから暗号化されます。自宅またはオフィスのネットワークにアクセスするようにOpenVPNサーバーを設定すると、ネットワーク上のすべてのファイルに完全にアクセスできます。
このガイドでは、CentOSホスト上にOpenVPNサーバーをセットアップする手順について説明します。これにより、リモートの場所からホーム/オフィスネットワークに安全にアクセスし、オプションですべてのネットワークトラフィックを送信してインターネットにアクセスできるようになります。安全にも。
このガイドでは、次のことを前提としています。
- CentOS 7の最新バージョンはすでにインストールされています 。 CentOS8のRedHatガイドを参照してください。
- ルートがあります このインストールへのアクセス
- ネットワークインターフェイスの名前を知っている(すぐ下の手順)
- このCentOSのインストールは新規インストールです
- クライアントデバイスにViscosityのコピーがすでにインストールされています
CentOSのコピーをダウンロードしてインストールする必要がある場合は、https://www.centos.org/download/にコピーがあります。 CentOSインスタンスの設定の詳細については説明しません。多くのガイドがオンラインで見つかります。別のバージョンのCentOSを実行している場合は、このガイドで概説されている手順の多くまたはすべてが引き続き適用される可能性が非常に高くなります。別のオペレーティングシステムでOpenVPNサーバーをセットアップする場合は、他のガイドを確認してください。
クライアントにViscosityのコピーがまだインストールされていない場合は、Viscosity(Mac | Windows)をインストールするためのこのセットアップガイドを確認してください。
プライマリネットワークインターフェイス(WANアクセス)の名前を取得するには、CentOSサーバーで次のコマンドを実行します。
ip route | grep default | awk 'NR==1 {print $(NF-4)}'
ローカルネットワーク上のマシンにアクセスするための2番目のネットワークインターフェイスがある場合は、ファイアウォールとルーティングを設定するときに、この名前も必要になります。
残念ながら、独自のOpenVPNサーバーをセットアップするための直接サポートを提供することはできません。このガイドは、Viscosityのコピーを開始し、最大限に活用できるようにするための礼儀として提供されています。このガイドの手順を徹底的にテストして、以下の手順に従えば、独自のOpenVPNサーバーを実行するメリットを十分に享受できるようになります。
CentOSの詳細やヘルプについては、https://www.centos.org/forums/
のコミュニティフォーラムをご覧ください。このガイドで概説されている手順は、CentOSサーバーのコマンドラインインターフェイス(つまり、ターミナル)を介して実行されます。このサーバーをリモートで実行している場合は、SSHアプリケーションを使用して、クライアントデバイスとサーバーを安全に接続する必要があります(サーバーに「SSH接続」するため)。 OpenVPNサーバーを仮想プライベートサーバー(VPS)にセットアップする場合は、Webインターフェイスに精通しているだけかもしれません。多くのVPSサプライヤは、Webインターフェイスに加えてSSHアクセスを提供しています。詳細については、VPSプロバイダーにお問い合わせください。
SSHを初めて使用する場合は、導入ガイドにいくつかの手順があります。
CentOSデスクトップ
CentOSサーバーにローカルアクセスできる場合は、サーバーにSSHで接続しなくても、このガイドの手順を直接実行できます。手順はターミナルウィンドウで実行する必要があるため、最初の手順は、ルートアクセスを使用してCentOSでターミナルウィンドウを開くことです。デスクトップから、左上の[アプリケーション]ドロップダウンをクリックし、お気に入りから[ターミナル]を選択して、ターミナルアプリを開きます。 リスト。これにより、残りのセットアップを続行できるターミナルウィンドウが開きます。
CentOSサーバー上の端末にアクセスできるようになったので、ユーザーをrootに変更する必要があります。ターミナルウィンドウに入力します:
su root
次に、プロンプトが表示されたらrootパスワードを入力します。これで、rootアカウントにログインしていることがわかります。
rootにログインしたら、次のように入力して、CentOSのリポジトリリストが最新であることを確認する必要があります。
yum update -y
これにより、プレインストールされたパッケージが実行されて更新されます。更新が見つかった場合は、続行するかどうかを尋ねられます。 y
と入力して確認します 。パッケージのアップグレードが完了した後、再起動する必要があることが通知される場合があります。その場合は、再起動後にrootとしてターミナルに再度ログインしてください。
次に、OpenVPNパッケージが含まれているEPEL(Enterprise Linux用の追加パッケージ)をインストールする必要があります。
yum install epel-release -y
拡張パッケージができたので、OpenVPNをインストールできます。ターミナルに次のように入力します:
yum install openvpn -y
構成、証明書、およびキーの生成
次のステップは、サーバーとクライアントの構成、およびそれらに対応する証明書を生成することです。これは、証明書とキーの作成ガイドに従って簡単に行うことができます。 CentOS 7 RPMインストーラーを使用してLinuxのセクションに従い、サーバーからクライアント構成をコピーするか(これをお勧めします)、PCまたはMacですべてを生成してサーバーをコピーすることができます。 CentOSサーバー上に生成されるフォルダー。
デフォルトのDNSサーバー(10.8.0.1)を使用する場合は、自分でDNSサーバーをセットアップする必要があります。手順はこの記事の最後にあります。代わりに、既存のDNSサーバーを使用することをお勧めします。Google(8.8.8.8および8.8.4.4)のような公開されているDNSサーバーが最も簡単です。
構成を生成したら、サーバー構成をサーバーに転送するか、クライアント構成をサーバーから転送する必要があります。ローカルアクセスがある場合は、USBドライブが最も簡単です。そうでない場合は、イントロダクションガイドでSCPを使用してファイルを転送する方法についてサポートがあります。
IP転送
VPNを通過するリクエストを転送するには、OpenVPNサーバーをルーターのように機能させる必要があります。そのため、IP転送を有効にする必要があります。
- ターミナルで、次のように入力して、CentOSサーバーでIP転送を有効にできます。
-
echo 1 > /proc/sys/net/ipv4/ip_forward
-
- ホーム/オフィスネットワーク上のホストがVPNサーバーを確実に検出できるようにするには、サーバーがARP要求に応答するようにする必要があります。
-
echo 1 > /proc/sys/net/ipv4/conf/ens33/proxy_arp
- ここでens33 は、2つのネットワークインターフェイスがある場合はホーム/オフィスネットワークのネットワークインターフェイス、それ以外の場合はプライマリネットワークインターフェイス(WAN)です(詳細については、準備のセクションを参照してください)。
-
- サーバーを再起動するたびに、これらのコマンドは元に戻されます。これが起こらないようにするには、sysctl.confファイルを変更する必要があります。
-
nano /etc/sysctl.conf
-
- このファイルの最後に次の行を追加します。
net.ipv4.ip_forward = 1
- と
-
net.ipv4.conf.ens33.proxy_arp = 1
-
ctrl
を押します +x
nanoを終了します。プロンプトが表示されたら、変更を保存します。 - sysctl.confファイルに加えられた変更を有効にするには、次のように入力します。
-
sysctl -p /etc/sysctl.conf
-
DNSサーバー
VPNサーバーを介してすべてのネットワークトラフィックを暗号化することを計画している場合は、独自のDNSサーバーを有効にすることをお勧めします。
- DNSサーバーをインストールするには、次のように入力します。
-
yum install bind bind-utils bind-libs bind-chroot
-
- DNSサーバーの転送ルールを設定するには、構成ファイルを変更します。
-
nano /etc/named.conf
-
- 上部には、オプションというラベルの付いた中括弧付きの手順のコレクションが表示されます。 。オプションのリストの下部に次の2行を挿入します。
forwarders {8.8.8.8;8.8.4.4;}; #IP of upstream nameservers
forward only; #rely completely on our upstream nameservers- Google DNSサーバーを使用している場所(選択したDNS解決サービスを自由に使用できます)。
- VPNサブネット(10.8.0.0/24)をリッスンオンに追加します およびallow-query オプションの上部にあるパラメータにより、次のようになります。
-
...
listen-on port 53 { 10.8.0.0/24;127.0.0.1; };
...
allow-query {10.8.0.0/24;localhost; };
...
-
-
ctrl
を押します +x
nanoを終了します。プロンプトが表示されたら、変更を保存します。 - confファイルのパーミッションを644に設定します:
-
chmod 644 /etc/named.conf
-
このconfファイルはエラーの影響を受けやすいため、次のように入力して確認できます。
named-checkconf /etc/named.conf
構成ファイルにエラーが含まれていない場合、このコマンドは何も返しません。
- ネームサーバーのリストを開きます:
-
nano /etc/resolv.conf
-
- サーバーリゾルバーをそれ自体を指すように設定します:
-
nameserver 127.0.0.1
-
-
ctrl
を押します +x
nanoを終了します。プロンプトが表示されたら、変更を保存します。 - CentOSサーバーがDHCPサービスを備えたルーターで実行されている場合は、DHCPリースの更新時にresolv.confファイルが上書きされないようにする必要があります。タイプ:
-
nano /etc/sysconfig/network-scripts/ifcfg-ens33
- ens33が異なる場合は、プライマリネットワークインターフェイスの名前に置き換えます(詳細については、準備のセクションを参照してください)
-
- 次の3つのパラメータが設定されていることを確認します。
BOOTPROTO=dhcp
PEERDNS=no
TYPE=Ethernet
-
ctrl
を押します +x
nanoを終了します。プロンプトが表示されたら、変更を保存します。 - DNSサーバーを起動するには、次のように入力します。
-
systemctl start named
-
- システム起動時にDNSサーバーの自動起動を有効にします:
-
systemctl enable named
-
これで、DNSサーバーがセットアップされました。
デフォルトのfirewalldを使用します CentOSにデフォルトでインストールされているファイアウォール。すでに独自のファイアウォールが設定されているサーバーにOpenVPNをインストールする場合は、OpenVPNトラフィックを許可するルールを必ず追加してください。ただし、これが単なるスタンドアロンのCentOSサーバーである場合は、OpenVPNサーバーを起動して実行するには、以下のファイアウォール設定で十分です。
- openvpnを許可する service:
-
firewall-cmd --permanent --add-service=openvpn
-
firewall-cmd --add-service=openvpn
-
- マスカレードを提供するようにOpenVPNサーバーを設定します:
-
firewall-cmd --permanent --add-masquerade
-
firewall-cmd --add-masquerade
-
- OpenVPNポートを許可する(1194):
-
firewall-cmd --permanent --add-port=1194/udp
-
- 次の新しい設定でファイアウォールを再起動します:
-
firewall-cmd --reload
-
OpenVPNサーバーの起動
この時点で、基本は完了です。サーバー構成とファイルは、それらを生成した場所からコピーしたサーバー上にある必要があります。
まず、サーバー構成ファイルをOpenVPNディレクトリにコピーします。
sudo cp /path/to/configs/server/* /etc/openvpn/
次に、サーバーを起動し、再起動後も起動できるようにします。
systemctl -f enable [email protected]
systemctl start [email protected]
サーバーのステータスを確認するには、次のように入力します。
systemctl -l status [email protected]
ステータスと緑色で返信する必要があります:
... Active: active (running) ...
これでOpenVPNサーバーが稼働し、接続する準備が整いました。
CentOSサーバーに直接アクセスできる場合 、次にこのセクションをスキップできます 。構成するルーターはありません。
ただし、CentOSサーバーがルーターの背後にある場合(自宅の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)に変換します。したがって、次のプロパティを持つ静的ルーティングルールを設定する必要があります。
Destination: 10.8.0.0 Subnet mask: 255.255.255.0 Default gateway: your-server-IP
ここで、 your-server-IP ローカルネットワーク上のOpenVPNサーバーのIPアドレスです(192.168.0.xの範囲内のもの)。
最後のステップは、粘度を設定することです。 openvpn-generateのおかげで、これはインポートして接続するのと同じくらい簡単です。
openvpn-generateで作成した*.viszファイルをViscosityがインストールされているMacまたはWindowsマシンにコピーし、ファイルをダブルクリックします。構成が正常にインポートされたことを示すプロンプトが表示されます。
VPN接続の接続と使用
これで接続する準備が整いました。 macOSメニューバーまたはWindowsシステムトレイの粘度アイコンをクリックして粘度メニューを開き、インポートした接続を選択すると、粘度が接続されます。
VPNが稼働していることを確認するには、[粘度]メニューから[詳細]ウィンドウを開きます。これにより、接続の詳細、トラフィック、OpenVPNログを表示できます。
これで、独自のOpenVPNサーバーをセットアップできました。おめでとうございます。これで、独自のOpenVPNサーバーを操作するメリットを自由に享受できます。