2017年06月11日

Windows に OpenSSH をインストールする

Windowsには標準でSSHのサーバもクライアントも用意されていないが、
Windows版OpenSSH のプレリリース版がある。

ちょっと前に、それがリリース段階になったとニュースがでていた。

OpenSSH for Windowsリリース段階に到達 - Microsoft

Microsoftは5月1日(米国時間)、「OpenSSH Security Testing Kick Off|Windows PowerShell ...




まだ正式版ではないが、インストールしてみる。
インストール環境:Windows10 64bit






ダウンロード


ここから最新版(インストール時の最新は v0.0.15.0)をダウンロードする。

"Win32-OpenSSH" ってなっているが、64bitもある。
windows_openssh01.png
"OpenSSH-Win64.zip" をダウンロードして
"Install Win32 OpenSSH"を参考に進める。


ダウンロードしたファイルを解凍し、任意の場所に置く。

C:\Program Files\OpenSSH-Win64



パスを通しておく。
[システムの詳細設定] から、「環境変数」をクリック。
windows_openssh02.png


[システム環境変数] の "Path" を選択して、[編集] をクリック。
windows_openssh03.png


[新規] をクリックして、OpenSSHフォルダの配置先を入力。
windows_openssh04.png






SSHサーバーインストール


PowerShellを管理者権限で起動する。

OpenSSHフォルダに移動。

cd 'C:\Program Files\OpenSSH-Win64'





実行ポリシーの変更


現在の設定を確認。

Get-ExecutionPolicy

Restricted

スクリプトの実行が禁止されているので、
実行ポリシーを「制限無し(Unrestricted)」に変更。
(インストールが完了したら実行ポリシーを元の「制限あり(Restricted)」に戻します)

Set-ExecutionPolicy Unrestricted

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y




sshd と ssh-agent サービスのインストール


コマンドを実行する。

.\install-sshd.ps1

[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
sshd and ssh-agent services successfully installed

"successfully installed" と表示されれば完了。



ホストキーの生成


コマンドを実行する。
(ウイルスバスターで警告が出た。自己責任で実行許可する)

.\ssh-keygen.exe -A

C:\Program Files\OpenSSH-Win64\ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519


.\FixHostFilePermissions.ps1 -Quiet


"FixHostFilePermissions.ps1"は、v0.0.15.0 で追加されました。
ファイルのパーミッションを修正するためのようです。
(参考:OpenSSH utility scripts to fix file permissions



Windowsファイアウォールの設定


TCPポート 22番の受信許可設定を行う。
コマンドを実行する。

New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH





追加された設定を確認してみる。
[コントロールパネル] - [Windowsファイアウォール] から、
[詳細設定] を選択する。
windows_openssh05.png


[受信の規制] を確認すると、
"SSH" の名称で規制が追加されているはず。
windows_openssh06.png

"SSH" のプロパティを確認すると、
[プロトコルおよびポート] タブで、TCPポート22番が設定されているのがわかる。
windows_openssh07.png



sshd と ssh-agent サービスの起動


コマンドを実行する。

Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic




追加された設定を確認してみる。
[コントロールパネル] - [管理ツール] から、
[サービス] をクリックし、サービスの一覧を表示させる。
windows_openssh08.png
"sshd" と "ssh-agent" のスタートアップの種類が、"自動"になっているはず。

この設定でWindowsが起動すれば、自動的に "sshd" と "ssh-agent" のサービスの起動する。


再起動させ、確認してみる。
再起動後、サービスの一覧を表示させると、
windows_openssh09.png
状態が、"実行中"となっているのがわかる。



実行ポリシーを元に戻す


Set-ExecutionPolicy Restricted

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y


設定を確認し、元に戻っていることを確認する。

Get-ExecutionPolicy

Restricted







他の端末からWindowsにsshでログイン


Tera Termを使い、ログインしてみる。
SSHサーバーとなるWindowsPCのIPアドレスとポート番号を入れ、接続する。
windows_openssh10.png

サーバーの確認と、
windows_openssh11.png

アカウント認証が行われる。
SSHサーバーとなるWindowsPCのアカウントとパスワードを入れ、[OK] をクリック。
windows_openssh12.png

認証されると、WindowsPCに接続できた。
windows_openssh13.png






SSHクライアントとして使う


パスは通してあるので
コマンドプロンプト または PowerShell で、コマンドを実行する。
(ウイルスバスターで警告が出た。自己責任で実行許可する)

ssh 接続先ユーザー名@接続先IPアドレス



接続はできたが、はっきり言って、画面はコマンドプロンプトやPowerShellのままなので、
あまり使い勝手は良いものではない。






SSHサーバーのポート番号を変更


SSHサーバーのポート番号の初期値は、22番ポートを使う。
セキュリティ向上のため、ポート番号の変更をしておく。



ポート番号を変更


PowerShellを管理者権限で起動し、OpenSSHフォルダに移動。
"sshd_config" ファイルを開く。

notepad .\sshd_config


#Port 22
↓コメントアウトを外し、22番以外に変更。
Port 50022



変更したらファイルを保存。



Windowsファイアウォールの変更


インストール時には、ポート22番で設定をした。
変更したポート番号で、ファイアウォールも変更する。

[コントロールパネル] - [Windowsファイアウォール] - [詳細設定] から、
[受信の規制] をクリック。

"SSH" を選択し、右クリックから [プロパティ] を選択し、
[プロトコルおよびポート] タブで、変更したポート番号に合わせる。
windows_openssh15.png


これで、他の端末からsshでログインするときには、
22番ではなく、変更したポート番号が有効となる。






公開鍵認証


セキュリティを高めるため、パスワード認証によるアクセスを禁止し、公開鍵認証を有効にする。



公開鍵認証を有効化


PowerShellを管理者権限で起動し、OpenSSHフォルダに移動。
"sshd_config" ファイルを開く。

notepad .\sshd_config


#PubkeyAuthentication yes
↓コメントアウトを外す。
PubkeyAuthentication yes


#PasswordAuthentication yes
↓コメントアウトを外し、"no" を設定。
PasswordAuthentication no



sshdサービスを再起動させれば、
パスワード認証が禁止になり、公開鍵認証が有効となる。



公開鍵、秘密鍵ペアの作成①


SSHクライアント側で作成し、SSHサーバーへ公開鍵を設定する。
Tera Termを使い作成する。

[設定] - [SSH鍵生成] を選択。
windows_openssh16.png


デフォルトのままでいいので、
(鍵の種類: RSA 、ビット数:2048)
[生成] をクリック。
windows_openssh17.png

生成が完了したら、鍵を保存。
[公開鍵の保存]:適当に名前(*.pub)を付けて保存する。(id_rsa.pub)
後でSSHサーバー側に渡す鍵となる。
windows_openssh18.png

[秘密鍵の保存]:適当に名前(拡張子なし)を付けて保存する。(id_rsa)
パスフレーズは空のままでも大丈夫。
SSHクライアント(Tera Term)で参照する鍵となる。
windows_openssh19.png



公開鍵をSSHサーバーに設定


作成した公開鍵をSSHサーバーにUSBメモリでも何でもいいので渡す。
SSHサーバーでの公開鍵の保存先は、

C:\Users\<ユーザー>\.ssh



新規保存の場合は、渡した公開鍵(*.pub)を
"authorized_keys" に、リネームする。
(補足)
コマンドプロンプトで処理しようと、
type .\id_rsa.pub >> authorized_keys
と実行したら、認証に失敗した。
よくみたら作成された"authorized_keys"ファイルが UTF-16 に変換されていた。
改行コードもCRLFになった。
これでは鍵ペアにならず認証されない。
なので、そのままリネームした。


既に、"authorized_keys" が存在する場合は、
テキストエディタで、"authorized_keys" と、公開鍵(*.pub) を開き、
公開鍵(*.pub)の内容を、"authorized_keys" へ貼り付ければいい。



SSHクライアントから公開鍵認証で接続


Tera Termを使い、ログインしてみる。

ホストとTCPポートを指定して接続。

SSH認証にて、
[RSA/DSA鍵を使う] を選び、作成した秘密鍵を選択する。
ユーザー名とパスフレーズを入力して、[OK] をクリック。
windows_openssh20.png

認証され、接続できた。
windows_openssh21.png




公開鍵、秘密鍵ペアの作成②


①では、クライアント側で鍵を作成した。
試しに、今度は、サーバー側で作成してみる。

SSHサーバーでの公開鍵の保存先で作成する。
PowerShellを起動(管理者権限では無い)し、.sshフォルダに移動。

cd 'C:\Users\<ユーザー>\.ssh'



鍵を作成する。Enterキーを押し、進める。
パスフレーズは空のままで大丈夫。

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\********/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\********/.ssh/id_rsa.
Your public key has been saved in C:\Users\********/.ssh/id_rsa.pub.
....



ここで、作成された "id_rsa.pub" のプロパティを表示、
[セキュリティ]タブを見てみると、
[グループ名またはユーザー名] に、"Everyone" が含まれていた。
windows_openssh22.png

これがあると認証に失敗したので、"Everyone" を削除する。


[編集] をクリックする。
"Everyone" を選択し、[削除] をクリック。
windows_openssh23.png


あとは、公開鍵ファイル名(id_rsa.pub)を、同様に "authorized_keys" にリネームする。

秘密鍵は、今度は逆にクライアント側に渡す。
この秘密鍵を使い、SSHクライアントから公開鍵認証で接続する。






アンインストール


インストール手順同様に、
PowerShellを管理者権限で起動し、OpenSSHフォルダに移動。

実行ポリシーを変更し、スクリプトの実行を許可しておく。



sshd と ssh-agent サービスをアンインストールする


コマンドを実行。

.\uninstall-sshd.ps1

sshd successfully uninstalled
ssh-agent successfully uninstalled

"successfully uninstalled" と表示されれば完了。

実行ポリシーを元に戻しておく。



Windowsファイアウォールの削除


追加したWindowsファイアウォールも、忘れずに削除しておく。
[コントロールパネル] - [Windowsファイアウォール] - [詳細設定] から、
[受信の規制] をクリック。

"SSH" を選択し、右クリックから [削除] を実行する。
windows_openssh14.png






まとめ


Windowsには、SSHクライアントとして Tera TermPuTTY があるので、SSHクライアントのためにインストールするほどでも無いと思った。

WindowsでSSHサーバーになれるのであれば、SSH ポートフォワーディングが使えるので、
【Windows】 - 【Windows(SSHサーバー)】- 【VirtualBox(ゲストOS)】
という接続ができる。
VirtualBoxを使い動いているゲストOSへ対して、他PCからアクセスできるようになるので
VirtualBoxが入っているPC以外を使い作業していたときに、作業効率が良くなった。



VirtualBox: ホストOSからゲストOSへのアクセス
Ubuntu サーバの初期設定 ssh
Ubuntu サーバの初期設定 ssh(秘密鍵)
posted by Zorinos at 23:00| Comment(0) | Windows | 更新情報をチェックする

2017年06月05日

VirtualBox: ホストOSからゲストOSへのアクセス

VirtualBoxのネットワーク接続設定は、デフォルトでNATになっている。
ゲストOSのIPアドレスは、10.0.2.15 だった。
例えば、ゲストOSでWebサーバーを立て、サーバーにUpしたWebページを見るため、
ホストOSから、"http://10.0.2.15" にアクセスしてもエラーになった。
デフォルトのままでは、ホストOSからゲストOSが見えず、ダメ。

そこで、ホストOSとゲストOSのアクセスについて確認してみる。

以下のような状況を想定をした。
"Webページを公開するために、ローカル環境でWebサーバーを立ててテストを行う"
  • ゲストOSにWebサーバーを立てる
  • ホストOSではWebページの作成・参照
  • ホストOSからSSHでサーバーに接続し、サーバーの設定を行う
  • 公開するWebページの転送はSFTPを使う
  • ゲストOSはアプリケーションのインストールやアップデートのため、
    ホストOS側が外部ネットワークにつながる環境であれば、同じように外部ネットワークとつなげておきたい


ホストOS: Windows10 64bit
ゲストOS: Ubuntu16.04 64bit





①ブリッジアダプター


手っ取り早い方法としては、ブリッジ接続だと思う。
ホストOSと同じネットワークにつながるので、ゲストOSのIPアドレスにアクセスすればWebページが確認できる。
それにネットワークにつながっていれば、ホストOS以外のPCからもゲストOSのWebサーバーにアクセスできるので、複数PCで作業しているときに効率がいい。

ゲストOSに固定IPアドレスを設定しておけば、
ローカル環境をノートPC上で構築したとして、外出先などでローカル環境をネットワークに接続できない環境(DCHPでIPが割り振られない)でも、ゲストOSはIPを固定しているので、Webサーバーにアクセスでき作業を進めることができる。


注意点は、会社などネットワーク・PC管理がしっかりと規定されている環境での使用。
管理外のコンピュータが、勝手に社内のネットワークをつながってしまうため、ひどく怒られる可能性がある。
仮想環境でのゲストOSを、管理者に届け出して、ネットワーク接続の許可を出してもらうという正攻法があるが、それだとゲストOSの設定を自由に変更ができなくなるので、テスト環境でいろいろ試したいという場合の足枷となるし、管理者にとっても煩わしいだろう。



そこで、ブリッジ接続は、ちょっと・・・となるとNAT接続になる。

②NAT + ポートフォワーディング


特定の機能に限定したアクセスで良ければ、ポートフォワーディングを使う。

ゲストOSの設定のネットワークから
アダプターをNAT接続とし、[高度] をクリック。

[ポートフォワーディング] の設定をクリック。
virtualbox_portforward01.png

ポートフォワーディングとは、特定の機能(特定ポートに届いた通信データ)を、別の機能(別のポート)へ転送する仕組み。
これにより、ホストOS側の特定機能の通信データをゲストOSの機能へ転送する事で、ホストOSとゲストOSを接続する。

"+"マークをクリックし、設定を追加する。
virtualbox_portforward02.png

今回は、Webページの参照と、SSHの通信が目的。
以下のように設定した。
virtualbox_portforward03.png

名前

任意。接続目的がわかる名称にしておく。

プロトコル

TCPとUDPが選択可能。機能に合わせて選択。

ホストIP

空白でよい。

ホストポート

使用していないポート番号を指定。ウェルノウンポート以外にしておく。

ゲストIP

空白でよい。

ゲストポート

機能のポート番号を設定。変更してなければデフォルトポートだが、個別で変更しているのであれば適宜対応する。



ゲストOSを再起動させ、確認


ホストOSのブラウザから、上記で設定したポート番号にアクセス。
上記で設定した、
"http://localhost:50080" にアクセス。(または、"http://127.0.0.1:50080")
「It works」のページが表示された
virtualbox_portforward04.png


SSHクライアント Tera Term で接続をしてみる。
上記で設定した、
ホスト名 "localhost"(または、"127.0.0.1") : TCPポート "50022" でアクセス。
virtualbox_portforward05.png

接続できた。
virtualbox_portforward06.png



もし実際のコーディングPCが、ホストOS搭載PC以外であった場合も、ホストOS搭載PCのIPアドレス・ポート番号へアクセスすれば、Web参照、SSH接続が可能。
上記のホストOSのアドレス("localhost")を、外部ネットワークのIPアドレス(例: 192.168.1.202)に変えて、ブラウザやSSHクライアントからアクセスすればよい。




③NAT + ホストオンリー アダプター


「特定の機能だけの接続とか煩わしい、もっとざっくりと接続したい」
となると、ホストオンリー アダプターを使う。
予め、[環境設定] でホストオンリーネットワークを設定しておくこと。

ゲストOSの設定のネットワークから
アダプター1 をNAT接続(デフォルトのまま)に設定。
virtualbox_hostonly01.png


アダプター2 で
[ネットワークアダプターを有効化] にチェックを入れ、
[ホストオンリーアダプター] に設定。
virtualbox_hostonly02.png


ゲストOSが1つだけならば、ホストオンリーネットワークがDHCP設定であっても、
ゲストOSのIPアドレスは決まった割り振りになるだろうから、固定IPアドレスに設定してなくとも大丈夫と思う。
もし複数のゲストOSをホストオンリーネットワークに参加させるのであれば、固定IPアドレスに設定しておくとよい。

ホストオンリーネットワークで振られたゲストOSのIPアドレス(例:192.128.56.101)を使い、ブラウザやSSHクライアントからアクセスできる。


(補足)
Microsoft Edgeでアクセスしようとしたらダメだった。
Microsoft Edgeは、ポートフォワーディングしないとアクセスできないようだった。
原因はループバック接続の問題らしい・・・
(参考:Microsoft Edgeでローカルの仮想マシン上に構築したWebサイト(Webアプリケーション)にアクセスできない
私自身は、本来はChromeメインなので困らないのだが、
今回、試しで Edge で確認していたので、アクセスできずに悩んだ。



デメリットとしては、実際のコーディングPCが、ホストOS搭載PC以外であった場合。
他PCからゲストOSへの道がないので手間がかかる。
他PCからホストOSへのSSHポートフォワードを使って、ゲストOSと接続することになる。
だったら、②NAT + ポートフォワーディング のほうが簡単なんじゃないか。






まとめ


ローカル環境を設置するときにの外部ネットワーク環境や、実際の作業対象PCや、ゲストOSに設置するサーバー機能などから、ネットワーク接続方法を選ぶことになる。

VMware Workstation Player であればNAT設定でホストOSがつながっているので、あまり障害が無いのだが、VirtualBoxはちょっと手間がかかる。

で、何がいいのかとなると、
ローカル環境とするPC(ホストOS)と、ゲストOSが1つだけで進める場合が多いと思うので、安全かつ簡単に構築できるのは、NAT + ホストオンリー アダプター です。



VirtualBox: ネットワーク設定
VMware Workstation Player: ネットワーク設定



posted by Zorinos at 18:00| Comment(0) | Windows | 更新情報をチェックする

2017年05月28日

VirtualBox: ネットワーク設定

VirtualBoxのネットワーク接続方式の設定について違いを調べてみた。
仕組みを理解している訳ではないので、間違っていることもあるが、
自分の中で、こんな感じかなと落ち着いたので残しておこうと思います。


virtualbox_network01.png

未割り当て


  • ネットワークアダプタの機能を割り当てない
  • 通信はできない


NAT


  • デフォルトの設定
  • ゲストOSは、ホストOSのIPアドレスを共有して外部の物理ネットワークと接続
  • 外部ネットワークからはゲストOSのIPアドレスは見えない
  • ゲストOS間はつながらない
  • ホストOSともつながらない


virtualbox_network02.png
(参考:Network Address Translation (NAT)

ゲストOSを単に外部ネットワークにつなげたいというのであれば、
デフォルト設定となっている "NAT" にしておけば問題が少ないでしょう。
他に影響を与えないように閉じた環境になっていて、
ホストOS・他のゲストOSとつながらないところが、
VMware Workstation PlayerのNAT設定とは異なります。

ネットワークアドレスは、10.0.2.0/24 で、
ゲストOSのIPアドレスは、10.0.2.15 が割り当てられます。
10.0.2.2 はゲートウェイ、10.0.2.3 はネームサーバ、10.0.2.4 はTFTPサーバーが割り振られます。
(参考:Fine-tuning the VirtualBox NAT engine



ゲストOSごとにネットワークを構成するので、
ゲストOSは同じIPアドレスになっています。
デフォルトで割り当てられているネットワークアドレスが気に入らなければ、
VBoxManageコマンドを使うことで変更ができます。
(参考:VBoxManage
VBoxManageは、VirutalBoxのCUIで、
VirtualBoxをインストールしたディレクトリにあります。
(C:\Program Files\Oracle\VirtualBox\VBoxManage.exe)


コマンドプロンプトから実行します。
インストールディレクトリにパスが通っていないと思うので、
カレントディレクトリを C:\Program Files\Oracle\VirtualBox に移動してから実行します。

必ず、変更するゲストOSは停止させてから変更してください。

まずは、ゲストOSの一覧を確認。

VBoxManage list vms


これでゲストOSの名称一覧が表示されます。
変更するゲストOSの名称 "VM name" を確認しておきましょう。

停止中のゲストOSのプロパティを変更するコマンド "modifyvm" を使います。
ネットワークアドレスを、192.168.30/24 に変更してみましょう。

VBoxManage modifyvm "VM name" --natnet1 "192.168.30/24"



これでゲストOSを再起動すれば、
ゲストOSには、192.168.30.15 のIPアドレスが割り振られます。






NATネットワーク


  • ゲストOSは、ホストOSのIPアドレスを共有して外部の物理ネットワークと接続
  • 外部ネットワークからはゲストOSのIPアドレスは見えない
  • ゲストOS間で予め設定したNATネットワークを構成する
  • ホストOSはつながらない


ホストOSとつながらない点が異なりますが、
VMware Workstation PlayerのNAT設定に近い状態です。

virtualbox_network07.png


NATネットワーク設定を使うには、
予め、"NATネットワーク" を準備しておく必要があります。
[環境設定] - [ネットワーク] を選び、
[NATネットワーク] タブの右上にある"+"マークのアイコンをクリックして追加する。
virtualbox_network03.png

追加したら、編集アイコンをクリックし、ネットワーク設定を編集する。
virtualbox_network04.png

管理しやすいようにネットワーク名をつけ、
ネットワークアドレスを任意に設定(デフォルトは、10.0.2.0/24)。
[DHCPのサポート]にチェックを入れる。
virtualbox_network05.png

それから、ゲストOSの設定を行う。
ネットワーク設定から、[NATネットワーク] を選択し、
先ほど準備した、"NATネットワーク"環境を選ぶ。
virtualbox_network06.png

これで再起動し、外部との通信と、
ゲストOS間でpingを実行すれば、通信設定ができていることを確認できると思います。





内部ネットワーク


  • 外部ネットワークとは通信できないゲストOS間でネットワークを構成する
  • ホストOSはつながらない



ゲストOS間でネットワークを構築するだけです。
"NATネットワーク"は、VirtualBoxがDHCPを用意してくれる設定がありますが、
内部ネットワークにはありません。ネットワーク設定は自身で行います。
virtualbox_network08.png



まずゲストOSの設定は、
[内部ネットワーク] を選び、ネットワークの名前を任意でつける。
virtualbox_network09.png

同じ内部ネットワークに接続する他のゲストOS設定にも、同じネットワーク名を選択します。



ゲストOSの設定ができれば、それぞれのゲストOSを起動し、
ネットワークインタフェースの設定を行う。
(Ubuntuでの設定)

sudo vi /etc/network/interfaces



ファイルを開いたら、以下を追記する。
インタフェース名は ifconfig とかで調べてます。
ネットワークアドレスは任意に設定してください。

auto enp0sp8
iface enp0sp8 inet static
address 192.168.30.1
netmask 255.255.255.0



他のゲストOSにも同様にネットワークインタフェースの設定を行います。
IPアドレスは 192.168.30.2 ~と、異なる設定をするように。

これで再起動し、IPアドレスを確認し、追記した設定通りに
ネットワーク設定ができていることを確認後、
ゲストOS間でpingを実行すれば、通信ができていることを確認できると思います。






ホストオンリー アダプター


  • 外部ネットワークとは通信できない
  • ホストOSとゲストOS間でネットワークを構成する


VMware Workstation Playerのホストオンリー設定と同じです。
virtualbox_network14.png


ホストOSのIPアドレス設定、DHCPの有効(ネットワーク設定)/無効が可能です。
[環境設定] - [ネットワーク] を選び、
[ホストオンリーネットワーク] タブに設定があります。
virtualbox_network10.png
(新たに設定を追加したいのであれば、右上にある"+"マークのアイコンをクリックして追加する)

設定するネットワークを選択し、
編集アイコンをクリックしてネットワーク設定を行う。

[アダプター] タブでは、ホストOSのIPアドレス設定を行う。
virtualbox_network11.png

[DHCPサーバー] タブでは、DHCPのネットワーク設定を行う。
[サーバーを有効化] にチェックを入れる。
virtualbox_network12.png
サーバーアドレスはホストOSと重ならないように設定。
アドレス下限は、ホストOSとDHCPサーバーと重ならない範囲に設定。
アドレス上限は、broadcastの255と重ならない範囲に設定。


それから、ゲストOSの設定を行う。
ネットワーク設定から、[ホストオンリー アダプター] を選択し、
先ほど準備した、"ホストオンリー アダプター"環境を選ぶ。
virtualbox_network13.png

これで再起動し、
ホストOSとゲストOS間でpingを実行すれば、通信設定ができていることを確認できると思います。




ブリッジ アダプター


  • ゲストOSは、外部の物理ネットワークと接続
  • 外部ネットワークからゲストOSのIPアドレスが見える
  • ホストOSは外部ネットワークを介して、ゲストOSとつながる


VMware Workstation Playerのブリッジ設定と同じです。
virtualbox_network15.png

サーバーとして外部と使うのであれば、ブリッジ接続を設定することになります。






汎用ドライバー


よくわかっていないので割愛。






まとめ


ゲストOSは1つだけで、ゲストOSを通常のクライアントPCとして使うのであれば、
デフォルトのままNAT設定にしておけば、だいたいはうまくいくと思う。
ゲストOSを増やして使いだすと、ややこしくなる。

家庭環境で、サーバーとして利用する場合、
外部からIPアドレスが見えたほうがいいので、ブリッジ接続を設定する。
会社内でPC管理者に相談無しでブリッジ設定を選んでしまうと、
ネットワークに知らないPCがつながってしまう状態になり、
PC管理者に迷惑をかけるので注意。

PCローカル内だけの閉じた環境でサーバーを立てたテストを行う場合は、
NAT環境でかつホストOSとゲストOSの間をつなぐ手段が必要となる。それは別の機会で。



VirtualBox ゲストOSのインストール
VirtualBoxをインストール
VMware Workstation Player: ネットワーク設定
VirtualBox: ホストOSからゲストOSへのアクセス
posted by Zorinos at 22:00| Comment(0) | Windows | 更新情報をチェックする

2017年05月26日

VirtualBox ゲストOSのインストール

仮想マシン(Oracle VM VirtualBox)のゲストOS を入れてみる。

OSを入手


Ubuntuダウンロードサイト等からPCにインストールする際のISOイメージを入手すればよい。


新規仮想マシン(ゲストOS)の作成


ゲストOSをインストールためには、
インストールする箱である仮想マシン(最大で32個の仮想CPUをサポートできる)を予め作る必要があります。
(参考:Features overview

Ubuntu 16.04を使って説明していきます。

左上にある「新規」ボタンをクリック。
virtualbox_guest01.png



仮想マシン作成ウィザードが起動するので、沿って入れていく。
[名前とオペレーティングシステム]
virtualbox_guest02.png
名前:作成する仮想マシン名(わかり易い名前をつける)
タイプ:Linux
バージョン:Ubuntu(64-bit)
※適切に判別できる名前だと[タイプ]と[バージョン]が自動的に設定されます。



[メモリーサイズ]
virtualbox_guest03.png
[タイプ]と[バージョン]により、必要最低限のメモリサイズが自動的に設定されます。
ホスト側のリソースとの兼ね合いとなります。後から変更もできます。


[ハードドライブ]
virtualbox_guest04.png
[仮想ハードドライブを作成する]を選択する。

[ハードドライブのファイルタイプ]
virtualbox_guest05.png
VirtualBoxでは様々なタイプの仮想ハードディスクが扱えるが、
他の仮想ソフトウェアを使用してなければ、VirtualBox形式である「VDI」を選択する。

[物理ハードドライブにあるストレージ]
virtualbox_guest06.png
可変サイズ:ゲストOSで使われた分だけ、ホストOS側のハードディスクが使われる。
固定サイズ:指定したサイズ分、即座に確保し使われる。ディスクアクセスのパフォーマンスが良い。
可変サイズのほうが使用分だけ使わるので、
ゲストOSの使用量が少なければ、それだけホストOS側を圧迫しない。


[ファイルの場所とサイズ]
virtualbox_guest07.png
ゲストOSの仮想ハードディスクは、ホストOS側から見たら単なるファイルとして見える。
そのファイルの保存場所を指定する。

仮想ハードディスクが作成場所は、デフォルトでは
"C:\Users\[ユーザー名]\VirtualBox VMs\[仮想マシン名]" の下に作成されます。
仮想ハードディスクの保存場所を変更したい場合はここで変更する。
右上のフォルダのアイコンをクリックして指定。

仮想ハードドライブのサイズはデフォルト値が予め設定してある。
ホストOS側との兼ね合いでサイズ変更しておく。




[作成]をクリックし、仮想マシンを作成する。


作成した仮想マシンがリストに表示されています。
virtualbox_guest08.png


仮想マシンにインストールディスクをマウント


ダウンロードしたISOイメージファイルをマウントして、
インストールする準備をする。

[設定] ボタンをクリック。
virtualbox_guest09.png

左欄 [ストレージ] を選択し、
コントローラ:IDEから「空」となっているCD/DVDドライブを選択。
virtualbox_guest10.png

一番右にあるディスクアイコンをクリック。
virtualbox_guest11.png

[仮想光学ディスクファイルを選択] を選ぶ。
virtualbox_guest12.png

ダイアログが開くので、ダウンロードしたISOイメージファイルを選択する。


ゲストOSのCD/DVDドライブに、インストールディスクがマウントされる。
virtualbox_guest13.png



仮想マシンにOSをインストール


インストールディスクをマウントしたゲストをOSを選択し、
[起動] ボタンをクリックする。
virtualbox_guest14.png

インストーラーが起動するので、あとはインストール作業を進めていく。
virtualbox_guest15.png




インストール完了後に再起動を求められ、再起動実行のボタンをクリックした場合に、
終了せず、自動的に起き上がってこない場合は、手動で電源断を行えばよい。

対象ゲストOSを選択し、右クリック。
[閉じる] - [電源オフ] を実行。
virtualbox_guest16.png

確認ダイアログが出れば、[電源オフ] を選択する。
virtualbox_guest17.png


Guest Additions のインストール


ゲストOSをもっと便利に使うために、
ホストOS上の共有フォルダ設定、ホストOSとのクリップボードの共有や、
高解像度・大画面表示ができるように設定しましょう。

そのためには、"Guest Additions" をインストールします。
(参考:Guest Additions

ゲストOSを起動し、
メニューバーから [デバイス] - [Guest AdditionsのCDイメージの挿入] をクリック。
virtualbox_guest21.png

ちなみに、"Guest AdditionsのCDイメージ"は、
VirtualBox プログラムフォルダ内にあります。
C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso



あとはAutoRunで起動するので、順に進める。
virtualbox_guest22.png

virtualbox_guest23.png

virtualbox_guest24.png

virtualbox_guest25.png
"Press Return to close this window ..." が表示されたら、
リターンキーを押して終了させれば完了です。


マウントしたCDイメージは不要なので取り出しておく。
virtualbox_guest26.png


※AutoRunで起動しなかった場合、
端末から、"Guest Additions"のマウントポイントに移動し
インストールスクリプトを実行すれば大丈夫です。
ただし、マウントポイントはディストリビューションによって異なると思うので、
dfコマンドで調べるとよいです。

cd /media/hogehoge/VBOXADDITIONS_5.1.22_115126

sudo ./VBoxLinuxAdditions.run




ホストOSとゲストOSでクリップボードを共有する


Guest Additionsのインストールが必須です。

[設定] ボタンをクリック。
virtualbox_guest18.png

左欄 [一般] を選択し、[高度] タブを選択する。
virtualbox_guest19.png

[クリップボードの共有]から、「双方向」を選んでおけば良い。
virtualbox_guest20.png

これでホストOSとゲストOSで便利にコピペができるようになる。



ホストOS上に共有フォルダを設定する


Guest Additionsのインストールが必須です。

[設定] ボタンをクリック。
virtualbox_guest18.png

左欄 [共有フォルダー] を選択し、
右上のフォルダアイコンをクリック。
virtualbox_guest27.png

共有フォルダ追加のダイアログが開く。

[フォルダーのパス] から
ゲストOSとの共有フォルダに設定する場所を指定する。
virtualbox_guest29.png

共有フォルダ名称はデフォルトでは、フォルダの名称になっているので、
異なる名前をつけたいのであれば変更しておく。
virtualbox_guest30.png
自動マウントにチェックを入れておくと便利なので、チェックを入れておく。
読み込み専用にしたいのであれば、チェックをいれておく。


ゲストOSを起動させ、共有フォルダを確認する。

共有フォルダは、/media にマウントされている。
ホストOS側で作成したフォルダ名に、"sf_" が付加されたディレクトリ名がマウントされる。
drwxrwx--- 1 root vboxsf 4096 5月 18 12:40 sf_VMshare/


上記の通り、共有フォルダは "vboxsf" グループ として設定されている。
このままではアクセス権がないので、自分のアカウントをグループに追加しておく。

sudo gpasswd -a hogehoge vboxsf



変更を有効にするために、一度ログアウトする。
再度ログインすれば、共有フォルダにアクセスできるようになっている。


ゲストOSを削除する


追加したゲストOSを選択し、右クリック。
[除去] を選択する。
virtualbox_guest31.png


以降、ゲストOSを使うこともないのであれば
バッサリと [すべてのファイルを削除] を選択。
再度使う可能性があれば、[除去のみ] にしておく。
virtualbox_guest32.png



VirtualBoxをインストール
VirtualBox: ネットワーク設定
posted by Zorinos at 23:00| Comment(0) | Windows | 更新情報をチェックする

2017年05月25日

VirtualBoxをインストール

Oracle VirtualBox(Oracle VM VirtualBox)は
コンピュータ内(ホストOS)に仮想的なコンピュータを作成し、
そこに別のOS(ゲストOS)をインストールし実行することができます。
たとえば、Windowsを動作させているPC上で、Linuxなどを実行させる事ができます。
(参考:Supported host operating systems
(類似で VMware Workstation Player もあります)

インストール環境:Windows10 64bit


VirtualBoxをダウンロードする


VirtualBoxのサイトにアクセスし、左側の「Downloads」を選択。
virtualbox_01.png

VirtualBox binaries」からホストOSのパッケージを選び、ダウンロードする。
Windowsなので、"Windows hosts"を選択した。
virtualbox_02.png


次に「Extension Pack」(全プラットフォーム共通)をダウンロードする。
バージョン4.0より、Extension Packageと呼ばれる機能拡張プラグインが導入された。これは、4.0よりVirtualBox本体がGPLライセンスとなったために、プロプライエタリ・ソフトウェアによる機能を標準で実装することができなくなったために設けられたものである。
Oracleから「Oracle VM VirtualBox Extension Pack」と呼ばれる機能拡張プラグインを配布しており、これにより以下の機能が提供される。

・USB 2.0 コントローラ (EHCI)
・USB 3.0 コントローラ (xHCI)(バージョン5.0から追加)
・Remote Desktop Protocol(RDP)による遠隔制御機能 (マイクロソフトおよびシトリクスにより開発された、プロプライエタリな遠隔制御プロトコル。つまりWindowsのリモートデスクトップクライアントやrdesktopソフトウェアから接続することが可能)
・IntelカードによるPXEブート機能
・シームレスモード (ホストOSとゲストOSのデスクトップの操作を統合する機能)


初回のみ別途ダウンロード及びインストールが必要。一度インストールすればVirtualBox本体をアップデートしたあとの初回起動時にExtension Packもアップデートされるので、別途ダウンロードの必要はなくなる。
引用:Wikipedia


Extension Pack は、USB2.0/USB 3.0 の機能サポートが含まれているので、併せてのインストールをしておきましょう。
virtualbox_03.png


VirtualBoxをインストールする


VirtualBoxをインストールする。
ダウンロードしたインストーラーを起動する。

[Next] をクリック。
virtualbox_04.png

カスタムセットアップの画面は、デフォルトのままでいい。
[Next] をクリック。
virtualbox_05.png



ショートカットの作成、ファイルの関連付け。
必要なオプションを選択して [Next] をクリック。
virtualbox_06.png


VirtualBox のネットワーク機能をインストールするために、
インストール中に一時的にネットワーク接続が切断されるという警告が出る。
ネットワークが切断されて困るアプリケーションがあれば、終了させるなり対応してから
[Yes] をクリックする。
virtualbox_07.png

インストール実行前の最終確認。
再設定したければ、[Back] で戻り設定し直す。
OKであれば [Install] を。インストールが開始されます。
virtualbox_08.png

しばし待つ。
virtualbox_09.png



インストール中に次のような確認が表示されれば、
[インストール] を選択する。
virtualbox_10.png


インストール完了。
[Finish] をクリック。
virtualbox_11.png

virtualbox_12.png



エクステンションパックをインストールする


バージョン4.0よりOSS版にプラグイン機能が搭載され、機能の追加が可能となった。
USB機能サポートが含まれているので、インストールしておきたい。
(参考:Installing VirtualBox and extension packs

VirtualBoxの画面から
[ファイル] - [環境設定] - [機能拡張]を選択。
virtualbox_13.png

virtualbox_14.png


右側の「パッケージ追加」アイコンをクリック。
virtualbox_15.png

ダイアログが開くので、
ダウンロードしたエクステンションパックファイルを選択する。


確認画面が表示されるので [インストール] をクリックする。
virtualbox_16.png


ライセンスの確認画面が出る。
一番下までスクロールすると、[同意します] ボタンが有効となるのでクリックする。
virtualbox_17.png

エクステンションパックがインストールされるので、しばし待つ。
virtualbox_18.png

エクステンションパックのインストールが完了。
[OK] をクリック。
virtualbox_19.png


一覧に追加された。
virtualbox_20.png

これでインストールは完了。


VirtualBox ゲストOSのインストール


VirtualBoxをアンインストールする


追加した仮想マシンを削除する。
virtualbox_21.png



以降、仮想マシンを使うこともないのであれば
バッサリと [すべてのファイルを削除] を選択。
再インストールをして使うのであれば、[除去のみ] にしておく。
virtualbox_22.png

あとは、Windowsの[設定] -[システム]から[アプリと機能]を開いて
"Oracle VM VirtualBox" を削除する。





VMware Workstation Player: ネットワーク設定
posted by Zorinos at 18:00| Comment(0) | Windows | 更新情報をチェックする