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

Ubuntu16.04でOpenVPNを構成する方法

一連のVPN記事を続けて、Ubuntu16.04サーバーにOpenVPNをインストールします。 OpenVPNは、同じ名前の会社のVPNソフトウェアとしてよく知られています。他のVPNソフトウェアよりも構成がやや難しいため、この記事ではサーバー側の構成とovpnファイルの作成に集中します。このガイドは、root以外のユーザーとして実行するように設計されています。 rootとしてログインしている場合は、最初にroot以外のユーザーを追加することから始めます。

adduser newuser

次に、彼にsudo権限を付与し、ユーザーとしてログインします

usermod -aG sudo newuser

su newuser

すでにroot以外のユーザーがいる場合は、これらの手順をスキップできます。おそらくそうです。

newuserまたはその他のroot以外のユーザーとしてログインしたので、openvpnをインストールします

sudo apt-get install openvpn easy-rsa

サーバーとクライアントの証明書

まず、認証局のdirを作成し、varsファイルを編集する必要があります

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
nano vars

エクスポートKEY_が含まれている行を見つけて、次のようにします

export KEY_COUNTRY="US"
export KEY_PROVINCE="New York State"
export KEY_CITY="New York City"
export KEY_ORG="Linoxide"
export KEY_EMAIL="[email protected]"
export KEY_OU="LinuxGeeks"

同じファイルにKEY_NAMEという名前の行もあるので、名前としてサーバーを配置します

export KEY_NAME="server"

varsファイルを保存した後、次に入力するのは次のとおりです。

source vars

./clean-allコマンドに関するメモが表示されます。したがって、クリーンな環境を実行していることを確認するために入力してみましょう。

./clean-all

次に、証明書の作成部分に移動します:

./build-ca

いくつかの質問が表示されますが、変数を編集したので、すべてのカウントでEnterキーを押すことができるように、新しいデフォルトで問題ないはずです。

./build-key-server server

もう一度入力しますが、今回はすべての点でではありません。パスワードを入力するように求められたら、パスワードを入力しないでください。最後に、証明書を作成してください。次はdiffiehellmanです:

./build-dh

しばらく時間がかかりますので、しばらくお待ちください。次に、サーバーのセキュリティを向上させるためにta.keyが必要です。

openvpn --genkey --secret keys/ta.key

次に、openvpnはそこからのみ読み取るため、関連するすべてのファイルを/ etc/openvpnディレクトリにコピーします。

cd ~/openvpn-ca/keys
sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn

サーバー証明書が完成したので、client100の証明書を作成します。

cd ~/openvpn-ca

source vars
./build-key client100

ソースのデフォルトは再びOKなので、最後にEnterキーとyキーを押すだけです。

サーバー構成

開始点として、次のコマンドを使用してサンプル構成をコピーします。

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

次に、server.confを編集して、サーバーを機能させる必要があります。任意のエディターを使用できますが、ここではsedコマンドを使用します

sudo sed -i 's/;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 208.67.222.222"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.220.220"/push "dhcp-option DNS 208.67.220.220"/g' /etc/openvpn/server.conf
sudo sed -i 's/;user nobody/user nobody/g' /etc/openvpn/server.conf
sudo sed -i 's/;group nogroup/group nogroup/g' /etc/openvpn/server.conf

sudo sed -i 's/;log-append/log-append/g' /etc/openvpn/server.conf

ここで行ったこと:すべてのトラフィックをOpenVPN経由に設定し、グループとユーザーをnogroupとnobodyに設定し、ログを/etc/openvpn/openvpn.logに移動するように設定しました。その後、ta.keyについてもう1つ変更する必要があります:

sudo nano /etc/openvpn/server.conf

そして、この行を見つけてください

tls-auth ta.key 0 # This file is secret
key-direction 0

server.confについては以上です。次に、Ubuntuサーバーのパケット転送を有効にする必要があります

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p

ufwルールもマスカレードを許可するように変更する必要があるため、*filterの前の最初にこれを追加します
セクション

sudo nano /etc/ufw/before.rules
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

eth0の部分は、インターネットに直接接続されているネットワークインターフェイスの実際の名前を反映するように変更する必要がある可能性が高いため、強調表示しました。次に、sysctlで行ったようにufwで転送を有効にします:

sudo sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw

ファイアウォールを構成します

sudo ufw allow 1194/udp
sudo ufw disable

sudo ufw enable
sudo systemctl start openvpn@server
sudo systemctl status -l openvpn

すべてがうまくいったら、起動時にopenvpnの開始を有効にします

sudo systemctl enable openvpn@server

クライアント構成

クライアント構成部分では、client100など、すでに作成した証明書を使用します。クライアント構成ファイルも必要です

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

コピーしたファイルは基本設定なので、編集する必要があります。

nano ~/client-configs/base.conf

そして、リモートと言う行を見つけます。 FQDNのサーバーIPアドレスを指すように変更します。

remote your.serv.ipor.fqdn 1194

それを保存してください。残りの編集として、sedコマンドとechoコマンドを使用します。

sudo sed -i 's/;user nobody/user nobody/g' ~/client-configs/base.conf
sudo sed -i 's/;group nogroup/group nogroup/g' ~/client-configs/base.conf

sudo sed -i 's/ca ca.crt/#ca ca.crt/g' ~/client-configs/base.conf
sudo sed -i 's/cert client.crt/#cert client.crt/g' ~/client-configs/base.conf
sudo sed -i 's/key client.key/#key client.key/g' ~/client-configs/base.conf

sudo echo key-direction 1 >> ~/client-configs/base.conf

では、ここで何をしましたか?まず、userとgroupをnobodyとnogroupに設定します。次に、インライン証明書を.ovpnファイルに統合するため、証明書パスをコメントアウトしました。次に、キー方向1パラメータを追加しました。

クライアント構成を作成するためのスクリプト

クライアント構成、キー、および証明書を単一の.ovpnファイルに埋め込んで、リモートクライアントへの転送を容易にするために、単純なスクリプトを使用します。やってみましょう

nano ~/client-configs/make_config.sh

そして、このペーストビンをそこに貼り付けます。これを保存した後、実行可能ビットを追加する必要があるため、次のコマンドを実行します:

chmod +x ~/client-configs/make_config.sh

次に、構成ファイルを簡単に作成できます

cd ~/client-configs
./make_config.sh client100
ls ~/client-configs/files

コマンドの構文は簡単です。client-configsdir内にいて、前に作成したクライアントの名前を示す引数を指定してコマンドを実行する必要があります。より多くのクライアントが必要な場合は、別の名前でさらにクライアント証明書を作成し、このコマンドを再実行してください。すべてがうまくいけば、client-configs/filesディレクトリにovpnファイルが含まれているはずです。それらを1つまたは複数のクライアントに転送し、接続する必要があります。私はscpでそれを行います、私のFedoraラップトップから私はこのようにコマンドを実行しました

 scp [email protected]:/home/newuser/client-configs/files/client100.ovpn /home/miki/Documents/

そこから、USBケーブルを使用してAndroidスマートフォン、AirDroid、Windows VM、またはMacにロードできます。 Linuxネットワークマネージャーの場合、ファイルを逆アセンブルする必要があります

結論

これがサーバー構成についてです。次に、さまざまなクライアントから接続する必要があります。 Androidの場合はOpenVPNConnectを使用でき、Macの場合はTunnelblickを使用でき、Windowsの場合は公式サイトからOpenVPNを使用でき、Linuxの場合はネットワークマネージャーを使用できます。以下の記事のいくつかでは、これについてすべて取り上げます。


Ubuntu
  1. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  2. UbuntuにRedisサーバーをインストールして構成する方法

  3. Ubuntu18.04にOpenVPNをインストールする方法

  1. OpenVPNアクセスサーバーをインストールして構成する方法

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

  3. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  1. Ubuntu20.04にVNCをインストールして構成する方法

  2. Ubuntu18.04にVNCをインストールして構成する方法

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