投稿者:ITインフラ担当

日本情報通信の篠崎と申します。

2年目に構築したLinux OSの踏み台サーバの経験をまとめたものになります。
Linux OSに初めて触れる方や、LinuxOSにて踏み台サーバを構築する方の参考になれば幸いです。


1.経緯・構成

 1.1.経緯

 コロナ過の影響で、テレワークが弊社でも主流となりテレワーク環境からデータセンター
 にある検証環境にアクセスするための踏み台サーバが必要となりました。

 構築するにあたり下記の要求がありました。
 
 ・料金が発生しないこと
 ・パッケージはローカルからインストールすること
 (検証環境がインターネットに接続できないため)

 要求にあった製品の選定をしたところ「Remmina」というツールを利用し
 踏み台サーバから検証環境へリモートアクセスができるということが分かりました。

 そのため、踏み台サーバから検証環境への
 リモートアクセスのツールとして「Remmina」を利用することにしました。

 また、リモートから踏み台サーバへの
 リモートアクセスのツールとして「VNC」を利用することにしました。

 今回使用するツールは以下になります。

 ・ターミナルソフト:TeraTerm
 
・検証環境への接続ツール:Remmina
 ・踏み台サーバへの接続ツール:VNC

 接続の流れとしては以下になります。
 利用ユーザ→(VNC)→踏み台サーバ→(Remmina)→検証環境のサーバ


 キャプチャ.JPG














 1.2.構成

 
【Hypervisor、OS情報】

 ・検証環境物理サーバ:VMware ESXi
 ・踏み台サーバ :CentOS 7.8


2.OS構築

 本章では踏み台サーバを構築した流れを記載します。

 
 
2.1.OS設計

 ・rootログインを禁止し,システム管理ユーザのみsu,sudo権限の付与
 ・一定回数ログインに失敗した場合、アカウントを一定時間ロック
 ・利用ユーザとシステム管理ユーザのみssh接続を許可

 
 
2.2.OS構築手順



 2.2.1.VMware ESXiにて仮想マシン作成


 検証環境のESXiにログインしvCenterサーバから、仮想マシンを作成します。


 2.2.2.CentOSのインストール

 仮想マシン作成後、OSをインストールします。


 2.2.3.CentOSの設定

 踏み台サーバには以下の設定を行いました。
 赤字の部分は環境に合わせ変更してください。


 1.ホスト名の変更
 ・hostnamectl set-hostname ホスト名


 2.静的IPアドレスの設定

 nmcli con mod インターフェース名 ipv4.method manual
 ・nmcli con mod インターフェース名 ipv4.addresses IPアドレス/サブネットマスク

 
 
3.NTPサーバとの時刻同期

 ・ /etc/chrony.conf を開きます。

 
同期するNTPサーバを以下コマンドにて追加します。

 
・server NTPサーバのIPアドレス iburst

 
下記コマンド にてサービスを再起動します。
 
・systemctl restart chronyd


 4.言語設定

 下記コマンドにて言語設定を確認します。
 ・localectl

 下記コマンドにて言語設定を日本語に設定変更します。
 localectl set-locale LANG=ja_JP.utf8


 5.Firewalldの設定

 以下コマンドにて使用するポートを恒久的に開放します。
 ・firewall-cmd --add-port=ポート番号/プロトコル名 --zone=public --permanent

 ※ゾーンはデフォルトのpublicを使用します。

 設定を反映させるため下記コマンドにてサービスを再起動します。
 ・firewall-cmd --reload


 6.グループの作成

 後ほど踏み台サーバへのsshアクセスを許可するグループを作成します。
 ・groupadd -g グループID グループ名

 ※グループIDは「1100」、グループ名は「remmina」を指定しました。
 ※グループIDの指定は任意となります。


 7.ユーザの作成

 踏み台サーバを利用するユーザと管理用のユーザを作成します。
 ・useradd -u ユーザID -g グループ名 ユーザ名

 ※ユーザIDは「1101」から順番に割り振りました。
 ※グループ名には先ほど作成したグループを割り当てます。
 ※ユーザIDの指定は任意となります。


 8.sshログインアカウントロック(PAM)の設定

 ・/etc/ssh/sshd_configを開きます。
 ファイル内の「UsePAM yes」の設定が有効になっていることを確認します。

 有効になってない場合は有効化し、以下コマンドにてサービスを再起動します。
 ・systemctl restart sshd
 
 ・etc/pam.d/sshd を開き、
以下の内容を追加します。

 ・auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600
 ・auth [success=1 default=ignore] pam_succeed_if.so user in 対象外とするユーザ名
 ・auth pam_faillock.so authfail audit deny=3 unlock_time=600
 ・account required pam_faillock.so

 ※(deny=回数)はログイン失敗回数、(unlock_time=秒数)は
 アカウントをロックする時間になります。
 ※上記コマンドはログイン失敗3回をトリガーにアカウントを10分間 ロックする設定になります。
 ※サーバ管理用に作成ユーザは対象外とします。


 9.su.sudoコマンドの実行権限を持たせるwheelグループの設定

 
・/etc/pam.d/su を開きます。
 ・#auth required pam_wheel.so user_uid から
  auth required pam_wheel.so user_uid
に変更します。

 10.wheelグループへのシステム管理ユーザの追加

 下記コマンドにてwheelグループへユーザを追加します。
 ・usermod -aG wheel システム管理ユーザ名


 11.rootログイン不可、sshログイン許可グループの設定

 ・/etc/ssh/sshd_config を開きます。
 ・#PermitRootLogin yes を PermitRootLogin no に変更しrootログインを禁止します。
 ・AllowGroups グループ名 を追加し、sshログインを許可するグループを制限します。

 ※今回はremminaグループ、wheelグループを許可します。


 12.ローカルからのパッケージインストール

 Remmina構築の項目にて説明いたします。


 以上が今回行ったOSの設定となります。

3.Remmina構築


 3.1.Remminaインストール

 踏み台サーバから検証環境へのリモートアクセスツールである、Remminaをインストールします。
 Remminaの関連ファイルを作業端末にダウンロードします。

 Tera TermのSSH SCP の機能を利用し、作業端末にダウンロードしたファイルを
 踏み台サーバの/tmpフォルダに移動させます。

 ・踏み台サーバに管理ユーザにてログインします。
 ・cd /tmp にてディレクトリを移動します。
 下記コマンドにてパッケージをインストールします。
 ・rpm -ivh パッケージファイル名

 Remminaのファイルを下記コマンドにてインストールした際に以下の内容のエラーが発生します。

 rpm -ivh remmina-1.4.1-1.el7.x86_64.rpm

 警告: remmina-1.4.1-1.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
 エラー: 依存性の欠如:
 libappindicator3.so.1()(64bit) は remmina-1.4.1-1.el7.x86_64 に必要とされています
 libsodium.so.23()(64bit) は remmina-1.4.1-1.el7.x86_64 に必要とされています
 libssh.so.4()(64bit) は remmina-1.4.1-1.el7.x86_64 に必要とされています
 libssh_threads.so.4()(64bit) は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-exec は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-nx は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-rdp は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-secret は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-st は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-vnc は remmina-1.4.1-1.el7.x86_64 に必要とされています
 remmina-plugins-xdmcp は remmina-1.4.1-1.el7.x86_64 に必要とされています
 
 解決方法としては、依存性の欠如が確認されたファイルを同時にインストールすることで解決できます。


3.2.VNC インストール

 【踏み台サーバ】

 リモートから踏み台サーバへのリモートアクセスツールであるVNCをインストールします。
 今回はTigerVNCをインストールしました。

 VNC Serverの関連ファイルを作業端末にダウンロードします。
 Tera TermのSSH SCP の機能を利用し、作業端末にダウンロードしたファイルを
 踏み台サーバの/tmpフォルダに移動させます。
 
 ・踏み台サーバにログインします。
 ・
cd /tmp にてディレクトリを移動します。
 下記コマンドにてパッケージをインストールします。
 ・rpm -ivh パッケージファイル名

 【作業端末】

 踏み台サーバへ接続する作業端末へ、VNC Clientをインストールします。
 下記URLよりダウンロードが可能です。
 https://bintray.com/tigervnc/stable/tigervnc/1.11.0


4.Remmina利用方法

 ※下記はWindows サーバへの接続方法となります。

 Tera Termから踏み台サーバへssh接続します。
 下記コマンドを入力しVNCを起動します。
 ・vncserver

 起動後、 New ホスト名:(ディスプレイ番号)ユーザ名 desktop is ...と表示されるので
 ディスプレイ番号を控えます。

 作業端末にてVNC クライアントを起動し
 VNC server欄に踏み台サーバのIPアドレスまたはホスト名:ディスプレイ番号を入力します。

キャプチャ.2JPG.JPG












 入力後、「Connect」をクリックし、踏み台サーバへ接続します。
 接続後、ユーザ名とパスワードを入力し踏み台サーバへログインします。

 ログイン後、【アプリケーション】>【インターネット】>【Remmina】
 をクリックしRemminaを起動します。

キャプチャ3.JPG











 Remminaを起動後、【Remmina リモートデスクトップクライアント】が立ち上がります。

キャプチャ4.JPG






 画面左上の赤枠をクリックします。【リモートデスクトップの設定】画面が開きます。
キャプチャ.5JPG.JPG








 プロトコルから【RDP-リモートデスクトッププロトコル】を選択します。


キャプチャ6.JPG










 【基本設定】から接続先のサーバ情報を入力します。


キャプチャ7.JPG






 

 
画面右下の、【接続】または【保存して接続】をクリックすると接続が開始されます。

キャプチャ9.JPG







キャプチャ10.JPG

 




 
以上がRemminaの利用方法となります。



5.感想

 LinuxOS に触れるのは初めてであったこともあり、
 rpmコマンドにて実行したパッケージのインストールにて少々躓きました。
 
 
インターネットからyumコマンドにてインストールができない環境で、
 パッケージ間の依存性を自身で解決するのに時間がかかってしまったことが原因のため、
 技術的な知識を身に着けるべきだと感じました。

 今考えてみると、
 Linux OS 上にロ―カルリポジトリを作成するなど解決方法は様々あったのかなと思っています。


6.最後に

 いかがだったでしょうか?
 Blogを読んでいただいている皆様も踏み台サーバを構築する機会がございましたら
 ぜひ参考にしていただけると幸いです。

 ※「記載の会社名、商品名、サービス名は各社の商標または登録商標です」