2018年6月28日木曜日

CentOS7でOpenVPNを動かしてみた件

はいはい備忘録備忘録。

1. インストール

以下、全部管理者権限で。
標準ではパッケージが用意されていないが、ソースから作るのも(アップデートとかを考えた際に)めんどいのでEPELを追加する。
# yum install epel-release
続いてopenvpnと、お手軽な証明書生成スクリプトのeasyrsaをインストールする
# yum install openvpn easy-rsa

2. 証明書と鍵の生成

 この辺のページこの辺のページを参考にしつつ作業。要するにまず認証局(CA)を作り、それをベースにサーバ側の証明書と秘密鍵の生成、という順序でやる。EPELパッケージでのeasyrsaスクリプトは/usr/share/easy-rsa//の下にある。
まず初期化。
/usr/share/easy-rsa/3/easyrsa init-pki
続いてCAの作成。
 # /usr/share/easy-rsa/3/easyrsa build-ca
鍵を利用するためのパスフレーズを2回入力し、Common Name(適当な名前)を入力する。このとき、カレントディレクトリにpkiというディレクトリが作成され、pki/ca.crt(証明書)とpki/private/ca.key(秘密鍵)が出来る。
次にサーバ証明書と鍵のペアを生成。
# /usr/share/easy-rsa/3/easyrsa build-server-full server nopass
 pki/issued/server.crt(証明書)とpki/private/server.key(鍵)が生成される。
(これは順不同)DHパラメータの生成。ちょっと時間がかかる。
# /usr/share/easy-rsa/3/easyrsa gen-dh
pki/dh.pemが生成される。まとめると、以下のファイルがカレントディレクトリ下に出来たことになるので、これらをまとめて/etc/openvpn/にコピる(設定ファイルで絶対パスを指定できるので、適当なディレクトリに置いても構わない)。
pki/ca.crt
pki/private/ca.key
pki/issued/server.crt
pki/private/server.key
pki/dh.pem

3. OpenVPNサーバの設定

設定ファイルは標準で/etc/openvpn/server.confだが、とりあえずサンプルをコピって修正してもよい。
# cp /usr/share/doc/openvpn-/sample/sample-config-files/server.conf /etc/openvpn/
以下の設定が有効になっていることを確認する。(行頭にシャープまたはセミコロンがあるとコメントアウトされた状態なので、有効にしたい場合は外す)
proto udp #tcpだと遅くなる
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
topology subnet
push "route 192.168.0.0 255.255.255.0" #VPN経由でアクセスしたいサブネット
tls-auth /etc/openvpn/ta.key 0
user nobody
group nobody
で、tls-authで用いるta.keyを生成する。
# openvpn --genkey --secret /etc/openvpn/ta.key
標準ではポート1194を使うので、開けておく。
# firewall-cmd --add-service=openvpn --zone=public --permanent

2018年6月13日水曜日

VMware ESXiにLet's Encryptで作成した証明書をぶっこむ件

手順を忘れないように記録。たとえばVMware ESXi  6.5がvmw.example.comで動いている前提。

  1. 手元のホスト(certbotが動けば何でもいい)でDNS-01 challenge validationを使った証明書取得を行う。以下では$PWD/certにcertbotの各種生成ファイルがあると仮定する。
  2. ESXiでSSHを有効にする
    • ナビゲータ→ホスト→アクション→サービス→SSHの有効化
  3. 取得した秘密鍵(privkey.pem)、証明書(cert.pem)、中間証明書(fullchain.pem)をESXiに転送。
    • scp cert/config/live/vmw.example.com/{privkey,cert,fullchain}.pem root@vmw.example.com:
  4. SSHでESXiにリモートログインし、ファイルをコピー。一応丁寧にバックアップを取っておく。
    • cd /etc/vmware/ssl
    • cp rui.key rui.key.old && mv /privkey.pem rui.key
    • cp rui.crt rui.crt.old && mv /cert.pem rui.crt
    • cp castore.pem castore.pem.old && mv /fullchain.pem castore.pem
  5. Web UIの再起動。
    • /etc/init.d/hostd restart
    • /etc/init.d/vpxa restart
    • 一部サイトではservice.sh restartで良いとも書いてあるが、VMwareのサポートページではやってくれるな(仮想マシンが全部死ぬ)とあるので、稼働状態ではやらない。
  6. 不正な証明書などの警告が出なくなることを確認。

英語配列のノートPCで日本語配列設定にしちゃった時に、アンダースコアを入力するTips

US配列のLG gram SuperSlimを購入した。で、Windowsの初期セットアップを始めたところ、最初に選択できるキー配列はMicrosoft IME(まあ要するに日本語配列)だけ。で、その後に「追加のキー配列」を選択できるのだが、後でやればいいやと思ってスルーしてしま...