OpenVPNサーバ(SSL-VPN)作成方法

以下、OpenVPNサーバのCentOS7での作成方法を示す。

・OpenVPNインストール
sudo su –
[root]
yum -y install openvpn-2.4.7-1.el7 easy-rsa-3.0.6-1.el7 –enablerepo=epel
※ openvpnなど、パッケージのバージョンが上記より新しくなり、上記が取得できる可能性がある。その場合は最新バージョンをインストールすること。
※ 例: yum -y install openvpn-2.4.8-1.el7 など (2019年12月時点)
cd /usr/share/easy-rsa/3.0.6/
./easyrsa init-pki
./easyrsa build-ca
※ PEMパスワード: <任意のパスワードを設定>
※ Common Name (eg: your user, host, or server name) [Easy-RSA CA]: <空白でEnter>
./easyrsa build-server-full server nopass
※PEMパスワードを入力
./easyrsa gen-dh
作成したCA証明書、サーバ用証明書、サーバ用秘密鍵、DHパラメータを/etc/openvpn以下にコピー
cp -p pki/ca.crt pki/issued/server.crt pki/private/server.key /etc/openvpn/
cp pki/dh.pem /etc/openvpn/dh2048.pem
vim /etc/openvpn/service.conf
※ 環境に合わせて設定
・ OpenVPN起動
systemctl start openvpn@service
インスタンス再起動後もOpenVPN起動するよう設定
systemctl enable openvpn@service.service
・パケット転送を有効化
vim /etc/sysctl.conf
下記を入力
net.ipv4.ip_forward = 1
設定反映
sysctl -p
FW設定(※permanentオプションでインスタンス再起動後も有効になるよう設定)
firewall-cmd –permanent –direct –add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE
設定反映
firewall-cmd –reload
ルールを表示・確認
firewall-cmd –direct –get-all-rules
・ユーザ登録
[root]
cd /usr/share/easy-rsa/3.0.6
./easyrsa build-client-full <name> nopass
※ PEMパスワードを入力
ファイル持ち出し用のホームディレクトリを作成(※ OpenVPNサーバ構築時の初回のみ)
mkdir /home/ssh-user
chmod 777 /home/ssh-user
上記ホームに必要なファイルをコピー
ユーザ追加時は、 <name> のディレクトリを作成
mkdir /home/ssh-user/<name>
cp /usr/share/easy-rsa/3.0.6/pki/ca.crt /home/ssh-user/<name>/
cp /usr/share/easy-rsa/3.0.6/pki/issued/<name>.crt /home/ssh-user/<name>/
cp /usr/share/easy-rsa/3.0.6/pki/private/<name>.key /home/ssh-user/<name>/
chmod -R 777 /home/ssh-user/<name>
コピーした上記3つのファイル( ca.crt , <name>.crt , <name>.key )を使用してOpenVPNクライアントでOpenVPNに接続する。
以上
・Tips
1. ルート広報の追加・修正などを実施したい場合
設定ファイルにルートを追加
[root]
vim /etc/openvpn/service.conf
— 以下、例
push “route 10.0.0.0 255.255.255.0”
OpenVPNサービスを再起動
※ OpenVPN経由でサーバにSSHしている場合は、OpenVPNのセッションが一時的に切断されるが、自動復旧する
systemctl restart openvpn@service.service

CentOSでL2TP VPNを簡単に設定する方法

CentOSサーバで簡単にL2TP VPNを設定するスクリプトを作成した。
このL2TP VPNサーバを使って、MacやiPhoneなどと接続し、セキュアな通信が可能だとなる。

  • サーバOS: CentOS7

1. 以下のスクリプトをサーバ上で実行する

2. サーバのFWのインバウンドで以下を許可する

udp:1701; udp:500; udp:4500

3. MacやiPhoneでこのサーバとVPN接続出来ることを確認する

MacにnvmでNode.jsをインストールする方法

MacにNode.jsをインストールする方法をメモする。
Node.jsのバージョン切替を簡単に行うために、nvmを使用する。

1. .bash_profileを作成する(存在しない場合)

2. nvmのインストールスクリプトを実行する(バージョンは適宜指定)

3. インストールできるNode.jsのバージョンを確認する

4. Node.jsをインストールする(バージョンは適宜指定)

5. Node.jsの認識とバージョンを確認する

※認識されていない場合は、一度ターミナルを閉じ、再度開いて確認する

※その他、使用するNode.jsのバージョンを指定する場合、

※参考 nvmインストール手順 https://github.com/creationix/nvm

NexusのSnapshotsリポジトリのアーティファクトをデプロイする方法

NexusのSnapshotsやReleasesリポジトリに登録されるアーティファクトには、
ダウンロード用にURLが付与される。

このURLを用いて、curlやwgetなどでサーバにアーティファクトをデプロイする上で、
Snapshotsリポジトリに関しては1点問題がある。

Snapshotsリポジトリに登録されるアーティファクトのURLには、
末尾のファイル名に、日付から開始する乱数が付与されるため、
アーティファクトの登録前はURLが分からない。

これは事前にダウンロードする先のURL指定をデプロイのためのスクリプトで
書けない(自動化出来ない)ことを意味する。

以下、NexusのAPIを使う方法で解決できる。

※上記コマンドで、Snapshotsリポジトリにある最新版のWarが取得可能となる
※なお、Releasesも上記のフォーマットに従い、repository id以降を適宜変更すれば、適用可能となる
※参考URL
https://support.sonatype.com/hc/en-us/articles/213465488-How-can-I-retrieve-a-snapshot-if-I-don-t-know-the-exact-filename-