GNU/Linux >> Linux の 問題 >  >> OpenSuse

OpenSUSELeap42.1にOpenVPNをインストールして設定する方法

VPNまたは仮想プライベートネットワークは、インターネットなどのパブリックネットワークを介した安全なプライベートネットワークです。 VPNは、インターネットを介した安全なトンネルであり、データトラフィックを保護し、インターネットのプライバシーとセキュリティを強化します。 VPNへのアクセスは、安全な認証方法によって制限されています。

OpenVPNは、仮想プライベートネットワークを構築するためのオープンソースソフトウェアであり、OpenSSLライブラリを使用してトンネリングされたデータを暗号化し、UDPまたはTCPトランスポートをサポートします。 OpenVPNは、事前共有キー、証明書ベース、およびユーザー名/パスワードベースの認証メカニズムを使用できます。

このチュートリアルでは、LinuxオペレーティングシステムOpenSUSELeap42.1でOpenVPNvpnを使用して仮想プライベートネットワークを実装する方法を紹介します。

前提条件

  • OpenSUSELeap42.1-64ビット
  • root権限
  • TUN/TAPが有効

ステップ1-TUN/TAPが有効になっているかどうかを確認する

サーバーにVPNを作成する場合は、TUN/TAPがインストールされ有効になっていることを確認してください。以下のコマンドで確認できます:

cat /dev/net/tun

結果は次のようになります:

cat: /dev/net/tun: File descriptor in bad state

ステップ2-OpenVPNをインストールする

OpenVPNはOpenSUSEリポジトリで利用できます。 zypperコマンドを使用してインストールできます:

zypper in openvpn

ステップ3-Easy-RSAセットアップ

次に、easy-rsaをダウンロードして証明書ファイルを生成します。 easy-rsaは証明書を管理するためのユーティリティであり、それを使用してルート認証局を作成し、証明書を要求して署名することができます。

OpenVPNディレクトリに移動し、wgetコマンドを使用してeasy-rsaをダウンロードします。

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

アーカイブを抽出し、easy-rsaディレクトリを移動します:

unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/

キーを構成する

easy-rsaディレクトリに移動し、varsファイルを編集して、キーと証明書を構成します。

cd easy-rsa/2.0/
vim vars

53行目-本当にパラノイアの場合は、キーサイズを大きくすることができます。

export KEY_SIZE=2048

56行目と59行目-キーと証明書の有効期限が切れる日数。

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

64行目-72行目-キーと証明書情報のデフォルト値を変更します。

export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]main"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"

ファイルを保存して終了します。

PKIを初期化する

次に、PKI(公開鍵インフラストラクチャ)を初期化します。

source ./vars && ./clean-all && ./build-ca

「Enter」を押すだけで、デフォルト値のままにします。

DiffieHellmanパラメーターを生成する

以下のコマンドを実行します:

./build-dh

出力が表示されます:

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................

サーバー秘密鍵を生成する

「server」という名前の秘密鍵を生成します:

./build-key-server server

Enterキーを押し、「y」と入力して確認し、キーを生成します。

クライアントのキーと証明書を生成する

「client1」という名前のクライアントキーと証明書を生成します:

./build-key client1

Enterキーを押し、「y」と入力してキーの生成を確認します。

キーと証明書は、ディレクトリ「keys」に生成されています。次に、「keys」ディレクトリのコピーを作成し、「openvpn」ディレクトリに配置します。

cp -r keys/ /etc/openvpn/

ステップ4-OpenVPNを設定する

このステップでは、クライアント接続にポート2034を使用して、UDPプロトコルで実行するようにOpenVPNを構成します。 OpenVPNディレクトリに新しい構成ファイルserver.confを作成します。

cd /etc/openvpn/
vim server.conf

以下に設定を貼り付けます:

#change with your port
port 2034

#You can use udp or tcp
proto udp

# "dev tun" will create a routed IP tunnel.
dev tun

#Certificate Configuration

#ca certificate
ca /etc/openvpn/keys/ca.crt

#Server Certificate
cert /etc/openvpn/keys/server.crt

#Server Key and keep this is secret
key /etc/openvpn/keys/server.key

#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem

#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0

#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"

#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

#Enable multiple client to connect with same key
duplicate-cn

keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon

#openvpn status log
status /var/log/openvpn/openvpn-status.log

#enable log
log-append /var/log/openvpn/openvpn.log

#Log Level
verb 3

ファイルを保存してエディタを終了します。

次に、openvpnログ用の新しいディレクトリとファイルを作成します:

mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log

ステップ5-SuSEfirewall2を構成する

SuSEfirewall2は、ファイル「/ etc / sysconfig/SuSEfirewall2」に基づいてiptablesルールを生成するためのスクリプトです。 SuSEfirewall2をインストールし、OpenVPNにアクセスするようにポートを構成してから、OpenVPNのiptablesスクリプトを使用してNATを有効にします。

zypperコマンドを使用してSuSEfirewall2をインストールします。

zypper in SuSEfirewall2

次に、sysconfigディレクトリに移動し、SuSEfirewall2構成ファイルを編集します。

cd /etc/sysconfig/
vim SuSEfirewall2

134行目-ルートを有効にします。

FW_ROUTE="yes"

253行目-ネットワーク外部からのSSHアクセス用にTCPポート22を有効にします。

FW_SERVICES_EXT_UDP="22"

267行目-openvpnクライアントアクセス用にudpポートを有効にします-ポート2034。

FW_SERVICES_EXT_UDP="2034"

877行目-カスタムルールSuSEfirewall2を有効にします。

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

保存して終了します。

次に、scriptsディレクトリでSuSEfirewall2カスタムルールを編集します。

cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom

「fw_custom_after_chain_creation」ディレクティブ内に、OpenVPNの新しいiptablesルールを貼り付けます。

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

保存して終了します。

注:

IP 10.10.2.0/24は、server.confOpenVPN構成ファイルからのネットワークです。

これで、この新しい構成行をsysctl.confファイルに追加することで転送を有効にできます。

vim /etc/sysctl.conf

以下に構成を貼り付けます:

net.ipv4.ip_forward = 1

保存して終了します。

注:

ファイルにすでに行がある場合は、新しい行を追加するのではなく、値を「0」から「1」に変更します。

次に、以下のコマンドを実行して、構成の変更を適用します。

sysctl -p

SuSEfirewall2とOpenVPNサーバーを起動します:

systemctl start SuSEfirewall2
systemctl start [email protected]

エラーが発生した場合は、OpenVPNログに詳細なエラーメッセージが表示されます。

システムのスタートアップにすべてのサービスを追加します:

systemctl enable SuSEfirewall2
systemctl enable [email protected]

ステップ5-クライアントを構成する

クライアントキーと証明書をkeysディレクトリからローカルコンピュータにダウンロードします。あなたはscpコマンドまたはsftpを使うことができます、私はここでscpを使っています:

ローカルコンピューターで実行する必要のあるコマンド。

scp [email protected]:~/etc/openvpn/keys/ca.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.key ~/myvpn/

myvpnディレクトリに、クライアント「client1.ovpn」の新しい構成ファイルを作成します。

cd ~/myvpn/
vim client1.ovpn

以下に設定を貼り付けます:

client
dev tun
proto udp

#Server IP and Port
remote SERVERIP 2034

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo

保存して終了します。

VPNに接続するには、VPNクライアントをインストールするか、Linuxを使用している場合は「Network-Manager」を使用できます。ターミナルを使用してVPNをテストする場合は、次のコマンドを使用できます。

cd ~/myvpn/
sudo openvpn --config client1.ovpn


OpenSuse
  1. OpenSUSELeap42.1にPostgreSQLとphpPgAdminをインストールする方法

  2. OpenSUSELeap15.3でPodmanをインストールして使用する方法

  3. OpenSUSELeap15.3にJava17をインストールする方法

  1. OpenSUSELeap15.3にPostgres14をインストールして設定する方法

  2. OpenSUSELeap15.3にMongodb5をインストールする方法

  3. OpenSUSELeap15.3にRedis6をインストールして設定する方法

  1. Nginxをプロキシとしてインストールおよび設定する方法OpenSUSELeap15.3

  2. OpenSUSELeap15.3にMariadb10をインストールして構成する方法

  3. OpenSUSE Leap 15.3にPHPとNginx(LEMP)をインストールしてセットアップする方法