ウェブサイト検索

Proxmoxを使用してLinux上に自己ホスト環境を構築する方法


Proxmoxを使用してLinux上に自己ホスト環境を構築する方法

このページで

  1. 1. はじめに
  2. 1.1. 出発点

    1. 1.1.1. ネットワーク設計とインターネット接続
    2. 1.1.2. ルーティング
    3. 1.1.3. ネットワークセグメンテーション
    4. 1.1.4. 物理サーバー対ハイパーバイザー(仮想マシン)
    5. 1.1.5. 謙虚な始まり
  3. 2. ネットワーク設計

    1. 2.1.1. VLANs
    2. 2.1.2 サブネット
    3. 2.1.4. ルーティング
  4. 3. ネットワークインフラの構築
  5. 3.1. pfSenseのダウンロードとインストール

    1. 3.1.1. 最小ハードウェア要件
    2. 3.1.2. pfSenseインストールイメージの取得
    3. 3.1.3. インストールメディアの準備
    4. 3.2.1. ウェブインターフェース
    5. 3.2.2. VLANとサブネットの定義
  6. 3.3 pfSenseにおけるファイアウォールの設定

    1. 3.3.1. デフォルトファイアウォールルール
  7. 3.4. pfSenseサービス

    1. 3.4.1. DHCP
    2. 3.5.1. 準備
    3. 3.5.2. VLAN構成
  8. 4.1. 最低ハードウェア要件
  9. 4.2. Proxmoxインストールイメージの取得
  10. 4.3. インストールメディアの準備

    1. 4.3.1. Linux
    2. 4.3.2. MacOS
    3. 4.3.3. ウィンドウズ
  11. 4.4. Proxmox VE インストールプロセス

    1. 4.4.1. ブート
    2. 4.4.2. EULA
    3. 4.4.3. パーティショニング
    4. 4.4.4. 場所およびタイムゾーンの選択
    5. 4.4.5. 管理者パスワードとメールアドレス
    6. 4.4.6. 管理ネットワーク設定
    7. 4.4.7. インストールの完了
  12. 4.5. Proxmox 設定手順

    1. 4.5.2. ストレージ
    2. 4.5.3. VLANs
    3. 4.5.4. VMおよびCTインストールソース
  13. 4.6. Proxmox バックアップ

    1. 4.6.1. バックアップ対象とタスク
  14. 5. インターネットに接続されたサービス
  15. 5.1. トラフィックのルーティング

    1. 5.1.1. VPSプロバイダーの選択
    2. 5.1.2. カスタマイズ (VPS)
    3. 5.1.3. pfSenseの設定
  16. 5.2. ISPConfigのインストール

    1. 5.2.1. コンテナテンプレートのダウンロード
    2. 5.2.2. コンテナを作成する
  17. 5.2.3. 完璧なサーバー自動ISPConfig 3インストール
  18. 5.3. ウェブサイトおよびメールドメイン

    1. 5.3.1. AおよびCNAMEレコードの簡単な説明
    2. 5.3.2. MXレコードの簡単な説明
    3. 5.3.3. SPF、DKIM、DMARCの簡単な説明
    4. 5.3.4. DNSレコードのクエリ
  19. 6. 内部サービス
  20. 6.1. サンバ・ドメインコントローラー

    1. 6.1.1. コンテナを作成する
    2. 6.1.2. 準備と確認
    3. 6.1.3. Sambaのインストールと設定
    4. 6.1.4. NTPの設定
    5. 6.1.5. 新しいActive Directoryドメインコントローラーのテスト
    6. 6.1.6. 既存のActive DirectoryにSamba DCを参加させる
  21. 6.2. ファイルサーバー

    1. 6.2.1. VMを作成する
    2. 6.2.2. Debianの設定
    3. 6.2.3. Sambaファイルサーバーのインストールと構成
    4. 6.2.4. 共有を設定する
  22. 7. ユーザーとコンピュータの管理
  23. 7.1. 管理用ウィンドウズVM

    1. 7.1.1. インストールメディアを入手する
    2. 7.1.2. VirtIO ドライバ
    3. 7.1.3. 仮想マシンを作成する
    4. 7.1.4. Windows 11 Proをインストールする
    5. 7.1.5. リモートサーバー管理ツール (RSAT)
    6. 7.1.6. ドメイン参加
    7. 7.1.7. リモートサーバー管理ツール(RSAT)を使用する
  24. 8. ファイル共有
  25. 9. ワークステーションの接続
  26. 9.1. 概要
  27. 9.2. ファイアウォールルール
  28. 10. 結論

こんにちは!この記事は短い個人的な話から始めます。

私のITの世界への旅は1999年に始まりました。21歳になろうとしていた私は、学校を卒業したばかりで岐路に立っていました。経営学、経済学、法学の勉強はもはや私の内面的な興味を引き起こすことはなく、ITの魅力に心を奪われていました。C64のホームコンピュータ、IBM XT(クローン)、そしてキーボードを搭載したあらゆるデバイスで遊んでいた若い頃から、私は自分の情熱を見つけたことを知っていました。

年月が経つにつれて、私のスキルは独学によって進化しました。私は、インストールエンジニアからネットワークおよびシステム管理者という多面的な役割に進み、その過程での固有の試行錯誤を通じてすべてを学びました。

私の旅の重要な瞬間は、保険会社の初めての任務中に展開しました。最善のアプローチを考えながら、クライアントのネットワークを自宅の屋根裏オフィスで設定することに決めました。サーバーとワークステーションの設定に成功し、その結果は満足のいくものでした。現地でのソリューションを一回の試みで実施しました。

驚くことではありませんが、私のアプローチは年月が経つにつれてほとんど変わっていません。私は組織の目標を理解し、それを最も適したITソリューションに合わせることに没頭しています。提案書を作成し、管理職の承認を得て、ITインフラを構築し、最後にプロジェクトを納品する—この方法論は時代を超えて通用しています。

私の旅は、実践的な経験だけでなく、書籍、文書、そして主にインターネットから得た貴重な支援によっても形作られてきました。何よりも、私の旅を助けてくれたのはオープンソースコミュニティであり、それが私の恩返しの欲求を燃え上がらせました。この精神のもとに、ネットワーク設置の基礎要素を文書化することを選びました。この文書が自分のITジャーニーを始めるための支援を求める孤独な個人にとって有益であることを願っています。この文書を読む人々にとって、インスピレーションと実践的な洞察の源となることを目指しています。

質問がある場合は、どうぞお気軽にコメントしたり、HowtoForge.comフォーラムでスレッドを開いたりしてください。よろしく、Bouke

1. はじめに

この記事では、家庭用ラボ、ホームオフィス、そして中小企業向けの手頃な自己ホスティング環境を確立する際の実用性について掘り下げます。費用と労力を最小限に抑える「リーン」アプローチを優先し、合理的な時間枠内での複雑さの管理を目指します。

中小企業(SME)での数年にわたる実践的な経験を活かし、可能な限りオープンソースソリューションの統合を強調しています。クローズドソースの代替案も検討されることが重要で、最終的な決定はビジネス要件、実務経験、および技術の好みに最も合ったものに基づいて導かれます。

著者がオープンソースソリューションに対して情熱を持っているにもかかわらず、クローズドソースソリューションがより最適である場合があることを認めます。根本的なメッセージは、個人的な好みよりも企業の利益を優先する重要性を強調しており、技術的な決定を広いビジネスニーズと整合させる必要性を強化しています。

自己ホスティングされた環境は、従来のオンプレミス設定に似ており、高い初期コストが伴うことがよくあります。ハイブリッドオンプレミス構成も存在する一方で、ハイブリッドセットアップに傾いている自己ホスティングのアプローチは、コスト効果を提供することができます。

さらに、MicrosoftやGoogleのようなSaaSプロバイダーへの移行といった選択肢を、関連する利点とコストを慎重に検討しながら簡単に考察します。完全に独立したセルフホスティングソリューションを選択するか、ハイブリッド型の形態を選ぶかにかかわらず、それは自由とコントロールを提供し、セキュリティ、メンテナンス、バックアップといった要素を考慮することを求められます。

1.1. 出発点

さて、私たちの自己ホスト型環境の詳細を掘り下げていきましょう。IT環境を設計する必要があります。このアイデアは、私たちのIT設定がビジネスゴールと整合し、ニーズを効果的にサポートすることを確実にすることです。これを正確に行うためには、組織の内部事情を理解する必要があります。

解決策を紹介する際には、技術的仕様やビジネス要件を超えることが重要です。また、私たちの組織内の人々の好みやニーズも考慮する必要があります。適切なバランスを取ることが鍵であり、解決策に対するユーザーの受け入れを達成することは重要であり、同時に難しい課題でもあります。

今後のセクションでは、自己ホスト環境の設計の具体的な内容にさらに深く掘り下げていきます。コスト効率の良いソリューション、円滑な実装、そして私たちの組織が本当に必要とするものに鋭い目を向けて話を進めていきます。予算に優しく、効果的な IT 環境の設計を始めましょう!

1.1.1. ネットワーク設計とインターネット接続

私たちの設計は、私たちのセットアップのバックボーンであるネットワークから始まります。これは、インターネット接続やファイアウォール/ルーターから、物理スイッチとその設定、VLANの設定に至るまでのすべてを含みます。私たちは、自己ホスト環境を接続し、安全に保つための重要な要素に取り組んでいます。それぞれのコンポーネントを分解して、章2で堅牢で効率的なネットワーク設計を確保しましょう。

1.1.2. ルーティング

次に、重要な側面であるインターネットへのルーティングとインターネットからのルーティングについて見ていきましょう。これは、1つ以上の固定IPv4アドレスの複雑さに深く掘り下げ、ポインタレコードの議論を含みます。ISPによって提供される(ルーティングされた)サブネットなどのさまざまなオプションを探ります。また、Linuxのiptablesを使用してトラフィックを転送する方法も見ていきます。

制限されたインターネット接続のような課題に直面した場合、ISPが複数のIPv4アドレスを提供しない場合や望ましいDNSポインターレコードを設定しない場合、私たちは回避策を探ります。GREトンネルを確立できないという課題も生じる可能性があります。この場合、利用可能なVPNプロバイダーの中から固定IPv4アドレスを選択するなどの代替手段を検討する必要があるかもしれません。私たちの自己ホスティング環境が広範なデジタル環境と効率的に通信できるように、これらのルーティングに関する考慮事項を進んでいきましょう。

1.1.3. ネットワークセグメンテーション

焦点を移し、ネットワークセグメンテーションの重要な領域に踏み込み、DMZ(非武装地帯)の重要性を強調しましょう。基本的に、DMZは特化したVLANとして考えることができますが、これは入力(および出力)トラフィックの管理とセキュリティ対策の強化において重要な役割を果たします。

ネットワークセグメンテーションは重要です!

ネットワークセグメンテーションは、ネットワークを異なるセグメントやVLANに分割することを含み、それぞれが特定の目的に役立っています。この実践は単なる整理ではなく、セキュリティ、効率、および全体的なネットワークパフォーマンスを向上させるための戦略的な動きです。

DMZに関する特別な注意

さて、DMZについて詳しく見ていきましょう - 特殊な使命を持つVLANです。このゾーンは、私たちの内部ネットワークと外部世界との間のバッファとして機能し、追加の防御層を提供します。ウェブサーバーやメールサーバーなど、公共のアクセスが必要なサービスのための最適な場所です。これらのサービスを隔離することで、内部ネットワークへの直接的な露出に伴う潜在的なリスクを軽減します。

ネットワークセグメンテーションの複雑さとDMZの重要な役割に踏み込む中で、私たちは単に構造を作成しているだけでなく、自己ホスティング環境のセキュリティ姿勢を強化しています。この戦略的デザインがどのように私たちのデジタル環境を効果的に保護できるかを探っていきましょう(第2章で)。

1.1.4. 物理サーバー対ハイパーバイザー(仮想マシン)

私たちはパーティーにサーバーを招待する必要があります。単一の物理サーバーは、1つのオペレーティングシステムだけでは効率が悪く、動的なIT環境に必要な柔軟性を欠いています。この記事では、ハイパーバイザーを搭載したサーバーを前提に進めていきます。この役割に人気のある選択肢はProxmoxです。

ハイパーバイザーは、私たちが単一の物理サーバー上で複数の仮想マシンを作成し、シームレスに管理できるようにします。特にProxmoxは、リソースの最適化と独立したオペレーティングシステムの調和のとれた共存を可能にする強力なオープンソースのハイパーバイザーとして際立っています。本質的には、サーバーインフラにおける効率と柔軟性のゲームチェンジャーです。

1.1.5. 謙虚な始まり

私たちの旅は、信頼できるコンピュータの愛称スキャッピーによって支えられた、控えめな始まりから始まります。スキャッピーは、私たちの専用の19インチノードで、Intel i3-4170 CPU、24GBのRAM、500GBのM.2 SSD、そして3つの500GBの2.5インチSATA SSDを備えています。この控えめな「ハードウェアパワーハウス」は、私たちの仮想マシン用のProxmoxハイパーバイザーの役割を担います。この控えめなサーバーは、サーバー環境が単に生のパワーに依存しているわけではないことを示すために使用されます。

ネットワーキングの面では、オープンソースの堅牢性を選択し、ルーティングとファイアウォーリングに柔軟なpfSenseソフトウェアを使用しています。同じ結果はOPNsenseでも達成可能であることに注意が必要です。物理スイッチにおけるVLAN設定は、HP ProCurveスイッチのデザインに影響を受けています。HPスイッチの再利用に加えて、ZyXELやTP-Linkなどの予算に優しい代替策を探ることもできます。その場合、TP-Link Omadaは、Omada Controllerで中央管理される場合、特に優れた選択肢となります。Omada Controllerは、ハードウェアコントローラー(OC200またはOC300)として入手できます。あるいは、OmadaソフトウェアはLinux VMなどのプラットフォームにインストールできるソフトウェアパッケージの形で入手可能です。

これらのハードウェアの選択は、私たちのセルフホステッド環境の基盤を形成しており、控えめなスタートであっても、堅牢で柔軟なITインフラを構築できることを示しています。

2. ネットワーク設計

イントロダクションが終わったので、ネットワークデザインのダイナミックな旅を始める時が来ました!

2.1. VLANとサブネット

ネットワーク設計を進める前に、「私たち」のネットワークに何が「存在」するのかを知る必要があります。サーバー、ストレージ、ワークステーション、プリンター、ゲスト機器(携帯電話、タブレット、さらにはテレビ)、太陽光発電インバーター、もちろんスイッチやアクセスポイントなどが考えられます。インベントリが作成されると、ノードを分類することができます。アイデアは、レイアウトのために論理VLANおよびサブネットを使用することです。

棚卸に基づいて、レイアウトはこのようになる可能性があります。

2.1.1. VLANs

このネットワーク設計では、ネットワーク機器、ハイパーバイザー、サーバー仮想マシン、周辺機器(プリンターなど)、ワークステーション、およびインターネットに接続されたサービスなどの重要なコンポーネントを分離することが主な違いです。

リモートデスクトップサーバー(旧称:ターミナルサーバー)の文脈において、明確なVLANを確立することが重要であることが明らかになります。この決定は、リモートデスクトップサーバーを単なる従来のサーバーとしてではなく、専門的なワークステーションとして分類することを考慮した結果です。それはサーバーとして機能しますが、オフィスLAN内に直接配置することは最も適したアプローチとは言えず、別のVLANが必要であることを強調しています。

さらに、ドメインコントローラーの戦略的な配置は慎重に考慮する必要があります。ドメインコントローラーを一般的なサーバーVLAN内に配置すると、セキュリティの脆弱性にさらされる可能性があります。セキュリティ対策を強化するために、ドメインコントローラー専用のVLANを割り当てることが推奨されます。このアプローチは、最も重要なポートのみを開くことで攻撃面を最小限に抑え、より堅牢で安全なネットワークインフラを実現します。

追加のセキュリティのために、書き込み可能なドメインコントローラーと読み取り専用ドメインコントローラーのために異なるVLANを作成する概念を探求することができます。このセグメンテーションは、他のサーバーやクライアントへの露出を厳密に制御し、ネットワークの全体的なセキュリティ姿勢を強化します。

VLAN番号とサブネットの背後にある理由を理解することは重要です。管理VLANをグループ化して保持することは実用的ですが、サブネットは意図的に異なっています。管理VLANでは、VLANの特定は直感的です。管理VLAN 1または管理VLAN 2を示す第3(および第2)オクテットを観察することで、VLANの場所を特定できます。

この同じ論理的アプローチは、他のVLANにわたる第三オクテットにも適用され、ネットワーク全体にわたって体系的で解釈しやすい構造を提供します。

2.1.2 サブネット

前の段落では、サブネットについて簡単に触れました。

この段落をすぐに完全に理解できなくても大丈夫です。以下で推奨されているIP計算機を使用し、必要に応じて後で理論を振り返ってください。このテーマの要点を理解するだけで十分であり、IP計算機と常識を使用すれば成功するのに十分です!

サブネットは、特定のIP範囲を定義するために、慎重な計算と論理的設計を必要とします。例えば、オフィスLANは10.10.32.0から10.10.32.255まで広がっており、最大254のホストを収容できます。CIDRマスクは/24(サブネットマスク255.255.255.0に相当)で、構造化されたサブネットを確立します。潜在的な成長に対応するために、IP範囲を10.10.32.0 - 10.10.35.255に拡張し、CIDRマスクを/22(サブネットマスク255.255.252.0に変換)に設定することを検討し、組織のニーズの変化に適応できるようにします。

サブネットを計算する方法を理解することは、ネットワーク設計において重要です。このプロセスでは、各サブネットのサイズを決定することが含まれており、これはIPアドレス管理にとって不可欠です。

公式

サブネットサイズを計算するための式は次のとおりです:サブネットサイズ=2^(32 - CIDR)。ここで、CIDR(クラスレス inter-domain routing)は、サブネットのサイズを指定するために使用される表記を示します。

例えば、CIDR表記が/24の場合、計算は次のようになります:サブネットサイズ=2^(32 - 24)=2^8=256アドレス。これは、サブネットが256ホストを収容できることを意味します。

次のことを考慮する必要があります: ホストアドレス: 256 - 2=254 ホスト

  • 2の減算はネットワークアドレスとブロードキャストアドレスを考慮しています!

つまり、/24 サブネットが 254 ホストを収容できると言うとき、これは 256 アドレスが利用可能であることを表す簡略化された方法ですが、そのうちの 2 つはネットワークおよびブロードキャストアドレスのために予約されています。これはネットワーキングに不慣れな人にとって最初は混乱するかもしれませんが、IP アドレッシングでは標準的な慣習です。

考慮すべきもう一つの変数は、カウントが「ゼロ」から始まることです:0-255は256を意味します。

他の可能性を探るために...

  • /23の再計算:サブネットサイズ=2^(32 - 23)=2^9=512アドレス。
  • /22の再計算: サブネットサイズ=2^(32 - 22)=2^10=1024アドレス。
  • /21の再計算: サブネットサイズ=2^(32 - 21)=2^11=2048アドレス。

さらに、小さなCIDR表記である/29を考慮すると、サブネットサイズは2^(32 - 29)=2^3=8アドレスになります。これは、サブネットが8つのホストを収容できることを意味します。

CIDR /29に関しては、ネットワークアドレスとブロードキャストアドレスのために、最小2つのIPが使用できないことに注意が必要です。また、1つのIPはルーターのために予約されているため、実際には5つの使用可能なノードがあります。

CIDR値が小さくなると、サブネットのサイズが大きくなり、ホストアドレスが増えることになりますが、全体のネットワークスペースからより多くのIPアドレスを必要とする可能性があります。効率的なネットワーク計画のためには、jodies.deにあるようなIP計算機を使うと、これらの計算を迅速化できます。

後者はDMZを検討する際に重要です。セキュリティを強化するために、複数のDMZのためにサブネットをできるだけ小さく保つべきだという主張もあります。異なるサービスを明確に分けたDMZ内で論理的に分離して、さらなるセキュリティを強化するための賢明なアプローチです。これにより、隔離の層が追加され、潜在的なリスクが最小限に抑えられ、セキュリティ侵害を特定のセグメントに閉じ込めることができます。

バイナリー計算に関するノート

舞台裏では、サブネット計算はバイナリ演算を含みます。/24 CIDR表記の例を分解してみましょう:

CIDR表記: /24

バイナリ表現: 11111111.11111111.11111111.00000000

バイナリ表現における1の系列はネットワーク部分を示し、0の系列は利用可能なホストアドレスを表します。サブネットサイズはゼロの数を数えることで決まります。/24サブネットでは8つのゼロがあり、これは2の8乗、すなわち256のアドレスに相当します。

このバイナリの側面を理解することは、サブネットティングの基本的なメカニズムについての洞察を提供します。日常の計算には必須ではありませんが、CIDR表記がバイナリ数字(ビット)の範囲におけるサブネットのサイズにどのように影響するかについてのより深い理解を提供します。読者がバイナリのニュアンスに掘り下げたい場合、この知識はネットワークの原則の理解を深めることができます。

IP計算機で述べたように、サブネットチートシートを使用することが役立ちます。ジェレミー・ストレッチの人気ウェブサイトpacketlife.netのIPv4サブネット化チートシートをご覧ください [PDF]!

2.1.3 VLANの解明

VLANの探求を続ける中で、VLAN設定の領域に踏み込んでいきます。VLAN(バーチャルローカルエリアネットワーク)は、ネットワークを論理的にセグメント化し、組織とセキュリティの向上に寄与する重要なツールです。VLANの複雑さを効果的にナビゲートするためには、VLANトランキングを含む重要な概念の基礎的な理解が必要です。

この段落がすぐに完全に理解できなくても大丈夫です。次の章では理論を実践に移します!このテーマの要点を理解することができれば十分です。

結局、完璧になるのは練習です!理論を実践にどのように適用するかをすぐに理解できないのは普通です。次の章では、実践的な例を交えたさらなる説明が続きます。

IEEE 802.1Qの理解

VLANは、VLAN情報をイーサネットフレームにシームレスに埋め込むために設計されたプロトコルであるIEEE 802.1Q規格の枠組み内で動作します。このタグ付けメカニズムにより、スイッチやルーターは各パケットのVLANメンバーシップを識別でき、ネットワーク内のトラフィックの正確なルーティングと転送が保証されます。

タグ付きVLANとタグなしVLAN

タグ付きVLAN:
タグ付きVLANの設定では、各イーサネットフレームがタグの形式で追加情報を持ち、そのVLANメンバーシップを明確に示します。この方法はスイッチとルーター間で不可欠であり、デバイスがさまざまなVLANからのトラフィックを識別し処理できるようにします。

タグなしVLAN:
逆に、タグなしVLANはEthernetフレームに追加情報を省略します。この設定は、特定のVLANに関連付けられたスイッチポートにワークステーションやプリンタなどのエンドデバイスを接続する際に使用されます。

VLANトランキング

VLANトランクは、特に複数のVLANが同じ物理リンクを横断するシナリオにおいて、重要な概念として浮上します。トランクは、複数のVLANのトラフィックを巧妙に伝達するために設定された専門的なネットワークリンクであり、スイッチとルーター間の効率的な通信を促進します。

構成概要

ルーター/ファイアウォールの設定:
VLANは、VLAN間の通信を可能にするためにルーター/ファイアウォールでの設定が必要です。それぞれのVLANには、割り当てられたIPサブネットが与えられ、VLAN間のトラフィックフローを管理するための確立されたルーティングルールが伴います。

スイッチの設定:
VLAN内のデバイスに接続されているスイッチポートは、タグ付きまたはタグなしとして指定できます。一方、トランクポートは、複数のVLANのためにタグ付きフレームを送信するように設定されており、ネットワークの柔軟性とスケーラビリティを向上させます。

ハイパーバイザーの設定:
仮想化環境において、ハイパーバイザーはVLAN設定を理解する必要があり、特に複数の仮想マシンを管理する際に重要です。仮想ネットワークインターフェースは特定のVLANに割り当てられ、物理ネットワークで観察されるタグ付けの原則を反映しています。

IEEE 802.1Qの複雑さを解き明かし、タグ付けされたVLANとタグ付けされていないVLANのニュアンスを掘り下げ、VLANトランキングの重要性を理解することで、整理され、安全なネットワークインフラの構築に向けた堅固な基盤を築きます。この基本的な知識は、包括的なネットワーク設計の旅の次の構成ステップのための土台を整えます。

2.1.4. ルーティング

ネットワーク設計の探求において、ルーティングは中心的な役割を果たし、「ルーター・オン・ア・スティック」方式とレイヤー3ルーティングの2つの異なる戦略を提示します。さらに、ファイアウォール中心のアプローチを採用し、ファイアウォールルールを通じてVLAN間のトラフィックフローを調整します。

ルーターオンアスティック vs. レイヤー3ルーティング

2.1.4.1. スティック上のルーター

この戦略は、ルーター上の単一の物理インターフェースが複数のVLANに対応するものです。ルーターはインターヴィLANトラフィックを処理し、内部VLANタグに基づいてルーティングの判断を行います。実用的ではありますが、すべてのトラフィックが単一のリンクに収束するため、潜在的なボトルネックを引き起こす可能性があります。

2.1.4.2. レイヤー3ルーティング

ここでは、レイヤー3スイッチがVLAN間のルーティングを処理します。各VLANには専用のレイヤー3インターフェースがあり、トラフィックの並列処理が促進されます。これによりボトルネックが最小限に抑えられ、全体のネットワーク効率が向上します。

2.1.4.3. ファイアウォール中心のアプローチ :

私たちのネットワーク設計は、ファイアウォール中心のアプローチを強調しています。ファイアウォールのルールは、VLAN間のトラフィックを綿密に管理し、すべてのデータがファイアウォールを通過することを保証します。これにより、通信に対する詳細な制御が提供されるだけでなく、ネットワークのエッジでトラフィックを精査し、フィルタリングすることでセキュリティが強化されます。

次のセクションでは、これらのルーティング戦略とファイアウォール中心の原則がどのように相互作用して、私たちのネットワークの構造とセキュリティ体制を強化するかについて掘り下げていきます。

3. ネットワークインフラの構築

このエキサイティングなフェーズでは、私たちは袖をまくり、ネットワークの実際の構築を始めます。

ネットワーク構築の開始

私たちは理論が具体的なインフラに変わる地点にいます。これは、私たちのネットワークの基盤を形成する要素を組み立てる始まりを示しています。

  • 3.1. pfSenseのダウンロードとインストール

    最初の作業は、ルーターおよびファイアウォール用の堅牢なオープンソースソフトウェアであるpfSenseの導入です。ダウンロードとインストールのプロセスをガイドし、シームレスなセットアップを確保します。

  • 3.2. 基本的なpfSense設定とVLAN統合

    pfSenseを設置した後、基礎的な設定に移ります。これには、pfSenseを基本情報で構成し、仮想ローカルエリアネットワーク(VLAN)を統合することが含まれます。さらに、VLAN間のトラフィックフローを規制するために重要なファイアウォールルールを実装し、安全対策を強化します。

  • 3.3. スイッチの構成とVLANの展開

    さて、注目はスイッチに移ります。私たちは、スイッチ上でのVLANの設定について delve intoし、事前に決定されたネットワーク構造に合わせていきます。この重要なステップは、VLANによって定義された論理的なセグメンテーションがネットワーク全体にシームレスに拡張されることを保証します。

これらのステップを進めることで、あなたは強靭で安全かつ整然としたネットワークの基盤を築いています。各要素が整うにつれて、理論の章で考えられた複雑な設計が具体的な形を持つようになります。あなたのネットワーク設計図が生き生きと目の前に現れるのを目撃する準備をしましょう!

3.1. pfSenseのダウンロードとインストール

私たちはpfSenseをダウンロードしてインストールします。

3.1.1. 最小ハードウェア要件

最小ハードウェア要件について考えるとき、pfSenseソフトウェアファイアウォールディストリビューションは、控えめなハードウェアでも効率的に動作することを安心してください。正確な詳細については、専用ページ「pfSenseの最小要件」を参照してください。しかし、本当に重要なのは、必要なスループットを達成するために調整されたハードウェアの前提条件に関するハードウェアサイズガイダンスです。

この章全体で、AMD GX-412TC CPUと4GB RAMを搭載したPC Engines APU3を使用します。ストレージは250GBのM.2 SSDが1つです。通常は16GBのM.2 SSDが使用されますが、このAPUは以前にDebianを実行しているLinuxノードとして機能していました。

APUボードはビデオコネクタなしで提供されるため、シリアル接続を介してインターフェースする必要があることは注目に値します。この特異な特性により、このボードはインストールプロセスを示すのに理想的です。

3.1.2. pfSenseインストールイメージの取得

pfSenseインストールイメージを取得するには、公式のダウンロード場所であるpfSenseダウンロードページに訪問してください。

ダウンロードページは、適切なイメージを選択してダウンロードするための使いやすいインターフェースを提供しています。アーキテクチャ(AMD64 - 64ビット; Netgate ADI)、インストーラーの種類(USBメモリスティックインストーラー; DVDイメージ(ISO)インストーラー)、コンソールの好み(シリアル; VGA)に基づいて希望のオプションを選択し、ダウンロードのためのミラーを選択してください。

APUシステムボードの場合、シリアルコンソール用に設定されたAMD64(64ビット)USBメモリスティックインストーラーを選択することが推奨されます。ただし、ハードウェアにビデオカードが搭載されている場合は、より一般的なセットアップのためにVGAオプションが好ましいです。

3.1.3. インストールメディアの準備

インストールプロセスを開始する前に、インストールメディアが準備できていることを確認することが重要なステップとなります。

3.1.3.1. Gzip画像の解凍

pfSenseのインストール画像はGzipで圧縮されて届きます。以下は、あなたのオペレーティングシステムに応じてそれを解凍する方法です。

LinuxまたはMacの場合:
ターミナルで`gzip -d`または`gunzip`コマンドを使用してください。

gzip -d pfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img.gz

Windows:
Windowsユーザーの場合、7-Zipのようなツールが理想的です。なぜなら、GZip圧縮をサポートしているからです。7-Zipを使用してインストールイメージを解凍するだけです。

3.1.3.2. USBメモリに画像を書き込む :

展開が完了したら、ターゲットシステムへのインストールのために、USBメモリースティックにイメージを書き込む必要があります。この重要なステップは、インストールメディアを準備し、スムーズなインストールプロセスのための基盤を整えます。

インストールイメージをUSBメモリスティックに書き込む

3.1.3.2.1. Linuxでイメージを書き込む :

Linuxコンピュータを使ってイメージをUSBメモリースティックにインストールする方法は以下の通りです。

1. ターミナルを開きます(例:`xterm`または`xfce4-terminal`)

2. ターミナルで`sudo su`または`su -u`を実行してrootにになります。

sudo su

3. ダウンロードディレクトリに移動し、フォルダー(pfSense)を作成し、イメージをそのフォルダーに移動して、フォルダーに移動します。

cd Downloads/
mkdir pfSense
mv pfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img.gz pfSense/.
cd pfSense/

4. 画像を解凍する

gzip -d pfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img.gz

結果を`ls`コマンドで確認してください。

ls -lahsi

次に、USBメモリースティックの正しいデバイス名を特定する必要があります。この例では、それは/dev/sdbです。

fdisk -l

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

[..]
Disk /dev/sdb: 7,2 GiB, 7736072192 bytes, 15109516 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x90909090
Device Boot Start End Sectors Size Id Type
/dev/sdb1 1 66584 66584 32,5M ef EFI (FAT-12/16/32)
/dev/sdb2 * 66585 2047848 1981264 967,4M a5 FreeBSD
/dev/sdb3 2047849 2178920 131072 64M b W95 FAT32

最後に、`dd` コマンドを使用して、USBメモリースティックにイメージを書き込みます(「sdX」をあなたの特定のデバイス名に置き換えてください)。

「dd」コマンドに関する注意!上書きする際には、間違ったデバイスを選択しないように極度の注意を払ってください。この誤操作は、重要なデータの喪失やコンピュータが起動しなくなる原因となる可能性があります。「dd」コマンドを実行する前に、常に対象デバイスを再確認し、確認してください。このステップにおけるあなたの注意深さは、意図しない結果を防ぐために非常に重要です。

dd if=pfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img of=/dev/sdX status=progress ;sync

「`dd`コマンドは完了するまでに時間がかかる場合がありますので、辛抱強くお待ちください。完了すれば、USBメモリスティックはpfSenseのインストールプロセスの準備が整います。」

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

40735232 bytes (41 MB, 39 MiB) copied, 5 s, 8,1 MB/s
[..]
1112005120 bytes (1,1 GB, 1,0 GiB) copied, 257 s, 4,3 MB/s 
2178921+0 records in
2178921+0 records out
1115607552 bytes (1,1 GB, 1,0 GiB) copied, 273,834 s, 4,1 MB/s

3.1.3.2.2. Windowsでイメージを書き込む :

Windowsコンピュータでのプロセスは、Linuxシステムでのプロセスとは異なります。

Win32 Disk ImagerはNetgate Docsに記載されているツールの1つで、Netgate Docsの「フラッシュメディアにインストールイメージを書く」セクションに手順の詳細な説明があります。

3.1.3.3. pfSense インストールプロセス :

さて、インストールプロセスに移りましょう(起動してルートになる時間です)!USBメモリースティックをファイアウォールの役割を担うコンピューターに接続してください。コンピューターを起動する前に、ブートメニューにアクセスするために押すべきキーを特定することをお勧めします。このステップは、USBメモリースティックからブートするために重要です。

ビデオ接続がないAPUの場合、シリアルコンソール接続を介して操作する必要があります。Linuxでは、screenコマンドを使用できます。また、さまざまなプラットフォームで利用できるPuTTYを使用することもできます。簡単のために、PuTTYを使用してプロセスを説明します。この方法は、ビデオカードがあるかどうかに関わらず、表示にいくつかのニュアンスがあるだけで、同様に機能します。

シリアルコンソールのインストールは、この種のインストールの障壁を取り除くことを期待して意図的に選択されました。この手順を示すことで、複雑ではないことに気づくでしょう。欠点は、適切なシリアルケーブルが必要なことです。PC Enginesは、USB to DB9Fケーブルという形でこれに対する簡単なソリューションを提供しています。PC Enginesは、回路図[PDF]とドライバも提供しています。

このデモンストレーションのために選ばれたノートパソコンにはシリアルポートがありません。そこで、Tripp Lite Keyspan USB to Serial Adapter (USA-19H) を紹介しましょう。この便利なアダプターは、私たちのインストールプロセスのためのスムーズなシリアル接続を可能にする橋渡しをします。さあ、このテクノロジーのスーパーヒーローを加えて、インストールの魔法を進めましょう!

APUに接続するには、Linuxの`screen`コマンドを使用して、`screen /dev/ttyUSB0 115200`と実行します。ただし、このデモではPuTTYを選択します。

`/dev/ttyUSB0` の重要性は、それがLinuxのラップトップ上のデバイス名であることです。Windowsでは、デバイス管理に移動してシリアルデバイスを見つけることができます。`/dev/ttyUSB0`の代わりに、デバイス名は`COM3:`のように表示される場合があります。どちらのケースでも、APUへの接続を確立することが重要です。

港沿いに、速度を知ることは非常に重要です。この場合、速度は115200ボーに設定されています。これらの要素を私たちのインストールの旅にシームレスに組み合わせていきましょう!

  1. ターミナルを開いてください。
  2. ルートになる(`sudo su` または `su -`)
  3. USBシリアルアダプターをコンピュータとAPUに接続します。
  4. USBメモリスティックをプラグインしてください。
  5. PuTTYを起動する
  6. 接続タイプをシリアルに設定し、デバイス名をテキストボックスのシリアルラインに入力し、最後に速度を115200に設定します。
  7. [開く]ボタンをクリックしてください。
  8. 電源ケーブルを接続してAPUの電源を入れてください。
  9. 起動中に<F10>を押します(起動メニューが表示されるまで<F10>キーを何度も押してください)
  10. ブートデバイスを選択してください(対応する番号を入力してください)

    次の内容はブートメニューを示しています。最初のオプションはUSBメモリスティックです。2番目のオプションは250GB M.2 SATA SSDです。

SeaBIOS(バージョン rel-1.16.0.1-0-g77603a32)

今すぐF10キーを押してブートメニューを開いてください

ブートデバイスを選択してください:

1. USB MSCドライブ Kingston DataTraveler 3.0
2. AHCI/0: Samsung SSD 850 EVO mSATA 250GB ATA-9 ハードディスク (232 GiBytes)
3. ペイロード [setup]
4. ペイロード [memtest]

ハードウェアにビデオカードが含まれている場合、VGAオプションはより便利です。USBメモリスティックを接続し、コンピュータの電源を入れて、ブートキーを連打します。プロセスの残りは似ていますが、表示にいくつかのニュアンスがあります。

pfSenseは自動で起動します。

コンソールのタイプを選択してください。「xterm」と入力してEnterキーを押して続行します。

著作権および配布通知を受け入れることで次のステップに進んでください。続行するにはEnterキーを押してください。

ようこそ画面でEnterキーを押して、インストールプロセスを開始してください。

Enterキーを押してAuto (ZFS)を選択します。eMMC(または類似のオプション)を使用している場合は、Auto (UFS)を選択してください。

そのままEnterキーを押して進んでください。インストーラーは自動的にM.2 SSDのパーティションを再構成し上書きします。

Enterキーを押して続行します。注意: 潜在的なRAM不足に対処するためにスワップサイズを増やすことを検討してください。

デバイスは1つだけであることに気付くでしょう。「冗長性なし」オプションを確認するには、単にEnterを押してください。

スペースバーを押してデバイスを選択します。次にEnterを押して続行します。

TABキーを押して「はい」を選択してください。次にEnterキーを押して続行します。

インストーラーは続行します。しばらくお待ちください。

Enterを押して再起動します。

「すべてのバッファが同期されました。」というメッセージが表示されたら、USBメモリースティックを自由に取り外してください。

おめでとうございます!pfSenseが内部ストレージから正常に起動しました。これから私たちのネットワーク設計に従ってpfSenseを設定する準備が整います。

初回起動時に、VLANやWANおよびLANインターフェースの設定を促される場合があります。

pfSenseはコンソールを通じて以下の情報を表示します:

  • デフォルトインターフェースが見つかりません --- インターフェース割り当てオプションを実行中です。
    [..]
  • 有効なインターフェースは次の通りです:
    [..]
  • 最初にVLANを設定する必要がありますか?
    VLANが使用されない場合、またはオプションのインターフェースのみの場合、ここでは「いいえ」と言うのが一般的で、必要に応じて後でWebConfiguratorを使用してVLANを設定します。
    [..]
  • VLANを今設定すべきですか?[はい|いいえ]?

    ただいいえと入力してEnterを押してください。

  • [..]
    WANインターフェース名を入力するか、'a'を自動検出のために入力してください。

    希望するWANインターフェースの名前を入力して、ENTERを押してください。

  • LANインターフェイス名を入力するか、オートディテクションの場合は'a'を入力してください。

    希望するWANのインターフェース名を入力し、ENTERを押してください。

  • インターフェースがさらにある場合、オプショナル1インターフェースを設定するよう求められます。
    その場合は、Enterキーを押してスキップしてください。

  • インターフェースは次のように割り当てられます:

    [..]

    続行しますか [y|n]?

    yと入力してEnterを押してください。

最終結果は次のスクリーンショットに似たものになるべきです。

pfSenseが正常にインストールされたので、次はwebConfiguratorを使用してルーター/ファイアウォールの設定に進むことができます。webConfiguratorはポート443でアクセス可能であり、ファイアウォールのデフォルトのIPv4アドレスである192.168.1.1を通じて到達できます。

ご注意ください:webConfiguratorに関しては、「WUI」、「WebUI」、「WebGUI」または単に「Webインターフェース」といった異なる用語が使われています。

3.2.1. ウェブインターフェース

コンピュータがファイアウォールのLANポートに接続されていることを確認してください。通常、これは2番目のネットワークインターフェースとして識別されます。すべてが正常であれば、コンピュータにIPv4アドレスが割り当てられます。次に、ウェブブラウザを開いて、https://192.168.1.1 にアクセスしてWebUIを開いてください。

3.2.1.1. pfSense セットアップウィザード :

最初の画面は少し慎重に見えるかもしれませんが、心配いりません - それは友好的なリマインダーだと考えてください。自己署名証明書が使用されているため、詳細をクリックし、続いて進むを選択して192.168.1.1(安全ではありません)に自信を持って進んでください。

Firefoxのユーザーにとって、このプロセスも同様にスムーズです。単に高度な設定...をクリックし、次に「リスクを受け入れて続行」を選択することで、自信を持って進むことができます。

さあ、サインインする時間です。ユーザー名に「admin」、パスワードに「pfsense」を入力してください。その後、「サインイン」をクリックしてWebUIにアクセスします。

今はパスワードに関する警告メッセージを無視しても問題ありません。「次へ」をクリックしてpfSenseセットアップウィザードを続行してください。

正確な時間と日付の設定を確保することが重要です。デフォルトの時間ソースを受け入れるか、必要に応じて追加することができます。その後、タイムゾーンを設定し、「次へ」をクリックしてください。

次にリストにあるのはWANインターフェースの設定です。インターネット接続やファイアウォールが接続されているネットワークに基づいて、静的、DHCP、PPPoE、PPTPなどのオプションから選択する必要があります。適切なオプションを選択して設定したら、「次へ」をクリックしてください。

この例では、DHCPオプションを選択し、ファイアウォールをスイッチポートの1つを介してラボネットワークに接続します。ラボネットワークは、インターネットに接続する別のファイアウォールにリンクされています。

次に、RFC1918ネットワークとボゴンをどのように処理するかを決定する必要があります。セキュリティを維持するためには、両方のオプションを選択したままにし、これらのネットワークからのトラフィックがブロックされるようにすることをお勧めします。ただし、WANインターフェースがRFC1918ネットワークに接続されている場合は、最初のボックスのチェックを外すことを検討しても良いでしょう。選択が完了したら、「次へ」をクリックして進んでください。

プライマリ管理VLANのデフォルトゲートウェイIPv4「172.21.1.1」を入力し、LANインターフェースを設定します。サブネットマスクを24に設定し、「次へ」をクリックして続行します。

WebGUIのパスワードを設定するように求められます。画面の指示に従ってください。

pfSenseセットアップウィザードの最後の段階にほぼ達しました。新しい変更を適用してpfSenseを再読み込みするには、「再読み込み」をクリックしてください。

リロードが完了すると、ウィザードは自動的にリダイレクトするはずです。しかし、場合によっては、このリダイレクトが予期した通りに機能しないことがあります。

詳細に調べてみると、ネットワークカードのIPv4アドレスが更新されていないようです。この問題は、使用しているLinuxのノートパソコン上のNetworkManagerに起因しており、pfSenseの問題ではありません。

ネットワークケーブルを抜いて数秒待ち、再びノートパソコンに差し込むと、IPv4アドレスが正常に更新されているようです。

正しいURL「https://172.21.1.1」をブラウザのアドレスバーに入力した後、Enterキーを押します。次に、ユーザー名「admin」と以前に設定したパスワードを入力します。最後に、「サインイン」をクリックしてWebUIにアクセスします。

ログインすると、あなたが単に受け入れなければならない素晴らしいものに出会います。「受け入れる」をクリックして、次に「閉じる」をクリックして進んでください。

おめでとうございます!pfSenseセットアップウィザードはここで終了します。いくつかのカスタマイズを行います。

3.2.1.2. カスタマイズ :

ダッシュボード

pfSenseのダッシュボードは機能的ですが、さまざまなウィジェットを追加することで強化できます。もし望むなら、右上隅の'X'をクリックすることでサービスとサポートのウィジェットを削除できます。

ダッシュボードを充実させるために、「ゲートウェイ」、「インターフェース統計」、および「トラフィックグラフ」などの便利なウィジェットを追加することを検討してください。使用可能なより有益なウィジェットはありますが、どのウィジェットが好みに合うかを探索し、決定するのは管理者にお任せします。

テーマと上部ナビゲーション

一部のユーザーはダークモードテーマを使用することを好むかもしれません。テーマはメニューオプション「システム」>「一般設定」を通じて選択できます。「webConfigurator」までスクロールし、利用可能なオプションをスクロールして希望のテーマを選択してください。「pfSense-dark」を選ぶと、背景が暗くなります。

さらに、「トップナビゲーション」オプションに注意してください。「固定」を選択すると、ナビゲーションメニューが常にページのトップに留まります。スクロールダウンして「保存」をクリックすると、変更が保存され適用されます。

ダッシュボードを更新して改善された外観を楽しむには、左上隅にあるpfSenseのロゴをクリックするだけです。更新されたインターフェースをお楽しみください!

pfSenseのwebConfigurator内で、個別にカスタマイズするための多くのオプションを探索してください。Pictureウィジェットを使用して、楽しい画像を追加することで美しさを高めることを検討してみてください。おそらく、創造性は後回しにすべきです。なぜなら、まだやるべき仕事があるからです。

メニューオプションを探るために少し時間を取ってください。それはナビゲーションに慣れるための貴重なステップです。メニューを理解することは、さらに設定を掘り下げる際に有益であることがわかります。

次のセクション、VLANとサブネットに進みましょう。

3.2.2. VLANとサブネットの定義

私たちのネットワーク設計を思い出しますか?デフォルトゲートウェイのために追加の列を含めました。

私たちのネットワーク設計において、各ネットワークには独自のデフォルトゲートウェイが指定されています。デフォルトゲートウェイは、ネットワークトラフィックが出入りする中央のポイントとして機能し、異なるネットワーク間の効率的な通信を確保します。この個別の設定は、ネットワークの組織化と機能性を向上させます。

私たちはネットワーク設計を使用してVLANとサブネットを追加します。

3.2.2.1. インターフェース :

最初に、VLANのインターフェースを選択しましょう。「インターフェース」>「割り当て」に移動して、利用可能なインターフェースを表示します。

LANインターフェースは現在igb1に関連付けられています。したがって、VLANの設定にはigb1を使用します。

3.2.2.2. VLANs :

"インターフェース" > "割り当て"の下で"VLAN"を選択し、次に"追加"をクリックしてVLANを設定します。

適切な親インターフェースを選択してください。この場合は「igb1」です。VLANタグに「2」を入力し、VLANプライオリティは未設定のままにします。

説明欄に注意を払い、明確な形式の使用をお勧めします。例えば、「L1_0002_MNG2」のように、ここで「L1」は「LAN 1」を示し、「0002」はVLANを表し、「MNG2」は「管理用LAN 2」を示します。この構造化されたアプローチは、ネットワークを簡単に認識し、管理するのに役立ちます。

最後に「保存」をクリックして変更を保存します。

「インターフェース」>「アサインメント」の下にある「インターフェース割り当て」に移動して、新しいVLANをインターフェースに割り当てます。「利用可能なネットワークポート」セクションでVLANを選択し、「追加」をクリックします。その後、設定を保存して適用します。

チェックボックスをチェックしてインターフェースを有効にします。明確な形式を使用することをお勧めする説明フィールドに注意してください。たとえば、「L1_0002_MNG2」を使用することができます。

設定オプションが表示されたら、次の手順に進んでください。

  1. チェックボックスをオンにしてインターフェースを有効にします。
  2. 説明欄に注意を払い、明確な形式を使用することが推奨されます。例えば、「L1_0002_MNG2」を使用することができます。
  3. 「IPv4設定タイプ」として「静的IPv4」を選択してください。
  4. ラベルIPv4アドレスの隣のテキストフィールドにデフォルトゲートウェイIPv4として「172.22.2.1」と入力してください。
  5. IPv4アドレスの右側にある「24」を選択してください。これはCIDR形式のサブネットマスクを表します。
  6. 最後にスクロールダウンし、変更を保存して適用します。

結果はこのようになります。

LANおよびWANインターフェイスの名前を変更することも良い習慣です。

単純に「LAN」をクリックして、インターフェースの説明を「L1_0001_MNG1」に変更します。
次に、WANインターフェースについても同様のことを行い、説明を「W1_0001_ISP1」に変更します。
これにより、一貫した概要が提供されます。

すべての変更を保存して適用するのを忘れないでください。

ここにVLANとインターフェイスを作成するプロセスの概要があります:

    VLANを作成します:

    • 「インターフェース」>「割り当て」に移動します。
    • 「VLANs」タブをクリックしてください。
    • 「追加」をクリックして新しいVLANを定義します。
    • 親インターフェース(例:igb1)を選択し、VLANタグを入力し、明確な説明を提供してください。

    インターフェースにVLANを表現する:

    • 「インターフェース」>「割り当て」に移動します。
    • 「インターフェイス割り当て」をクリックしてください。
    • 「利用可能なネットワークポート」リストからVLANを選択し、「追加」をクリックします。
    • 設定を保存して適用します。

    インターフェースオプションを設定する:

    • 「インターフェース」セクションに、新しいインターフェース(例:OPT2)が表示されます。
    • インターフェースをクリックしてください(例:OPT2)。
    • チェックボックスをオンにしてインターフェースを有効にします。
    • 明確な説明を設定してください。例えば「L1_00016_SRVS. サーバー用」などです。
    • 「IPv4設定タイプ」として「静的IPv4」を選択してください。
    • デフォルトゲートウェイのIPv4アドレスを入力してください(例:10.10.16.1)。
    • CIDR形式でサブネットマスクを選択してください(例:/24)。
    • スクロールダウンし、その後変更を保存して適用します。

    他のVLANおよびインターフェースについて繰り返します:

    • 各VLANおよび対応するインターフェースについて、プロセス全体を繰り返します。
    • より良い整理のために明確な説明を一貫して提供してください。

これらのステップに従うことで、VLANを体系的に作成し、インターフェースに表現し、必要な設定を構成することができます。具体的なVLANやインターフェースについて詳細な指示が必要な場合は、お気軽にご指定ください!

VLANの概要は以下の表に似た形になるでしょう。

インターフェースの割り当ては、以下のスクリーンショットに似たように見えるでしょう。

"インターフェース"ダッシュボードウィジェットは、以下の表に似た概観を要約しています。

次のセクションでは、pfSenseの構成を続けます。

3.3 pfSenseにおけるファイアウォールの設定

pfSenseでは、インターフェースのデフォルトのファイアウォールポリシーは、すべての受信トラフィックをデフォルトで拒否することです。これは、トラフィックを許可するために特定のファイアウォールルールが設定されていない限り、インターフェースへのすべての受信接続がブロックされることを意味します。

ファイアウォールルールを作成すると、特定のインターフェースに対して許可または拒否されるトラフィックを基本的に指定しています。ルールは上から下へ順番に処理され、トラフィック基準と一致する最初のルールが適用されます。一致するルールがない場合、ルールセットの最後にあるデフォルトの拒否ルールが適用されます。

ネットワーク要件に基づいてファイアウォールルールを適切に設定することが重要です。これにより、トラフィックが意図した通りに流れ、ネットワークが安全に保たれます。

3.3.1. デフォルトファイアウォールルール

すべてのインターフェースに普遍的に適用できる標準的なファイアウォールルールのセットを確立しましょう。特定のタイプのトラフィックは本質的に許可されるものであり、我々の目標は効率的で効果的なファイアウォールルールを作成することです。これを達成するために、まずIPとポートのエイリアスを定義することから始めます。この戦略的アプローチは、我々のファイアウォールルールの構成の明確さと最適化を高めます。

3.3.1.1. IPエイリアス :

次のIPv4エイリアスを作成します:

  • 名前: IP_Private_NETs
    説明: プライベートインターネットのためのRFC1918アドレス割り当て
  • タイプ: ネットワーク
  • ネットワークまたはFQDN: 10.0.0.0 /8
    説明: クラスA
  • ネットワークまたはFQDN: 172.16.0.0 /12
    説明: クラスB
  • ネットワークまたはFQDN: 192.168.0.0 /16
    説明: クラスC

まず「ファイアウォール」>「エイリアス」に移動し、次に「追加」をクリックします(「IP」タブで)。

詳細を入力してください。複数のネットワークを追加するには、「ネットワークを追加」をクリックしてください。これにより、新しい行が追加されます。

変更を保存して適用します。最終結果は以下のスクリーンショットに似ています。

3.3.1.2. ポートエイリアス :

次のポートエイリアスを作成します:

  • 名前: Port_Core_Services_TCP
  • 説明: コアサービス、TCP
  • タイプ: ポート
  • ポート: 53
    説明: TCPによるDNS
  • 名前: Ports_Core_Services_UDP
  • 説明:コアサービス、TCP
  • タイプ: ポート
  • ポート: 53
    説明: UDPによるDNS
  • ポート: 123
    説明: NTP

最初に「ファイアウォール」>「エイリアス」に移動し、次に「ポート」タブで「追加」をクリックします。

詳細を入力してください。複数のポートを追加するには、「ポートを追加」をクリックしてください。これにより新しい行が追加されます。

変更を保存して適用します。

最終結果は以下のスクリーンショットに似たものになります。

3.3.1.3. ファイアウォールルールの追加(浮遊) :

ファイアウォールルールは、特定のインターフェース上に実装することも、浮動ルールとして実装することもできます。前者は指定されたインターフェースの入力トラフィック(pfSenseのドキュメントで「in」または着信と呼ばれる)に適用されますが、後者は任意のインターフェースに適用することができます。浮動ルールは通常のインターフェースルールよりも優先されることを認識することが重要です。さらに、浮動ルールは多目的であり、着信トラフィックのみに制限されず、「out」を選択して発信トラフィック用に設定したり、「any」を選択して双方向トラフィック用に設定したりすることができます。

浮動ルールを扱う際は注意が必要です。なぜなら、その動作はすぐには直感的に理解できないかもしれないからです。

ICMPのために浮動ルールを設けましょう。これは、ホストがVLANを越えてPingを交換することを優雅に許可するものです。ただし、もちろん、それがネットワークの扉をノックする神秘的な存在でない限りです。大悪党のハッカーには入場を許可しません!

まず「ファイアウォール」>「ルール」に移動します。次に「フローティング」をクリックします。今、「追加」をクリックしてルールを作成できます。上矢印や下矢印について心配する必要はありません。これは最初のルールです。他にルールがある場合、その特定のルールをドラッグして上下に移動することができます。

次のルールを構築します:

  • アクション:パス
  • クイック:チェックボックスを確認してください
  • インターフェイス:すべてのローカルインターフェイスを選択してください
    これらはすべてのインターフェイスであり、「すべて」およびWANを除外します
    SHIFTキーを使用してインターフェイスの範囲を定義してください。
    CTRLキーを使用して個々のインターフェイスを選択または選択解除します。
  • 指示: 内部
    私たちはインターフェースに入るトラフィックを見ていきます。
  • アドレスファミリー: IPv4
  • プロトコル:ICMP
  • ICMPサブタイプ:CTRLを使用して「エコー要求」と「トレースルート」の両方を選択します。
  • ソース: アドレスエイリアス; IPプライベートネット
  • 宛先: アドレスエイリアス; IPプライベートネット
  • 説明:VLAN間でICMPを許可する(プライベートネット)

変更を保存して適用してください。

これにより、次の浮動ルールが生じるはずです。

さて、浮動ルールの専門的な性質を考慮し、多くのファイアウォール設定にはそれらが必要ない場合があるため、通常のインターフェイスルールを進めます。浮動ルールに興味がある場合は、ドキュメントで詳細を確認できます: 浮動ルールのドキュメント。

3.3.1.4. ファイアウォールルールの追加(インターフェース) :

私たちのIPおよびポートのエイリアスを思い出しますか?今、私たちはそれらをインターフェースルールに組み込んでいます。フローティングルールを構築することもできますが、設定をシンプルに保つためにインターフェースルールを選択しました。このアプローチは少し努力を要しますが、インターフェース間でファイアウォールルールを簡単に複製できる利点があります。これにより、追加の作業負荷が相殺されます。

「ファイアウォール」>「ルール」に移動しましょう。今のところ、管理インターフェースはそのままとして、「L1_0032_OFF1」から始めます。このアプローチは、オフィスLANに特有のルールに焦点を当てて、ユーザーの視点に沿っています。

まずは「追加」をクリックしてください(上向きまたは下向きの矢印のボタン)。

ルール1:

  • アクション:パス
  • インターフェース: L1_0032_OFF1
  • アドレスファミリー: IPv4
  • プロトコル: TCP
  • ソース: L1_0032_OFF1 サブネット
  • 宛先: このファイアウォール(自己)
  • 宛先ポート範囲: (その他); ポートコアサービス_TCP
  • 説明: コアサービスTCPを許可する

変更を保存して適用してください。

今、下向きの矢印が付いている「追加」ボタンをクリックしてください。

ルール2:

  • アクション: パス
  • インターフェース: L1_0032_OFF1
  • アドレスファミリー: IPv4
  • プロトコル: UDP
  • ソース: L1_0032_OFF1 サブネット
  • 宛先: このファイアウォール(自己)
  • 宛先ポート範囲:(その他);ポートコアサービスUDP
  • 説明: コアサービスのUDPを許可する

変更を保存して適用してください。

これらの2つのルールは、オフィスLANからインターフェースに流れ込むときに特定のTCPおよびUDPトラフィックを許可します。宛先はファイアウォール自体であり、DNSおよびNTPサーバーとして機能します。

DHCPおよびアウトバウンドトラフィックに関するルールがないことに気付くかもしれません。DHCPトラフィックに対してはルールは必要ありません。pfSenseがデフォルトで処理します。インターフェースからインターネットへのトラフィックを許可したい場合のみ、アウトバウンドルールを作成する必要があります。

ルール3:

  • アクション:拒否
  • インターフェース: L1_0032_OFF1
  • アドレスファミリー: IPv4
  • プロトコル: 任意
  • ソース:アドレスまたはエイリアス;IPプライベートネット
  • 目的地:

    • 「住所またはエイリアス」を選択してください
    • 宛先アドレス: IP_Private_NETs
  • 説明:漏れ防止

今、下向きの矢印が付いている「追加」ボタンをクリックしてください。

ルール4:

  • アクション: パス
  • インターフェース: L1_0032_OFF1
  • アドレスファミリー: IPv4
  • プロトコル: 任意
  • ソース:アドレスまたはエイリアス;IPプライベートネット
  • 目的地:

    • チェックボックス「一致を反転」を選択してください
    • 「住所またはエイリアスを選択」
    • 宛先アドレス: IP_Private_NETs
  • 説明:すべての外向きトラフィックを許可する

私たちはルールを明確にするために区切りを追加したいかもしれません。

「セパレーター」をクリックしてください。次に、以下の説明を入力します: 「デフォルトファイアウォールルール」。緑のボールをクリックします。次に「保存」をクリックしてください。最後に、新しいセパレーターをルールセットの最上部にドラッグし、「保存」をクリックします。

最終的な外観は以下のスクリーンショットを反映し、ルールセットの最後にある逆ルールを示す感嘆符に特に注意を払うべきです。

3.3.1.4. ファイアウォールルールの複製 :

このファイアウォールルールセットを別のインターフェイスに複製するには、左上のチェックボックスをチェックし、「コピー」をクリックします。

「インターフェース定義を変換する」オプションを選択し、「貼り付け」をクリックして変更を適用してください。

セパレーターはコピーされないことに注意してください。現在それは不可能です。このインターフェイスのために 'デフォルトファイアウォールルール' というセパレーターを作成して、手順を完了してください。

「L1_」で始まる他のインターフェースについても、これらの手順を繰り返してください。

今のところ、外向きトラフィックのこのルールはそのままにしますが、サーバーに対して必要な外向きトラフィックのみを許可するルールのセットに置き換えることをお勧めします。

この文脈では、広く推奨されるアプローチは、ファイアウォールルールセットのトップに「例外」セパレーターを設置し、その直下にアウトバウンドルールを配置することです。この方法は例外を管理するための構造化された方法を提供し、必要に応じてルールを見つけて変更するのを容易にします。望ましい効果を得るには、最後のアウトバウンドルールを無効にし、バランスの取れたコントロールされたトラフィックフローを確保してください。

ファイアウォールルールの管理に関する詳細については、Netgate Docsを参照してください。pfSenseの設定において重要な側面であるため、詳細な研究を行うにはこのリンクを探索してください。

次のセクションでは、pfSenseファイアウォールの重要なサービスであるDHCPやDNSについて簡単に探求します。

3.4. pfSenseサービス

DHCPとDNSはネットワーク機能にとって重要であり、IPアドレスの割り当てやドメイン名をIPアドレスに変換する際に自動化と整理を提供します。

3.4.1. DHCP

DHCP(ダイナミックホスト構成プロトコル)は、ネットワーク上のデバイスに自動的にIPアドレスやその他のネットワーク設定情報を割り当てるネットワークプロトコルです。pfSenseでは、DHCPサービスがIPアドレスを動的に管理および配布して、手動設定なしでデバイスをネットワークに接続しやすくします。

この記事の文脈では、DHCPを有効にし、設定する方法を知ることが重要です。

DHCPを有効にし設定する手順。

  1. 「サービス」>「DHCPサーバー」へ移動します。
  2. 希望するインターフェースのためにDHCPサービスをアクティブにするには、「(インターフェースを選択)でDHCPサーバーを有効にする」のボックスにチェックを入れてください。
  3. DHCP設定を構成します。これには、割り当てるIPアドレスの範囲、リース時間、および必要に応じて追加のオプションが含まれます。
  4. 変更を保存して適用し、DHCPサービスを稼働させます。

これらの手順は、pfSenseでDHCPを効果的に構成するのに役立ちます。

オフィスネットワーク(L1_0032_OFF1)については、次のようになっているはずです。

  1. 「サービス」>「DHCPサーバー」へ移動します。
  2. 希望するインターフェースのためにDHCPサービスをアクティブにするには、「(インターフェースを選択)でDHCPサーバーを有効にする」のボックスにチェックを入れてください。
  3. DHCP設定を構成する:

    • アドレスプール範囲:(開始)10.10.32.101(終了)10.10.32.200
    • NTPサーバー 1: 10.10.32.1
  4. 変更を保存して適用し、DHCPサービスを動作可能にします。

重要な点は、ISC DHCPがサポートの終了を迎え、今後のpfSenseのバージョンで削除されることです。管理者はKea DHCPへの切り替えを推奨されています。切り替えは数回のクリックで可能です:"システム" > "高度な設定" > "ネットワーキング":"Kea DHCP"にチェックを入れ、"保存"をクリックしてください。

3.4.2. DNS

DNS(ドメインネームシステム)は、人間が読みやすいドメイン名(例えば、www.ict-diensten.com)をコンピュータがネットワーク上で互いを識別するために使用するIPアドレスに変換するシステムです。pfSenseでは、DNSサービスが効率的かつ正確なドメイン名の解決を保証し、IPアドレスではなくドメイン名を使用するデバイス間のシームレスな通信を促進します。

この記事の文脈において、pfSenseのDHCPサーバーにホストオーバーライドとドメインオーバーライドを追加する方法を知ることが重要です。

ホストオーバーライドとドメインオーバーライドを追加する手順:

  1. 「サービス」 > 「DNSリゾルバー」に移動します。
  2. 「ホストオーバーライド」または「ドメインオーバーライド」のセクションで、「追加」をクリックして新しいエントリを追加してください。
  3. ホスト名、ドメイン、およびそれに対応するIPアドレスを含む必要な情報を入力してください。
  4. 変更を保存して適用し、DNS設定を更新します。

これらの手順は、pfSenseでDNSサービスを効果的に構成するのに役立ちます。

メールサーバー名が mail.gigabitjes.nl で、その A レコードにおける公開 IPv4 が 123.123.123.101 だと想像してみてください。しかし、LAN 内ではこのサーバーは IPv4 アドレス 172.31.252.101 として認識されています。このようなシナリオでは、LAN から公開 IPv4 を参照することは実用的ではありません。プライベート IPv4 に対してホストオーバーライドを設定することは有用な解決策です。このホストオーバーライドは以下のスクリーンショットのようになります。

次のセクションでは、スイッチのVLAN設定について簡単に見ていきます。必要なファイアウォールルールのために、スイッチのインターフェースとpfSenseのウェブインターフェースを切り替えます。

3.5. スイッチの設定

私たちのネットワークでは、ネットワークスイッチがスイッチ、アクセスポイント、サーバー、ワークステーションなどのさまざまなデバイスをサポートする上で重要な役割を果たしています。

効率的なネットワーク設計には、デイジーチェーン方式のスイッチや潜在的なボトルネックを避けるために、構造化されたネットワーク接続スキームを確立することが不可欠です。この設定では、中央ポイントとして機能するコアスイッチを指定します。すべての他のスイッチはこのコアスイッチに接続し、アクセスポイントスイッチとして機能します。コアスイッチからアクセスポイントスイッチへの接続はダウンリンクと呼ばれ、アクセスポイントスイッチからコアスイッチへの接続はアップリンクと呼ばれます。この階層的な構成により、整然としたスケーラブルなネットワークインフラストラクチャが保証されます。

スイッチにIPv4アドレスを割り当て、VLANをスイッチのVLAN設定に組み込むことから始めます。

3.5.1. 準備

最初のスイッチを設定する前に、管理VLAN [L1_0001_MNG1] からIPv4アドレスを割り当てる必要があります。

まず、HP 1810-24g スイッチのポート 24 を pfSense ファイアウォールの LAN インターフェースに接続しました。次に、ラップトップをポート 23 に接続しました。ラップトップには、サブネットマスク 255.255.255.0 [/24] の静的 IPv4 アドレス 192.168.2.123 を割り当てました。このステップは、スイッチのデフォルトの IPv4 アドレスを変更するために行われます。

その後、スイッチのIPv4アドレスを172.21.1.11に変更し、サブネットマスクを255.255.255.0 [/24]に設定しました。デフォルトゲートウェイIPv4は172.21.1.1に設定されました。

正確なIPv4設定を確保するために、私は一時的にノートパソコンからネットワークケーブルを外しました。Linuxを使用しているため、スイッチで最初に使用された192.168.2.0/24ネットワーク内で静的IPv4を設定しながら、DHCP設定を維持することができました。

デフォルトおよび更新された設定は、以下のスクリーンショットに示されています。

DHCPの競合を防ぐために、L1_0001_MNG1のDHCPプールを調整し、pfSenseファイアウォールで範囲を172.21.1.201から172.21.1.230に修正しました。そのために、「サービス」>「DHCPサーバー」>「L1_0001_MNG1」に移動し、「プライマリアドレスプール」セクションで範囲を変更しました。また、NTPサーバー1が設定されていないことに気付きました。オプションではありますが、172.21.1.1に設定しました。最後に、変更を保存して適用しました。

3.5.2. VLAN構成

必要な変更をスイッチに実装する準備ができています。焦点はVLANに置かれます。

3.5.2.1. ネットワーク概要 :

以下の概要が使用されます。

始める前に、どのVLANがどのポートに設定されるかを決定する必要があります。この特定のHPスイッチには24のギガビットイーサネットポート(ポート1-24)と2つのSFP+スロット(ポート25-26)があります。私たちのポート設定は次のようになります。コアスイッチもアクセスポートとして使用されることに気付くでしょう。

3.5.2.2. VLAN構成 :

HP 1810-24g スイッチの VLAN 構成を進めましょう。 ZyXEL や TP-Link などの追加スイッチは、次回の改訂でこの文書に統合される予定です。

スイッチのIPv4アドレスに移動して、ウェブインターフェースにアクセスします。ログインしたら、VLANの追加を始めることができます。

このHPスイッチで、「VLAN」>「VLAN設定」に直接移動します。VLANを作成するのは簡単なプロセスです: 「VLANを作成」 の隣のボックスにチェックを入れ、VLAN IDを入力し、「適用」をクリックします。

残りのVLANについてもこのプロセスを繰り返してください。

VLAN名は最初は設定されていないことに注意してください。チェックボックスにチェックを入れて対応するテキストフィールドを有効にし、VLAN名の列に入力して「適用」をクリックしてプロセスを完了させてください。

今、「参加-/タグ付け」をクリックしてください。

VLANを選択し、タグ付けを定義します。最初の画面は次のスクリーンショットのようになります。

VLANを1から32に変更し、ポートにVLANをタグ付けし始めます。ポート01-12はタグなし、ポート20-26はタグ付けします。「適用」をクリックします。

スイッチは管理VLANに関する警告を表示する場合がありますが、これは想定内です。この警告は無視してください。私たちのラップトップはポート01〜12の範囲に接続されていません。

172.21.1.11 says
Management port is not configured. 
Configuring untagged membership on non-management VLAN may disrupt the web connectivity. 
Do you wish to continue? 
Cancel OK

別の警告が表示される可能性があり、ポートは2つの未タグ付きVLANのメンバーになれないことを示しています。

172.21.1.11 says
Ports - 1,2,3,4,5,6,7,8,9,10,11,12 can have only one untagged VLAN membership. 
If the port is already untagged VLAN member in one VLAN and any other new VLAN is selected for untagged membership, 
then the port will be excluded from previously untagged VLAN if any).
Do you wish to continue? 
Cancel OK

VLAN 36の参加を変更してください。

下のスクリーンショットに示されているように、ポート13と14はタグ付けされていないことがわかります。これにより、ポート13またはポート14のいずれかにデバイスを接続できるため、2台のプリンターを接続するのに適しています。

次に、残りのVLANの参加を変更します。VLAN 252と253は、ポート19-26にタグ付けとして追加する必要があることに注意してください。

おめでとうございます!今のところ、私たちはネットワークの構築を完了しました。ハイパーバイザーが稼働し始めると、追加の変更が適用されます。それでは、次の章でProxmoxハイパーバイザーの構築に素早く移りましょう!

4. サーバーインフラの構築

この章では、Proxmox仮想環境(VE)のインストールと設定手順について説明します。

4.1. 最低ハードウェア要件

プロクスモックスのウェブサイトを参照して、製品環境と評価環境のための最小ハードウェア推奨事項を確認してください。

テスト目的のため、要件は控えめです。

  • CPU: 64ビット(Intel EMT64またはAMD64)、Intel VT/AMD-V対応のCPU/マザーボード(KVMフル仮想化サポート用)
  • 最低1GBのRAM
  • ハードドライブ
  • ワンNIC

生産要件も合理的です。詳細については、ハードウェア要件セクションを参照してください。

4.2. Proxmoxインストールイメージの取得

ProxmoxのインストールイメージはProxmoxのウェブサイトで入手できます。Proxmox Virtual EnvironmentのISOを取得するのは簡単です。次のステップは、ISOイメージをUSBメモリに書き込むことです。

4.3. インストールメディアの準備

ProxmoxのWikiページとProxmoxの公式ウェブサイトを参照して、インストールメディアの準備に関する推奨手順をご確認ください。インストールメディアの準備に関するセクションを確認してください。pfSenseと手順は似ていますが、ProxmoxはISO形式のみで提供されているという重要な違いがあります。

4.3.1. Linux

Linuxの場合、推奨されるプロセスは`dd`コマンドを利用することです。

dd bs=1M conv=fdatasync if=./proxmox-ve_*.iso of=/dev/sdX

正確な詳細については、Proxmoxウェブサイトのメディア準備セクションを参照してください。

推奨手順の代わりに、Ventoyが使用されました。VentoyはProxmoxのドキュメントには記載されていません。Proxmoxのドキュメントには記載されていないものの、成功裏に使用されました。ただし、問題2657で説明されているように、CIバージョンのVentoyを使用する必要がありました。

4.3.2. MacOS

MacOSの場合は、hdiutilコマンドを使用します。

hdiutil convert proxmox-ve_*.iso -format UDRW -o proxmox-ve_*.dmg

正確な詳細については、Proxmoxのウェブサイトの「メディアの準備」セクションをご覧ください。

4.3.3. ウィンドウズ

Windowsの場合、1つの推奨は、DDモードでRufusを使用することです。

Proxmox管理ガイドからのメモでは、プロンプトが表示されたときに「DDモード」を選択し、異なるバージョンのGRUBのダウンロードを避けるようにアドバイスされています。
出典:Proxmox管理ガイド、セクション:メディアの準備。

4.4. Proxmox VE インストールプロセス

Proxmox VEのインストールプロセスは簡単で、pfSenseよりも負担が少ないです。

4.4.1. ブート

準備したインストールメディアでコンピュータを起動します。インストールを開始するには「Proxmox VEをインストール(グラフィカル)」を選択します。

注意: 起動中に国の検出でプロセスが停止した場合は、ネットワークケーブルを抜き、再起動し、「Proxmox VEのインストール(グラフィカル)」を再度選択し、エンドユーザー契約(EULA)が表示された後にケーブルを再接続してください。

4.4.2. EULA

EULAで「同意します」をクリックしてください。

4.4.3. パーティショニング

ターゲットハードディスクを選択してください。サーバーのストレージ構成は次のとおりです:

  • /dev/sda 465.76 GiB サムスン SSD 860
  • /dev/sdb 465.76 GiB サムスン SSD 860
  • /dev/sdc 465.76 GiB サムスン SSD 860
  • /dev/sdd 465.76 GiB CT500MX500SSD4

選択されたターゲットハードディスクは/dev/sddです。

最初の3つのSSDに「zfs (RAIDZ-1)」を使用し、後のSSDにはext4を使用する代替オプションがあります。「次へ」をクリックして進んでください。

4.4.4. 場所およびタイムゾーンの選択

インストール中に、場所とタイムゾーンを選択します。例えば:

  • 国: オランダ
  • タイムゾーン: ヨーロッパ/アムステルダム
  • キーボードレイアウト: アメリカ英語

「次へ」をクリックして続けてください。

4.4.5. 管理者パスワードとメールアドレス

インストーラーに促されたら、パスワードを設定し、メールアドレスを提供してください。その後、「次へ」をクリックします。

4.4.6. 管理ネットワーク設定

ネットワーク構成は非常に重要です。次の内容を選択し、ホスト名(FQDN)を調整することを確認してください。

  • 管理インターフェース: eno1 {mac} (e1000e)
  • ホスト名(FQDN):pve101.lan.gigabitjes.nl
  • IPアドレス (CIDR): 172.21.1.101
  • ゲートウェイ: 172.21.1.1
  • DNSサーバー: 172.21.1.1

「次へ」をクリックしてください。

私たちのハイパーバイザーは、元のネットワーク設計で指定されたVLAN2から逸脱して、VLAN1に配置されることにご留意ください。この段階では、VLAN2を選択することは過度に複雑になる可能性があります。なぜなら、より複雑なVLAN設定が必要だからです。

4.4.7. インストールの完了

要約された決定を確認し、「インストール」をクリックしてください。インストールが完了すると、システムが再起動します。

4.5. Proxmox 設定手順

Proxmox VEをインストールすると、設定プロセスが始まります。ウェブブラウザを開いて、https://172.21.1.101:8006 に接続します。

4.5.1. サブスクリプションと更新

Proxmox VE サブスクリプション

Proxmoxのサブスクリプションを選択することをお勧めします。これにより、安定したProxmox Enterprise Repositoryにアクセスでき、信頼性の高いソフトウェアアップデート、セキュリティの強化、エンタープライズグレードのテクニカルサポートが提供されます。

Proxmox VE 非サブスクリプションリポジトリ

テストおよび非生産用途の場合、Proxmox VE ノーサブスクリプションリポジトリを推奨します。サブスクリプションキーは必要ありません。

この記事では、Proxmox VE ノーサブスクリプションリポジトリが使用されます。

ノーサブスクリプションリポジトリを設定するには:

  1. データセンターの下にあるPVEに移動し、シェルをクリックしてください。
  2. viやnanoのようなテキストエディタでsources.listを開いてください。
  3. Proxmox VEのノーサブスクリプションリポジトリを/etc/apt/sources.listに追加します:
    deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
    変更を保存してエディタを閉じます。
  4. Ceph と Proxmox のエンタープライズリポジトリを無効にします:
    /etc/apt/sources.list.d/ceph.list を開き、リポジトリの行をコメントアウトします:
    #deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
    /etc/apt/sources.list.d/pve-enterprise.list を開き、リポジトリの行をコメントアウトします:
    #deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
    変更を保存し、エディターを閉じます。
  5. 更新を確認してインストールする:
    apt update && apt -y upgrade
  6. オプション: 購読の削除 nag:
    sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

    添え字 nag の削除については、John's Computer Service を参照してください。

4.5.2. ストレージ

左のペインでPVEを展開すると、ローカルストレージに注意してください。VMとコンテナストレージ用に3つのSSDを追加します。

  1. 第二のペインでディスクの下にあるZFSをクリックします。
  2. ZFSを作成をクリックし、ディスクを選択し、名前(例:‘storage’)を付け、RAIDレベル(例:RAIDZ)を選択して、作成をクリックします。

さあ、VMとコンテナを作成し、それらのディスクとボリュームをZFSストレージに保存してください。

4.5.3. VLANs

VMおよびCTを作成する前に、VLANを整理してそれらを正しいネットワークに接続してください。

ネットワークをクリックして概要を開きます(Linux Bridge vmbr0に注意してください)。

クリックして作成を選択し、Linux VLANを選びます。

VLANの詳細を入力し、作成をクリックしてください。

  • ブリッジ名から始めて、次にVLAN 番号をドットで区切って入力します。
  • IPv4/CIDRを入力しないでください。
  • 明確にするために、コメントフィールドにVLAN名を入力してください。
  • 作成をクリックします。

VLAN 2の追加が成功すると、結果として得られる構成は以下のスクリーンショットに似たものになります。

他のVLANについてもこの手順を繰り返します。

設定を適用するには、「設定を適用」をクリックしてください。

  1. VLANのためにIPv4/CIDR情報が入力されると、ルーティングの問題が発生する可能性があります。これは、VMと物理ネットワークノード間のトラフィックには影響しませんが、PVEとVM/物理ネットワークノード間のトラフィックには影響します。これにより、トラブルシューティングが混乱する可能性があります。注意してください!

  2. Linuxスイッチングの代替としてのOpen vSwitch(OVS):
    一つのLinuxブリッジとLinux VLANが使用されています。OVSブリッジとOVSインスタントポートを選択することを検討してください。重要なのは、既存のブリッジを最初に削除しなければならないということです。したがって、OVSを使用することを選択する場合は、新しいOVSブリッジが正しく作成された後にのみ変更を適用してください。事前に`/etc/networking/interfaces`のコピーを作成することをお勧めします。ネットワーク構成に問題が発生した場合に備えて、(物理的な)キーボードとモニターを使用する必要があるかもしれません。

4.5.4. VMおよびCTインストールソース

ISOイメージは私たちのVMに使用されます。CTテンプレートはコンテナに使用されます。

4.5.4.1. ISOイメージ :

VMをインストールするために、セットアップCD/DVDのISOイメージを使用してください。

「ローカル(pve101)」の下にあるISOイメージをクリックし、ISOイメージを追加するためにURLからアップロードまたはダウンロードします。

4.5.4.2. CTテンプレート

コンテナはリソース効率が良いです。コンテナを作成するためにはCTテンプレートが必要です。

CTテンプレートをクリックし、次にテンプレートをクリックして利用可能なテンプレートをリストします。必要なテンプレートをダウンロードします。

4.6. Proxmox バックアップ

バックアップは不可欠です。バックアップストレージを追加し、VMおよびCTのバックアップを有効にしてください。

4.6.1. バックアップ対象とタスク

簡単なバックアップ方法は、SMB/CIFSストレージの場所を追加することです。データセンターのストレージの下にNASを追加します。詳細については、Proxmox VE Wikiのストレージに関する章を参照してください。

ストレージの下にあるバックアップオプションを見つけ、Proxmox Wikiのバックアップと復元に関する詳細な概要を参照してください。

バックアップターゲットを取り入れ、バックアップスケジュールを作成するのは簡単なプロセスです。メール通知を強化するためには、リレーホストを利用することをお勧めします。情報豊富な例は、Proxmoxフォーラムの「[TUTORIAL] Get Postfix to send Notifications (Email) Externally」というチュートリアルで見つけることができます。メール通知の設定は、バックアップの成功を監視するために重要です。リレーホストは私たちの自己ホスト型メールサーバーになる可能性があることは注目に値します。このトピックについては次の章で詳しく解説します!

5. インターネットに接続されたサービス

メールおよびウェブサーバーをホスティングする際の考慮事項

考慮すべき重要な決定は、自分自身のメールとウェブサーバーをホストするかどうかです。VPS(仮想プライベートサーバー)を利用したり、外部ホスティングサービスに依存したりするなどの選択肢もありますが、この記事は専用ハードウェアでの自己ホスティングを前提としています。

もし本当にインターネットに公開されたサービスを運営することに不安を感じているのであれば、実行しない方が良いかもしれません。セキュリティと快適さは、重要なサービスをどのようにどこでホストするかを決定する際の最も重要な考慮事項です!

セルフホスティングの概念

私たちのネットワークには、インターネットに公開されたサービスと内部サービスの両方があります。前者には、プロセスの初期に設定し保護することが重要なウェブサーバーやメールサーバーなどのサービスが含まれます。これらのインターネットに公開されたサービスは、私たちのネットワークの顔として機能し、アクセス可能性と保護のために慎重な設定が必要です。

インターネットに公開されたサービスに焦点を当て、メールサーバーとウェブサーバーの設定を貴重な演習として扱うことから始めます。このアプローチにより、ドメインコントローラーやファイルサーバーなどの内部サービスに踏み込む前に、重要なサービスを実装し、保護することが可能になります。これらの外部向けサービスの構成とセキュリティを優先することは、アクセス可能性と保護の両方を確保するための基本的な実践です。

私たちが進むにつれて、次の章では、包括的で整理されたネットワークインフラストラクチャを確保するために、内部サービスも探求していきます。

5.1. トラフィックのルーティング

私たちのインターネットに公開されたサービスのルーティングを有効にするためには、いくつかの要件を満たす必要があります。場合によっては、既存のインターネット接続がこれらの基準を満たしていないことがあり、接続を変更することが実行可能でない場合もあります。そのような状況では、ワークアラウンドが必要です。

例として、メールサーバーをホストするためにDNSに有効なポインタ(PTR)レコードを設定する必要があることが挙げられます。通常、このPTRレコードはパブリックIPの運営者、つまりインターネットサービスプロバイダー(ISP)によって構成されます。インターネット接続に関連付けられたパブリックIPアドレスに有効なPTRレコードが存在することを確認することが不可欠です。サーバーの完全修飾ドメイン名(FQDN)は、パブリックIPアドレスに対して行われたPTRルックアップの結果と一致しなければなりません。この一致を達成できないと、電子メールメッセージの配信にリスクが生じます。インターネットサービスプロバイダーがPTRレコードを設定できない場合、回避策が不可欠になります。このセクションでは、そのような回避策の実施に関する潜在的な戦略を詳述します。

可能な解決策の一つは、GREトンネルを導入することです。一般的なルーティングのカプセル化(GRE)は、インターネットプロトコルネットワーク上での仮想のポイントツーポイントまたはポイントツーマルチポイントリンク内にさまざまなネットワーク層プロトコルをカプセル化するために設計されたトンネリングプロトコルです。

GREの選択は意図的です。エンドポイント間のトラフィックを暗号化することはありませんが、GREは軽量で多用途であり、メールやウェブトラフィックのルーティングに適しています。

pfSenseファイアウォールとコスト効率の良い仮想プライベートサーバー(VPS)間で効率的にトラフィックをルーティングするためにGREトンネルを確立します。VPSのパブリックIPv4アドレスを活用して、着信トラフィックを管理します。このトラフィックは、Proxmox上で稼働するサーバーVMにGREトンネルを通じて輸送されます。

要するに、以下のコンポーネントを設定する必要があります。

  1. ネットワークとGREの設定を含む(Debian)LinuxのVPSを設定します。
  2. VPS上にIPTablesファイアウォールルールを設定します。
  3. pfSenseでGREとルールを設定します。
  4. ISPConfigサーバーを(Debian)Linux上で実行するVMを設定し、メールおよびウェブサーバーのホスティングを担当します。

5.1.1. VPSプロバイダーの選択

要件

仮想プライベートサーバー(VPS)プロバイダーを選択する際には、特定の要件に合ったものを選ぶことが重要です。パブリックIPv4アドレスの使用を許可し、PTRレコードの設定を許可し、無制限のトラフィックを提供するプロバイダーを探してください。

この記事の目的のために、StratoがVPSプロバイダーとして選ばれました。Stratoは評判の良いウェブホスティング会社で、バーチャルプライベートサーバー(VPS)を含むさまざまなソリューションを提供しています。利用可能な製品の中で、VPS LINUX MINI VC1-1とVC1-2は適切な選択肢です。執筆時点でのVC1-1の月額費用はわずか€1です。このミニVPSは指定された要件を満たしていますが、著者はさまざまな他のサービスにもこのVPSを利用するつもりなので、さらなる柔軟性のためにVC1-2が選ばれました。

利用可能性

VC1-1およびVC1-2のVPSプランは、Stratoのオランダとドイツのウェブサイトで利用可能です。スペインのウェブサイトも存在しますが、ミニVPSカテゴリが掲載されているかどうかは不明です。特に、StratoのUKおよびフランスのウェブサイトには、仮想専用サーバーオプションが提供されていないようです。この記事の著者はIonosの経験はありませんが、Strato UKの代替として検討する価値があるコスト効果の高い選択肢の一つのようです。

Strato VPS (VC1-2) の請求情報

ストラトは四半期ごとに請求し、VC1-2 VPSの初回請求書は6ユーロです。請求サイクルは1年で、年間総コストは24ユーロ VAT除外です。追加のセットアップ費用は発生しません。

ストラトの注文プロセス

注文プロセス中に、顧客アカウントが作成されます。このステップが完了すると、注文は処理に進み、数時間かかることがあります。その後、仮想プライベートサーバー(VPS)が準備され、「ベア」状態で到着します。この段階で、オペレーティングシステムをインストールできます。オペレーティングシステムのセットアップが完了すると、ルートユーザーがログインできます。Stratoは、安全な接続のために証明書を使用したSSHアクセスを義務付けており、これは合理的なセキュリティ対策です。

これは、LinuxでVPS用のSSH証明書を作成する方法です。

1. ターミナルを開いて、次のコマンドを入力してください:

ssh-keygen -t ecdsa

2. キーを保存するファイル名を入力します。例えば「id_strato_vps」と入力し、パスフレーズが要求されたらEnterを押してください。
3. 生成された公開鍵をVPSにコピーします。これはステージングプロセスで重要なステップです。
4. 最後に、以下のコマンドを使用してVPSにログインします:

ssh [email  -i $HOME/.ssh/id_strato_vps

接続を確立するために、サーバー名とキーを必要に応じて調整してください。

ご注意ください:サーバーのために選択されたドメインに対応するDNS Aレコードを設定することが不可欠です。AレコードはVPSのパブリックIPv4アドレスを指す必要があります。これにより、正しいドメイン解決が保証され、ユーザーは指定されたドメイン名を使用してサーバーにアクセスできるようになります。また、もう1つの重要なステップはPTRレコードを設定することです。ほとんどの場合、これはVPSプロバイダーの管理パネルで行う必要があります。

5.1.2. カスタマイズ (VPS)

VPSには特定のカスタマイズが必要です。

5.1.2.1. Strato VPSのカスタマイズ

パッケージ

必要なパッケージをインストールしてください。

apt update && apt -y install \
bzip2 \
cron \
dnsutils \
fail2ban \
iproute2 \
iptables \
mc \
nano \
net-tools \
unzip \
whois

クラウド初期化の削除

システム起動時にクラウドインスタンスの初期化を自動化するソフトウェアパッケージであるCloud-initは、私たちの目的には不要であるため、削除することをお勧めします。

touch /etc/cloud/cloud-init.disabled
dpkg-reconfigure cloud-init
apt-get purge cloud-init
rm -rf /etc/cloud/ && rm -rf /var/lib/cloud/

必須ではありませんが、再起動することをお勧めします。

reboot

ネットプラン

ネットワーク設定をNetplanを介して構成します。具体的には、デフォルトファイル「/etc/netplan/50-cloud-init.yaml」を編集します。このファイルはGREトンネルの設定を含むように修正されます。

network:
    ethernets:
        all:
            dhcp4: true
            dhcp6: true
            match:
                name: en*
    version: 2

Cloud-initに関連する警告は無視して構いません。なぜなら、それは削除されたからです。

次に、以下の例を使用してGREトンネルを追加します:

network:
    ethernets:
        all:
            dhcp4: true
            dhcp6: true
            match:
                name: en*
    tunnels:
        gre1:
        mode: gre
        local: 217.nnn.nnn.27
        remote: 77.nnn.nnn.155
        addresses: [172.30.250.2/29]
version: 2

IPv4をローカルとリモートの両方で適切に調整してください。ここで、「ローカル」はVPSを指し、「リモート」はトンネルの他の接続点(例:ファイアウォール)を指し、アドレスはVPS側のGREトンネルの内部アドレスを示します。トンネルの反対側(例:ファイアウォール)の内部アドレスとして172.30.250.1/29を使用してください。

ファイアウォールルール

トラフィックルーティングを円滑にするために、VPSの起動プロセス中に特定のファイアウォールルールを設定する必要があります。これはファイアウォールスクリプトを通じて実現できます。Githubからfwall.shスクリプトをダウンロードし、/opt/scriptsに置いてください。スクリプトが実行可能であることを確認してください。

mkdir /opt
mkdir /opt/scripts
cd /opt/scripts
wget "https://raw.githubusercontent.com/bhenstra/LiFiWall-Scripts/main/IPTables%20Forwarding%20GRE/fwall.sh"
nano fwall.sh
chmod +x fwall.sh

少なくとも変数「WL_SSH」、「WL_GRE」、および「INT_PUB」を調整してください。変数は自己説明的であり、それぞれの前に「BEGIN SETTINGS」と「END SETTINGS」ブロック内に簡単なコメントがあります。

最後に、スクリプトをルートのcrontabに追加します。

crontab -e

次の行を追加してください:

@reboot /opt/scripts/fwall.sh > /dev/null 2>&1

これらの設定が整ったことで、VPSはトラフィックを効果的に受け入れ、ルーティングする準備が整いました。

5.1.3. pfSenseの設定

私たちのGREトンネルの反対側にはpfSenseルーター/ファイアウォールがあります。この接続を確立するために、VPSのパブリックIPv4にリンクされたGREインターフェースを設定する必要があります。

「インターフェース」>「割り当て」の下にある「GRE」のオプションを通じて、必要なGREインターフェースを追加し、設定してください。

  1. 親インターフェース:WANインターフェースを選択します(例:W1_0001_ISP1)
  2. リモートアドレス:VPSの公開アドレス
  3. ローカルIPv4トンネルアドレス: 172.30.250.1
  4. リモートIPv4トンネルアドレス: 172.30.250.2
  5. CIDR形式のサブネット: /29
  6. 「スタティックルートを追加する」オプションをチェックしてください
  7. 行政的な参考のための説明を入力してください。
  8. 設定を保存して適用します。

GREトンネルをインターフェースとして表現します(理由はファイアウォールルールを適用できるようにするためです)。

  1. 「インターフェース」をクリックして、「課題」を選択してください。
  2. 「利用可能なネットワークポート」でGREトンネルを選択し、「追加」をクリックします。
  3. 変更を保存して適用します。
  4. 新しいインターフェースをクリックして編集します。
  5. インターフェースを有効にする
  6. 「W1_0001_GRE0」という説明を定義してください。
  7. MTUを1476に設定してください。

変更を保存して適用してください。

WANインターフェースには必須ではありませんが、新しいGREトンネルのファイアウォールルールを定義します。まず、受け入れられたトラフィックを表すポートエイリアスを作成します。

「ファイアウォール」>「エイリアス」>「ポート」をクリックします。「追加」をクリックします。

  1. 名前: Ports_Ingress_GRE_TCP
  2. 説明:GREのための受け入れられたTCPポート
  3. タイプ: ポート
  4. 以下のポートを追加してください。一行ごとに;「ポートを追加」をクリックして行を追加してください:
    • 25
    • 80
    • 443
    • 465
    • 587
    • 993

変更を保存して適用

「ファイアウォール」>「ルール」>「W1_0001_GRE0」をクリックして、ICMPトラフィックを受け入れるルールを追加します。「追加」をクリックして、次のルールを作成します。

  1. アクション:パス
  2. インターフェース: "W1_0001_GRE0"
  3. アドレスファミリー: IPv4
  4. プロトコル:ICMP
  5. ICMPサブタイプ:

    • エコー要求
    • トレースルート
  6. ソース: W1_0001_GRE0 サブネット
  7. 宛先: W1_0001_GRE0 サブネット
  8. 説明:GRE0サブネットからのICMPを許可する

変更を保存して適用

次のNATルールにポートエイリアスを適用するために、「ファイアウォール」>「NAT」をクリックします。「追加」をクリックして、次のNATルールを作成します。

  1. インターフェース: W1_0001_GRE0
  2. アドレスファミリー: IPv4
  3. プロトコル: TCP
  4. 宛先: W1_0001_GRE0 アドレス
  5. 宛先ポート範囲:
    • 港から:その他
    • カスタム: ポート・インバウンド・GRE・TCP
  6. リダイレクトIP: アドレスまたはエイリアス: 172.31.252.103
  7. リダイレクトターゲットポート:

    • ポート:その他
    • カスタム: ポート・インバウンド・GRE・TCP
  8. 説明:GREを介して進入トラフィックを許可する

変更を保存して適用

注: IPv4 172.31.252.103 は、DMZ内でISPConfigサーバーを実行している我々のVMを表しています。必要に応じて別のIPv4を選んでください。

5.2. ISPConfigのインストール

ISPConfig、複数のサーバーを管理するためのオープンソースのLinuxパネルは、ProxmoxのLinuxコンテナ内にインストールされます。必要に応じてIPv4(例:172.31.252.103)とFQDN(例:s3.gigabitjes.nl)をカスタマイズしてください。

5.2.1. コンテナテンプレートのダウンロード

「4.5.4.2. CTテンプレート」を参照し、「debian-12-standard」をダウンロードしてください。このタスクは数秒かかります。

CTテンプレートのデフォルトの場所は、PVEの「ローカル」ストレージオプションの「CTテンプレート」の下にあります。

5.2.2. コンテナを作成する

  • 「CTを作成」をクリックして新しいコンテナを作成します。
  • 必要な設定を入力してください。

    一般
  1. CT IDを入力してください: 103
  2. ホスト名を入力してください: s3
  3. 希望するルートパスワードを入力して確認してください
  4. 次へクリックしてください

    テンプレート

  5. テンプレートを選択してください: debian-12-standard_12.2-1_amd64.tar.zst
  6. 次へクリック

    ディスク

  7. ストレージを選択してください(私たちの場合は「ストレージ」です)
  8. ディスクサイズを設定します (GB): 例 "200"
  9. 次へをクリック

    CPU

  10. コアを設定します: 例えば「2」
  11. 次へクリック

    メモリ

  12. メモリの量 (MiB) を設定してください: 例えば「4096」
  13. スワップを設定 (MiB): 例: "8192"
  14. 次へクリック

    ネットワーク

  15. 名前と橋はそのままにしておいてください
  16. VLANタグを設定する: 252
  17. IPv4/CIDRを入力してください: 172.31.252.103/24
  18. ゲートウェイIPv4を入力してください: 172.31.252.1
  19. 次へクリック

    DNS

  20. DNSドメインを入力してください:例 "gigabitjes.nl"
  21. DNSサーバーを入力してください: 172.31.252.1
  22. 次へをクリック

    確認

  23. オプションを確認し、完了をクリックして確認してください。
  • 新しいコンテナを選択し、「コンソール」をクリックしてください。
  • 「開始」をクリックしてコンテナを起動します。

5.2.3. 完璧なサーバー自動ISPConfig 3インストール

以下の手順は、Debian 10 から Debian 12、Ubuntu 20.04 および Ubuntu 22.04 の Perfect Server 自動 ISPConfig 3 インストールチュートリアルに基づいています。

コンテナ(s3)をクリックして「コンソール」を選択します。ルートとしてログインします。

5.2.3.1. apt ソースの更新

apt sources.list ファイルを編集してください

nano /etc/sources.list

以下のリストを反映するために:

deb http://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org bookworm-security main contrib
deb http://deb.debian.org/debian bookworm-backports main contrib 

5.2.3.2. パッケージ :

私たちは前進するにあたり、段落5.2.3.2.2で概説された手順に従って、重要なソフトウェアパッケージをシームレスにアップグレードし、システムのセキュリティを維持し、全体のパフォーマンスを最適化します。定期的なパッケージのアップグレードの重要性を強調し、この実践はシステムのセキュリティと最適なパフォーマンスを維持するために極めて重要です。

5.2.3.2.1. カーネル

コンテナは軽量で、ハイパーバイザーのカーネルを使用します。コンテナのために新しいカーネルをインストールする必要はありません。次のステップをスキップし、段落5.2.3.2.2に進んでください。パッケージのアップグレード。

仮想マシンを使用する場合は、最新のクラウドカーネルをインストールすることを検討してください。次のコマンドで最新のLinuxクラウドカーネルを調べてください。

apt update && apt-cache search linux-image | grep "cloud"

最新バージョンを選んでインストールしてください。この記事を書いている時点では、「linux-image-6.5.0-0.deb12.4-cloud-amd64」でした。

apt -y install linux-image-6.5.0-0.deb12.4-cloud-amd64

5.2.3.2.2. パッケージのアップグレード

apt update && apt -y upgrade

5.2.3.3. コンテナを再起動します。

reboot

5.2.3.4. 自動インストーラーを実行する

再起動後にrootとしてログインします。以下の手順は、元のチュートリアルで説明されているものとほぼ同じです。違いは、ホスト名とドメインの設定方法、およびコンテナ内でのクォータが使用できないという点です。「--no-quota」がインストールコマンドに追加されていることに注意してください。

これで自動インストーラーを実行できます。基本セットアップには、以下のソフトウェアパッケージ(およびその依存関係)が含まれています:Apache2、PHP(バージョン5.6 - 8.0)、MariaDB、Postfix、Dovecot、Rspamd、BIND、Jailkit、Roundcube、PHPMyAdmin、Mailman、Webalizer、AWStats、およびGoAccess。特定の機能を使用しない、または追加のサービスをインストールしないことを簡単に選択することができ、インストーラーに引数を渡すことで実現できます。コマンドラインオプションについては、オリジナルのチュートリアルの第6章を参照してください。

ISPConfigをApacheウェブサーバー(5.2.3.4.1)またはNginxウェブサーバー(5.2.3.4.2)で選択してください。

5.2.3.4.1. ApacheウェブサーバーにISPConfigをインストールする :

引数を使ってスクリプトを実行できるようになりました。例えば、ApacheウェブサーバーとパッシブFTP用のポート範囲、そして無人アップグレードを含む通常のインストールを行いたい場合は、次のように実行します:

wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades --no-quota

次のステップは「5.2.3.4.3. 自動インストーラーの実行」に記載されています。

5.2.3.4.2. NginxウェブサーバーでISPConfigをインストールする

これで、引数付きでスクリプトを実行できます。たとえば、Nginxウェブサーバーを使用した通常のインストールと、パッシブFTP用のポート範囲 + 自動アップグレードを希望する場合は、次のように実行します:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210 --unattended-upgrades --no-quota

次のステップは「5.2.3.4.3. 自動インストーラーの実行」に記載されています。

5.2.3.4.3. 自動インストーラーの実行 :

しばらくして、完全なサーバーを再構成するように求められたら、'yes'と入力してエンターキーを押してインストーラーを開始してください。

WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue:

完了したら、ISPConfigの管理者パスワードとMySQLのルートパスワードをメモしておいてください。

[INFO] Your ISPConfig admin password is: 8ZxSEWakDgSLXv
[INFO] Your MySQL root password is: EhFrU3KYVLPVBbcJr2Js

5.2.3.5. ファイアウォールの設定

ISPConfig(Web)UIを通じてファイアウォールを設定してください。ポート8080にアクセスするには、VPSとpfSenseファイアウォールの両方でポートを許可するか、pfSenseにホストオーバーライドを追加してください。この記事に基づき、後者を選択します。

pfSenseのWebUIを開き、「サービス」>「DNSフォワーダー」をクリックします。「ホストオーバーライド」までスクロールし、「追加」をクリックします。ホスト名(例:「s3」)、ドメイン(例:「gigabitjes.nl」)、IPv4アドレス(例:「172.31.252.103」)を入力します。説明(例:「内部ホスティングサーバーs3」)を入力します。保存して変更を適用します。

FQDNまたはIPv4(例:"https://s3.gigabitjes.nl:8080"または"https://172.31.252.103:8080")を入力してください。「証明書は信頼できません」という警告を無視できます。詳細をクリックして、ウェブサイトに進んでください。

ISPConfigのUIにログインし、「システム」>「ファイアウォール」に移動します。次に「新しいファイアウォールレコードを追加」をクリックします。

通常の設定では、開くべきポートは次のとおりです:

  • TCP: 20,21,22,25,80,443,40110:40210,110,143,465,587,993,995,53,8080,8081
  • UDP: 53

詳細については、元のチュートリアルの第五章をご覧ください。

5.2.3.6. さらなる読書

高度なオプション、役立つヒント(最終化の下)、およびメール設定に関する重要な注意事項(rDNS、SPF、DKIM)については、元のチュートリアルの第6章と第7章を参照してください。分割DNSのため、DNSの考慮事項は重要であり、これによりLAN内のホスティングサーバーのDNS解決に影響を与えます。

ISPConfig 3ユーザーマニュアルを参照してください。これはわずか5ユーロ(VAT除外)で入手できます。

5.3. ウェブサイトおよびメールドメイン

「サイト」オプションを使用すればウェブサイトを簡単に追加でき、「メール」オプションを通じてメールドメインも組み込むことができます。このプロセスは簡単で、ホスティングパネルから期待される直感的な機能に合致しています。前の段落に記載したマニュアルに加えて、素晴らしいコミュニティサポートも利用できます。

ISPConfigはDNSをサポートしていますが、ドメインは通常、レジストラやホスティングプロバイダーなどのDNSマネージャーを介してISPConfigの外で管理されることを前提としています。

そのようなドメインを使用するには、DNSレコードがVPSのパブリックIPv4を指す必要があります。

5.3.1. AおよびCNAMEレコードの簡単な説明

ウェブサイトのAレコードの例は次のとおりです:

example.com. 86400 IN A 93.184.216.34

誰かが "example.com" にアクセスすると、IPv4 "83.184.216.34" が解決されます。 "example.com." を自分のドメインに、 "93.184.216.34" をあなたのVPSのIPv4に置き換えるだけです。

Aレコードに加えて、エイリアスとして機能するCNAMEレコードを扱うことも一般的です。たとえば、「www.example.com」のようなFQDNは「example.com」のエイリアスとして機能することがあります。このようなCNAMEレコードを設定しないと、訪問者が減少する可能性があります。

5.3.2. MXレコードの簡単な説明

メールドメインのMXレコードの例は次のとおりです:

example.com. 300 IN MX 0 mail.example.com.

誰かが例えば[email にメールを送ると、メールサーバーはそのメッセージをmail.example.comに配信しようとします。一方、ホストmail.example.comは有効なAレコードを必要とします。

この記事の文脈において、「example.com.」をメールドメインに置き換え、「mail.example.com.」をあなたのVPSのFQDNであるs3.gigabitjes.nlに置き換えてください。

5.3.3. SPF、DKIM、DMARCの簡単な説明

スパムは現代の問題です。スパムを軽減するためのいくつかの手法があります。こうした手法は必ず実装する必要があります。適切なポリシーを実装しないと、問題のあるメール配信が発生します。

適切なメール配信には、さまざまなDNSテキストレコード(TXT)が必要です。SPFレコードは重要で、VPSのFQDNまたは公開IPv4を許可された送信者として含める必要があります。DMARCとDKIMは他の2つの重要なプロトコルです。後者はISPConfigを介して簡単に有効にできます。有効にすると、該当するメールドメインの各外向きメッセージの本文とヘッダーにデジタル署名が添付されます。ISPConfigは、DNSに公開する必要がある要求されたDNSレコードを生成します(DNSレコードの公開は自動的なイベントではありません)。

DMARCは、受信MXゲートウェイに対してDKIMまたはSPFに従って検証できないすべての受信メッセージに対してどうすべきかを通知するポリシーを確立します。これには、検証されていないメールを破棄したり、隔離したりすることが含まれる場合があります。DMARCポリシーはDNSに公開され、メールシステムが拒否されたメッセージを報告できるメールアドレスを含むことがあります。これは、メッセージの配信を監視するのに役立つため、ドメインの運営者にとって価値があります。

詳細は以下の段落で簡潔に説明されています。 elaborationにいくつかの冗長性はありますが、さまざまな用語を用いてやや複雑なテーマを説明する目的のために役立っています。その間も簡潔さを保っています。

5.3.3.1. SPF(送信者ポリシーフレームワーク) :

SPFは送信者アドレスの偽造を防ぐための仕組みです。これはドメイン所有者が、自分のドメインを代表してメールを送信することを許可されたメールサーバーを指定できるようにします。

SPFレコードの例:

v=spf1 ip4:203.0.113.101 include:_spf.example.com -all

この例では、SPFレコードはメールがIPv4アドレス203.0.113.101から送信できることを示しており、_spf.example.comのSPFレコードを含んでいます。-allはハードフェイルを示しており、サーバーがSPFレコードにリストされていない場合、メールは拒否されることを意味します。

5.3.3.2. DKIM(ドメインキー識別メール): :

DKIMはメールにデジタル署名を追加し、受取人がメッセージが転送中に改ざんされていないこと、そして実際に主張されているドメインから送られてきたものであることを確認できるようにします。

例のDKIMレコード:

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxLXFhjjUrU4yEh28qOrSXrJAEi9YZ5zOZkx3WENrRIZ6jyBQT35gYWvDjM6TAgDgSpwCjtgmAwr6JuFTEPTXvmSUGuJrkSj9rgjrgE+HxHjYsPFJmlqlwI+ywOo5e3C5L8vJzWvl98ZAF/ZdD+XW+D/wRZKw1H7Sn5yiy2S/wIDAQAB

これはDKIMの公開鍵です。プライベートキーは送信メールに署名するために使用され、公開鍵はDNSに公開されます。セレクター(s=)は、特定の送信サービスに対して特定の鍵を識別するためにしばしば使用されます。

5.3.3.3. DMARC (ドメインベースのメッセージ認証、報告、適合性): :

DMARCは、SPFおよびDKIMの上に構築されており、メール送信者が自分のメールを認証し、認証試行に失敗したメールについて報告を要求する方法を提供します。

DMARCレコードの例:

v=DMARC1; p=quarantine; rua=mailto:[email ; ruf=mailto:[email ; sp=quarantine; adkim=s; aspf=s; fo=1

このDMARCレコードは、認証に失敗したメールを隔離し、集約および法医学的レポートをそれぞれ[email および[email に送信することを要求しています。adkimとaspfは、DKIMおよびSPFの厳密な整合性を指定しています。

例のドメイン、キー、およびメールアドレスを実際の情報に置き換えることを忘れないでください。また、DNSレコードが反映されるまで時間がかかる場合があるため、実装のテストと監視を行うことをお勧めします。

さらに読む: SIDN は、メールトラフィックを安全に保つためのさまざまなプロトコルについての情報豊富な記事を発表しました。

5.3.4. DNSレコードのクエリ

Linuxでは、`dig`コマンドを使用してDNSレコードをクエリすることができます。これは非常に便利です、なぜなら他のパーティによってどのように設定されたかを見ることができるからです。

例えば、Microsoftは多くのドキュメントでcontoso.comというドメインを使用しています。contosoドメインでクエリを実行することは、DNSレコードがどのように見えるかを学ぶのに役立つ実践です。

5.3.4.1. 例: contoso.com の A レコードをクエリする: :

dig A contoso.com.

結果は:

; <<>> DiG 9.19.17-1-Debian <<>> A contoso.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46943
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;contoso.com. IN A
;; ANSWER SECTION:
contoso.com. 3394 IN A 20.112.250.133
contoso.com. 3394 IN A 20.236.44.162
contoso.com. 3394 IN A 20.231.239.246
contoso.com. 3394 IN A 20.70.246.20
contoso.com. 3394 IN A 20.76.201.171
;; Query time: 0 msec
;; SERVER: 172.21.1.1#53(172.21.1.1) (UDP)
;; [..]

5.3.4.2. 例: www.contoso.comのCNAMEレコードの問い合わせ: :

dig cname www.contoso.com.

結果は:

; <<>> DiG 9.19.17-1-Debian <<>> cname www.contoso.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2164
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.contoso.com. IN CNAME
;; ANSWER SECTION:
www.contoso.com. 3600 IN CNAME contoso.com.
;; Query time: 24 msec
;; SERVER: 172.21.1.1#53(172.21.1.1) (UDP)
;; [..]

5.3.4.3. `grep`の組み込み :

我们可以通过将 `grep` 命令合并到 `dig` 命令中,轻松找到 contoso.com 的 SPF 记录。

dig TXT contoso.com | grep spf

結果は:

contoso.com. 3030 IN TXT "v=spf1 include:spf.protection.outlook.com -all"

5.3.4.4. 他のツールの使用 :

DNSレコードに関する研究を行うための他のツールもあります。

DNSdumpster.com

例として、ウェブサイトDNSdumpster.comがあります。DNSdumpster.comは、ドメインに関連するホストを発見できる無料のドメイン調査ツールです。攻撃者の視点から可視化されたホストを見つけることは、セキュリティ評価プロセスの重要な部分です。

MXToolbox.com

MXToolbox.comは、MXレコードの有効性を確認し、メールの問題を見つけるためのツールとして使用できます。

メールテスター.com

MXToolbox.comに関連しているのはMail-Tester.comです。このツールを使用すると、メールの配信をテストできます。これは、DKIM署名が機能しているかどうかを確認するための良いテストです。

6. 内部サービス

ITインフラの構成が進むにつれて、私たちは内部サービスに焦点を移します。

エンドユーザーをサポートするための重要な側面は、コンピュータとユーザーアカウントの集中管理です。Windows中心の環境を扱う場合、Active Directoryを導入することは論理的な選択になります。その代わりに、Microsoft Azure ADやMicrosoft 365を考慮することもできます。もう1つのオプションは、各コンピュータにエージェントを展開してリモート監視および管理(RMM)システムを実装することです。いくつかのシナリオでは、Microsoft 365とRMM管理の組み合わせが効果的であることが証明されるかもしれません。

これらの考慮事項は慎重な評価を必要とします。しかし、この記事の目的のために、私たちはドメインコントローラーを設定し、従来のWindows Serverから離れ、Samba DCを使ったシンプルなアプローチを選択します。

6.1. サンバ・ドメインコントローラー

従来、Windows Serverはドメインコントローラーとして機能し、ユーザー認証、DNS、DHCPサービスを管理します。小規模な環境では単一のドメインコントローラーで十分ですが、冗長性のために少なくとも2つは持つことが望ましいです。

SambaをActive Directoryドメインコントローラとして設定するには、Linuxターミナルでのコマンドライン作業が必要です。しかし、日々の管理は、リモートサーバー管理ツール(RSAT)がインストールされたWindows Proマシンから実行でき、Active Directoryユーザーとコンピュータ(dsa.msc)やグループポリシー管理コンソール(gpmc.msc)などのツールの使用を容易にします。これにより、グループポリシーの適用も可能です。

SambaWikiのドキュメントは、Debian Linux上にドメインコントローラーを設定するための包括的なガイダンスを提供しています。さらに、手動で管理されるディストリビューション固有のパッケージリストのセクションでは、インストールするDebianパッケージも掲載されています。

この一部のテキストは、SambaWiki [wiki.samba.org] の例に基づいて複製されています。SambaWiki の内容は CC-BY のもとで利用可能です。CC-BY では、変更を示すことが求められます。変更は、この記事で使用されているドメインに例のドメインを置き換えることから成ります。

SysVolのレプリケーションはSambaでは実装されていないことに注意してください。このため、双方向のSysVolレプリケーションをRSyncとUnisonを使用して設定する必要があります。

6.1.1. コンテナを作成する

コンテナを作成するには、段落5.2.2で説明されているプロセスに似た手順に従ってください。主な違いは、特権のないコンテナオプションのチェックを外すことです。

  • 「CTを作成」をクリックして、新しいコンテナを開始してください。
  • 必要な設定を入力してください。

    一般
  1. CT IDを入力してください: 201
  2. ホスト名を入力してください: sdc1
  3. 特権のないコンテナ: チェックを外す [これは重要です]
  4. 希望するルートパスワードを入力して確認してください
  5. 次へクリックしてください

    注:この場合、特権コンテナが使用されます。コンテナの外のリソースは変更可能です。この点が気に入らない場合は、コンテナではなくVMを選択する方が良いでしょう。

    テンプレート

  6. テンプレートを選択してください: debian-12-standard_12.2-1_amd64.tar.zst
  7. 次へクリック

    ディスク

  8. ストレージを選択してください(私たちの場合は「ストレージ」です)
  9. ディスクサイズを設定します (GB): 例 "48"
  10. 次へクリック

    CPU

  11. コアを設定します: 例えば「4」
  12. 次へクリック

    メモリ

  13. メモリの量を設定します(MiB):例:"8192"

    注:データベースの再パッキングプロセスには多くのRAMが必要なため、最初に十分なRAMを割り当ててください。

  14. スワップを設定 (MiB): 例: "8192"
  15. 次へクリック

    ネットワーク

  16. 名前と橋はそのままにしておいてください
  17. VLANタグを設定する: 16
  18. IPv4/CIDRを入力してください: 10.10.16.201/24
  19. ゲートウェイIPv4を入力してください: 10.10.16.1
  20. 次へクリック

    DNS

  21. DNSドメインを入力してください: 例「ad.lan.gigabitjes.nl」
  22. DNSサーバーを入力してください: 10.10.16.1
  23. 次へをクリック

    確認

  24. オプションを確認し、完了をクリックして確認してください。
  • 新しいコンテナを選択し、「コンソール」をクリックしてください。
  • 「開始」をクリックしてコンテナを起動します。

6.1.2. 準備および確認

それをクリックして(sdc1)「コンソール」を選択することでコンテナにアクセスします。rootとしてログインしてください。

6.1.2.1. apt ソースの更新 :

apt sources.listファイルを編集する

nano /etc/apt/sources.list

以下のリストを反映するように更新してください:

deb http://deb.debian.org/debian bookworm main contrib non-free
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
deb http://security.debian.org bookworm-security main contrib non-free
deb http://deb.debian.org/debian bookworm-backports main contrib non-free

6.1.2.2. パッケージ

コンテナの場合、新しいカーネルをインストールする必要はありません。カーネルに関連する手順をスキップして、次のステップに進んでください。

仮想マシンを使用する場合は、最新のクラウドカーネルをインストールすることを検討してください。次のコマンドで最新のLinuxクラウドカーネルを調べてください。

apt update && apt-cache search linux-image | grep "cloud"

最新バージョンを選んでインストールしてください。この記事を書いている時点では、「linux-image-6.5.0-0.deb12.4-cloud-amd64」でした。

apt -y install linux-image-6.5.0-0.deb12.4-cloud-amd64

6.1.2.2.2.2. パッケージのアップグレード

apt update && apt -y upgrade

6.1.2.3. マスク systemd-logind

systemctl mask systemd-logind

これは遅い再起動とログインに関するものです。再起動コマンドを実行した後に表示されるdbusに関するエラーメッセージは無視してください。それをするのは安全です。

6.1.2.4. コンテナを再起動します。

reboot

6.1.2.4. 設定を確認する :

ルートとしてログインし、コンテナ設定を確認してください。

再起動後、rootとしてログインし、基本的なコンテナ設定を確認します。コンソールではなく、ProxmoxのウェブUIを介してエラーを修正してください。

6.1.2.4.1. ホスト名とネットワーク設定の確認

hostname && hostname -f

これはホスト名(例:"sdc1")と、サフィックスを持つ完全修飾ドメイン名(FQDN)(例:"sdc1.ad.lan.gigabitjes.nl")を反映する必要があります。

sdc1
sdc1.ad.lan.gigabitjes.nl

6.1.2.4.2. ネットワーク設定を確認する

ip a

これは、IPv4アドレスとCIDRを表示する必要があります。例えば:

[..]
2: eth0@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
 link/ether bc:24:11:0c:56:f2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
 inet 10.10.16.201/24 brd 10.10.16.255 scope global eth0
 valid_lft forever preferred_lft forever
[..]

6.1.2.4.3. デフォルトルートを確認する

ip route show

これは、次のようなデフォルトゲートウェイを反映するべきです。:

default via 10.10.16.1 dev eth0 onlink 
10.10.16.0/24 dev eth0 proto kernel scope link src 10.10.16.201

6.1.2.4.4. DNSを確認する

resolv.confファイルの内容を確認してください:

cat /etc/resolv.conf

これには検索ドメインとネームサーバー:をリストする必要があります。

[..]
search ad.lan.gigabitjes.nl
nameserver 10.10.16.1
[..]

DNS 解決が機能することを確認してください:

dig +short contoso.com.

これには1つ以上のIPv4アドレスがリストされるべきです。

20.70.246.20
20.76.201.171
20.112.250.133
20.236.44.162
20.231.239.246

解像度を再確認してください。非常に重要です。

6.1.3. Sambaのインストールと設定

次の手順は、Sambaをアクティブディレクトリドメインコントローラとして設定することに基づいています。

6.1.3.1. 必要なパッケージのインストール :

apt update && apt -t bookworm-backports -y install acl attr samba winbind libpam-winbind libnss-winbind krb5-config krb5-user dnsutils python3-setproctitle net-tools smbclient

パッケージの構成中に、Kerberosに関する詳細を入力するように求められたら、Enterキーを押してください。Samba ADのプロビジョニング後、Kerberosの構成ファイルは上書きされます。

[..]
Package configuration: Configuring Kerberos Authentication

6.1.3.2. Samba ADのプロビジョニング :

インタラクティブなプロビジョニングプロセスを開始します:

samba-tool domain provision --use-rfc2307 --interactive

リルム、ドメイン、サーバーロール、DNSバックエンド、DNSフォワーダーのためにエンターを押してください。パスワードを入力し、確認してください。

Realm: AD.LAN.GIGABITJES.NL
Domain: AD
Server Role: dc
DNS backend: SAMBA_INTERNAL
DNS forwarder IP address: 10.10.16.1
Administrator password: $trongPas5w0rd!
Retype password

このプロセスは数秒から数分かかるはずです。

このプロセスは数秒から数分かかるはずです。もしそれ以上(数時間)かかる場合は、データベースの再パッキング中にRAMの利用可能性に問題があるかもしれません。その場合は、コンテナを削除し、より多くのRAMを追加し、理想的にはより多くのCPUを追加してからやり直してください。

6.1.3.3. Kerberosの設定 :

生成された設定ファイルを既存のファイルの上にコピーしてください:

cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

6.1.3.4. サンバサービスを開始します :

次のコマンドを実行してください:

systemctl enable samba-ad-dc
systemctl start samba-ad-dc

いくつかの必要なプロセスが実行されない可能性があります。コンテナを再起動してください:

reboot

6.1.3.5. DNS (pfSense) :

DNS フォワーディングのために、ドメインへのクエリがドメインコントローラーに戻るようにしてください。pfSense にドメインオーバーライドを追加します:

  1. pfSenseを開く
  2. 「サービス」をクリック > 「DNSリゾルバー」をクリックしてください
  3. 下にスクロールして、「追加」をクリックして以下のドメインオーバーライドを追加してください。
    • ドメイン: ad.lan.gigabitjes.nl
    • IPアドレス: 10.10.16.201
    • 説明:アクティブ ディレクトリ
  4. 変更を保存して適用

逆引きゾーンのためにもドメインオーバーライドエントリを追加します:

  1. 「サービス」をクリック > 「DNSリゾルバー」をクリック
  2. 下にスクロールして、「追加」をクリックして以下のドメインオーバーライドを追加してください。
    • ドメイン: 16.10.10.in-addr.arpa
    • IPアドレス: 10.10.16.201
    • 説明: アクティブディレクトリ - リバースゾーンルックアップ
  3. 変更を保存して適用

pfSenseでオフィスLAN(L1_0032_OFF1)のDHCPにドメイン名とドメイン検索リストを設定することも良いアイデアです。

  1. 「サービス」をクリック > 「DHCPサーバー」をクリック
  2. 「L1_0032_OFF1」をクリックしてください。
  3. 「その他のDHCPオプション」セクションまでスクロールしてください。
  4. 「ドメイン名」オプションに以下を入力してください:
    ad.lan.gigabitjes.nl
  5. 「ドメイン検索リスト」オプションに以下を入力してください:
    lan.gigabitjes.nl
  6. 変更を保存して適用

この構成は、異なるドメインサフィックスに関連付けられたホストがあるシナリオにとって有益であり、さまざまなサブドメイン間でリソースにアクセスするプロセスを効率化します。

6.1.3.6. DNS(ドメイン コントローラー) :

新しいドメインコントローラーのコンソールにログインして、逆引きゾーンとポインターレコードを追加します。

例では、「10.10.16.0/24」サブネットを使用し、IPv4アドレスのオクテットを逆にし、第四オクテットは使用しません。サフィックスは常に「.in-addr.arpa.」です。

6.1.3.6.1. 逆ゾーンを作成する:

samba-tool dns zonecreate sdc1 16.10.10.in-addr.arpa -U Administrator

結果 :

Password for [AD\Administrator]:
Zone 16.10.10.in-addr.arpa created successfully

6.1.3.6.2. ポインターレコード (PTR) を追加する:

samba-tool dns add sdc1 16.10.10.in-addr.arpa 201 PTR sdc1.ad.lan.gigabitjes.nl -U Administrator

結果 :

Password for [AD\Administrator]:
Record added successfully

6.1.4. NTPの設定

コンテナはホストシステムの時計を共有します。コンテナ内でntpdを実行する必要はありません。

NTPデーモンを削除してください:

apt -y remove --purge systemd-timesyncd chrony ntp

正確な時刻同期は非常に重要です。ハイパーバイザー(ホスト)とpfSenseファイアウォールでNTPが正しく動作していることを確認してください。できれば同じNTPソースを設定してください。

6.1.5. 新しいアクティブディレクトリドメインコントローラーのテスト

新しいドメインコントローラーのコンソールにログインして、テストを実行し、すべてが期待通りに機能していることを確認してください。

6.1.5.1. シェアの一覧: :

smbclient -L localhost -N

結果 :

Anonymous login successful
Sharename Type Comment
 --------- ---- -------
 sysvol Disk 
 netlogon Disk 
 IPC$ IPC IPC Service (Samba 4.19.3-Debian)
SMB1 disabled -- no workgroup available

6.1.5.2. 認証を確認する:

smbclient //localhost/netlogon -UAdministrator -c 'ls'

結果 :

Password for [AD\Administrator]:
 .  D 0 Sun Jan 7 21:00:46 2024
 .. D 0 Sun Jan 7 21:00:46 2024
50331648 blocks of size 1024. 49794560 blocks available

6.1.5.3. DNSを確認する :

堅牢で効率的なドメインネームシステム(DNS)は欠かせません。

6.1.5.3.1. ドメイン内のtcpベースの_ldap SRVレコードをクエリします:

host -t SRV _ldap._tcp.ad.lan.gigabitjes.nl.

結果 :

_ldap._tcp.ad.lan.gigabitjes.nl has SRV record 0 100 389 sdc1.ad.lan.gigabitjes.nl.

`host`の代わりに`dig`コマンドも使用できます。

dig SRV _ldap._tcp.ad.lan.gigabitjes.nl.

結果 :

; <<>> DiG 9.18.19-1~deb12u1-Debian <<>> SRV _ldap._tcp.ad.lan.gigabitjes.nl.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7431
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_ldap._tcp.ad.lan.gigabitjes.nl. IN SRV
;; ANSWER SECTION:
_ldap._tcp.ad.lan.gigabitjes.nl. 312 IN SRV 0 100 389 sdc1.ad.lan.gigabitjes.nl.
;; Query time: 0 msec
;; SERVER: 10.10.16.1#53(10.10.16.1) (UDP)
;; WHEN: Mon Jan 08 20:33:02 UTC 2024
;; MSG SIZE rcvd: 105

6.1.5.3.2. ドメイン内のudpベースの_kerberos SRVリソースレコードをクエリします:

host -t SRV _kerberos._udp.ad.lan.gigabitjes.nl.

結果 :

_kerberos._udp.ad.lan.gigabitjes.nl has SRV record 0 100 88 sdc1.ad.lan.gigabitjes.nl.

6.1.5.3.3. ドメインコントローラーのAレコードを問い合わせる:

host -t A sdc1.ad.lan.gigabitjes.nl.

結果 :

sdc1.ad.lan.gigabitjes.nl has address 10.10.16.201

6.1.5.3.4. ドメインコントローラーのPTRレコードを問い合わせる

host -t PTR 10.10.16.201

結果 :

201.16.10.10.in-addr.arpa domain name pointer sdc1.ad.lan.gigabitjes.nl.

これは、逆引きゾーン (6.1.3.5) のオーバーライドエントリを追加したため、期待通りに動作します。

6.1.5.3.5. Kerberosの確認:

klist

結果 :

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email 
Valid starting Expires Service principal
01/07/24 21:34:31 01/08/24 07:34:31 krbtgt/[email 
 renew until 01/08/24 21:34:24

6.1.6. 既存のActive DirectoryにSamba DCを参加させる

今後の文書改訂では、概説されたプロセスが組み込まれます。現時点では、詳細な説明は提供されていません。

6.1.6.1. Samba ADのプロビジョニング :

セカンダリドメインコントローラーをセットアップすることを推奨します。その手順は前の段落に概説されているものと似ており、SambaWikiの「既存のActive DirectoryにSamba DCを参加させる」に詳細が記載されています。

6.1.6.2. SysVol 複製 :

SambaWikiのSysVol複製(DFS-R)の下で説明されているように、SysVolレプリケーションに特に注意を払ってください。

6.2. ファイルサーバー

ファイル管理が私たちの環境において重要な役割を果たしていることを考慮すると、従来のファイルサーバーは不可欠です。Microsoft 365やGoogle Workspace、NextCloudやownCloudなどの自己ホスティングの代替手段へと現代的なシフトがあるにもかかわらず、この記事はTrueNASとSambaの選択に焦点を絞っています。OpenMediaVault(OMV)も検討していますが、Active Directoryの公式サポートがないため、私たちの要件には不十分です。

簡潔さを保ち、私たちのセットアップのリーンな原則に沿うために、SambaはTrueNASよりも好ましい選択として浮上します。

ファイルサーバーが運用開始されたら、我々の注意は次の章「ユーザーとコンピュータ」に移ります。最初のステップは、SambaベースのActive DirectoryにWindowsコンピュータを統合し、ファイル共有の複雑さをさらに掘り下げることです。

前のセクションではコンテナを使用しました。代わりに、ファイルサーバーのためにVMを作成します。次に、ISOイメージからDebian Linuxをインストールします。最後に、Sambaをインストールし、それをドメイン参加型ファイルサーバーとしてプロビジョニングします。

6.2.1. VMを作成する

VMを実行することは、共通の目的を持ちながらもコンテナを実行することとは異なります。重要な違いは、テンプレートの代わりにISOファイルを使用することです。必要なISOファイルを取得することから始めましょう。

6.2.1.1. Debian NetInst ISOのダウンロード :

まず、必要なISOファイルのURLを特定します:

  1. https://www.debian.org/distrib/netinstに移動してください。
  2. amd64を右クリックして「リンクアドレスをコピー」をクリックします(スクリーンショットを参照)。

次に、URLをProxmoxに貼り付けます:

  1. ローカルストレージにアクセスする
  2. 「ISOイメージ」へ移動します
  3. 「URLからダウンロード」を選択してください
  4. URLフィールドにURLを貼り付けます。
  5. 「クエリURL」をクリックしてください
  6. 最後に、'ダウンロード'を選択します

6.2.1.2. VMを作成する :

仮想マシンを作成しましょう:

  • 『VMを作成』をクリックしてください。
  • 一般的な :

    • VM ID: 301
    • 名前: file1
    • 「次」をクリックする
  • OS :

    • ISOイメージを選択してください: debian-xx.y.z-amd64-netinst.iso
    • 「次」をクリックする
  • システム :

    • SCSIコントローラー: VirtIO SCSI
    • 「Qemu Agent」のチェックボックスをチェックしてください
    • 「次」をクリックする
  • ディスク :

    • ストレージ: ストレージ
    • ディスクサイズ (GiB): 例えば、640
    • キャッシュ:書き戻し
    • 「次」をクリックする
  • CPU :

    • ソケット: 1
    • コア: 4
    • 「次」をクリックする
  • 記憶 :

    • メモリ(MiB):2048
    • 最小メモリ(MiB):2048
    • 「次」をクリックする
  • ネットワーク :

    • ブリッジ: vmbr0
    • VLAN タグ: 16
    • モデル:Intel E1000(「virtio」ではなく、動作しません)
    • 「次へ」をクリックしてください
  • 確認する

    • レビュー
    • 「終了」をクリックする

仮想マシンが作成されている間、しばらくお待ちください。

6.2.1.3. ISOからDebianをインストールする :

VMを起動します:

  1. リストから「301 (ファイル1)」を選択してください。
  2. 「コンソール」を選択します
  3. 今すぐ始めるをクリックしてください

インストールプロセス:

仮定として、あなたが以下の手順を実行するためにEnterを押すことになるとしています。この各ステップで明示的に述べるのは過剰かもしれません。矢印キーとTabキーを使用してオプションを選択してください。

  1. Debianインストーラー:

    Debianインストーラーが表示されたら「インストール」を選択してください。
  2. 言語を選択してください

    希望する言語を選択してください:
    例: 英語

  3. 位置を選択してください

    希望する国を選択してください:
    例: その他 > ヨーロッパ > オランダ

  4. ロケールを設定する

    システムロケールを選択してください:
    例: アメリカ合衆国

  5. キーボードを設定する

    キーボードを選択してください:
    例:アメリカ英語

  6. ネットワークを設定する

    • インストーラーは自動構成の失敗について不満を言うでしょう。これは、DHCPが有効になっていない(pfSenseで)ため、正しいです。
      続行するにはEnterキーを押してください...

    • デフォルトの選択は「ネットワークを手動で設定する」
      続行するにはEnterを押してください...

    • IPアドレス:
      10.10.16.101/24
    • ゲートウェイ :
    • 10.10.16.1

    • ネームサーバーアドレス (空白に注意):
      10.10.16.201 10.10.16.1

  7. ホスト名:

    • ホスト名: 
      ファイル1

  8. ドメイン名

    • ドメイン名:
      ad.lan.gigabitjes.nl

  9. ユーザーとパスワードを設定する

    • ルートパスワードを入力してください:
      ****************
    • ルートパスワードを再入力してください:
      ****************
    • 新しいユーザーのフルネームを入力してください:
      メンテナンスユーザー

    • アカウントのユーザー名を入力してください:
      メイン
    • 新しいユーザーのための新しいパスワードを入力してください:
      ****************
    • 同じパスワードを再入力してください [..]
      ****************
  10. ディスクをパーティション分割する

    • パーティショニング方法:
      ガイド - ユーザー全ディスク
    • ディスクパーティションを選択してください:
      SCSI [..] QEMU HARDDISK
    • パーティショニングスキーム:
      すべてのファイルが1つのパーティションに[..]
    • 概要:
      パーティションの作成を完了し、変更をディスクに書き込む
    • ディスクに変更を保存しますか?
      はい

  11. パッケージマネージャーを設定する

    • 追加のインストールメディアをスキャンしますか?
      いいえ
    • ミラーを選択してください
      例: 'オランダ'
    • Debian アーカイブミラー:
      例: 'deb.debian.org' または他の利用可能なオプションのいずれか
    • HTTPプロキシ情報
      エンターキーを押すだけで

  12. 人気コンテストの設定

    • パッケージ使用調査に参加しますか?
      いいえ

  13. ソフトウェア選定

    • 選択解除: Debian デスクトップ環境
    • 選択解除: GNOME
    • 選択: SSHサーバー
    • 選択したものを保持: 標準システムユーティリティ
  14. grub-pcの設定

    • GRUBブートローダーをプライマリドライブにインストールしますか?
      はい
    • ブートローダーインストール用デバイス:
      /dev/sda (scsi-QEMU [..])

  15. インストールを完了させています

    • 再起動するには <続ける> を選択してください
      Enter を押してください

VMが再起動します。次のセクションを続けましょう。

6.2.2. Debianの設定

私たちはユーザーとしてとルートとしてコマンドを実行します。「$」で始まるすべてのコマンドはユーザーモードで実行されます。「#」で始まるすべてのコマンドはルートとして実行されます。

6.2.2.1. ログイン :

SSHを使用してファイルサーバーにログインします。Linuxターミナルからは、次のコマンドで簡単に接続できます:

ssh [email 

代わりにPuTTYを使用するか、Proxmoxのコンソールにログインしてください。

要求されたときに指紋を受け入れてください。

6.2.2.2. ユーザーをsudoersリストに追加する

ユーザーmainをsudoersリストに追加します。

まず、`sudo`をインストールします:

  1. $su -
  2. ルートパスワードを入力してください
  3. # apt アップデート
  4. # apt install sudo

今、ユーザーをスーパーユーザーグループに追加する準備が整いました。

  1. # adduser main sudo
  2. # 終了; 終了

コマンド `exit; exit` を使うことで、ログアウトします。これにより、rootおよびmainのSSHセッションの両方が終了します。

再度ログインして、sudoが機能するかテストしてください:

  1. $ssh [email
  2. sudo su
  3. ユーザーmainのパスワードを入力して昇格してください

6.2.2.3. 設定を確認し修正する :

ホスト名を、プレフィックスありとなしの両方で確認してください:

hostname && hostname -f

結果 :

file1
file1.ad.lan.gigabitjes.nl

IPv4アドレスを確認してください:

ip a

結果 :

[..]
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether bc:24:11:10:15:34 brd ff:ff:ff:ff:ff:ff
 altname enp0s18
 inet 10.10.16.101/24 brd 10.10.16.255 scope global ens18
[..]

DNS解決を確認する:

cat /etc/resolv.conf

結果 :

search ad.lan.gigabitjes.nl
nameserver 10.10.16.201
nameserver 10.10.16.1

注: 最初のネームサーバーIPv4はドメインコントローラに関連しています。2番目のネームサーバーIPv4はファイアウォール上で動作しているDNSリゾルバに関連しています。

スワップの設定を確認して修正してください:

cat /proc/sys/vm/swappiness

結果 :

60

これをもっと理にかなったものに変更してください。

echo 10 > /proc/sys/vm/swappiness
sysctl -p
cat /proc/sys/vm/swappiness

結果 :

10

設定をファイルに保存する:

echo "vm.swappiness=10" >> /etc/sysctl.d/80-sysctl-swappiness.conf

注意: 80-sysctl-swappiness.confファイルはブート時に適用されます。

6.2.2.4. NTP :

時間管理は非常に重要です。デフォルトのNTPサービスはsystemd-timesyncdです。ファイルサーバーのためにsystemd-timesyncdを迅速に構成しましょう。

  • systemd-timesyncdはすでにインストールされていますが、インストールコマンドを実行しても問題ありません:
    apt -y install systemd-timesyncd

  • では、timesyncd.confを編集しましょう:
    nano /etc/systemd/timesyncd.conf

  • NTPとFallbackNTPの行のコメントを外し、NTPサーバーを10.10.16.1に設定します。
NTP=10.10.16.1
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org 
  • 構成を確認してください:
timedatectl show-timesync --al
  • systemd-timesyncdを有効にして開始します:
timedatectl set-ntp true
  • 念のため、systemd-timesyncdを強制的に有効にして再起動します。
systemctl enable systemd-timesyncd
systemctl restart systemd-timesyncd
  • ステータスを確認してください:
systemctl startus systemd-timesyncd
  • そして、同期状態:
timedatectl timesync-status

これにより、私たちのファイルサーバーがネットワーク時間と適切に同期されることが保証されます。

6.2.3. Sambaファイルサーバーのインストールと構成

おそらくまだrootとしてコマンドを実行しています。ユーザーモードに戻るには「exit」と入力してください:

exit

必要なパッケージをインストールします:

sudo apt update && sudo apt -y install acl samba winbind libnss-winbind krb5-user

Kerberosを設定する:

sudo mv /etc/krb5.conf /etc/krb5.conf.bak
sudo nano /etc/krb5.conf

次の行を追加して変更を保存してください:

[libdefaults]
 default_realm = AD.LAN.GIGABITJES.NL
 dns_lookup_realm = false
 dns_lookup_kdc = true

NSSを構成する:

sudo nano /etc/nsswitch.conf

次の行を変更して、変更を保存してください:

passwd: files winbind
group: files winbind
hosts: files dns wins

Sambaを設定する:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

次の行を追加して変更を保存します:

Global parameters
[global]
 dedicated keytab file = /etc/krb5.keytab
 kerberos method = secrets and keytab
 realm = AD.LAN.GIGABITJES.NL
 security = ADS
 server role = member server
 winbind refresh tickets = Yes
 workgroup = AD
 idmap config * : backend = tdb
 idmap config * : range = 3000-7999
 idmap config ad : backend = rid
 idmap config ad : range = 10000 - 999999
 map acl inherit = Yes
 vfs objects = acl_xattr

Kerberosを確認します(1):

sudo kinit administrator

結果(出力は異なる場合があります):

Password for [email : 
Warning: Your password will expire in 32 days on Sun 18 Feb 2024 10:00:50 PM CET

Kerberosを確認してください(2):

sudo klist

結果(出力は異なる場合があります):

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email 
Valid starting Expires Service principal
01/17/2024 21:37:46 01/18/2024 07:37:46 krbtgt/[email 
 renew until 01/18/2024 21:37:42

Sambaの設定を確認してください

sudo testparm

結果 :

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Global parameters
[global]
 dedicated keytab file = /etc/krb5.keytab
 kerberos method = secrets and keytab
 realm = AD.LAN.GIGABITJES.NL
 security = ADS
 winbind refresh tickets = Yes
 workgroup = AD
 idmap config * : range = 3000-7999
 idmap config ad : backend = rid
 idmap config ad : range = 10000 - 999999
 idmap config * : backend = tdb
 map acl inherit = Yes
 vfs objects = acl_xattr

ドメインに参加する

sudo /usr/bin/samba-tool domain join ad.lan.gigabitjes.nl MEMBER -U administrator

結果(出力は異なる場合があります):

Password for [AD\administrator]:
Joined domain ad.lan.gigabitjes.nl (S-1-5-21-1971466082-2551851020-532596661)

サービスを再起動し、システム起動時にこれらが開始されることを確認してください。

sudo systemctl restart smbd nmbd winbind
sudo systemctl enable smbd nmbd winbind

結果 :

Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable smbd
Synchronizing state of nmbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nmbd
Synchronizing state of winbind.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable winbind

ファイルサーバーがドメインに正常に統合されたことをお知らせできることを嬉しく思います。

6.2.4. 共有を設定する

ファイル共有を設定する時です。

まず、フォルダーを準備します:

sudo mkdir -p /srv/samba/data
sudo chmod -R 775 /srv/samba/data
sudo chown -R "AD\administrator":root /srv/samba/data

後者のコマンドは、構成が正しい場合にのみ機能します。ユーザー管理者はドメインのメンバーです。

smb.confファイルを編集して、共有を追加します:

sudo nano /etc/samba/smb.conf

ファイルの最後に以下を追加し、変更を保存してください。

[Data]
 acl_xattr:ignore system acl = Yes
 acl allow execute always = Yes
 acl group control = Yes
 inherit acls = Yes
 inherit owner = windows and unix
 inherit permissions = Yes
 path = /srv/samba/data
 read only = No

アクセスベースの共有列挙を有効にすることは良い習慣です。これにより、読み取りまたは書き込みアクセスを持たないユーザーがファイルやフォルダーを表示できなくなります。

[global]設定に以下の行を追加してください。このセクションの最後に追加しても問題ありません。

access based share enum = yes

さて、変更をテストします:

sudo testparm

結果 :

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Global parameters
[global]
 dedicated keytab file = /etc/krb5.keytab
 kerberos method = secrets and keytab
 realm = AD.LAN.GIGABITJES.NL
 security = ADS
 server role = member server
 winbind refresh tickets = Yes
 workgroup = AD
 idmap config ad : range = 10000 - 999999
 idmap config ad : backend = rid
 idmap config * : range = 3000-7999
 idmap config * : backend = tdb
 access based share enum = Yes
 map acl inherit = Yes
 vfs objects = acl_xattr
[Data]
 acl allow execute always = Yes
 acl group control = Yes
 inherit acls = Yes
 inherit owner = windows and unix
 inherit permissions = Yes
 path = /srv/samba/data
 read only = No
 acl_xattr:ignore system acl = Yes

サービスを再起動してください

sudo systemctl restart smbd nmbd winbind

次の手順では、ドメインに統合されたWindowsコンピュータに管理者としてログインします。このステップでは、フォルダを作成し、アクセスを容易にするためにドメイングループやドメインユーザーを組み込みます。このプロセスの詳細な探求は次の章で行います。

7. ユーザーとコンピュータの管理

私たちのネットワーク内では、ユーザーとコンピュータの両方が重要な役割を果たしています。

7.1. 管理用ウィンドウズVM

まず、管理目的のために指定されたWindowsコンピュータを紹介する必要があります。この特定のマシンは、主に管理作業に専念します。

この設定の一環として、Windows 11 Proを実行する仮想マシンを起動します。さらに、別のアプローチとして、Windowsコンピュータを直接スイッチに接続する柔軟性があります。

7.1.1. インストールメディアを入手する

Windows Proのインストールメディアを取得するのは簡単なプロセスです。メディアはhttps://www.microsoft.com/software-download/windows11から取得できます。サイトに移動し、スクロールダウンして、ダウンロードオプションを選択します。具体的には「Windows 11(x64デバイス用のマルチエディションISO)」を選択し、「今すぐダウンロード」をクリックします。次に、希望の言語を選択し、「確認」をクリックしてください。

「64ビットダウンロード」ボタンをクリックしてダウンロードを開始しないでください。その代わりに、別の方法を選択して右クリックし、「リンクのアドレスをコピー」を選択してください。

今、Proxmox内でストレージを指定し、「ISOイメージ」にアクセスします。「URLからダウンロード」を選択し、コピーしたURLを「URL」フィールドに貼り付けて、「URLをクエリする」をクリックします。最後に、「ダウンロード」をクリックしてダウンロードを開始します。これにより、ダウンロードプロセスが開始されます。

7.1.2. VirtIO ドライバ

ドライバーが必要な仮想デバイスを使用します。以下のリンクを右クリックし、「URLからダウンロード」を選択してください:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

今、Proxmox内でストレージを指定し、「ISOイメージ」にアクセスします。「URLからダウンロード」を選択し、コピーしたURLを「URL」フィールドに貼り付けて、「URLをクエリする」をクリックします。最後に、「ダウンロード」をクリックしてダウンロードを開始します。これにより、ダウンロードプロセスが開始されます。

7.1.3. 仮想マシンを作成する

ProxmoxでWindowsのVMを作成する時間です:

  1. 「VMを作成」 をクリックしてください。
  2. 一般的な :

    • VM ID: 901
    • 名前: wadm1
    • 次
  3. OS :

    • ISOイメージ: Win11_23H2_英語_x64v2.iso
    • タイプ: マイクロソフトウィンドウズ
    • バージョン:2022年11月
    • 「VirtIO ドライバの追加ドライブを追加する」オプションをチェックします。
    • ISOイメージ: virtio-win.iso
    • 次
  4. システム

    • グラフィックカード:

      • 仮想マシンビューアを使用したい場合は、「SPICE」を選択してください。
      • デフォルトのProxmoxコンソールを使用するだけの場合は「デフォルト」を選択してください。
    • 機械:q35
    • BIOS: OVMF (UEFI)
    • EFIストレージ:ストレージ
    • SCSIコントローラー: VirtIO SCSI
    • オプション「Qemu Agent」を確認してください
    • TPMストレージ: ストレージ
    • 次
  5. ディスク

    • ストレージ: ストレージ
    • ディスクサイズ (GiB): 例 "200"
    • キャッシュ:書き戻し
    • 次
  6. CPU

    • ソケット: 例えば「1」
    • コア: 例えば「4」
    • 次
  7. 記憶

    • メモリ (GiB): 例: 8192
    • 次
  8. ネットワーク

    1. ブリッジ: vmbr0
    2. VLANタグ: この仮想マシンを管理VLANで実行したいため、タグは入力しません。
    3. モデル: VirtIO(仮想化)
    4. 次
  9. 確認する

    • 設定を確認し、「完了」をクリックします。
    • VMが作成されるまで待ってください

7.1.4. Windows 11 Proをインストールする

「今すぐ開始」をクリックしてVMを起動します。コンソール画面をすぐにクリックし、CD/DVDから起動するように求められたときにキーを押してください。

'SPICE'をグラフィックカードとして選択した場合、マウスカーソルが焦点から外れる可能性があります。これに対処するには、画面右上の'>_ コンソール'の隣にある小さな下矢印をクリックしてください。次に、「Spice」をクリックします。それから、仮想マシンビューワーでファイルを開いてください。

ご注意ください: 仮想マシンマネージャーからマウスカーソルを解放するには、'ALT' + 'CTRL' + 'R'を押してください。

では、通常通りにWindowsのインストールを進めてください。VirtIO SCSI コントローラーのストレージドライバーを読み込んでください。

  1. 言語やその他の設定を入力し、「次へ」をクリックして続行してください。
  2. 「今すぐインストール」をクリックしてください。
  3. プロダクトキーの入力を求められたら「プロダクトキーを持っていません」をクリックしてください。
  4. 「Windows 11 Pro」を選択し、「次へ」をクリックします。
  5. ライセンスに同意して「次へ」をクリックします。
  6. 「カスタム: Windowsのみをインストール(詳細)」をクリックします。
  7. 「ドライバを読み込む」をクリックしてストレージドライバを読み込みます。次に「OK」をクリックします。「Red Hat VirtIO SCSI パススルーコントローラー (D:\amd64\w11\vioscsi.info)」を選択し、「次へ」をクリックします。
  8. 次へをクリックしてスペースを割り当てます。
  9. Windowsがインストールされ、完了すると再起動します。

Windowsは初期設定体験を開始します。

  1. コマンドプロンプトを開くには、「Shift」 + 「F10」を押してください。

    注意: このキーの組み合わせは、Proxmoxのウェブコンソール(noVNC)および仮想マシンビューワーの両方で動作します。
    または、「Winキー」 + 「R」を押して、実行ダイアログから「CMD」を実行してください。

  2. 以下のコマンドを入力してEnterを押してください:
    oobe\BypassNRO.cmd

    Windowsは再起動し、Out of Box Experienceを続行します。
    これにより、インターネット接続なしでWindowsをセットアップできます。

  3. 国または地域を選択し、「はい」をクリックしてください
  4. キーボードレイアウトを選択し、『はい』をクリックしてください。
  5. 「レイアウトを追加」ボタンをクリックして、2つ目のキーボードレイアウトを追加します。デフォルトの選択は「スキップ」です。
  6. 「インターネットがありません」をクリックしてください
  7. 「限られた設定で続行」をクリックしてください
  8. デバイスを使用する人を尋ねられたら、名前を入力してください:
    例:『LocalAdmin』
  9. 次へクリックしてください
  10. パスワードを入力して「次へ」をクリックしてください。または、単に「次へ」をクリックして後でパスワードを設定することもできます。
  11. 質問に答えてください(はい/いいえ;受け入れる等)。

Windowsは続行し、進捗状況をお知らせします。結果は、下のスクリーンショットに似たものになるはずです。

次に、virtio-win CD から 'virtio-win-guest-tools' を起動して VirtIO ドライバーをインストールします。

  1. ライセンス条項に同意し、「インストール」をクリックしてください。
  2. 「はい」をクリックする
  3. 「次」をクリックする
  4. 契約を受け入れて「次へ」をクリックしてください。
  5. 画面上の指示に従ってください(基本的に次へクリックするだけです...)

結果は完璧に動作するWindows 11 Proのインストールです。

VirtIOドライバーがインストールされると、画面解像度が改善され、ネットワーク接続が動作するはずです。

画面の右下隅にあるネットワークアイコンを確認して、ネットワーク接続を確認してください。あるいは、コマンドプロンプトを開いて、「ipconfig /all」コマンドでIP設定を照会してください。

C:\>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . .  : DESKTOP-J6P9KU3
 Primary Dns Suffix . . . . . . .  :
 Node Type . . . . . . . . . . . . : Hybrid 
 IP Routing Enabled. . . . . . . . : No
 WINS Proxy Enabled. . . . . . . . : No
 DNS Suffix Search List. . . . . . : lan.gigabitjes.nl
Ethernet adapter Ethernet:
 Connection-specific DNS Suffix .  : ad.lan.gigabitjes.nl
 Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter
 Physical Address. . . . . . . . . : BC-24-11-3F-BA-6F
 DHCP Enabled. . . . . . . . . . . : Yes
 Autoconfiguration Enabled . . . . : Yes
 Link-local IPv6 Address . . . . . : fe80::3846:3c84:5c40:3d1a%20(Preferred)
 IPv4 Address. . . . . . . . . . . : 172.21.1.204(Preferred)
 Subnet Mask . . . . . . . . . . . : 255.255.255.0
 Lease Obtained. . . . . . . . . . : Thursday, 18 January 2024 09:05:25
 Lease Expires . . . . . . . . . . : Thursday, 18 January 2024 11:05:25
 Default Gateway . . . . . . . . . : fe80::20d:b9ff:fe48:3c89%20
                                     172.21.1.1
 DHCP Server . . . . . . . . . . . : 172.21.1.1
 DHCPv6 IAID . . . . . . . . . . . : 347874321
 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2D-3A-94-1D-BC-24-11-3F-BA-6F
 DNS Servers . . . . . . . . . . . : 172.21.1.1
 NetBIOS over Tcpip. . . . . . . . : Enabled
 Connection-specific DNS Suffix Search List :
                                     lan.gigabitjes.nl

7.1.5. リモートサーバー管理ツール (RSAT)

ユーザーとコンピューターを管理し、私たちのドメインのグループポリシーを設定するために、Windows機能を追加するためにPowerShellを使用します。

管理者としてPowerShellを起動し、必要なツールを調べてください。

Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property DisplayName, Name, State

これら二つのツールをインストールしてください:

Add-WindowsCapability -Online -Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"
Add-WindowsCapability -Online -Name "Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0"

それでは、Windows VMをADに参加させてください。

7.1.6. ドメイン参加

ローカル管理者アカウントが設定されていることを確認することは、ワークステーションとドメインとの間で信頼関係が失敗した場合に備える賢明な手段です。LocalAdminユーザーアカウントのパスワードを設定して進めてください。

7.1.6.1. ローカル管理者アカウント :

VM内で「CTRL」 + 「ALT」 + 「DELETE」を押してください。これは、noVNCの画面上のボタンやVirtual Machine Viewerのボタンメニューを通じて実行できます。

次に「パスワードを変更する」をクリックします。

パスワードが設定されていない場合は「古いパスワード」をスキップしてください。新しいパスワードを入力して確認してください。

7.1.6.2. コンピュータをドメインに参加させる :

<Winキー> + <R>を押してシステムのプロパティを開きます:

sysdm.cpl

「コンピュータ名」タブで「変更...」をクリックします。

希望するコンピュータ名を入力してください(例:WS01)。‘ドメイン’ラジオボタンをチェックし、ドメイン名を入力します。最後に‘OK’をクリックします。

ドメイン管理者のユーザー名とパスワードを入力してください(デフォルト: 'Administrator' およびドメインプロビジョニング中に設定されたパスワード)。

画面の指示に従ってください。

「閉じる」をクリックし、「今すぐ再起動」をクリックしてください。

コンピュータが再起動した後、画面の左下隅にある「他のユーザー」をクリックします。ドメイン管理者のアカウントとパスワードでログインします。

「Administrator」というユーザー名でログインする際には注意が必要です。ユーザー名の前にドメインのNetBIOS名をバックスラッシュで区切って追加してください(例:「AD\Administrator」)。または、ユーザー名の後にドメインのFQDNをアットサインで区切って入力することもできます(例:「[email 」)。

7.1.7. リモートサーバー管理ツール(RSAT)を使用する

「次のツールには、いずれかの『Windowsツール』または『サーバーマネージャー』を通じてアクセスできます。どちらもスタートメニューに便利に配置されています。」

7.1.7.1. 概要 :

私たちの焦点はこれらのツールにあります:

  • Active Directory ユーザーとコンピューター
    dsa.msc

  • ADSI Edit
    adsiedit.msc

  • グループポリシー管理
    gpmsc.msc

これらのツールをスタートメニューやタスクバーにピン留めするか、単にデスクトップにドラッグしてください。

7.1.7.2. アクティブ ディレクトリ ユーザーとコンピュータ (ADUC) :

'アクティブ ディレクトリ ユーザーとコンピュータ' は、ユーザー アカウント、グループ、およびコンピュータ オブジェクトに関連するタスクを管理者が実行できる、Windows オペレーティング システム内の管理ツールです。このツールは、ディレクトリ オブジェクトを管理および整理するためのグラフィカル インターフェイスを提供し、管理者がユーザー アカウントの作成、変更、削除、パスワードのリセット、グループメンバーシップの管理、および組織単位 (OU) 内のコンピュータ オブジェクトの整理を行えるようにします。このツールは、アクティブ ディレクトリ ドメインの構造とセキュリティを維持するために重要です。

「Active Directory ユーザーとコンピューター」を使用する際は、「表示」>「詳細機能」で「詳細機能」を有効にしてください。ツールが最初にクラッシュするバグがあることに注意してください。「Active Directory ユーザーとコンピューター」を閉じて再起動し、再度「詳細機能」を有効にしてください。

コンピュータアカウントを事前に作成することはオプションですが(コンピュータアカウントはドメイン参加中に作成されます)、ユーザーアカウントはコンテキストメニューを通じて簡単に生成できます。『ユーザー』を右クリックし、『新規』 > 『ユーザー』を選択してください。

組織の明確さを保つために、新しい組織単位(OU)を作成することを考慮してください。例えば、私の自宅オフィスでは、'Nova'という名前のOUを設立し、ユーザー、グループ、コンピュータ用の追加のOUを作成するかもしれません。

その後、'WS01'を新しく作成された'Nova'の下の'Computers' OUに移動し、Sambaファイルサーバー'FILE1'を'Servers' OUに移動してください。

効果的な実践は、'Groups' OU内にアクセスグループを作成することです。例えば、ファイルサーバー上のパブリックフォルダーにアクセスを与えるために、'GRP_FSS_Public'を設立します。

重要な注意: ドメインコントローラーを別の組織単位(OU)に移動しないでください!必ずデフォルトの「ドメインコントローラー」OU内に保持してください。Microsoftは、この標準的なOUからドメインコントローラーを移動することを強く非推奨としており、そのような移動は適切な動作を損なう可能性があるため、推奨されません。

次のステップは、ユーザーアカウントを作成し、グループメンバーシップを整理することです。

7.1.7.3. ADSI Edit :

ADSI Editは、Active Directoryに低レベルの変更を加える必要がある上級ユーザーや管理者のために設計された強力なツールです。そのシステムへの影響の可能性から、注意して使用する必要があり、変更はActive Directoryの構造と操作について深く理解している人のみが行うべきです。

コンピュータの表示名がActive Directoryユーザーとコンピュータ(ADUC)で新しい名前を反映していない状況に遭遇した場合、ADSI Editを使用して修正することができます。

7.1.7.4. グループポリシー管理 :

'グループポリシー管理'は、Active Directory環境におけるグループポリシー設定の構成と管理のために設計されたWindowsの管理ツールです。これにより、管理者はネットワーク上のWindowsベースのコンピュータに対してセキュリティポリシー、システム設定、ユーザー設定を定義し、強制することができます。グループポリシー管理を使用すると、管理者はグループポリシーオブジェクト(GPO)を作成、編集、整理でき、特定のユーザー、グループ、またはコンピュータアカウントに適用されるポリシーのセットです。このツールは、組織のネットワーク全体にわたって一貫した安全な設定を保証するために、Windowsオペレーティングシステムのさまざまな側面に対する集中管理を提供します。

スターターGPOフォルダを確立し、必要に応じてグループポリシーオブジェクト(GPO)を追加します。すべてを「デフォルトドメインポリシー」の下に統合するよりも、各ポリシー要素ごとに個別のGPOを作成することが推奨されます。このアプローチは、より良い組織化と管理の実践を促進します。

組織単位 (OU) の中にグループポリシーオブジェクト (GPO) を直接作成することも可能ですが、最初は「グループポリシーオブジェクト」コンテナ内に作成することをお勧めします。その後、適切な構成と管理のために、GPO を目的の OU にリンクしてください。

さらに、グループポリシーオブジェクト(GPO)に対して構造化された命名規則を採用することが推奨されます。明確に定義された命名規則により、管理者はGPOの名前からその目的や対象(コンピュータまたはユーザー)を容易に識別することができます。

一般的なドライブマッピングについては、'UserDriveMappings_General'という名前のGPOを使用することを検討してください。

グループポリシーオブジェクト(GPO)をリンクするのは、アイテムをドラッグアンドドロップする簡単なプロセスです。この方法は効果的ですが、リストが長くなるにつれて実用性が低くなります。そのような場合は、コンテキストメニューを使用してGPOをリンクすることをお勧めします。より効率的な管理のために「既存のGPOをリンク...」のオプションを選択できます。

8. ファイル共有

前のステップで、ファイルサーバー上にデータ共有を設定し、その共有をドライブレターQにマッピングするポリシーを実施しました。これによりユーザーの利便性が向上しました。しかし、意図的な制限が導入されており、ユーザーがファイルやフォルダーを作成することは現在制限されています。この制限は技術的な問題ではなく、設計上の選択です。意図されたアプローチは、共有内に主要なフォルダーを手動で作成し、ユーザーのために必要なアクセス権を設定することです。

私たちの管理用ワークステーションで、\file1.ad.lan.gigabitjes.nl\dataに移動し、'General'という名前のフォルダーを作成します。その後、新しいフォルダーのコンテキストメニューから'Properties'にアクセスします。

さて、'セキュリティ'タブを開き、'詳細'をクリックします。

最初のタスクは「継承の無効化」であり、そこでは継承された権限が削除されることなく明示的な権限に変換されます。

次に、権限リストから「Everyone」を除外し、「GRP_FSS_Public」に置き換えます。「このフォルダーのみに適用」として、特定の基本的な権限を選択します:

  • 読み取りと実行
  • フォルダーの内容を一覧表示する
  • 読む
  • 書く
  • この設定はユーザーがフォルダーを削除することを禁止しています。

これに続いて、再び「追加」をクリックし、サブフォルダーおよびファイルにのみアクセス権を適用します。「フルコントロール」を選択し、設定を実施します。

調整を確認するために、以前に作成したユーザーに切り替えます。このユーザーは「一般」ディレクトリ内にファイルやフォルダーを作成できますが、フォルダーの名前変更、削除、移動は制限されています。ただし、フォルダー内のコンテンツに対しては完全な制御を持っています。

9. ワークステーションの接続

前のセクションでは、管理VLANに直接リンクされたワークステーションを利用しました。ユーザーのワークステーションを接続する際は、オフィスVLAN(32)に向けられます。しかし、このネットワークからドメインコントローラーに接続することは、基本的なファイアウォールルールが欠如しているため、現在不可能です。これらの内部サービスに加えて、メールおよびウェブサーバーへの直接接続を確立したいと考えています。

さて、ユーザーが円滑に作業を開始できるよう、ワークステーションのドメイン登録を促進するためにファイアウォールルールを設定しましょう。

私たちは、複数のサーバーのファイアウォールルールに含める必要があるサーバーのIPアドレスと対応するポートのリストとともに、VLANの概要を利用します。

9.1. 概要

私たちは、複数のサーバーのファイアウォールルールに含める必要のあるサーバーIPアドレスと対応するポートのリストとともに、VLANの概要を利用します。

9.1.1. VLANの概要

9.1.2. サーバー IP アドレス

9.1.3. 管理コンピュータ

9.1.4. ポート

ファイルサーバーではTCPポート135、139、445およびUDPポート137、138が使用されます。

印刷効率を向上させるために、プリンタがサービスされるときは、TCPポート範囲49152〜65535を必ず開いてください。これにより、印刷ジョブの処理がスムーズかつ迅速になり、潜在的な遅延(30〜45秒)を排除できます。

特に非Windows DHCPサーバーを使用している混合環境では、DNS経由でのプリンター共有はご遠慮ください。代わりに、プリンター共有サーバーのIPアドレスを使用することをお勧めします。

メールとウェブサービスにアクセスするためには、次のポートを開く必要があります。

ポートをポートエイリアスに整理し、その後pfSenseでファイアウォールルールを構築することをお勧めします。

9.2. ファイアウォールルール

ファイアウォールのエイリアスとルールを作成する手順については、3.3.1段落を参照してください。

pfSenseのウェブインターフェイスを開き、「ファイアウォール」>「エイリアス」>「ポート」に移動します。

ポートエイリアスを追加し、上記の通りにポートを追加します:

  • ポート_DC_TCP (ポート、ドメインコントローラー、TCP)
  • ポート_DC_UDP (ポート、ドメインコントローラー、UDP)
  • ポート_FS_TCP (ポート、ファイルサーバー、TCP)
  • ポート_FS_UDP(ポート、ファイルサーバー、UDP)
  • ポート_ISPC_TCP (ポート、ISPConfig、TCP)

注: 'Port_Ingress_GRE_TCP' を 'Ports_ISPC_TCP' にそのままコピーできます。

結果 :

次に、以下のIPエイリアスを追加してください:

  • IP_SDCs
  • IP_FILE1の翻訳
  • IP_ISPC_LOCAL

最終的に、インターフェース L1_0032_OFF1 のエイリアスを利用してファイアウォールルールを作成します:

  • ドメインコントローラーへのTCPトラフィックを許可する
  • ドメインコントローラーへのUDPトラフィックを許可する
  • ファイルサーバー#1へのTCPトラフィックを許可する
  • ファイルサーバー#1へのUDPトラフィックを許可する
  • ISPConfigサーバーへのTCPトラフィックを許可する

オフィスLANのすべてのルールのフルスクリーンショットを表示するには、こちらをクリックしてください。

10. 結論

この記事を締めくくるにあたり、私たちのネットワークは機能的ではありますが、まだ少し初歩的な状態であることは明らかです。第二のドメインコントローラーの導入や、追加のスイッチのバリエーションの検討、OPNsenseにおけるファイアウォール設定の複製、メールボックスの統合、ワークステーション設定の改善、そしてアクティブディレクトリポリシーの拡張など、向上の余地はたくさんあります。

あなたの貴重なフィードバックを歓迎します。この計画は、そのフィードバックをこの記事の次の改訂に組み込むことです。私がこの旅を一人で進んでいるわけではないことを思い出してください。HowtoForgeコミュニティは、互いに支え合う協力の場です。お気軽に意見を共有したり、コメントを残したり、フォーラムで議論を始めたりしてください。それでは、また次回!よろしく、Bouke

関連記事: