0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCIで簡単な環境を作ってみた(その1)

Last updated at Posted at 2024-04-10

最近Oracle環境を構築する検証をすることになったので、
あくまで自分用にメモを残しておく。

作りたい環境

  • VPNを経由したプライベートサブネット
  • アプリケーションWebサーバ(以下Server) + Base Databaseサービスの連携

たったこれだけの簡単な環境を構築する。
そもそもAWSの検証ばかりだったのでOCIの検証目的となります。

今回はVPNサーバの作成と接続までとなります。

構成図

ga検証環境.drawio.png

AWSでいうクライアントVPNのような軽い検証をしたいのだが、
マネージドされたVPNサービスがないためマーケットプレイスか自作になる。

Linuxではそんなに難しくないので、OPEN VPNを利用した
VPNサーバ自作することにする。

VPN接続あとはServerへ接続するため、
10.0.1.0/24のサブネットに変換されるよう構築します。

ネットワークの用意

AWSでいうVPCはVPNとなる。
これを作成するとデフォルトでデフォルト・ルート表というものが作成される。

また、セキュリティリストというものも作成される。
AWS慣れしているとわかりにくい箇所があったので、記載しておく

  • VPNとサブネット、そして仮想サーバのVNIC単位でセキュリティをかけられる
  • どこか一つでも許可があれば通信は通る
  • VPNとサブネットはセキュリティ・リスト
  • VNICやロードバランサーはネットワークセキュリティグループを利用する

とてもめんどくさいので都度確認する。

また、サブネットを作る前には各々セキュリティリストを作成しておかないと、
変更ができない。
※ルート表(ルートテーブル)は後で変更が可能。

今回はセキュリティリストで対応していく。

構成図にある程度IPは記載しているので、
セキュリティリストの内容を記載する。
ちなみにステートレスにすると戻り通信が返ってこないのでステートフルにする。

  • Pubulic List
  • Praivate List A
  • Praivate List B

Pubulic List

イングレス・ルール
ステートレス ソース IPプロトコル 範囲
いいえ 10.0.0.0/16 TCP ALL
いいえ 10.0.0.0/16 ICMP ALL
いいえ 自宅IP ICMP ALL
いいえ 自宅IP すべてのプロトコル ALL
エグレス・ルール
ステートレス 宛先 IPプロトコル 範囲
いいえ 10.0.0.0/16 TCP ALL
いいえ 10.0.0.0/16 ICMP ALL
いいえ 0.0.0.0/0 すべてのプロトコル ALL

Praivate List A

イングレス・ルール
ステートレス ソース IPプロトコル 範囲
いいえ 10.0.0.0/16 TCP ALL
いいえ 10.0.0.0/16 ICMP ALL
エグレス・ルール
ステートレス 宛先 IPプロトコル 範囲
いいえ 0.0.0.0/0 TCP ALL
いいえ 10.0.0.0/16 ICMP ALL

Praivate List B

イングレス・ルール
ステートレス ソース IPプロトコル 範囲
いいえ 10.0.0.0/16 TCP ALL
エグレス・ルール
ステートレス 宛先 IPプロトコル 範囲
いいえ 0.0.0.0/0 TCP ALL

インターネットゲートウェイ

OCIでもそこまでは変わらない。

作成後、Piblic Subnetのルートテーブルの双方に設定する。

  • Public Subnetのルートテーブルに設定をする
    VCN内はデフォルトでルーティングが組まれているため、
    新たに許可を追加しなくてもローカル通信は通る。
    絞る必要があるのであればサブネット以下から設定を推奨する。

対象のサブネットであるPublic Subnetのルート・ルールを追加する。
g.PNG

VPNサーバ構築

下記の記事を参考にさせていただく。

■参考記事
https://qiita.com/horus19761108/items/9c7879149218d9325c5e

今回はAlmaLinux8で行う。

SELINUXは無効化しておく。
※これがあると起動しない。

[root@vpn-server ~]# getenforce
Disabled
[root@vpn-server ~]#
OS

[root@vpn-server ~]# cat /etc/os-release
NAME="AlmaLinux"
VERSION="8.9 (Midnight Oncilla)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.9 (Midnight Oncilla)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.9"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.9"

8用のepelをインストール

epel
[root@vpn-server ~]# yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noa
rch.rpm
Last metadata expiration check: 14:45:47 ago on Wed 10 Apr 2024 10:22:15 AM UTC.
epel-release-latest-8.noarch.rpm                                      37 kB/s |  25 kB     00:00
Dependencies resolved.
=====================================================================================================
 Package                   Architecture        Version               Repository                 Size
=====================================================================================================
Installing:
 epel-release              noarch              8-19.el8              @commandline               25 k

Transaction Summary
=====================================================================================================
Install  1 Package

Total size: 25 k
Installed size: 35 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                             1/1
  Installing       : epel-release-8-19.el8.noarch                                                1/1
  Running scriptlet: epel-release-8-19.el8.noarch                                                1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

  Verifying        : epel-release-8-19.el8.noarch                                                1/1

Installed:
  epel-release-8-19.el8.noarch

Complete!

Firewalldが動いているが、上位のセキュリティリストによって絞られているから停止しておく。

停止
自動起動停止
[root@vpn-server ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

停止
[root@vpn-server ~]# systemctl stop  firewalld
[root@vpn-server ~]#

OpneVPNなどをインストール

インストール

[root@vpn-server ~]# dnf --enablerepo=epel  install openvpn easy-rsa
Last metadata expiration check: 0:23:26 ago on Thu 11 Apr 2024 01:22:49 AM UTC.
Dependencies resolved.
========================================================================================================================================================
 Package                                 Architecture                     Version                                  Repository                      Size
========================================================================================================================================================
Installing:
 easy-rsa                                noarch                           3.0.8-1.el8                              epel                            47 k
 openvpn                                 x86_64                           2.4.12-2.el8                             epel                           545 k
Installing dependencies:
 pkcs11-helper                           x86_64                           1.22-7.el8                               epel                            64 k

Transaction Summary
========================================================================================================================================================
Install  3 Packages

Total download size: 657 k
Installed size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): easy-rsa-3.0.8-1.el8.noarch.rpm                                                                                   95 kB/s |  47 kB     00:00
(2/3): openvpn-2.4.12-2.el8.x86_64.rpm                                                                                  1.0 MB/s | 545 kB     00:00
(3/3): pkcs11-helper-1.22-7.el8.x86_64.rpm                                                                              112 kB/s |  64 kB     00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                   499 kB/s | 657 kB     00:01
Extra Packages for Enterprise Linux 8 - x86_64                                                                          1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x2F86D6A1:
 Userid     : "Fedora EPEL (8) <epel@fedoraproject.org>"
 Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                1/1
  Installing       : pkcs11-helper-1.22-7.el8.x86_64                                                                                                1/3
  Running scriptlet: openvpn-2.4.12-2.el8.x86_64                                                                                                    2/3
  Installing       : openvpn-2.4.12-2.el8.x86_64                                                                                                    2/3
  Running scriptlet: openvpn-2.4.12-2.el8.x86_64                                                                                                    2/3
  Installing       : easy-rsa-3.0.8-1.el8.noarch                                                                                                    3/3
  Running scriptlet: easy-rsa-3.0.8-1.el8.noarch                                                                                                    3/3
  Verifying        : easy-rsa-3.0.8-1.el8.noarch                                                                                                    1/3
  Verifying        : openvpn-2.4.12-2.el8.x86_64                                                                                                    2/3
  Verifying        : pkcs11-helper-1.22-7.el8.x86_64                                                                                                3/3

Installed:
  easy-rsa-3.0.8-1.el8.noarch                      openvpn-2.4.12-2.el8.x86_64                      pkcs11-helper-1.22-7.el8.x86_64

Complete!

3.0.8が最新で入っていることを確認

改めて確認
[root@vpn-server ~]# ll /usr/share/easy-rsa/
total 0
lrwxrwxrwx. 1 root root  5 Sep 10  2020 3 -> 3.0.8
lrwxrwxrwx. 1 root root  5 Sep 10  2020 3.0 -> 3.0.8
drwxr-xr-x. 3 root root 66 Apr 11 01:46 3.0.8

設定ファイルのコピーと確認

領域のコピー
[root@vpn-server ~]# mkdir /etc/openvpn/easy-rsa
[root@vpn-server ~]# cp /usr/share/easy-rsa/3.0.8/* /etc/openvpn/easy-rsa/ -R

[root@vpn-server ~]# ll /etc/openvpn/easy-rsa/
total 84
-rwxr-xr-x. 1 root root 76946 Apr 11 01:51 easyrsa
-rw-r--r--. 1 root root  4616 Apr 11 01:51 openssl-easyrsa.cnf
drwxr-xr-x. 2 root root   122 Apr 11 01:51 x509-types

[root@vpn-server ~]# ll /usr/share/easy-rsa/3.0.8/
total 84
-rwxr-xr-x. 1 root root 76946 Sep  9  2020 easyrsa
-rw-r--r--. 1 root root  4616 Sep  9  2020 openssl-easyrsa.cnf
drwxr-xr-x. 2 root root   122 Apr 11 01:46 x509-types
[root@vpn-server ~]#

初期化

初期化
[root@vpn-server ~]# cd /etc/openvpn/easy-rsa
[root@vpn-server easy-rsa]#


[root@vpn-server easy-rsa]# ll
total 84
-rwxr-xr-x. 1 root root 76946 Apr 11 01:51 easyrsa
-rw-r--r--. 1 root root  4616 Apr 11 01:51 openssl-easyrsa.cnf
drwxr-xr-x. 2 root root   122 Apr 11 01:51 x509-types
[root@vpn-server easy-rsa]#


[root@vpn-server easy-rsa]# ./easyrsa init-pki

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki

[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki
total 16
-rw-------. 1 root root 4616 Apr 11 01:53 openssl-easyrsa.cnf
drwx------. 2 root root    6 Apr 11 01:53 private
drwx------. 2 root root    6 Apr 11 01:53 reqs
-rw-------. 1 root root 4640 Apr 11 01:53 safessl-easyrsa.cnf

認証局の作成

[root@vpn-server easy-rsa]# ./easyrsa build-ca
Using SSL: openssl OpenSSL 1.1.1k  FIPS 25 Mar 2021

Enter New CA Key Passphrase:     #任意のパスワード入力
Re-Enter New CA Key Passphrase:  #再入力
Generating RSA private key, 2048 bit long modulus (2 primes)
..................................................+++++
.........................................................................................................................................................................+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:OCIVPNTEST #任意の名前

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/easy-rsa/pki/ca.crt


生成された鍵を確認

ca.cr
[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/ca.crt
-rw-------. 1 root root 1200 Apr 11 01:55 /etc/openvpn/easy-rsa/pki/ca.cr

DHパラメータの作成

DHパラメータの作成

[root@vpn-server easy-rsa]# ./easyrsa gen-dh
Using SSL: openssl OpenSSL 1.1.1k  FIPS 25 Mar 2021
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time

中略

DH parameters of size 2048 created at /etc/openvpn/easy-rsa/pki/dh.pem


[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/dh.pem
-rw-------. 1 root root 424 Apr 11 01:59 /etc/openvpn/easy-rsa/pki/dh.pem

サーバ用の証明書と秘密鍵の作成

サーバ用の証明書と秘密鍵の作成

[root@vpn-server easy-rsa]# ./easyrsa build-server-full server_r nopass
Using SSL: openssl OpenSSL 1.1.1k  FIPS 25 Mar 2021
Generating a RSA private key
..+++++
........................................................................+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1842.WlCYCW/tmp.G6Ehv2'
-----
Using configuration from /etc/openvpn/easy-rsa/pki/easy-rsa-1842.WlCYCW/tmp.Bz3C3z
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key: #認証局の作成で使用したパスワード
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server_r'
Certificate is to be certified until Jul 15 02:01:03 2026 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

[root@vpn-server easy-rsa]#

生成されたサーバ証明書と秘密鍵を確認

サーバ用の証明書
[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/issued/server_r.crt
-rw-------. 1 root root 4614 Apr 11 02:01 /etc/openvpn/easy-rsa/pki/issued/server_r.crt
秘密鍵
[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/private/server_r.key
-rw-------. 1 root root 1704 Apr 11 02:00 /etc/openvpn/easy-rsa/pki/private/server_r.key

クライアント用の証明書と秘密鍵の作成

クライアント用の証明書と秘密鍵の作成
[root@vpn-server easy-rsa]# ./easyrsa build-client-full client1 nopass
Using SSL: openssl OpenSSL 1.1.1k  FIPS 25 Mar 2021
Generating a RSA private key
........................................+++++
...........................+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1954.CPehFP/tmp.LnIJco'
-----
Using configuration from /etc/openvpn/easy-rsa/pki/easy-rsa-1954.CPehFP/tmp.ZpEkz3
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key: #認証局の作成で使用したパスワード
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client1'
Certificate is to be certified until Jul 15 02:06:55 2026 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

生成されたクライアント用の証明書とクライアント用の秘密鍵の確認

クライアント用の証明書
[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/issued/client1.crt
-rw-------. 1 root root 4487 Apr 11 02:06 /etc/openvpn/easy-rsa/pki/issued/client1.crt
クライアント用の秘密鍵
[root@vpn-server easy-rsa]# ll /etc/openvpn/easy-rsa/pki/private/client1.key
-rw-------. 1 root root 1708 Apr 11 02:06 /etc/openvpn/easy-rsa/pki/private/client1.key

OpenVPNの設定

サンプルファイルを複製

[root@vpn-server easy-rsa]# cd /etc/openvpn/
[root@vpn-server easy-rsa]#

[root@vpn-server openvpn]# ll
total 0
drwxr-x---. 2 root openvpn  6 Nov 10 00:39 client
drwxr-xr-x. 4 root root    77 Apr 11 01:53 easy-rsa
drwxr-x---. 2 root openvpn  6 Nov 10 00:39 server
[root@vpn-server openvpn]# ll /usr/share/doc/openvpn/sample/sample-config-files/server.conf
-rw-r--r--. 1 root root 10784 Mar 17  2022 /usr/share/doc/openvpn/sample/sample-config-files/server.conf

[root@vpn-server openvpn]# cp  /usr/share/doc/openvpn/sample/sample-config-files/server.conf server.conf
[root@vpn-server openvpn]#

[root@vpn-server openvpn]# ll
total 12
drwxr-x---. 2 root openvpn     6 Nov 10 00:39 client
drwxr-xr-x. 4 root root       77 Apr 11 01:53 easy-rsa
drwxr-x---. 2 root openvpn     6 Nov 10 00:39 server
-rw-r--r--. 1 root root    10784 Apr 11 02:12 server.conf

バックアップと編集
[root@vpn-server openvpn]# cp -ip server.conf server.conf_org
[root@vpn-server openvpn]#

[root@vpn-server openvpn]# vi server.conf

下記を参考にさせていただいた

設定内容を確認

[root@vpn-server ~]# cat /etc/openvpn/server/server.conf |grep -v -e '^\s*#' -e'^\s*$' |grep -v ^";"
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_r.crt
key /etc/openvpn/easy-rsa/pki/private/server_r.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.0.8.0 255.255.255.0  #接続元に10.0.0.0/24のネットワークからIPを振る
ifconfig-pool-persist ipp.txt
push "route 10.0.1.0 255.255.255.0" 
client-to-client
keepalive 10 300
tls-auth /etc/openvpn/ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log         /var/log/openvpn.log
log-append  /var/log/openvpn.log
verb 3
explicit-exit-notify 1
[root@vpn-server ~]#
変更点
[root@vpn-server ~]# diff -y /etc/openvpn/server/server.conf /etc/openvpn/server.conf_org  |grep "|"
ca /etc/openvpn/easy-rsa/pki/ca.crt                           | ca ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_r.crt            | cert server.crt
key /etc/openvpn/easy-rsa/pki/private/server_r.key  # This fi | key server.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/pki/dh.pem                           | dh dh2048.pem
server 10.0.8.0 255.255.255.0                                 | server 10.8.0.0 255.255.255.0
;server-bridge 10.0.1.0 255.255.255.0 10.8.0.50 10.8.0.100    | ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge 10.0.0.0 255.255.255.0 10.0.0.200 10.0.0.230   | ;server-bridge
;push "route 192.168.0.0 255.255.255.0"                       | ;push "route 192.168.10.0 255.255.255.0"
push "route 10.0.1.0 255.255.255.0"                           | ;push "route 192.168.20.0 255.255.255.0"
client-to-client                                              | ;client-to-client
keepalive 10 300                                              | keepalive 10 120
tls-auth /etc/openvpn/ta.key 0 # This file is secret          | tls-auth ta.key 0 # This file is secret
comp-lzo                                                      | ;comp-lzo
user nobody                                                   | ;user nobody
group nobody                                                  | ;group nobody
status /var/log/openvpn-status.log                            | status openvpn-status.log
log         /var/log/openvpn.log                              | ;log         openvpn.log
log-append  /var/log/openvpn.log                              | ;log-append  openvpn.log

中でもこれが大事。ちゃんとしたエラーログを吐かせないとうまくいかないときの原因調査で全然時間がかかる。
log /var/log/openvpn.log
log-append /var/log/openvpn.log

TLS認証キーの作成

TLS認証キーの作成
[root@vpn-server openvpn]# openvpn --genkey --secret /etc/openvpn/ta.key

[root@vpn-server openvpn]# ll /etc/openvpn/ta.key
-rw-------. 1 root root 636 Apr 11 02:50 /etc/openvpn/ta.key

この後、ディレクトリ /etc/openvpn/server へ、必要なファイルを移動させる

[root@vpn-server ~]# ll /etc/openvpn/server
total 20
-rw------- 1 root root    17 Apr 22 16:17 ipp.txt
-rw-r--r-- 1 root root 10980 Apr 22 15:56 server.conf
-rw------- 1 root root   636 Apr 19 18:46 ta.key

このディレクトリからserver.confを読み込まれる。
ta.keyはserver.confで絶対パスで/etc/openvpn/ta.keyへと指定しているので不要
ipp.txtは指定があるのでここに必要になる。

ただし、絶対パスで指定すれば別

[root@vpn-server ~]# cat /etc/openvpn/server/server.conf |grep ipp.txt
ifconfig-pool-persist ipp.txt

上記で設定している証明書類はすべてServerディレクトリに置けば要はそのままできる。

IPフォワードの設定

net.ipv4.ip_forward = 1
[root@vpn-server ~]# vi /etc/sysctl.conf
[root@vpn-server ~]# cat /etc/sysctl.conf |grep -v -e '^\s*#' -e '^\s*$'
net.ipv4.ip_forward=1

反映
[root@vpn-server ~]# sysctl -p
net.ipv4.ip_forward = 1

iptablesコマンドを実行して、NAT(マスカレード)ルールを追加

設定前確認
[root@vpn-server ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

設定投入と確認
[root@vpn-server ~]# iptables -t nat -A POSTROUTING -s 10.0.8.0/24 -o eth0 -j MASQUERADE
[root@vpn-server ~]# 

[root@vpn-server ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.0.8.0/24          anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

設定ファイルを指定して起動テスト

起動テスト
[root@vpn-server ~]# openvpn /etc/openvpn/server/server.conf
[root@vpn-server ~]#

ログ確認

ログ確認

[root@vpn-server openvpn]# less /var/log/openvpn.log
Thu Apr 11 18:31:13 2024 OpenVPN 2.4.12 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Nov 10 2023
Thu Apr 11 18:31:13 2024 library versions: OpenSSL 1.1.1k  FIPS 25 Mar 2021, LZO 2.08
Thu Apr 11 18:31:13 2024 Diffie-Hellman initialized with 2048 bit key
Thu Apr 11 18:31:13 2024 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Apr 11 18:31:13 2024 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Apr 11 18:31:13 2024 ROUTE_GATEWAY 10.0.0.1/255.255.255.0 IFACE=eth0 HWADDR=02:00:17:02:e6:1e
Thu Apr 11 18:31:13 2024 TUN/TAP device tun0 opened
Thu Apr 11 18:31:13 2024 TUN/TAP TX queue length set to 100
Thu Apr 11 18:31:13 2024 /sbin/ip link set dev tun0 up mtu 1500
Thu Apr 11 18:31:13 2024 /sbin/ip addr add dev tun0 local 10.0.0.1 peer 10.0.0.2
Thu Apr 11 18:31:13 2024 /sbin/ip route add 10.0.0.0/24 via 10.0.0.2
Thu Apr 11 18:31:13 2024 Could not determine IPv4/IPv6 protocol. Using AF_INET
Thu Apr 11 18:31:13 2024 Socket Buffers: R=[212992->212992] S=[212992->212992]
Thu Apr 11 18:31:13 2024 UDPv4 link local (bound): [AF_INET][undef]:1194
Thu Apr 11 18:31:13 2024 UDPv4 link remote: [AF_UNSPEC]
Thu Apr 11 18:31:13 2024 GID set to nobody
Thu Apr 11 18:31:13 2024 UID set to nobody
Thu Apr 11 18:31:13 2024 MULTI: multi_init called, r=256 v=256
Thu Apr 11 18:31:13 2024 IFCONFIG POOL: base=10.0.0.4 size=62, ipv6=0
Thu Apr 11 18:31:13 2024 IFCONFIG POOL LIST
Thu Apr 11 18:31:13 2024 Initialization Sequence Completed

Initialization Sequence Completed
がでているのでOK

起動

起動
[root@vpn-server ~]# systemctl start openvpn-server@server
[root@vpn-server ~]#

[root@vpn-server ~]# systemctl status openvpn-server@server
 openvpn-server@server.service - OpenVPN service for server
   Loaded: loaded (/usr/lib/systemd/system/openvpn-server@.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-04-11 18:46:24 JST; 36min ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Main PID: 5822 (openvpn)
   Status: "Initialization Sequence Completed"
    Tasks: 1 (limit: 50260)
   Memory: 1.0M
   CGroup: /system.slice/system-openvpn\x2dserver.slice/openvpn-server@server.service
           mq5822 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --cipher AES-256-GCM --ncp-ciphers AES-256-GCM:>

Apr 11 18:46:24 vpn-server systemd[1]: Starting OpenVPN service for server...
Apr 11 18:46:24 vpn-server systemd[1]: Started OpenVPN service for server.


■作業端末にClientツールを導入する

下記を参考にさせていただきました。
https://qiita.com/horus19761108/items/86c4ae1f44707d5d847e

下記からダウンロード
https://www.vpnux.jp/download

インストールの際はバージョンは2.6を選択します。

あらかじめ必要なファイルを再確認しておきます。

■中間証明書
/etc/openvpn/easy-rsa/pki/ca.crt

■クライアントサーバ証明書
/etc/openvpn/easy-rsa/pki/issued/client1.crt

■クライアント秘密鍵
/etc/openvpn/easy-rsa/pki/private/client1.key

上記ファイルを開きメモしておく。

設定は下記のように設定
プロファイル.PNG

TUNドライバはWinTunを指定しなければ接続に失敗します。

接続ができたことをクライアント側でも確認します。

クライアント側の確認
C:\Users\81803>ipconfig

Windows IP 構成


イーサネット アダプター イーサネット:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

不明なアダプター OpenVPN Wintun:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::c553:61e6:88f8:c934%50
   IPv4 アドレス . . . . . . . . . . . .: 10.0.8.6
   サブネット マスク . . . . . . . . . .: 255.255.255.252
   デフォルト ゲートウェイ . . . . . . .:

不明なアダプター ローカル エリア接続 2:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

Wireless LAN adapter ローカル エリア接続* 1:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

Wireless LAN adapter ローカル エリア接続* 2:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.0.25
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.0.1

一旦serverだけ立てて疎通確認

C:\Users\81803>ping 10.0.1.149

10.0.1.149 に ping を送信しています 32 バイトのデータ:
10.0.1.149 からの応答: バイト数 =32 時間 =13ms TTL=63
10.0.1.149 からの応答: バイト数 =32 時間 =12ms TTL=63
10.0.1.149 からの応答: バイト数 =32 時間 =13ms TTL=63

10.0.1.149 の ping 統計:
    パケット数: 送信 = 3、受信 = 3、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 12ms、最大 = 13ms、平均 = 12ms
Ctrl+C
^C
C:\Users\81803>

対象サーバへローカルIPで接続できたことを確認。

SSHも接続できた。

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu Apr 25 11:30:32 2024 from 自宅IP
[opc@server ~]$ sudo su -
Last login: Thu Apr 25 11:30:35 JST 2024 on pts/0
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:00:17:00:b4:fb brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 10.0.1.149/24 brd 10.0.1.255 scope global dynamic noprefixroute eth0
       valid_lft 76895sec preferred_lft 76895sec
    inet6 fe80::17ff:fe00:b4fb/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@server ~]#

長くなったので、次の工程は下記で行います。
https://qiita.com/Cache-Hit/items/e1830cafe52f20366c45

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?