序章

イントラネットは、通信とデータ転送を容易にするために組織によって作成されたプライベートネットワークです。 イントラネットは、世界中の複数のネットワークを接続して新しい仮想ネットワークを作成することで構築されます。 イントラネットに接続しているユーザーは、特定の内部Webサイトにアクセスしたり、イントラネット上の他のネットワークサービスやコンテンツにアクセスしたりできます。 たとえば、オフサイトの従業員が雇用主のメインネットワークにある機密情報にアクセスしたい場合、その従業員はオフィスのメインネットワークにあるVPNサーバーに接続します。 このVPN接続により、従業員とオフィスの間に安全なトンネルが作成されます。 ネットワーク上では、従業員の接続は、オフサイト接続を使用せずにメインネットワークにローカルに接続されているように見えます。

このチュートリアルでは、ファイル共有やWebサイトなど、VPNに接続しているクライアントのみが利用できるサービスを構成し、それらのリソースへのアクセスを管理する方法を学習します。 完了すると、ニーズに合わせて簡単に拡張できる基本的なイントラネットができあがります。

前提条件

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

  • サーバーにインストールおよび構成されたOpenVPN。 先に進む前に、 Ubuntu16.04でOpenVPNサーバーをセットアップする方法チュートリアルを完了してください。 VPNサーバーはIPアドレスにあると想定します 10.8.0.1 VPNで、OpenVPNチュートリアルで使用されるアドレスであり、ローカルマシンからVPNに接続できます。
  • 登録されたドメイン名とDNSエントリを追加するためのアクセス。 使用します example.com このチュートリアル全体を通して、DigitalOceanのDNSサービスを使用します。 ドメインでDigitalOceanのDNSサービスを使用するには、 DigitalOceanでホスト名を設定する方法チュートリアルの手順1と2に従って、ドメイン名をDigitalOceanのネームサーバーにポイントします。
  • ドメイン用に構成された2つの仮想ホストとともにインストールされたApache。 チュートリアルUbuntu16.04でApache仮想ホストをセットアップする方法に従って、2つの仮想ホストをセットアップします。 example.comintranet.example.com、それぞれデフォルトのHTMLページがあります。

ステップ1—Sambaファイルサーバーのインストールと設定

イントラネット上のユーザーがファイルを共有できるようにSambaを設定することから始めましょう。 Sambaは、Webインターフェイスやストレージ制限がないという点でDropboxのような他のファイル共有アプリケーションとは異なります。 代わりに、Sambaはサーバー自体でディレクトリとファイルを共有するため、制御していない外部サーバーにデータをアップロードする必要はありません。

2つの共有ディレクトリを作成します。 最初のディレクトリには、プライベートネットワーク上のすべてのユーザーがアクセスできます。 2番目のディレクトリには、指定したユーザーのみがアクセスできます。 これらの株に名前を付けます AllusersRestricted、 それぞれ。

まず、次のコマンドを使用してSambaとその前提条件をインストールします。

  1. sudo apt-get install samba samba-common python-glade2 system-config-samba

次に、後で変更するときに間違えた場合に備えて、Samba構成ファイルのバックアップを作成します。

  1. sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Sambaもファイアウォールを介してアクセスする必要があるため、Sambaトラフィックのルールを追加します。

  1. sudo ufw allow samba

次に、共有するディレクトリを作成します。 まず、を作成します allusers ディレクトリ:

  1. sudo mkdir -p /samba/allusers

次に、を作成します restricted ディレクトリ:

  1. sudo mkdir -p /samba/restricted

それでは、Samba構成ファイルを編集して、サービスをセットアップし、共有を定義しましょう。 Samba構成ファイルを開きます。

  1. sudo nano /etc/samba/smb.conf

次に、すべてのコンテンツを削除します。これは、独自の構成を1つずつ作成するためです。

まず、Sambaサーバーのグローバル設定をいくつか指定します。 構成ファイルに次の行を追加します。

/etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        server string = Samba Server %v
        netbios name = ubuntu
        security = user
        map to guest = bad user
        dns proxy = no
        interfaces = 10.8.0.1/8
        bind interfaces only = yes

各設定を分解してみましょう。

The workgroup 設定は、クライアントによって照会されたときにサーバーが表示されるワークグループを指定します。 デフォルトのグループは WORKGROUPWindowsの場合ですが、使用しているワークグループ名がすでにある場合は変更できます。

The server stringnetbios 行は、Sambaサーバーとそのプラットフォームの名前をそれぞれ指定します。

The security 設定は、これが独自のユーザーアカウントを持つスタンドアロンのファイルサーバーになることを指定します。 The map to guest この設定では、無効なユーザー名またはパスワードを使用したすべてのログインがゲストユーザーとして扱われ、 dns proxy この設定は、このイントラネットに対して独自のDNSを実行していないため、ドメイン名を解決しようとしないようにSambaに指示します。

とともに interfaces 設定では、VPNサーバーのIPを使用する接続のみをリッスンし、パブリックにアクセス可能なIPはリッスンしないことを指定します。 The bind interface VPNから発信されたリクエストのみをリッスンするようにSambaに指示します。

次に、Sambaのログ設定を指定する必要があります。 この構成ブロックをファイルに追加します。 [global] セクション:

/etc/samba/smb.conf
[global]
        ...

        ## Logging
        log level = 2
        log file = /var/log/samba.log.%m
        max log size = 50
        debug timestamp = yes

The log level 設定により、ログファイルに必要な詳細レベルが決まります。 これらのレベルの範囲は1〜10ですが、比較的軽いデバッグレベルであるため、レベル2を使用します。 The log file 設定は、ログファイルのファイルパスと名前を指定します。 max log size ログファイルのサイズを制限します。 The debug timestamp 設定には、ログにタイムスタンプが含まれます。

これで、サーバーのグローバル設定が処理されます。 次に、実際の共有定義を作成しましょう。 これらの設定は、共有するファイルと、それらのファイルへのアクセスを許可するユーザーを指定します。

2株が必要です。 と呼ばれるもの Allusers、および別の Restricted. を定義しましょう Allusers 最初に共有します。 この共有では、ユーザーはファイルを参照、書き込み、および読み取ることができます。 /samba/allusers ディレクトリ。 この構成をファイルに追加します。

/etc/samba/smb.conf
#============ Share Defenitions ==================
[Allusers]
        path = /samba/allusers
        browsable = yes
        writable = yes
        guest ok = yes
        read only = no
        force user = nobody

The [Allusers] ブロックは、以下の設定が Allusers シェア。 また、ユーザーに表示される共有の名前も定義します。 The path 設定は、イントラネット上で共有するフォルダのファイルディレクトリを指定します。 設定 browsablewritableyes ユーザーに、そのフォルダー内を参照したり、ファイルを読み書きしたりする権限を与えます。

サーバーにユーザーアカウントがない場合でも、すべてのユーザーがこの共有にアクセスできるようにします。 でそれを覚えておいてください global 指定したセクション map to guest 設定。これは、アカウントまたは有効なログイン資格情報を持たないユーザーが、ゲストとして共有されているファイルに引き続きアクセスできることを意味します。 設定することにより、これらのゲストがこの共有にアクセスできるようにします guest okyes 次に、そのユーザーに次のIDを想定させる nobodyforce user = nobody.

The nobody ユーザーグループは、Linuxシステムの既知のデフォルトユーザーグループです。 に必要な権限を設定できます /samba/allusers フォルダに nobody ユーザー。 次に、Sambaを使用して、複数のゲストがそのIDを使用できるようにします。 このようにして、システムへのゲストユーザーアクセスを簡単に管理できます。

詳細については、 nobody ユーザーは、StackExchangeUbuntuwikiおよびこの回答にアクセスしてください。

それでは、を作成しましょう Restricted ファイル共有。これは、 smbrestricted グループ:

/etc/samba/smb.conf
[Restricted]
        path = /samba/restricted
        valid users = @smbrestricted
        guest ok = no
        writable = yes
        browsable = yes

ここでも、共有するディレクトリを指定し、ブラウジングと書き込みのアクセス許可を付与することから始めます。 allusers シェア。 次に設定します valid users = @smbrestricted、グループのメンバーのみを許可するようにSambaに指示します smbrestricted 共有にアクセスします。 このグループはまもなく作成されます。

それはのためにそれをします smb.conf ファイル。 ファイルは次の例のようになります。

/etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        server string = Samba Server %v
        netbios name = ubuntu
        security = user
        map to guest = bad user
        dns proxy = no
        interfaces = 10.8.0.1/8
        bind interfaces only = yes

        ## Logging
        log level = 2
        log file = /var/log/samba.log.%m
        max log size = 50
        debug timestamp = yes

#============ Share Defenitions ==================

[Allusers]
        path = /samba/allusers
        browsable = yes
        writable = yes
        guest ok = yes
        read only = no
        force user = nobody

[Restricted]
        path = /samba/restricted
        valid users = @smbrestricted
        guest ok = no
        writable = yes
        browsable = yes

Samba構成が整ったら、次のように作成できます。 smbrestricted グループ化して最初のユーザーを作成します。

ステップ2—Samba共有へのアクセスを構成する

共有へのアクセスを許可するには、ユーザーアカウントを作成し、共有する予定のフォルダーに適切なアクセス許可を適用する必要があります。

まず、を作成します smbrestricted 次のコマンドでグループ化します。

  1. sudo addgroup smbrestricted

次に、サーバー上にユーザーアカウントを作成し、それをに追加します。 smbrestricted グループ。 アカウントを作成します client1、前提条件のチュートリアルで作成されたVPN接続の名前と一致します。

  1. sudo useradd client1 -G smbrestricted

最後に、Sambaパスワードを割り当てる必要があります client1. セットアップした構成では、Sambaは通常のLinuxシステムの検証システムとは別の独自の資格証明システムを使用します。 これは、マシン自体にログインするためのアクセス権をユーザーに付与せずに、Sambaとのファイル共有にアクセスできるユーザーを作成できるため便利です。

のSambaパスワードを作成します client1 次のコマンドを使用するユーザー:

  1. sudo smbpasswd -a client1

:システムにSamba共有にもアクセスできるユーザーがいる場合は、ログインシステムが分離されているため、それらのユーザーのSambaパスワードも作成する必要があります。この構成で。

次に、共有するディレクトリのアクセス許可を設定します。 まず、 allusers ディレクトリ:

  1. sudo chmod -R 766 /samba/allusers
  2. sudo chown -R nobody:nogroup /samba/allusers

これにより、ディレクトリの所有者に完全なアクセス許可が付与され、グループと他のすべてのユーザーに読み取りと書き込みのアクセス許可のみが付与されます。次に、共有ディレクトリの所有者とグループを次のように変更します。 nobody:nogroup とともに chown 指図。

ただし、所有者とグループをに変更することには小さな問題があります nobody:nogroup. The chmod -R 766 コマンドは、内の現在および新しいファイル/ディレクトリに読み取りおよび書き込み権限のみを付与します /samba/allusers 誰がそれらのファイルまたはディレクトリを作成したかに関係なく、ディレクトリ。 これは、内の内にあるフォルダ内に新しいファイルを作成しようとするとすぐに、 /samba/allusers ディレクトリでは、不十分な権限エラーが発生します。 内で作業しているときは覚えておいてください Allusers あなたがのアイデンティティを想定している共有 nobody、 と nobody 権限が非常に制限されています。

この問題を克服するために、アクセス制御リストまたはACLを利用します。 ACLルールを使用すると、ユーザーやグループのアクセス許可を、新しく作成されたファイルやディレクトリに自動的に割り当てることができます。

のACLルールを設定します /samba/allusers 次のコマンドを含むフォルダ:

  1. sudo setfacl -dm g:nogroup:rw /samba/allusers/
  2. sudo setfacl -dm u:nobody:rw /samba/allusers/

コマンド setfacl -dm ディレクトリまたはファイルの新しいアクセス許可ルールを定義しており、将来、これらのアクセス許可を新しく作成されたオブジェクトにも適用する必要があることを示します。 g:nogroup:rwu:nobody:rw に読み取りおよび書き込み権限を付与する新しいACLルールです nobody ユーザーとグループのメンバー nogroup.

ACLの詳細については、 UbuntuWikiを参照してください。

これでゲストシェアが決まります。 これで、 restricted ディレクトリ:

  1. sudo chmod -R 770 /samba/restricted
  2. sudo chown root:smbrestricted /samba/restricted

今回は、所有者とメンバーを除いて、このディレクトリへのアクセスを完全にブロックします。 smbrestricted とのグループ chmod 770. 認証されたユーザーアカウントを使用しているため、アクセス許可はこの共有フォルダー内で通常機能するため、ACLルールを設定する必要はありません。

共有が構成されたので、新しい構成ファイルを使用するようにSambaサーバーを再起動します。

  1. sudo service smbd restart

これで、Sambaサーバーに接続してファイルをアップロードまたはダウンロードできます。

ステップ3—クライアントからSambaサーバーに接続する

イントラネットの目標は、メインネットワークに接続されているかのように、安全な環境でファイルにアクセスして共有することです。 クライアントがSambaに接続すると、そのクライアントのファイルエクスプローラーに共有ディレクトリがマウントされます。 これをテストしてみましょう。

Windowsから接続する

Windowsから接続するには、Windowsエクスプローラーを開きます。 ナビゲーションバーに、Sambaサーバーのアドレスを入力します。 \\10.8.0.1 を押して Enter 鍵。

Windowsが接続するまでに少し時間がかかる場合があります。 接続が成功すると、イントラネットでホストされている共有フォルダが表示されます。

クイックアクセスツールバーのネットワークタブの下に新しいネットワークマウントポイントが作成されていることに注意してください。 マウントポイントの名前は 10.8.0.1、VPNのIPと同じです。

アクセスします Allusers クレデンシャルは必要ないため、他のフォルダと同じように共有します。 フォルダをダブルクリックするだけで、その内容が表示されます。

アクセスするには Restricted 共有するには、という名前のフォルダをダブルクリックします Restricted. Windowsセキュリティポップアップが表示され、アクセスするにはネットワーククレデンシャルが必要であることが示されます。

作成したユーザーのユーザー名とパスワードを入力し、オプションでチェックボックスをオンにして資格情報を記憶します。 次に、OKをクリックして接続します。

接続したら、新しいファイルやフォルダーを作成したり、フォルダーをサーバーにドラッグしてアップロードしたりすることもできます。

Ubuntuから接続する

Ubuntuから接続するには、ファイルエクスプローラーを開き、左側のサイドバーにあるサーバーに接続オプションを選択します。 これにより、サーバーアドレスを入力できる新しい画面が開きます。

入る smb://10.8.0.1/ 右下の接続ボタンをクリックします。 接続速度によっては、PCがサーバーに接続するまでに数秒かかる場合があります。 接続すると、サーバー上のすべての共有ディレクトリを示す画面が表示されます。

アクセスするには Allusers 共有するには、フォルダをダブルクリックするだけです。 ユーザー名とパスワードを尋ねるログイン画面が表示されます。 The Allusers 共有にはユーザー名とパスワードは必要ないため、接続オプションには匿名を選択する必要があります。 接続をクリックすると、共有ディレクトリが開きます。

これらの共有ディレクトリにアクセスした後、これらの共有ディレクトリがファイルシステムにどのようにマウントされているかに注目してください。 The Allusers 共有は、他のローカルドライブと一緒にネットワークドライブとしてマウントされます。

システムが再起動されるか、ドライブがアンマウントされるまで、ドライブはマウントされたままになります。

アクセスするには Restricted 共有するには、ログインに有効なユーザー名とパスワードが必要です。 をダブルクリックします Restricted 共有すると、ログイン画面が再び表示されます。 接続オプションで登録ユーザーを選択し、ドメインオプションをそのままにして、適切なフィールドにユーザー名とパスワードを入力します。 次に、接続をクリックすると、共有ファイルにアクセスできるようになります。

Macから接続する

Macから接続するには、Finderを開き、 Go メニューを選択し、サーバーに接続…を選択します。 次に、 smb://10.8.0.1/ サーバーアドレスの場合:

残りの接続プロセスは、LinuxまたはWindowsから接続するためのプロセスと同じです。 ユーザー名とパスワードの入力を求められ、利用可能な共有を表示して接続できるようになります。

これでファイルサーバーが処理されます。 次に、同じサーバー上で内部および外部のWebサイトをホストするようにApacheを構成する方法を見てみましょう。

ステップ4—Apache仮想ホストへのアクセスを設定する

このチュートリアルの前に、サーバーで使用するために構成する2つの仮想ホストを作成しました。 最初のホスト、 example.com、一般の人がアクセスできるようになります。 これは、ドメインのメインの公開Webサイトである可能性があります。 2番目のホスト、 intranet.example.com、イントラネットに接続されているクライアントのみがアクセスできます。

アクセスを制限するには intranet.example.com、その仮想ホストの構成ファイルを編集します。 ファイルを開く /etc/apache2/sites-available/intranet.example.com.conf:

  1. sudo nano /etc/apache2/sites-available/intranet.example.com.conf

次に、 VirtualHost これからの宣言:

/etc/apache2/sites-available/intranet。<^>example.com<^>。conf
<VirtualHost *:80>

これに:

/etc/apache2/sites-available/intranet。<^>example.com<^>。conf
<VirtualHost 10.8.0.1:80>

変更前は、Apacheは internal.example.com すべてのネットワークインターフェイスで。 この変更後は、イントラネットインターフェイスでのみリクエストを処理します。 これは、Sambaに使用した構成に似ています。

ファイルを保存し、Apacheサービスを再起動します。

  1. sudo systemctl restart apache2

また、Apacheが正しく機能するには、UFWを介した接続を許可する必要があります。 まだ実行していない場合は、次のコマンドを実行して、Apacheのファイアウォールを通過するトラフィックを許可します。

  1. sudo ufw allow http

また、HTTPSトラフィックを許可する場合は、今すぐ許可するか、後で次のように構成します。

  1. sudo ufw allow https

次に、リソースに簡単にアクセスできるようにドメイン名を構成しましょう。

ステップ5—ドメイン名の構成

このステップでは、公的にアクセス可能なWebサイトにもサービスを提供しながら、イントラネットのトラフィックをリダイレクトするようにドメイン名を構成します。 この記事を始める前に、ドメイン名をDigitalOceanのネームサーバーに向けておく必要があります。

:独自のネームサーバーがある場合は、代わりにDNSプロバイダーのコントロールパネルでこれらの設定を行うことをお勧めします。

DigitalOceanアカウントにログインし、トップバーのNetworkingタブをクリックします。 次に、次のような画面が表示されます。

DigitalOceanアカウントにドメインを追加するには、ドメインの追加見出しの下の最初のボックスにドメイン名を入力します。 2番目のボックスにイントラネットサーバーのパブリックIPと入力し、レコードの作成ボタンをクリックします。

新しいドメイン名は、2番目の図のようにドメインの小見出しの下に表示されます。 次に、使用するドメインの横にある More をクリックし、 Viewdomainを選択します。

これにより、その特定のドメインの設定ページが開きます。

このドメインに3つのレコードを追加する必要があります。 1つはイントラネット用で、もう2つは公開Webサイトのリクエストが正しく解決されるようにするためのものです。

まず、イントラネットのレコードを作成します。

  1. レコードタイプの選択の下にあるオレンジ色の[A]ボックスをクリックします。
  2. 入る intranet EnterNameフィールドに入力します。
  3. IPアドレスには、サーバーのプライベートIPアドレスを入力します。 10.8.0.1.

次に、イントラネット以外のトラフィックを適切な場所に誘導するレコードが必要です。 別の「A」レコードを作成し、名前をに設定します @ IPをサーバーのパブリックIPに設定します。

最後に、のCNAMEレコードを作成します www. 上隅にある[CNAME]タブをクリックし、名前を次のように設定します。 www ドメイン名を入力します(example.com ホスト名として:

完了すると、ドメインレコードは次の画像のようになります。

The intranet Aレコードはリクエストを intranet.example.com VPNサーバーから発信された場合のみ。 これは、VPNに接続されているクライアントのみがでホストされているWebコンテンツにアクセスできることを意味します intranet.example.com. 2番目の「A」レコードとCNAMEレコードは、イントラネットにアクセスできない直接トラフィックを公開されているWebサイトに記録します。

:これらのDNS変更が反映されるまでに最大72時間かかる場合があります。

ブラウザに移動して、 http://intranet.example.com VPNに接続せずに。 エラーを返すためだけにブラウザがWebページを読み込もうとしているのが見えるはずです。 次に、 VPN に接続し、Webページをリロードします。 これで、DNSエントリが解決されるため、Webページにアクセスできます。

イントラネットを完全に構成してテストしたので、この新しく作成されたネットワークへのアクセスを管理する方法を見てみましょう。

ステップ6—イントラネットへのアクセスの管理

このチュートリアルの最後のステップでは、イントラネットとその共有ファイルへのアクセスを管理します。 まず、VPNアクセスのクライアント証明書を取り消す方法を見ていきます。 次に、smbrestrictedグループからユーザーを削除する方法を見ていきます。 最後に、ユーザーを追加して、必要なアクセス権を取得する方法を確認します。

VPNアクセスの取り消し

VPNへのアクセスを取り消すには、クライアントの証明書を取り消します。 これにより、他のクライアントやサーバーの新しい証明書を生成せずに、イントラネットへのアクセスを拒否できます。

まず、VPNサーバーの構成ファイルに行を追加して、元のCA証明書またはサーバー証明書を変更せずにクライアント証明書を取り消せるようにする必要があります。 これにより、他のクライアント接続を中断することなく、オンザフライで単一の証明書を簡単に取り消すことができるため、アクセス制御がはるかに簡単になります。

VPN構成ファイルを開きます。

  1. sudo nano /etc/openvpn/server.conf

ファイルの最後に次のコード行を追加します。

/etc/openvpn/server.conf
crl-verify crl.pem

これは、VPNサーバーにファイルを探すように指示します crl.pem、これは証明書失効リストです。 これには、VPNへのアクセスが許可されなくなったすべての証明書のリストが含まれます。

構成ファイルを保存して閉じますが、サーバーはまだ再起動しないでください。 を作成する必要があります crl.pem 構成が探しているファイル。

このファイルを作成するには、次のように変更します。 ~/openvpn-ca/ サーバー上のディレクトリ:

  1. cd ~/openvpn-ca/

client1 の証明書は組織で機能しなくなったため、それらを取り消す必要があるとしましょう。 これを行うには、次のコマンドを実行します。

  1. source vars
  2. ./revoke-full client1

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

Output
Using configuration from /home/intranetexapmle/openvpn-ca/openssl-1.0.0.cnf Revoking Certificate 02. Data Base Updated Using configuration from /home/intranetexample/openvpn-ca/openssl-1.0.0.cnf client1.crt: C = US, ST = NY, L = New-York City, error 23 at 0 depth lookup:certificate revoked

出力の最後の行は、常にエラー23を示しているはずです。 このエラーは、証明書が取り消されたことを確認するだけです。

これも作成します crl.pem の中に ~/openvpn-ca/keys/ ディレクトリ。 証明書が取り消されていることを確認するには、 keys/index.txt 任意のテキストエディタでファイルするか、その内容を次のように表示します cat:

  1. cat keys/index.txt

証明書を取り消したクライアントの横に「R」が表示されます。

Output
V 260904153313Z 01 unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=server/name=server/[email protected] R 260904172539Z 160915150543Z 02 unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=client1/name=server/[email protected]

次に、 crl.pem ファイルに /etc/openvpn/ ディレクトリ。OpenVPNサーバーにファイルを探すように指示した場所です。

  1. sudo cp keys/crl.pem /etc/openvpn/

次に、OpenVPNサーバーを再起動して、証明書を取り消すオプションを有効にします。

  1. sudo systemctl restart openvpn@server

OpenVPNサーバーは crl.pem サーバーへの新しい接続が確立されるたびにファイルします。 クライアントの証明書を取り消すたびに、古い証明書を置き換えます crl.pem 新しいものでファイルします。 サーバーを再起動する必要はありません。

VPN証明書が取り消されると、それを将来再利用することはできないことに注意することが重要です。 VPN証明書が取り消されたクライアントがネットワークに再度接続できるようにするには、新しい証明書が必要になります。

制限付き共有へのユーザーのアクセスをブロックします。

smbrestrictedグループのユーザーのみがアクセスできる共有ディレクトリを作成しました。 そのグループにすでに含まれているユーザーのアクセスを拒否するには、そのグループからユーザーを削除します。 たとえば、 client1 を削除するには、次のコマンドを使用します。

  1. sudo deluser client1 -G smbrestricted

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

Output
Removing user `client1' from group `smbrestricted' ... Done.

ユーザーがすでにグループに含まれているかどうかわからない場合、またはユーザーが削除されているかどうかを再確認する場合は、 members 指図:

  1. sudo apt-get install members
  2. members smbrestricted

グループ内のすべてのユーザーが画面に表示されます。

イントラネットに新しいユーザーを追加する

イントラネットの新しいユーザーごとに独自のVPN証明書が必要になるため、 Ubuntu 16.04でOpenVPNサーバーをセットアップする方法チュートリアルの手順に従って、各ユーザーの前提条件を確認してください。 たとえば、というユーザーを作成するには client2、次のようにします。

まず、キーを作成します。

cd ~/openvpn-ca
./build-key client2

次に、クライアント構成を生成します。

  1. cd ~/client-configs
  2. ./make_config.sh client2

次に、ローカルマシンで、クライアント構成をダウンロードします。

  1. sftp sammy@openvpn_server_ip:client-configs/files/client2.ovpn ~/

新しいユーザーに制限付きファイルへのアクセスを許可するには、このチュートリアルのSambaセクションでclient1に使用したのと同じ手順に従います。

  • ユーザーを作成し、に追加します smbrestricted グループ。
  • 次のユーザーのSambaパスワードを作成します。 smbpassword.
  • 接続をテストします。

次に、追加する必要のあるユーザーごとにこのプロセスを繰り返します。

結論

これで、OpenVPN、Samba、およびApacheを使用して、独自のプライベートイントラネットを正常に作成および保護できました。 内部Webサイトと2つのファイル共有があります。

次に進む場所は、イントラネットを何に使用するかによって異なります。 ほとんどのサーバーアプリケーションはWebページを使用して情報を表示するため、このチュートリアルで行ったのと同じように、仮想ホスト構成を使用してそのページへのアクセスを制限できます。 いくつか例を挙げると、内部ソーシャルネットワーク、Wiki、または電子メールサービスから複数のサービスをホストすることにより、ネットワークを拡張できます。 また、共有ファイルをさらに効率的に管理するために、SambaWeb管理ツールをダウンロードしてインストールできます。 ここで学んだことを使用して、新しいイントラネットで使用するサービスをいくつでも構成できるはずです。