Linux管理者-リモート管理
管理者としてのCentOSでのリモート管理について話すとき、2つの方法を検討します-
- コンソール管理
- GUI管理
リモートコンソール管理
リモートコンソール管理とは、sshなどのサービスを介してコマンドラインから管理タスクを実行することを意味します。CentOS Linuxを効果的に使用するには、管理者として、コマンドラインに習熟している必要があります。Linuxの中心は、コンソールから使用するように設計されています。今日でも、一部のシステム管理者はコマンドの能力を好み、物理端末やGUIがインストールされていない最低限のLinuxボックスを実行することでハードウェアのコストを節約しています。
リモートGUI管理
リモートGUI管理は通常、リモートXセッションまたはVNCなどのGUIアプリケーション層プロトコルの2つの方法で実行されます。それぞれに長所と短所があります。ただし、ほとんどの場合、VNCが管理に最適です。これにより、XWindowsプロトコルをネイティブにサポートしていないWindowsやOSXなどの他のオペレーティングシステムからのグラフィカルな制御が可能になります。
リモートXセッションの使用は、X-WindowのウィンドウマネージャーとXで実行されているDesktopManagerの両方にネイティブです。ただし、Xセッションアーキテクチャ全体は主にLinuxで使用されます。すべてのシステム管理者がリモートXセッションを確立するためのLinuxラップトップを手元に持っているわけではありません。したがって、VNCサーバーの適合バージョンを使用するのが最も一般的です。
VNCの最大の欠点は次のとおりです。VNCは、リモートXセッションなどのマルチユーザー環境をネイティブにサポートしていません。したがって、エンドユーザーへのGUIアクセスには、リモートXSessionが最適です。ただし、主にCentOSサーバーのリモート管理に関心があります。
複数の管理者とリモートXセッションを使用する数百人のエンドユーザー向けにVNCを構成する方法について説明します。
リモートコンソールアクセス用のSSHによるセキュリティの基盤を築く
ssh または Secure ShellLinuxサーバーをリモート管理するための標準になりました。telnetとは異なりSSHは、通信の信頼性とエンドツーエンド暗号化にTLSを使用します。適切に構成されている場合、管理者はパスワードとサーバーの両方がリモートで信頼されていることをかなり確信できます。
SSHを設定する前に、基本的なセキュリティと最も一般的でないアクセスについて少し話しましょう。SSHがデフォルトのポート22で実行されている場合。遅かれ早かれ、一般的なユーザー名とパスワードに対するブルートフォース辞書攻撃を受けることになります。これはちょうど領土に付属しています。拒否ファイルに追加するホストの数に関係なく、それらは毎日異なるIPアドレスから受信されます。
いくつかの一般的なルールを使用すると、積極的な手順を実行して、悪意のあるユーザーに時間を無駄にすることができます。以下は、本番サーバーでのリモート管理にSSHを使用して従うべきセキュリティのいくつかのルールです-
一般的なユーザー名またはパスワードは絶対に使用しないでください。システム上のユーザー名は、システムのデフォルトにしたり、次のように会社の電子メールアドレスに関連付けたりしないでください。[email protected]
SSH経由でルートアクセスまたは管理アクセスを許可しないでください。SSHで認証されたら、一意のユーザー名とsuを使用してrootまたは管理アカウントを作成します。
パスワードポリシーは必須です:「This&IS&a&GUD&P @ ssW0rd&24&me」のような複雑なSSHユーザーパスワード。数か月ごとにパスワードを変更して、ブルートフォース攻撃の影響を受けにくくします。
放棄されたアカウントまたは長期間使用されていないアカウントを無効にします。採用担当マネージャーが、1か月間面接を行わないことを示すボイスメールを持っている場合。たとえば、テクノロジーに精通した個人が多くの時間を費やすことにつながる可能性があります。
毎日ログを監視してください。システム管理者として、システムとセキュリティのログを確認するために、毎朝少なくとも30〜40分を費やしてください。求められた場合は、積極的に行動しない時間がないことを全員に知らせてください。この方法は、問題がエンドユーザーや企業の利益に現れる前に警告の兆候を特定するのに役立ちます。
Note On Linux Security− Linux管理に関心のある人は、現在のサイバーセキュリティのニュースとテクノロジーを積極的に追求する必要があります。他のオペレーティングシステムが侵害されているという話をよく耳にしますが、安全でないLinuxボックスは、サイバー犯罪者にとって求められている宝物です。高速インターネット接続でのLinuxのパワーにより、熟練したサイバー犯罪者はLinuxを使用して他のオペレーティングシステムへの攻撃を利用できます。
リモートアクセス用のSSHをインストールして構成する
Step 1 −SSHサーバーとすべての依存パッケージをインストールします。
[root@localhost]# yum -y install openssh-server
'Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: repos.centos.net
* extras: repos.dfw.centos.com
* updates: centos.centos.com
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
Step 2 −シェルアクセス用に追加するために安全な定期的な使用を行います。
[root@localhost ~]# useradd choozer
[root@localhost ~]# usermod -c "Remote Access" -d /home/choozer -g users -G
wheel -a choozer
Note− SSHアクセスが認証されると、rootにsuできるように、新しいユーザーをホイールグループに追加しました。また、一般的な単語リストにはないユーザー名を使用しました。これにより、SSHが攻撃されたときにアカウントがロックアウトされることはありません。
sshdサーバーの構成設定を保持するファイルは/ etc / ssh / sshd_configです。
最初に編集したい部分は-
LoginGraceTime 60m
PermitRootLogin no
Step 3−SSHデーモンsshdをリロードします。
[root@localhost]# systemctl reload sshd
ログアウトの猶予期間を60分に設定することをお勧めします。一部の複雑な管理タスクは、デフォルトの2分を超える場合があります。変更を構成または調査するときにSSHセッションがタイムアウトすることほどイライラすることはありません。
Step 4 −ルート資格情報を使用してログインしてみましょう。
bash-3.2# ssh centos.vmnet.local
[email protected]'s password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Step 5-私たちは、もはやとssh経由でリモートからログインすることができ、ルート資格情報。それでは、非特権ユーザーアカウントにログインし、rootアカウントにsuしてみましょう。
bash-3.2# ssh [email protected]
[email protected]'s password:
[choozer@localhost ~]$ su root
Password:
[root@localhost choozer]#
Step 6−最後に、SSHDサービスが起動時にロードされ、firewalldが外部SSH接続を許可することを確認しましょう。
[root@localhost]# systemctl enable sshd
[root@localhost]# firewall-cmd --permanent --add-service=ssh
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]#
これでSSHがセットアップされ、リモート管理の準備が整いました。企業の境界によっては、企業LANの外部でSSHリモート管理を許可するようにパケットフィルタリング境界デバイスを構成する必要がある場合があります。
リモートCentOS管理用にVNCを構成する
CentOS 6〜7でVNCを介してリモートCentOS管理を有効にする方法はいくつかありますが、最も簡単ですが、最も制限的な方法は、vinoというパッケージを使用することです。Vinoは、Gnomeデスクトッププラットフォームを中心に設計されたLinux用の仮想ネットワークデスクトップ接続アプリケーションです。したがって、インストールはGnomeDesktopで完了したと見なされます。Gnomeデスクトップがインストールされていない場合は、続行する前にインストールしてください。Vinoは、デフォルトでGnomeGUIインストールでインストールされます。
GnomeでVinoとの画面共有を構成するには、画面共有のCentOSシステム環境設定に移動します。
Applications->System Tools->Settings->Sharing
VNCデスクトップ共有の構成に関する注意事項-
Disable New Connections must ask for access−このオプションでは、すべての接続をOKするために物理的なアクセスが必要になります。このオプションは、誰かが物理デスクトップにいない限り、リモート管理を防ぎます。
Enable Require a password−これはユーザーパスワードとは別のものです。仮想デスクトップへのアクセスを制御しますが、ロックされたデスクトップにアクセスするにはユーザーパスワードが必要です(これはセキュリティに役立ちます)。
Forward UP&P Ports: If available leave disabled− UP&Pポートを転送すると、レイヤー3デバイスのユニバーサルプラグアンドプレイ要求が送信され、ホストへのVNC接続が自動的に許可されます。これは欲しくない。
vinoがVNCポート5900でリッスンしていることを確認してください。
[root@localhost]# netstat -antup | grep vino
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 4873/vino-server
tcp6 0 0 :::5900 :::* LISTEN 4873/vino-server
[root@localhost]#
次に、着信VNC接続を許可するようにファイアウォールを構成しましょう。
[root@localhost]# firewall-cmd --permanent --add-port=5900/tcp
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost rdc]#
最後に、ご覧のとおり、CentOS Boxを接続して、WindowsまたはOSXのいずれかのVNCクライアントで管理できます。
SSHについて説明したのと同じVNCのルールに従うことが重要です。SSHと同様に、VNCはIP範囲全体で継続的にスキャンされ、脆弱なパスワードがないかテストされます。コンソールタイムアウトを使用してデフォルトのCentOSログインを有効のままにしておくと、リモートVNCセキュリティに役立つことにも注意してください。攻撃者はVNCとユーザーパスワードを必要とするため、画面共有パスワードが異なり、ユーザーパスワードと同じように推測しにくいことを確認してください。
VNC画面共有パスワードを入力した後、ロックされたデスクトップにアクセスするためのユーザーパスワードも入力する必要があります。
Security Note−デフォルトでは、VNCは暗号化されたプロトコルではありません。したがって、VNC接続は暗号化のためにSSHを介してトンネリングする必要があります。
VNCを介してSSHトンネルを設定する
SSHトンネルを設定すると、VNC接続をトンネリングするためのSSH暗号化のレイヤーが提供されます。もう1つの優れた機能は、SSH圧縮を使用して、VNCGUI画面の更新に別の圧縮レイヤーを追加することです。CentOSサーバーの管理を扱う場合、より安全で高速なことは常に良いことです。
したがって、VNC接続を開始するクライアントから、リモートSSHトンネルを設定しましょう。このデモンストレーションでは、OS Xを使用しています。最初に、rootにsudo-sを実行する必要があります。
bash-3.2# sudo -s
password:
ユーザーパスワードを入力すると、#プロンプトが表示されたルートシェルが作成されます-
bash-3.2#
それでは、SSHトンネルを作成しましょう。
ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
このコマンドを分解してみましょう-
ssh −ローカルのsshユーティリティを実行します
-f −タスクが完全に実行された後、sshはバックグラウンドで実行する必要があります
[email protected] −VNCサービスをホストしているCentOSサーバー上のリモートsshユーザー
-L 2200:192.168.1.143:5900 −トンネルを作成します[ローカルポート]:[リモートホスト]:[VNCサービスのリモートポート]
-N リモートシステムでコマンドを実行したくないことをsshに通知します
bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:
リモートsshユーザーのパスワードを正常に入力すると、sshトンネルが作成されます。さあ、クールな部分です!接続するには、VNCクライアントをトンネルのポート(この場合はポート2200)のローカルホストに向けます。以下は、MacラップトップのVNCクライアントの構成です。
そして最後に、リモートVNCデスクトップ接続です!
SSHトンネリングの優れた点は、ほとんどすべてのプロトコルに使用できることです。SSHトンネルは通常、ISPによる出力および入力ポートフィルタリングをバイパスし、他のセッション層の監視を回避しながらアプリケーション層IDS / IPSをだますために使用されます。
ISPは、ビジネス以外のアカウントのポート5900をフィルタリングできますが、ポート22でSSHを許可します(または、ポート22がフィルタリングされている場合は、任意のポートでSSHを実行できます)。
アプリケーションレベルのIPSおよびIDSはペイロードを調べます。たとえば、一般的なバッファオーバーフローやSQLインジェクション。エンドツーエンドのSSH暗号化は、アプリケーション層のデータを暗号化します。
SSHトンネリングは、Linux管理者のツールボックスにある優れたツールです。ただし、管理者として、SSHトンネリングにアクセスできる特権の低いユーザーの可用性をロックダウンすることを検討したいと思います。
Administration Security Note− SSHトンネリングの制限は、管理者の側で考える必要があるものです。そもそもユーザーがSSHトンネリングを必要とする理由を評価する。ユーザーがトンネリングを必要とするもの。実際のリスク確率と最悪の場合の影響とともに。
これは、中級レベルの入門書の領域外に広がる高度なトピックです。このトピックに関する調査は、CentOSLinux管理の上位層に到達したい人に推奨されます。
リモートX-WindowsにSSHトンネルを使用する
LinuxでのX-Windowsのデザインは、Windowsのデザインに比べて本当にすっきりしています。別のLinuxボックスからリモートLinuxボックスを制御したい場合は、Xに組み込まれているメカニズムを利用できます。
X-Windows(しばしば単に「X」と呼ばれる)は、あるLinuxボックスから発生したアプリケーションウィンドウを別のLinuxボックス上のXの表示部分に表示するメカニズムを提供します。したがって、SSHを介して、X-Windowsアプリケーションを世界中の別のLinuxボックスのディスプレイに転送するように要求できます。
sshトンネルを介してXアプリケーションをリモートで実行するには、1つのコマンドを実行するだけです。
[root@localhost]# ssh -X [email protected]
The syntax is − ssh -X [user] @ [host]であり、ホストは有効なユーザーでsshを実行している必要があります。
以下は、リモートXWindowssshトンネルを介してUbuntuワークステーションで実行されているGIMPのスクリーンショットです。
別のLinuxサーバーまたはワークステーションからリモートでアプリケーションを実行するのは非常に簡単です。Xセッション全体を開始し、いくつかの方法でデスクトップ環境全体をリモートで使用することもできます。
XDMCP
NXなどのヘッドレスソフトウェアパッケージ
XおよびGnomeやKDEなどのデスクトップマネージャーでの代替ディスプレイとデスクトップの構成
この方法は、物理的なディスプレイがないヘッドレスサーバーで最も一般的に使用されており、実際には中級レベルの入門書の範囲を超えています。ただし、利用可能なオプションを知っておくとよいでしょう。