水曜手順書
前提条件
・Windowsの基本操作はできる
・さくらのクラウドのログイン情報を持っている
・さくらのクラウド上でサーバーの作成はできる
・SSH接続はできる(Teraterm/PowerShell)が、キーペア認証を使うのは初めて
・IE以外のブラウザを利用できる
1.さくらクラウドでサーバーを作成
グローバルサーバー(踏み台)
今回の環境はさくらクラウドで下記のものを構築する
・OS:Ubuntu Server 22.04.1 LTS 64bit
・ディスクサイズ:20GB
管理パスワード、ホスト名、名前は任意のものでよい。ただし、設定した管理パスワードは忘れないようにする。
ローカルサーバー
ディスク
グローバルサーバーと同じもの
NIC
スイッチに接続: 接続するスイッチを選択
ディスクの修正
IPアドレス: 192.168.93.(100+自分の学籍番号下二けた)
ホスト名 : グローバルとは違うもの
NIC
一度踏み台サーバーの電源を切り、NICの追加を行う
追加後、右端▼または右クリックでスイッチに接続。
その後、IPアドレスを設定する。
※今回設定するIPアドレスは「192.168.93.<学籍番号>」で行う
アドレスの固定
NICのアドレスを設定するためにnetlanの設定ファイルを追加する。
sudo vi /etc/netplan/01-netcfg.yaml
network:
ethernets:
eth0:
addresses:
- <ip address>/24
dhcp4: 'no'
dhcp6: 'no'
gateway4: <default gateway>
nameservers:
addresses:
- 210.188.224.10
- 210.188.224.11
search:
- localdomain
eth1:
addresses:
- [ローカルIP]
renderer: networkd
version: 2
※括弧で囲われているものは自分の環境に合わせて設定する
sudo netplan apply
SSH
鍵認証
作成手順
既存あれば飛ばしてよい
teratermで設定からSSH鍵作成をクリック
→生成をクリック
パスフレーズはログイン時、秘密鍵を使用する際に入力を求められる。一応空欄でも生成は可能。
最後に、画面下部の「公開鍵の保存」「秘密鍵の保存」をそれぞれクリックして、鍵を保存する。
※ 「id_rsa.pub」が公開鍵、「id_rsa」が秘密鍵。
保存先のフォルダとファイルを作る
mkdir .ssh
touch .ssh/authorized_keys
# 権限の設定
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
# 手動で .ssh/authorized_keysにコピペする
vi .ssh/authorized_keys
パスワード認証禁止
鍵認証を使うためパスワードによるログインを制限する
sudo vi /etc/ssh/sshd_config
# 次のように設定を変える
#PasswordAuthentication yes →PasswordAuthentication no
# 設定反映のためreload
sudo systemctl reload sshd.service
IP制限
自身のIPからsshとリモートデスクトップを許可する。
グローバルIPを使うので事前に確認くんなどで確認しておく。
# ufw起動
sudo systemctl start ufw
# 設定
sudo ufw allow from [自身のグローバルIPアドレス] to any port 22
sudo ufw allow from [自身のグローバルIP] to any port 10001 proto tcp
# 有効化
sudo ufw enable
# 確認
sudo ufw status
※確認コマンド実行後、statusがactiveになっており、自分が設定した通りになっていればよい。
ポートフォワード
ポートフォワードのために設定の変更を行う。
$ sudo vi /etc/default/ufw
# 19行目 : 変更
DEFAULT_FORWARD_POLICY="ACCEPT"
$ sudo vi /etc/sysctl.conf
# 28行目 : コメント解除
net.ipv4.ip_forward=1
# 設定リロード
$ sudo sysctl -p
$ sudo ufw reload
設定が行われているかログを確認する
sudo ufw status verbose
# 下のようになれば正常
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip
ポートフォワード設定を書き込む
$ sudo vi /etc/ufw/before.rules
# NAT
*nat
-F
:POSTROUTING ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dst [グローバルサーバIPアドレス] --dport 10001 -j DNAT --to-destination [ローカルサーバー]:22
-A POSTROUTING -p tcp --dst [ローカルサーバーIP] --dport 22 -j SNAT --to-source [グローバルサーバーのスイッチ側IP]
COMMIT
再起動
sudo ufw reload
公開鍵認証
ローカルサーバーに作成済みの公開鍵2つ目を投入する
mkdir .ssh
vi .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
sudo vi /etc/ssh/sshd_config
#PasswordAuthentication yes →PasswordAuthentication no
sudo systemctl reload sshd.service
UFW設定
接続をsshのみ許可
sudo systemctl start ufw
sudo ufw allow from any to any port 22
sudo ufw enable
接続確認をする