🦚

開発環境(ParrotOS, MacOS)へSSH&VNC接続する

2023/12/20に公開

背景

  • ParrotOS(Linux)とMacOSの端末があるが、全然使えてないので活用したい!
  • 画面、入出力デバイスを切り替えたりするのが面倒なので主に使っているWindows端末からリモートアクセスしてそれらの端末を操作したい!

前提

各端末のセットアップは完了していることを前提としております。
また、ローカルネットワーク内での通信を想定しているためセキュリティは全然、考慮していない設定となっております。ご留意ください。

IPアドレスの確認&設定

SSH,VNC接続するには接続先のIPアドレスを指定しなければなりません。
そのためには接続先のIPアドレスを確認する必要があります。

自身のIPアドレスを知る

リモート先であるParrotOS端末,MacOSにログインして、ターミナルで以下のコマンドを実行します。

# Linux
$ ip r
# Linux & MacOS
$ ifconfig

上記のコマンドを実行すると自身のIPアドレス、デフォルトゲートウェイ、サブネットマスクが分かります。
以下の画像では、IPアドレスが192.168.10.128でデフォルトゲートウェイが192.168.10.1、サブネットマスクが255.255.255.0になります。

IPアドレスの固定化

IPアドレスを知ることができたので、このIPアドレスを固定したいと思います。
特段、設定を変更していない限りはDHCP(Dynamic Host Configuration Protocol)を使用して、自動的にIPアドレスを割り当ていると思います。
DHCPは新しいデバイスがネットワークに接続されると自動的にIPアドレスを割り当ててくれてとても便利なのですが、現在割り当てられているIPアドレスも動的に変更される可能性があります。
sshやVNC接続する際にIPアドレスを指定しますが、IPアドレスが更新されて違うものになっていると面倒なので、IPを固定化させる必要があるのです。

ParrotOSのIPアドレス固定化

コマンドやconfigファイルを設定して固定化させる方法もありますが、GUIでできるのでこちらの方で設定していきます。
デスクトップ画面上部のタブから、システム > 設定 > インターネットとネットワーク > 高度なネットワーク設定を選択します。

現在、接続してるネットワーク(有線、Wifi)を選択し、下部の⚙をクリックします。

上記のタブからIPv4を選択します。
メソッド(M)は手動を選択、追加ボタンをクリックし、
先ほど確認したIPアドレス、サブネットマスク(プレフィックス表記)、デフォルトゲートウェイ、DNSを設定します。
DNSは8.8.8.8(Google Public DNS)を設定してください。
入力し終えたら保存ボタンをクリックして、ウィンドウを閉じます。

設定を反映させるために一度ネットワークを切断し、再接続します。
これでParrotOSのIPアドレスの固定化は完了です!

割り当てられていないIPアドレスを探すためのコマンド

# 例
$ ping 192.168.10.222
192.168.10.222 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.10.222 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)

MacOSのIPアドレス固定化

次はMacOSのIPアドレスを固定していきます。
デスクトップ画面上部のアップルマークから、システム設定を選択します。

設定画面の左側のWifiから詳細を選択します。

TCP/IPのタブからIPv4の構成をDHCPから手動に変換し、IPアドレスを入力します。

以下の例だと、IPアドレスを192.168.10.222,サブネットマスク255.255.255.0,ルータ(デフォルトゲートウェイ)を192.168.10.1に設定しています。設定できたらOKにします。

次にDNSのタブを選択し、8.8.8.8を入力します。
これでIPアドレスの固定化は完了です!

SSH接続

ParrotOS SSHの設定

さて、それではParrotOSにsshサーバを起動させて接続していきます。
以下のコマンドでssh サービスが起動しているかまたは、存在しているか確認します。

$ sudo systemctl status ssh

画像のようになっていたら、設定は完了しています。

デフォルトでは起動していないと思うので、起動&インストールをしていきます。
sshが見つからないというメッセージが出た場合はインストールする必要があります。
以下のコマンドでインストールしましょう

$ sudo apt-get install openssh-server

それでは起動と自動起動設定の設定を以下のコマンドで行います。

# サービスの起動
$ sudo systemctl start ssh

# 自動起動の設定
$ sudo systemctl enable ssh

もう一度以下のコマンドを実行して、画像のようになっていたら、設定は完了です!

$ sudo systemctl status ssh

MacOS SSHの設定

MacOSにSSH接続できるようにしましょう。
MacOSはGUIにて設定できるのでGUIで設定していきます。
デスクトップ画面上部のアップルマークから、システム設定を選択します。

設定画面の左側から一般>共有を選択します。

リモートログインにチェックを入れて、ⓘをクリックします。

アクセスを許可するユーザを選択し完了ボタンをクリックします。

ssh [ユーザ名]@[IPアドレス]がsshする際に必要な情報なのでメモってください。
これでMacOS側の設定は完了です!

WindowsからSSH接続する

それではWindowsから接続していきます。コマンドプロンプトから以下のコマンドを実行してください

# 例 ssh -l admin 192.168.10.234
> ssh -l [ユーザ名] [IPアドレス]

パスワードを入力して、ターミナルが変われば成功です!

....
 ____                      _     ____
|  _ \ __ _ _ __ _ __ ___ | |_  / ___|  ___  ___
| |_) / _` | '__| '__/ _ \| __| \___ \ / _ \/ __|
|  __/ (_| | |  | | | (_) | |_   ___) |  __/ (__
|_|   \__,_|_|  |_|  \___/ \__| |____/ \___|\___|
....
┌─[admin@parrot][~]
└──╼ $

ParrotOSへVNC接続

次はVNC接続をするために設定していきます。
VNC接続することで、遠隔でGUIの操作を行うことができます。

ParrotOS側(リモート側の設定)

parrotos側から設定します。vncサーバを起動させるために以下のコマンドで必要なパッケージをインストールします。

$ sudo apt install tightvncserver

インストールできたので、vncサーバを起動させます。
VNC接続するためのユーザ名、パスワードを聞かれるので、設定します。

$ vncserver -geometry 1440x900 :1

VNCサービスを作成し、自動起動できるように設定します。
まずは、起動しているvncサーバを停止させます。

$ vncserver -kill :1

VNCサービスを定義します。

# 移動
cd /etc/systemd/system/
# 作成
sudo vi vnc-server.service

vnc-server.serviceを以下のように編集します。

[Unit]
Description = VNC server service

[Service]
ExecStart = sudo -u [ユーザ名] vncserver -geometry 1920x1080 :1
ExecStop = sudo -u [ユーザ名] vncserver -kill :1
Type = forking

[Install]
WantedBy = multi-user.target

以下のコマンドで権限を付与します

$ sudo chown root:root  /etc/systemd/system/vnc-server.service
$ sudo chmod 644  /etc/systemd/system/vnc-server.service

VNCサービスを有効にさせて、サービスを起動させます。
ステータスを確認してアクティブになっていることを確認して、画像のようになっていれば起動成功です!

# 有効化
$ sudo systemctl enable vnc-server
# 起動
$ sudo systemctl start vnc-server.service
# 確認
$ sudo systemctl status vnc-server.service

Windows側(リモート側の設定)

それではWindowsからVNCクライアントをインストールして、VNC接続します。
VNCクライアントは何でも大丈夫ですが、私は以下のものを使用します。
https://forest.watch.impress.co.jp/library/software/ultravnc/

上記のリンクからダウンロードしましょう。
日本語対応していないので、EnglishのままでOKを選択します。

規約を読んで同意し、nextをクリックします。

次にインストールするソフトを選びます。今回使用するのはUltraVNC Viewerのみですので、これだけ選択すればOKです!UltraVNC ServerはWindowsをリモート先として使用する可能性がある場合は一緒にインストールしてもいいかと思います。UltraVNC Repeater はVNC 接続の通信を中継するプロキシなので、ほとんどの場合不要かと思います。

その後はデフォルトのまま進んでインストールしてください

インストールできたら起動させます。
ParrotOSのIPアドレス:5901を入力してConnectをクリックして、パスワードを聞かれるので入力してLog Onをクリックします。(*画像のIPアドレスは例です)

ParrotOSのデスクトップ画面が表示されたら成功です!

MacOSへVNC接続

MacOSのVNCの設定はすごく簡単です。
SSH接続を設定したように、デスクトップ画面上部のアップルマークから、システム設定を選択します。

設定画面の左側から一般>共有を選択します。

画面共有にチェックを入れて、ⓘをクリックします。

vnc://[IPアドレス]で表示されているのがVNC接続する際に指定するIPアドレスになります。
固定化したIPアドレスであることを確認してください。
SSHの設定をしたときと同じようにアクセスを許可するユーザを選択します。
アクセス許可の設定が完了したらコンピュータ設定を選択します。

VNC使用者が画面を操作することを許可にチェックを入れてVNC接続する際のパスワードを選択します。
OKを押したら設定完了です!

それではUltraVNC Viewerで接続していきましょう!
MacOS端末の固定化したIPアドレスと先ほど設定したVNC接続する際のパスワードを入力するとVNC接続できます!


以下のようにMacOSのデスクトップ画面が表示できたら成功です!

最後に

お疲れ様でした。これでWindowsからParrotOS,MacOSの端末に接続できるようになったのでどんどん活かしていきたいと思います!

参考

https://qiita.com/iNaoki04/items/ae6a96205b52980d8dba
https://www.kali.org/tools/tightvnc/
https://otheritblog.wordpress.com/2020/04/27/how-can-you-enable-ssh-on-kali-or-parrot-sec/
https://miloserdov.org/?p=542

Discussion