One place for hosting & domains

      する方法

      Ubuntu 20 .04にPostfixをインストールして設定 する方法


      このチュートリアルの以前のバージョンは、Justin Ellingwoodによって作成されました。

      はじめに

      Postfixは人気のあるオープンソースのメール転送エージェント(MTA)であり、Linuxシステムで電子メールをルーティングおよび配信するために使用できます。インターネット上のパブリックメールサーバーの約25%がPostfixを実行していると推定されます。

      このガイドでは、Ubuntu 20.04サーバーにPostfixをインストールして設定する方法を学びます。次に、メールユーザーエージェント(MUA、別名メールクライアント)であるs-nailをインストールして、Postfixがメールを正しくルーティングできるかテストします。

      このチュートリアルの目標は、Postfixを起動してメールの基本機能を迅速に実行できるようになることです。このガイド終了までにメールサーバーの全機能がそろうわけではありませんが、始めるのに役立つセットアップの基本コンポーネントがいくつか得られます。

      前提条件

      このガイドに沿って作業を進めるには、次のものが必要です。

      • Postfixメールサーバーとして機能する、Ubuntu 20.04で稼働するサーバー。 sudo権限が付与されたroot以外のユーザーと、ufwで設定されたファイアウォール。サーバーのセットアップ方法については、Ubuntu 20.04初期サーバーセットアップガイドを参照してください。
      • Ubuntu 20.04サーバーを参照するFQDN。DigitalOceanでドメイン名のセットアップする方法については、ドメインとDNSネットワーキングドキュメントを参照してください。メールに外部からアクセスするつもりなら、メールサーバーを指すMXレコードの存在も確認する必要があります。

      このチュートリアルでは、FQDNがmail.example.comのホストを設定していると仮定します。必要に応じて、 example.comまたはmail.example.comを変更して、独自のFQDNを反映します。

      ステップ1— Postfixのインストール

      PostfixはUbuntuのデフォルトリポジトリに含まれているため、APTを使用してインストールできます。

      まず、ローカルのaptパッケージキャッシュを更新します。

      次に、次のコマンドでpostfixパッケージをインストールします。ここで、環境変数DEBIAN_PRIORITY=lowをインストールコマンドに渡します。これにより、インストールプロセスが、追加オプションを設定するよう促すようになります。

      • sudo DEBIAN_PRIORITY=low apt install postfix

      このインストールプロセスで、一連の対話型プロンプトが開きます。このチュートリアルの目的上、次の情報を使用して、プロンプトに応答します。

      • メール設定の一般的なタイプ:ここでは基盤のニーズに合致するInternet Siteを選択します。
      • システムメール名: アドレスのアカウント部分のみが決まっている場合、有効なメールアドレスの作成に使用されるベースドメインです。 たとえば、サーバーのホスト名がmail.example.comであるとします。システムメール名をexample.comに設定して、ユーザー名 user1とすると、Postfixはアドレスuser1@example.comを使用します。
      • rootおよびpostmasterメール受信者: root@およびpostmaster@宛てのメールを転送するLinuxアカウントです。これにはプライマリアカウントを使用します。この場合はsammyです。
      • メールを受け入れる他の宛先: このPostfixインスタンスが受け入れるメール宛先を定義します。このサーバーが受信するドメインを追加する場合は、ここに追加します。そうでない場合は、デフォルトで問題なく動作します。
      • メールキューの同期更新を強制しますか?: ジャーナルファイルシステムを使用している確率が高いため、ここではNoを選択します。
      • ローカルネットワーク: メールサーバーがメッセージを中継するように設定されているネットワークの一覧です。ほとんどのシナリオでデフォルトが使えます。変更する場合は、ネットワークレンジに関する制限をかなり厳しくしてください。
      • メールボックスサイズ制限: メッセージのサイズの制限に使用します。0に設定すると、サイズ制限が無効になります。
      • ローカルアドレス拡張文字: アドレスの通常の部分を拡張(動的エイリアスの作成に使用)から切り離すために使用する文字です。このチュートリアルでは、デフォルトの+とします。
      • 使用するインターネットプロトコル: PostfixがサポートするIPバージョンを制限するかどうか選択します。このチュートリアルでは、allを選択します。

      明示的に、このガイドでは次の設定を使用します。

      • メール設定の一般的なタイプ:** Internet Site**
      • システムメール名: example.commail.example.comではない)
      • rootおよびpostmasterメール受信者: プライマリLinuxアカウントユーザー 名(例ではsammy
      • メールを受信する他の宛先: $myhostname, example.commail.example.comlocalhost.example.com、localhost
      • メールキューの同期更新を強制しますか?:** No**
      • ローカルネットワーク: 127.0.0/8 [:ffff:127.0.0.0]/104 [:1]/128
      • メールボックスのサイズ制限: 0
      • ローカルアドレス拡張文字: +
      • 使用するインターネットプロトコル:** all**

      : これらの設定を再調整するために戻るときは、次のように入力します。

      • sudo dpkg-reconfigure postfix

      プロンプトには、以前の応答が事前に入力されます。

      インストールプロセスが終了し、Postfix設定を更新する準備が整いました。

      ステップ2 — Postfix設定の変更

      次に、パッケージインストール中に尋ねられなかった設定を調整します。Postfixの設定の多くは/etc/postfix/main.cfファイルで定義されます。このファイルを直接編集するのではなく、Postfixのpostconfコマンドを使用して、クエリするか設定を行います。

      まず、root以外のUbuntuユーザー用にメールボックスの場所を設定します。このガイドでは、Maildir 形式を使用します。メッセージは個々のファイルに分割され、これらのファイルはユーザーのアクションに基づいてディレクトリ間を移動します。もう1つのオプションは、すべてのメッセージを1つのファイルに保存する mbox形式です。

      home_mailbox変数をMaildir/に設定します。その後、ユーザーのホームディレクトリ内にその名前でディレクトリ構造を作成します。次を入力して、home_mailboxを設定します。

      • sudo postconf -e 'home_mailbox= Maildir/'

      次に、 virtual_alias_mapsテーブルの場所を設定します。このテーブルは、任意のメールアカウントをLinuxシステムアカウントにマッピングします。次のコマンドを実行します。これでテーブルの場所が/etc/postfix/virtualというハッシュデータベースファイルにマッピングされます。

      • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

      main.cfファイルで仮想マップファイルの場所を定義したので、仮想マップファイルを作成して、Linuxシステムのユーザーアカウントに、メールアカウントのマッピングを開始します。お好みのエディタを使用して、ファイルを作成してください。ここではnanoを使用します。

      • sudo nano /etc/postfix/virtual

      メールを受信するメールアドレスを挙げ、その後空白で区切って、メールを配信するLinuxユーザーを入力します。

      たとえば、contact@example.comadmin@example.comでメールを受信し、そのメールをLinuxユーザーのsammy に配信したい場合は、次のようなファイルを設定します。

      /etc/postfix/virtual

      contact@example.com sammy
      admin@example.com sammy
      

      すべてのアドレスを対応するサーバーアカウントにマッピングしたら、ファイルを保存して閉じます。nanoを使用した場合は、CTRL + XYENTERキーを押します。

      次のように入力してマッピングを適用します。

      • sudo postmap /etc/postfix/virtual

      Postfixプロセスを再起動して、すべての変更が適用されたことを確認してください。

      • sudo systemctl restart postfix

      前提条件の初期サーバーセットアップガイドに従った場合、UFWを使用したファイアウォールが設定されているはずです。UFWファイアウォールは、これらの接続が明示的に許可されていない限り、サーバー上のサービスへの外部接続をデフォルトでブロックします。したがって、Postfixの例外を許可するファイアウォールルールを追加する必要があります。

      次のように入力して、サービスへの接続を許可します。

      これでPostfixは外部接続を受け入れるように設定されました。ただし、メールクライアントでテストする準備はまだできていません。クライアントをインストールしてサーバーに配信するメールとやり取りする前に、Ubuntuサーバーのセットアップにいくつか変更を加える必要があります。

      ステップ3 — メールクライアントのインストールとMaildir構造の初期化

      配信中のメールとやり取りするために、s-nailパッケージをインストールするプロセスをこのステップで見てみましょう。これはBSD xmailクライアントのバリアントであり、機能が豊富で、Maildir形式を正しく処理できます。

      ただし、クライアントをインストールする前に、MAIL環境変数の設定が正しいか確認するのが賢明です。 s-nailは、この変数を調べて、ユーザーのメールを探す場所を見つけます。

      アカウントへのアクセス方法(sshsusu-sudoなど)にかかわらず、MAIL変数が設定されていることを確認するには、/etc/bash.bashrcファイル内で変数を設定し、それを/etc/profile.d内のファイルに追加し、それが各ユーザーにデフォルトで設定されていることを確認します。

      これらのファイルに変数を追加するには、次を入力します。

      • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

      変数を現在のセッションに読み込むには、/etc/profile.d/mail.shファイルをソースします。

      • source /etc/profile.d/mail.sh

      それが完了したら、APTでs-nailメールクライアントをインストールします。

      クライアントを実行する前に、設定をいくつか調整する必要があります。エディタで/etc/s-nail.rcファイルを開きます。

      ファイルの最後に次のオプションを追加します。

      /etc/s-nail.rc

      . . .
      set emptystart
      set folder=Maildir
      set record=+sent
      

      これらの行が実行するのは次のことです。

      • set emptystart: クライアントは空の受信トレイでも開くことができます。
      • set folder=Maildir: Maildirディレクトリを内部folder変数に設定します。
      • set record=+sent: 送信済メールをfolder変数として設定されたディレクトリ内に保存するために、sent mboxファイルを作成します。今回はMaildirディレクトリになります。

      完了したら、ファイルを保存して閉じます。これで、システムのMaildir構造を初期化する準備が整いました。

      ホームディレクトリ内にMaildir構造を作成する簡単な方法は、s-nailコマンドで自分自身にメールを送信することです。sentファイルはMaildirが作成されないと利用できないため、この最初のメールでは書き込みを無効にする必要があります。-Snorecordオプションを渡すことでこれを行います。

      文字列をs-​​nailコマンドにパイプしてメールを送信します。コマンドを調整して、Linuxユーザーを受信者としてマークするようにします。

      • echo 'init' | s-nail -s 'init' -Snorecord sammy

      :次の応答が得られる場合があります

      Output

      Can't canonicalize "/home/sammy/Maildir"

      これは正常な動作で、メッセージの初回送信時のみ表示されるものです。

      ディレクトリが作成されたかどうか確認するには、~/Maildirディレクトリを探します。

      ディレクトリ構造が作成され、新しいメッセージファイルが ~/Maildir/newディレクトリにあることがわかります。

      Output

      /home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

      ディレクトリ構造が作成されたので、s-nailクライアントをテストする準備が整いました。送信したinitメッセージを表示し、外部メールアドレスにメッセージを送信します。

      ステップ5 — クライアントのテスト

      クライアントを開くには、s-nailコマンドを実行します。

      コンソールでは、簡易な受信トレイに届いたinitメッセージが表示されるはずです。

      Output

      s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

      ENTERキーを押すとメッセージが表示されます。

      Output

      [-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

      hを入力してENTERキーを押すとメッセージ一覧に戻ります。

      Output

      >R 1 sammy@example.com 2020-05-19 15:40 14/392 init

      メッセージのステータスが今R、つまり既読になったことが分かります。

      このメッセージはあまり有用ではないので、dを入力してからENTERキーを押して削除します。 

      ターミナルに戻るには、qを入力してからENTERキーを入力します。

      最終テストとして、s-nailがメッセージを正しくメール送信できるか確認します。これを行うには、前のステップで送信したinitメッセージで行ったように、テキストファイルの内容をs-nailプロセスにパイプします。

      まず、テキストエディターでテストメッセージを作成します。

      エディター内で送信するテキストを入力します。

      ~/test_message

      Hello,
      
      This is a test.  Please confirm receipt!
      

      メッセージを入力したらファイルを保存して閉じます。

      次に、catコマンドを使用してメッセージをs-nailプロセスにパイプします。次の例では、次のオプションを使用します。

      • -s:メールメッセージの件名を定義します。
      • -r:メールの「From:」フィールドのオプションを変更します。デフォルトでは、ログインしているLinuxユーザーがこのフィールドに入力されます。-rオプションを使用すれば、/etc/postfix/virtualファイルで定義したアドレスなど、有効なアドレスでこれを上書きできます。たとえば、次のコマンドはcontact@example.comを使用します。

      また、user@email.com をアクセス可能なメールアドレスに変更してください。

      • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

      次に、メッセージを送信したメールアドレスの受信トレイに移動します。瞬時にメッセージが届いているはずです。

      :メッセージが受信トレイにない場合は、スパムフォルダに届いた可能性があります。

      送信したメッセージは、s-nailクライアント内で表示できます。次のように入力して、対話型クライアントを再起動します。

      メールクライアントから、次のように入力して送信メッセージを表示します。

      出力は次のようになります。

      Output

      +[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

      受信メールに使用するのと同じコマンドを使用して、送信メールを管理できます。

      まとめ

      これで、Ubuntu 20.04サーバー上でPostfix設定が完了しました。メールサーバーの管理は、初心者の管理者にとっては難しい作業ですが、必要なMTAのメール機能が備わったこの設定から始めるのがよいでしょう。



      Source link

      Ubuntu 20 .04にVNC をインストールして構成 する方法


      はじめに

      仮想ネットワークコンピューティング、 すなわちVNC(Virtual Network Computing)は、キーボードとマウスを使用して 、リモートサーバー上のグラフィカルデスクトップ環境と対話できるようにする接続システムです 。これにより、コマンドラインにまだ慣れていないユーザーにとって、リモートサーバー上のファイル、ソフトウェア、および設定の管理が簡単になります。

      このガイドでは、Ubuntu 20.04サーバー上にTightVNCを使用してVNCサーバーを設定し、SSHトンネルを介して安全に接続します。次に、ローカルマシンでVNCクライアントプログラムを使用し、グラフィカルデスクトップ環境を介してサーバーと対話します。

      前提条件

      このチュートリアルを完了する には 、 次のものが必要です。

      • root以外の管理ユーザー権限とUFWで構成したファイアウォールを備えたUbuntu20.04サーバー1台。これを設定するには、Ubuntu 20.04 初期サーバー設定ガイドを参照してください。
      • VNC クライアントがインストールされ たローカルコンピュータ 。使用するVNCクライアントは 、SSHトンネルを介した接続をサポートしている必要があります 。
        • Windowsでは 、 TightVNC 、 RealVNC 、 または UltraVNC を使用 でき ます 。
        • macOS では 、 組み込みの画面共有 プログラムを使用するか 、 RealVNC のようなクロスプラットフォームアプリを使用できます 。
        • Linuxでは 、 vinagrekrdc 、 RealVNC 、 TightVNC などの多くのオプションから選択でき ます 。

      ステップ 1 — デスクトップ環境とVNC サーバーをインストールする

      デフォルトでは 、Ubuntu 20 .04サーバーにはグラフィカルデスクトップ 環境やVNC サーバーがインストールされていないため、それらのインストールから始めます 。

      選択するVNCサーバーとデスクトップ環境に関しては、多くのオプションがあります。このチュートリアルでは、最新のXfceデスクトップ環境用のパッケージと、公式のUbuntuリポジトリで利用可能なTightVNCパッケージをインストールします。XfceとTightVNCは、いずれも軽量で高速ですから、低速のインターネット接続でもスムーズで安定したVNC接続を保証します。

      SSHでサーバーに接続した後 、パッケージのリストを更新 し ます 。

      次に、xfce4-goodiesパッケージと共にXfceをインストールします。これには、デスクトップ環境のいくつかの拡張機能が含まれています。

      • sudo apt install xfce4 xfce4-goodies

      インストール中に、Xfceのデフォルトのディスプレイマネージャーを選択するように求められる場合があります。ディスプレイマネージャーは、グラフィカルインターフェイスを介してデスクトップ環境を選択してログインできるようにするプログラムです。Xfceは、VNCクライアントに接続するときにのみ使用します。これらのXfceセッションでは、root以外のUbuntuユーザーとして既にログインしています。したがって、このチュートリアルでは、ディスプレイマネージャーの選択は適切ではありません。いずれかを選択してENTERキーを押します。

      インストールが完了したら、TightVNCサーバーをインストールします。

      • sudo apt install tightvncserver

      次に、vncserverコマンドを実行してVNCアクセスパスワードを設定し、初期構成ファイルを作成し、VNCサーバーインスタンスを起動します。

      次に、マシンにリモートアクセスするためのパスワードを入力して確認するように求められます。

      Output

      You will require a password to access your desktops. Password: Verify:

      パスワードは6〜8文字の長さである必要があります。8文字を超えるパスワードは自動的に切り捨てられます。

      パスワードを確認すると、表示専用のパスワードを作成するオプションが表示されます。表示専用パスワードでログインするユーザーは、マウスまたはキーボードでVNCインスタンスを制御できなくなります。これは、VNCサーバーを使用して他の人に何かをデモンストレーションしたい場合に便利なオプションですが、必須ではありません。

      次に、このプロセスは、サーバーに必要なデフォルトの構成ファイルと接続情報を作成します。さらに、ポート5901でデフォルトのサーバーインスタンスを起動します。このポートはディスプレイポートと呼ばれ、VNCでは:1として参照されます。VNCは、他のディスプレイポートで複数のインスタンスを起動できます。例えば、:2 はポート5902を参照し、:35903を参照する、など。

      Output

      Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      ここで留意すべきは、パスワードを変更したり、表示専用のパスワードを追加したい場合は、vncpasswd コマンドを使用できることです。

      この時点では、VNCサーバーがインストールされて実行されています。それでは、Xfceを起動し、グラフィカルインターフェイスを介してサーバーにアクセスできるように構成しましょう。

      ステップ2 — VNCサーバーの構成をする

      VNCサーバーは、起動時にどのコマンドを実行するか知る必要があります。具体的には、VNCは、接続する必要のあるグラフィカルデスクトップ環境がどれかを知る必要があります。

      VNCサーバーが起動時に実行するコマンドは、ホームディレクトリ配下にある.vncフォルダ内のxstartupと呼ばれる構成ファイルにあります。起動スクリプトは、前のステップでvncserverコマンドを実行したときに作成されていましたが、Xfceデスクトップを起動するためには、独自のスクリプトを作成します。

      VNCサーバーの構成方法を変更するので、最初に、次のコマンドを使用して、ポート5901で実行されているVNCサーバーインスタンスを停止します。

      別のPIDが表示されますが、出力は次のようになります。

      Output

      Killing Xtightvnc process ID 17648

      xstarturpファイルを変更する前に、元ファイルをバックアップします。

      • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

      ここで、新しいxstarturpファイルを作成し、nanoなどのテキストエディターで開きます。

      次に、ファイルに次の行を追加します。

      ~/.vnc/xstartup

      #!/bin/bash
      xrdb $HOME/.Xresources
      startxfce4 &
      

      最初の行は、shebangです。* nixプラットフォーム上の実行可能なプレーンテキストファイルで、shebangは、システムに、そのファイルをどのインタプリタに渡して実行するかを指示します。この場合、ファイルをBashインタプリタに渡します。これにより、連続する各行を順番にコマンドとして実行できるようになります。

      ファイルに記述される最初のコマンドxrdb $HOME/.Xresourcesは、VNCのGUIフレームワークに、サーバーユーザーの.Xresourceファイルを読み取るように指示します。.Xresourceは、ユーザーが、端末の色、カーソルテーマ、フォントレンダリングなど、グラフィカルデスクトップの特定の設定を変更できる場所です。2番目のコマンドは、サーバーにXfceを起動するように指示します。VNCサーバーを起動または再起動するたびに、これらのコマンドが自動的に実行されます。

      これらの行を追加したら、ファイルを保存して閉じます。nanoを使用した場合は、CTRL + XYENTERキーを押します。

      VNCサーバーがこの新しいスタートアップファイルを適切に使用できるようにするために、実行可能なファイルにする必要があります。

      次に、VNCサーバーを再起動します。

      この時のコマンドには、VNCサーバーをサーバーのループバックインターフェイスにバインドする-localhostオプションが含まれていることに注意してください。これにより、VNCは、それがインストールされているサーバーから発信された接続のみを許可します。

      次のステップでは、ローカルマシンとサーバーの間にSSHトンネルを確立し、VNCがローカルマシンからの接続がサーバーから発信されたものと思わせる仕掛けをします。この戦略により、VNCの周囲にセキュリティの層が追加されます。これは、VNCにアクセスできるのは、サーバーへのSSHアクセスを既に持っているユーザーのみであるためです。

      次のような出力が表示されます。

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      これで、ローカルマシンからVNCサーバーに接続する準備が整いました。

      ステップ3 — VNCデスクトップに安全な接続をする

      VNC自体は、接続時に安全なプロトコルを使用しません。サーバーに安全に接続するには、SSHトンネルを確立してから、VNCクライアントに、直接接続するのではなく、そのトンネルを使用して接続するように指示します。

      VNC用のlocalhost接続に安全に転送するローカルコンピュータ上にSSH接続を作成します。この操作は、LinuxまたはmacOSのターミナルを介して、次のsshコマンドで実行できます。

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      この ssh コマンドのオプションの意味は次のとおりです。

      • -L 59000:localhost:5901:-Lスイッチは、ローカルコンピューター(59000)の指定されたポートが宛先サーバー(localhost:5901は、宛先サーバーのポート5901を意味し、your_server_ipとして定義される)の指定されたホストとポートに転送されるよう指定します指定するローカルポートは多少任意であることに注意してください。ポートがまだ別のサービスにバインドされていない限り、トンネルの転送ポートとして使用できます。
      • -C:このフラグは圧縮を有効にし、リソースの消費を最小限に抑え、処理を高速化します。
      • -N: このオプションは、リモートコマンドを実行したくないsshに指定します。この設定は、ポートを転送するだけの場合に役立ちます。
      • -l sammy your_server_ip :-lスイッチを使用すると、サーバーに接続したときにログインするユーザーを指定できます。 sammy your_server_ip は、root以外のユーザーの名前とサーバーのIPアドレスに必ず置き換えてください。

      :このコマンドは、VNCサーバーのポート5901から各マシンのポート22(SSHのデフォルトポート)を介してローカルマシンのポート59000に情報を転送するSSHトンネルを確立します。前提条件となるUbuntu 20.04の初期サーバーセットアップガイドに従っていると仮定する場合、OpenSSHを介したサーバーへの接続を許可するUFWルールを追加します。

      これは、サーバーのファイアウォールを単に開いてポート5901への接続を許可するよりも安全です。これにより、誰でもVNCを介してサーバーにアクセスできるようになります。SSHトンネルを介して接続することにより、サーバーへのSSHアクセスを既に持っているマシンへのVNCアクセスを制限します

      PuTTYを使用してサーバーに接続している場合は、ターミナルウィンドウのトップバーを右クリックし、Change Settings…(設定の変更)オプションをクリックします。

      トップバーを右クリックして、Change Settings(設定の変更)オプションを表示します

      PuTTY再構成ウィンドウの左側にあるツリーメニューで接続ブランチを見つけます。SSHブランチを展開し、トンネルをクリックします。[Options controlling SSH port forwarding(SSHポート転送画面を制御するオプション]画面において、5900をソースポートとして、localhost:5901を宛先として入力します。

      PuTTY SSHトンネル構成の例

      次に、追加ボタンをクリックし、適用ボタンをクリックしてトンネルを実装します。

      トンネルが起動したら、VNCクライアントを使用してlocalhost:59000に接続します。ステップ1に設定したパスワードを使用して認証するよう求められます。

      接続すると、デフォルトのXfceデスクトップが表示されます。このように表示されるはずです。

      Xfceデスクトップ環境でのUbuntu 20.04サーバーへのVNC接続

      次に示すように、ファイルマネージャーまたはコマンドラインから、ホームディレクトリ内のファイルにアクセスできます。

      Ubuntu20.04へのVNC接続を介したファイルマネージャー

      ローカルターミナルでCTRL + Cを押して、SSHトンネルを停止し、プロンプトに戻ります。これにより、VNCセッションも切断されます。

      これで、systemdサービスとして実行するようにVNCサーバーを構成できます。

      ステップ4 — システムサービスとしてVNCを実行する

      systemdサービスとして実行するようにVNCサーバーを設定することにより、他のサービスと同様に、必要に応じてサーバーを開始、停止、再起動できます。systemdの管理コマンドを使用して、サーバーの起動時にVNCが確実に起動するようにすることもできます。

      まず、/etc/systemd/system/vncserver@.serviceという新しいユニットファイルを作成します。

      • sudo nano /etc/systemd/system/vncserver@.service

      名前の最後にある@記号を使用すると、サービス構成で使用できる引数を渡すことができます。これを使用して、サービスを管理するときに使用するVNC表示ポートを指定します。

      ファイルに次の行を追加します。ユーザーグループWorkingDirectoryPIDFILEの値の中のユーザー名をユーザー名に変更してください。

      /etc/systemd/system/vncserver@.service

      [Unit]
      Description=Start TightVNC server at startup
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=sammy
      Group=sammy
      WorkingDirectory=/home/sammy
      
      PIDFile=/home/sammy/.vnc/%H:%i.pid
      ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
      ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      ExecStartPreコマンドは、すでに実行している場合は、VNCを停止します。ExecStartコマンドはVNCを起動し、色深度を1280×800の解像度で24ビットカラーに設定します。ニーズに合わせて、これらの起動オプションを変更することもできます。また、ExecStartコマンドには-localhostオプションが含まれていることに注意してください。

      ファイルを保存して閉じます。

      次に、システムに新しいユニットファイルを認識させます。

      • sudo systemctl daemon-reload

      ユニットファイルを有効にします。

      • sudo systemctl enable vncserver@1.service

      @記号に続く1は、サービスが表示される表示番号を示します。この場合、ステップ2で説明したデフォルトの:1です。

      VNCサーバーがまだ実行中の場合は、現在のインスタンスを停止します。

      次に、他のsystemdサービスを開始するのと同じように開始します。

      • sudo systemctl start vncserver@1

      このコマンドで起動したことを確認できます。

      • sudo systemctl status vncserver@1

      正しく起動した場合は、出力は次のようになります。

      Output

      ● vncserver@1.service - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Main PID: 39795 (Xtightvnc) ...

      これで、サーバーが起動するたびにVNCサーバーを使用できるようになり、他のsystemdサービスと同様にsystemctlコマンドを使用してサーバーを管理できます。

      ただし、クライアント側には違いはありません。再接続するには、SSHトンネルを再度起動します。

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      次に、VNCクライアントソフトウェアを使用してlocalhost:59000に新しい接続を確立し、サーバーに接続します。

      まとめ

      これで、Ubuntu 20.04サーバー上で安全なVNCサーバが起動し、実行されるようになりました。これで、ファイル、ソフトウェア、設定をユーザーフレンドリーなグラフィカルなインターフェースで管理できるようになり、Webブラウザのようなグラフィカルなソフトウェアをリモートで実行できるようになります。



      Source link