仮想サーバーレベルでの小規模ネットワークのネットワークワークスペースの構成について

こんにちは、ハラジテリ! この記事では、少数のユーザー(大学の学部)がいるネットワークに仮想ワークスペースをセットアップすることを考えている間に得た構造について説明します。 主なタスク:大聖堂サイト(Drupal)のホスト、独自のリポジトリとWiki、ファイル共有(またはネットワークドライブ)、部門外のネットワークへのアクセス。



この作業には2つの目的があります。





使用されるシステムはUbuntu 12.04 Server x64です。 物理サーバー構成:i5第2世代、8 GB RAM、HDD 5400 1 TB。



ツール



Drupal 。 歴史的に(tm)、このサイトはCMS Drupalで実行されます。 DrupalはPHPで作成されており、コンテンツの保存に使用するデータベースを選択できます。 たとえば、Ubuntu 12.04でMySQLおよびnginxとともにDrupalをセットアップする場合は、 こちらをご覧ください



GitおよびMercurialリポジトリを操作するためのRhodeCode Webアプリケーション。 彼は内部構造にいくつかの問題を抱えています(たとえば、RhodeCodeのイベントにフックを掛けるのは、裸のMercurialよりもはるかに難しいです)。 ただし、中に登るまでそれらに遭遇することはないので、これは必要ないかもしれません。 nginxを使用したUbuntu 12.04のセットアップ手順



DokuWikiデータベースを使用しないウィキシステムですが、ページをファイルとしてハードドライブに保存します。 また、ファイルをディスクに追加すると、Wikiに表示されます。逆も同様です。 wikiを操作するためのアプリケーションを作成する場合は非常に便利であり、 XML-RPCに対処する時間と欲求はありません。 nginxを使用したUbuntu 12.04のセットアップ手順



自分のサーバー上のownCloud Onlineファイルストレージ(つまり、「Dropbox analog 」)。 内部のPDFを表示し、オーディオファイルを聞くことができ、さまざまなプラットフォームのクライアントがあります。



nginx使用されるWebサーバーはnginxです。 リポジトリからインストールするという点では、これはあまり便利ではありません。 Ubuntuカブの同じDrupalはApacheを使用するため、最初の1つを手動でインストールする必要があります。



OpenLDAP Windowsのアナログドメイン。 ユーザーアカウントを使用した集中管理。 かつて、その構成に苦しんでいました(その理由を覚えていません)。 したがって、 サーバークライアントの 2つのマニュアルを提供します



VPN VPNのセットアップに関する優れたガイドは、Ubuntuサーバーガイドにあります。



VirtualBox Virtualizationテクノロジーは重要ではありません。 この作業では、次の理由でVirtualBoxが選択されました:戦闘サーバーでVirtualBoxを使用するのが悪い理由を見つけることができませんでした-2か月間稼働しているため(更新プログラムをインストールするために再起動します)、不具合は見られませんでした。 私は欠陥につまずく方法を議論しません-私はvdiをrawに変換し、Xenに切り替えます。



Bittorrent Syncを使用して実装された Bittorrent Sync Backup。 データを保存するには(コードはプライベートです!) ハイブリッド非対称暗号化を使用することが提案されています。 非対称暗号化は高価であり、したがってハイブリッドです。ファイルに保存される長いキーが生成されます。 このキーは大きなファイルを暗号化します。 次に、キー自体を含むファイルは非対称的に暗号化されます。



ネットワーク構造









最も単純な場合、すべての仮想マシンは同じ物理サーバーでホストされます。 このオプションについては、今後説明します。 ハードウェアに直接インストールされた4つの仮想システムと1つのホスト(ホストサーバー)を使用します。



vmserver-web、vmserver-dev、およびvmserver-driveスキーマで示される仮想システムは、特定のWebアプリケーションのみをホストします。 分離の動機は次のとおりです:Drupalはメインのわずかに変化するサイトをひねり、DokuWiki / RhodeCodeをアクティブモードで使用し、異なる目的のためにいくつかの同様のマシンを作成できます。



vmserver-net仮想マシンは、構成済みのLDAPおよびVPNをスピンします。 すべての仮想マシンのネットワーク接続はNATです。 すべての仮想マシンは、VPNで接続されています。 vmserver-netの場合、指定されたVPNおよびLDAPはホストシステムから内部ポートに転送されます。



http / httpsを介して要求する場合、要求はホストマシン上のnginxによって解析され、アドレスに応じて、内部VPNを介して目的の仮想マシンに転送されます。 VPNを使用すると、vmserver-web、vmserver-dev、およびvmserver-driveが物理的に他の場所にある場合でも、ネットワークが機能し続けることができます。 新しい仮想システムを追加するだけで、nginxの設定変更のみが必要です。



次に、セキュリティについて少し説明します。バックアップと暗号化です。 すべてのマシンのSSHアクセスは、キーによってのみ許可されます。 VPNの外部では、ホストマシンのsshのみが突出しています。 sshを介した仮想マシンへのアクセスは、VPN内でのみ可能です。 バックアップとは、ホストマシンでの次の一連の操作です。仮想マシンの一時停止、イメージのgzip圧縮、結果のアーカイブのハイブリッド暗号化。 暗号化されたアーカイブとファイルは、複数の物理マシン間でbtsyncを使用して同期されたフォルダーに配置されます。 (stackoverflowに基づいて、便利なスクリプトを提供します: 初期化 (必要なパッケージのインストールと指定された名前のキーの生成)、 暗号化と復号化 (暗号化の場合、暗号化するファイルを指定する必要があり、公開鍵、元のファイルは削除されます。復号化の場合、ファイルを指定する必要があります)秘密鍵、暗号化されたファイルは削除されます。対称暗号化鍵を持つファイル名は自動的に決定されます。)



仮想マシンをバックアップする場合、オーバーヘッドが非常に大きくなりますが、このようなバックアップの展開は非常に簡単です。 また、1日あたり3 GBの物理ネットワーク内での同期は重要ではないように思われます(現在、ほぼ4つのアーカイブシステムが必要です)。



おわりに



説明したアプローチにより、私の意見では、仮想ワークスペースの編成においてモジュール性とセキュリティを実現できます。 バイオレット(vmserver-web、vmserver-devまたはvmserver-drive)仮想マシンのいずれかを別の物理マシンに移行する際の機能の保持により、スケーラビリティが提供されます。



一方、コメントでは、この仮想サーバーの編成方法、使用ツール、および導入部で特定された質問に関するコミュニティの意見を聞きたいと思います。



All Articles