Azure環境構築（VM作成〜VPN接続）

# VM作成

下記サイトを参考にVMを作成する　

https://rainbow-engine.com/azure-create-virtual-machine/

※VMにSSH接続する場合はVM作成後、秘密鍵をダウンロードすること


# VPNGW作成

前提条件として、仮想ネットワーク(Vnet)とサブネットゲートウェイは既にあるものとする
※ない場合は下記サイト参照　

https://www.cloudou.net/virtual-network/vnet001/

https://www.guri2o1667.work/entry/2021/09/13/【Azure】GatewaySubnetと仮想ネットワークゲートウェイについ


下記サイトを参考にVPNGWを作成する

https://www.roboticsware.com/dev-jp/guide/cloud_azure_on_panelserver/step2/

その後、ポイント対サイト接続の設定を行い、VPN接続する　
方法は下記サイト参考
※Macでの実施は難しいためWindows推奨

https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-howto-point-to-site-resource-manager-portal#generatecert

https://www.cloudou.net/vpn-gateway/p2s002/


# VMへのSSH接続 

下記コマンドを実行する

```
ssh -i <秘密キーのパス> <ユーザー名>@<VMのipアドレス>
```

※macで上記コマンド実行後、"Permissions 0644 for '〇〇' are too open." というエラーが表示された場合、下記コマンドを実行してからSSH接続する　
 
```
chmod 400 <keyname>.pem
```

参照

https://umebius.com/dev/permissions-0644-for-xxx-key-are-too-open-権限をどうすればいい？/

https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95


# VMへのユーザー追加　

VM画面で書き内容を実施する　

```
# ユーザーを作成
sudo useradd -m <ユーザー名>
# ユーザーのパスワードを変更
sudo passwd <ユーザー名>
# ユーザーをsudoグループに追加（sudo権限を付与）
sudo usermod -aG sudo <ユーザー名>
```

useradd コマンドを入力する際は -m のオプションを忘れないようします。
– m を忘れるとユーザーのホームディレクトリが作成されません。
続いて、作成したユーザーの公開鍵を設定しSSHログインを行えるようにします。 

```
# 新規ユーザーのホームディレクトリへ移動
cd /home/<ユーザー名>
# sshフォルダを作成
sudo mkdir .ssh
# 権限を変更
sudo chmod 700 .ssh/
# 先ほどローカルで作成した公開鍵の値を書き込み
sudo nano .ssh/authorized_keys
# フォルダ・ファイルの所有権を正しくユーザーに設定
sudo chown <ユーザー名>:<ユーザー名> .ssh
sudo chown <ユーザー名>:<ユーザー名> .ssh/authorized_keys
```

https://epic-life.me/archives/6025#VM


■CentOSの場合

```
# ユーザーを作成
sudo useradd -m <ユーザー名>
# ユーザーのパスワードを変更
sudo passwd <ユーザー名>
# sudo付与
sudo usermod --append -G wheel <ユーザー名>

# 新規ユーザーアカウントへ切り替え
su - <ユーザー名>
# sshフォルダを作成
sudo mkdir .ssh
# 権限を変更
sudo chmod 700 .ssh/
# 先ほどローカルで作成した公開鍵の値を書き込み
sudo nano .ssh/authorized_keys
# フォルダ・ファイルの所有権を正しくユーザーに設定
sudo chown <ユーザー名>:<ユーザー名> .ssh
sudo chown <ユーザー名>:<ユーザー名> .ssh/authorized_keys

```


■制限つきアカウント作成する場合(CentOS)
今回は何のコマンドも実行できないアカウントを作成します
また、sudo権限も付与しません

```
# ユーザーを作成
sudo useradd -m <ユーザー名>
# ユーザーのパスワードを変更
sudo passwd <ユーザー名>

# rbashというbashのリンクを作成(1回目のみ実施)
sudo ln -s /bin/bash /bin/rbash
# /etc/shellsにrbashを登録(1回目のみ実施)
sudo nano /etc/shells
# 最終行に/bin/rbashを追記(1回目のみ実施)
（省略）
/bin/csh
/bin/ksh
/bin/zsh
/bin/rbash　←この行を追加

# 新規ユーザーアカウントへ切り替え
su - <ユーザー名>
# sshフォルダを作成
mkdir .ssh
# 権限を変更
chmod 700 .ssh/
# 先ほどローカルで作成した公開鍵の値を書き込み
nano .ssh/authorized_keys
# フォルダ・ファイルの所有権を正しくユーザーに設定
chown <ユーザー名>:<ユーザー名> .ssh
chown <ユーザー名>:<ユーザー名> .ssh/authorized_keys

# シェルを変更
chsh
新しいシェル [/bin/bash]: /bin/rbash　←「/bin/rbash」を入力
Password:　←パスワードを入力

# rootユーザーアカウントへ切り替え
exit
# 新規ユーザーのホームディレクトリに対する権限変更
sudo chmod 707 /home/<ユーザー名>
# 新規ユーザーのホームディレクトリへ移動
cd /home/<ユーザー名>
# .bash_profileの所有者をrootに変更
sudo chown root .bash_profile
# .bash_profileのグループをrootに変更
sudo chgrp root .bash_profile
# .bash_profileのアクセス権を変更
sudo chmod 755 .bash_profile
# .bash_profileのアクセス権を確認
ls -al .bash_profile
＜実行結果＞-rwxr-xr-x    1 root     root          238 Oct 15 01:31 .bash_profile

# .bash_profileを開く
sudo nano .bash_profile
# .bash_profileの最終行に下記を追記
export PATH=/home/<ユーザー名>

# authorized_keysに正しい権限を付与
sudo chmod 644 /home/<ユーザー名>/.ssh/authorized_keys
# .sshに正しい権限を付与
sudo chmod 700 /home/<ユーザー名>/.ssh
# <ユーザー名>に正しい権限を付与
sudo chmod 700 /home/<ユーザー名>
```

https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/363rbashuser.html


■ユーザーを削除する場合
```
# ホームディレクトリごとユーザーを削除
sudo userdel -r <ユーザー名>
```




# VMにApacheやAzure CLIをインストールする 

Azure CLIのインストール 

https://learn.microsoft.com/ja-jp/cli/azure/install-azure-cli-linux?source=recommendations&pivots=apt#installation-options

PHPのインストール 

https://qiita.com/gano/items/4a21113173249276f2b2

Apacheのインストール　

https://www.web-dev-qa-db-ja.com/ja/apache-2.2/apacheを特定のバージョンでインストールするにはどうすればよいですか？/960296163/

PostgreSQLのインストール

https://monmon.jp/1065/version-the-postgres13-to-intol-into-ubuntu20-04/#php-pgsql


# 付録　ローカル端末での鍵生成（Mac）

https://qiita.com/wakahara3/items/52094d476774f3a2f619