株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

vyosにはopenvpn機能がデフォルトで入っており、クライアント、サーバとして動作させることができる。
やろうとしていることは、AWS上のvyosとオンプレミスのvyosをVPNで接続することで、site to site VPNに近いものを実現したかったが、リモートアクセスVPNになるので、この構成ではやりたいことはできなさそうだった。

一応、ひと通りコマンドメモを作ったので貼っておきます。
AWS上のvyosはversion1.3でVPNサーバとして機能(マーケットプレイスにあるのが1.3だった)
パブリックIP:18.179.178.209 プライベートIP:172.31.38.155/20

オンプレミスのvyosはversion1.5でVPNクライアントとして機能(今のところ最新)
プライベートIP:192.168.50.104/24

AWS上のvyosでの作業

X509認証で認証をするため、証明書が必要。
easyrsaコマンドがバンドルされているのでこれを使うと良い。
形式さえ合っていれば、どんな方法で作っても問題ない。

cp -r /usr/share/easy-rsa/ /config/my-easy-rsa-config
cd /config/my-easy-rsa-config

mv vars.example vars

vi vars
set_var EASYRSA_DN      "org"
set_var EASYRSA_REQ_COUNTRY     "US"
set_var EASYRSA_REQ_PROVINCE    "California"
set_var EASYRSA_REQ_CITY        "San Francisco"
set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL       "me@example.net"
set_var EASYRSA_REQ_OU          "My Organizational Unit"
set_var EASYRSA_KEY_SIZE        2048

./easyrsa init-pki
./easyrsa build-ca  # password
./easyrsa gen-req central nopass
./easyrsa sign-req server central
./easyrsa gen-dh
./easyrsa build-client-full branch1 nopass

./easyrsa revoke client1
./easyrsa gen-crl

# OpenVPN用のディレクトリにセット
mkdir /config/auth/openvpn
cp pki/ca.crt /config/auth/openvpn
cp pki/dh.pem  /config/auth/openvpn
cp pki/private/central.key /config/auth/openvpn
cp pki/issued/central.crt  /config/auth/openvpn
cp pki/crl.pem /config/auth/openvpn
set interfaces openvpn vtun10 mode server
set interfaces openvpn vtun10 local-port 1194
set interfaces openvpn vtun10 persistent-tunnel
set interfaces openvpn vtun10 protocol udp

set interfaces openvpn vtun10 tls ca-cert-file /config/auth/openvpn/ca.crt
set interfaces openvpn vtun10 tls cert-file /config/auth/openvpn/central.crt
set interfaces openvpn vtun10 tls key-file /config/auth/openvpn/central.key
set interfaces openvpn vtun10 tls crl-file /config/auth/openvpn/crl.pem
set interfaces openvpn vtun10 tls dh-file /config/auth/openvpn/dh.pem

set interfaces openvpn vtun10 server push-route 172.31.0.0/16 # クライアントに追加するスタティックルートを指定
set interfaces openvpn vtun10 server subnet 10.23.1.0/24 # OpenVPNで利用するネットワークアドレスを指定
set interfaces openvpn vtun10 local-host '18.179.178.209' # パブリックIPを指定
set interfaces openvpn vtun10 server client branch1 ip '10.23.1.10' # クライアントに割り振るIPアドレスを指定

# nat設定(VPNサーバと同一ネットワーク上のマシンにアクセスしたい場合)
# set nat source rule 10 outbound-interface eth0
# set nat source rule 10 translation address masquerade

show openvpn server

オンプレミスのvyosでの作業

# サーバで生成した証明書をscpなどでこちらに持ってくる
mkdir /config/auth/openvpn/
cp my-easy-rsa-config/pki/ca.crt /config/auth/openvpn/ 
cp my-easy-rsa-config/pki/issued/branch1.crt /config/auth/openvpn/
cp my-easy-rsa-config/pki/private/branch1.key /config/auth/openvpn/

# VPN設定
set interfaces openvpn vtun10 mode client
set interfaces openvpn vtun10 remote-host '18.179.178.209' # VPNサーバのパブリックアドレスを指定
set interfaces openvpn vtun10 remote-port '1194'
set interfaces openvpn vtun10 protocol 'udp'

# version1.5からは証明書のファイルを指定するのではなくて、中身のテキストを直接指定するので、1行にする
set pki ca ca-1 certificate 'MIIFKTCCBBGgAwIBAgIUSigwap+c/SRdyLHaGIQCHqCBkIgwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMSAwHgYDVQQKDBdDb3B5bGVmdCBDZXJ0aWZpY2F0ZSBDbzEfMB0GA1UECwwWTXkgT3JnYW5pemF0aW9uYWwgVW5pdDEUMBIGA1UEAwwLRWFzeS1SU0EgQ0ExHTAbBgkqhkiG9w0BCQEWDm1lQGV4YW1wbGUubmV0MB4XDTI0MDMxODAxMzY1MFoXDTM0MDMxNjAxMzY1MFowgbIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMSAwHgYDVQQKDBdDb3B5bGVmdCBDZXJ0aWZpY2F0ZSBDbzEfMB0GA1UECwwWTXkgT3JnYW5pemF0aW9uYWwgVW5pdDEUMBIGA1UEAwwLRWFzeS1SU0EgQ0ExHTAbBgkqhkiG9w0BCQEWDm1lQGV4YW1wbGUubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA36/CaYQGjgbftRJLF9hruG5M24rOeY5gfoGtR9mCfPctov2L9ZwUk77sgg1CcS2kAGMog/wwLLZ2RAjzC59RbEGq/Z4pXmaajGodwg1CAexoIQ0cB/TIzxRNXsf27Tc5TJ3GyjAaF4h1ybcISzAZgB6KHt3w2pLroX1GhbCKEJMWQoVDPjRSTUTXUC1EyQ0k6O4pqmTVaErwKKUjuHHVwPz/Poyb+gTirDgzW57D5+d5/pCzaMLY6oyc+5VXxwug5kWy1disygArJWqfVZSCMN4J7CT60xnOnNAyVcKy/GZlmOA17gfTLuQuqblsPT4JHIC3yxGapIPJM8zTs9zrvwIDAQABo4IBMzCCAS8wHQYDVR0OBBYEFHrcDowh5YkvFMZrpKcMvwnnv41AMIHyBgNVHSMEgeowgeeAFHrcDowh5YkvFMZrpKcMvwnnv41AoYG4pIG1MIGyMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEgMB4GA1UECgwXQ29weWxlZnQgQ2VydGlmaWNhdGUgQ28xHzAdBgNVBAsMFk15IE9yZ2FuaXphdGlvbmFsIFVuaXQxFDASBgNVBAMMC0Vhc3ktUlNBIENBMR0wGwYJKoZIhvcNAQkBFg5tZUBleGFtcGxlLm5ldIIUSigwap+c/SRdyLHaGIQCHqCBkIgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKQ1wjEqpTgFBNo/EfAsRG29nh3ILvPhyBw08SC+rjdfB+xiA28jBy21v2TrdW+eA4KAqJS+kr1fzNos68pNmrJ/yOQaPjR2P8h/1bhAnvMuVa73uRGu3d2e6CRiWU3ISw9MaV04hyW6s6Hl+AFVfAcIx93YUvM/+xjZNe3RY0W8kK2YpAvyk7LlDEh9bMy3I/RAC/VPNhd+C56CIPgjcWDOgFvQsywTkWnx+xkU4pPWfzZSbmEPiC3k/eUblxLpMXEjIzYZBLGQgFE0gqwjUKCazyO3mhzU7ns5HysefKK1rlvabBW8npA8NWNaZynQezmuT2TQYnVnunToAgFAELM='
set pki certificate client-1 certificate MIIFNDCCBBygAwIBAgIRALBBS4p9bVuFOOfDtkvsopQwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMSAwHgYDVQQKDBdDb3B5bGVmdCBDZXJ0aWZpY2F0ZSBDbzEfMB0GA1UECwwWTXkgT3JnYW5pemF0aW9uYWwgVW5pdDEUMBIGA1UEAwwLRWFzeS1SU0EgQ0ExHTAbBgkqhkiG9w0BCQEWDm1lQGV4YW1wbGUubmV0MB4XDTI0MDMxODAxMzkxNFoXDTI3MDMwMzAxMzkxNFowga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMSAwHgYDVQQKDBdDb3B5bGVmdCBDZXJ0aWZpY2F0ZSBDbzEfMB0GA1UECwwWTXkgT3JnYW5pemF0aW9uYWwgVW5pdDEQMA4GA1UEAwwHYnJhbmNoMTEdMBsGCSqGSIb3DQEJARYObWVAZXhhbXBsZS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtXr/6LNKa8YRXZ2PojWgbeSEHSJoeilRT5UVc56dPvvCO8sxQF8dLKCh27ZljI81cZOjoX+hC6NzTNO/QVyzdZBaHpUwdjY+b8gHapG1Cx+S+PX4Lh//+/KPAfYvJF5t0xzivnRzqv/uEBtWfZVarnRPxASm4tP7NmJHxrQvuCUvYd3D3yS+E+8dQgeEdr63RIN44w8TL6GAxp4GNqmlYuS5bvnFtw37Y2bMPdzDFVvyfqiDpFNZ0ZNjWVsTDyXNczts1YURNj1nE9GNLhg1c5Zx4/Yp5CA0eTv7F95zpzwpQzSBttg1Bfy56AU/MZSaunoj/mb9QYho0ml0sM0YNAgMBAAGjggFFMIIBQTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQFHozdtSwmlSp9Dr0StYcaqTqcoTCB8gYDVR0jBIHqMIHngBR63A6MIeWJLxTGa6SnDL8J57+NQKGBuKSBtTCBsjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xIDAeBgNVBAoMF0NvcHlsZWZ0IENlcnRpZmljYXRlIENvMR8wHQYDVQQLDBZNeSBPcmdhbml6YXRpb25hbCBVbml0MRQwEgYDVQQDDAtFYXN5LVJTQSBDQTEdMBsGCSqGSIb3DQEJARYObWVAZXhhbXBsZS5uZXSCFEooMGqfnP0kXcix2hiEAh6ggZCIMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAK9XnYyslIJKQkt0G4AWvL0jiwzysaqS+GT44eEO1acAjwVz04U9ttNZFv/nlCMbHA57gbck4SyKB5IE9EZy0ht082zCyutJcuylXBYUt9IZFo0KZPHKho32M8mwCBeBCcCkZc9FkuXyDh8ujr+RidOE8NK00jhcF8OJI2wS0iqRpVq7MH+2R/4HLDZBTNsn7T0a1smFoVbzCywnMWwBGzQbCppWqWD9pUnVAs5WQcJ+q/oIUAyWw4U4wR0A5LH15KVz62ig15ukfSzDUfmSdsOSjMVUG3XAiaC3RYu9jINcyoJTMxZF70qnYPqynnWTPZSsw08kpaGl3gnM+kVAz9A==
set pki certificate client-1 private key MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCtXr/6LNKa8YRXZ2PojWgbeSEHSJoeilRT5UVc56dPvvCO8sxQF8dLKCh27ZljI81cZOjoX+hC6NzTNO/QVyzdZBaHpUwdjY+b8gHapG1Cx+S+PX4Lh//+/KPAfYvJF5t0xzivnRzqv/uEBtWfZVarnRPxASm4tP7NmJHxrQvuCUvYd3D3yS+E+8dQgeEdr63RIN44w8TL6GAxp4GNqmlYuS5bvnFtw37Y2bMPdzDFVvyfqiDpFNZ0ZNjWVsTDyXNczts1YURNj1nE9GNLhg1c5Zx4/Yp5CA0eTv7F95zpzwpQzSBttg1Bfy56AU/MZSaunoj/mb9QYho0ml0sM0YNAgMBAAECggEAIV5pSPezmYr+0+vcePgun4sS5ln8///T90nbreQQefLgTkNBO/E3tKmIEEvvB/vuHOh3Q7Kh+67iQeygc9MzmXEYPQd9vPpwN62+2ZxoQ0BCMLOZPRLyHNv3kKcZbp0SmMl3iaWN2UkWWfUOzN0ub12OZwa4RwrfOCczf/a0ox3pwL7hDNi3v/eEbvA4blnJKekmnM7dJLNWpQGrUEFH7I6f4gmXJtjiajD4xXKosgmdkbLnOm93/30CueUDfd3kGtL2P9wDEQJpKO4+3+GPVkB8f4FWtc8eX0rs3FZlqsw93RCenK4hY0DR52RJkXkxpsiHNRMWN3hbnHFlB6G3qQKBgQDc7A6ebHyddULjN2srq9RQOt/UM5UtaSVGRpXlPUFam/D5k2wqrLDdUXGtcgmIoCTgAudiR5R8AByDHfV8MQeTprPoNVGYI6haYSdPFvO5IQHPjEc5lEyA+NAfUg7tMoPHlei/Pzu+aRx4VrU1KqAwO3qbCs6Awbv4MPLyFW41fwKBgQDI5dIyoDUjW+yYJSvUCbLyrfO+2UZBlna5eEY/xVZsV0F6yVjJhpUFPH1vDw0CcYn0xF3mlazz56iw03VtsfFdUoRMcYuIqt3m7XQHYFv0XVbl4zer32DTVSmMyUjNkNt2fwMnO8ayV+oi36u2047AoMzdUozprC/KphLzklnCcwKBgQCDHdbPT7Pl/+Ji2FFS6fhoZYjSeIrhGLZ2rw3nsCNJk6PBfC2GZlfSArRlLHlcDS/Vg+OwAKuvrKE/cFhyDOdiSl4cQwjaMs+IVIDv/79G8MASXj8nfUyqfwGGlT0mqgRsQByS5QSgTeIHye5iT5ojBioOOqu030agVuzZoL54IQKBgHwnvA3ZgL2Hc+JbJoj2LYdZBcgukwK5sEnTEOccV9rA2hC+GocBC1ufFI3sKUgXTwDb0oRMgASEaHZPWMUgMWBRPL3ZdjhSEK1Elm5wmKOeg7OzBpbLiBVTDkiZpMqV+Wtz90jp4lQZjPNcc8ybVh+pwLIO8FMBPM/qbs/k5GANAoGBANIQhJM6hea8L/PkqoBENcsY1AtxDeVEEOpFTq+OGKLpqRNuXVKQylN7vOHRh2t6Qijtm4nm28Gpt2sIVJCUO4G84aZ+H3klgTulmfY0l6trN3HtzPoFF9Oe13HqrFh8pS1Ya50QLKRrEMTQsAD8bLFff3H6rIHttHocs2m3zL5r

# CNなどが表示されていれば正しく読み込めたということになる
run show pki

# openvpnクライアント設定に指定した証明書のエイリアス名を指定する
set interfaces openvpn vtun10 tls ca-cert ca-1
set interfaces openvpn vtun10 tls certificate client-1
# https://forum.vyos.io/t/openvpn-shared-secrets-in-pki-configuration/7991/3
# There are no openvpn shared-secrets in PKI configurationのエラーが出る
# set interfaces openvpn vtun10 tls crypt-key client-1

show openvpn client

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)