私は学生(大学)のクラスでファイアウォールについてデモンストレーションを行わなければなりません。 Linuxではiptablesを使用して実装する必要があります。私はそれらの周りのすべての理論を読んでいますが、クラスで提示するための良いユースケースを理解できません。ルール追加などの使い方は紹介できますが、それだけでは不十分です。
たとえば、接続がブロックされたときに何が起こるかを示すために、ネットワークに2つのPCを置くことができますか?他のアイデアはありますか?
Wireshark のようなネットワークプロトコルアナライザーを使用して、何が起こっているかを正確に示すことができます。特定のルールセットを使用した場合と使用しない場合の実験を設定し、Wiresharkログファイルの結果を比較します。そうすれば、ネットワークレベルで何が起こっているかを示すことができます。
複数のコンピュータを持ち込みたくない場合は、仮想マシンを使用して、相互に作用するさまざまなホストをシミュレートできます。実際のコンピュータを使用するよりも少し印象的ではありませんが、ほぼ同じように機能します。このようにして、ホストベースのファイアウォール(ホストOSと単一の仮想マシンでiptablesが実行されているマシンへのアクセスを制御する)として、およびスタンドアロンネットワークファイアウォールとして、iptablesの使用を実証できます。 2番目のシナリオでは、3つの仮想マシン(または2つのVMとホストOS)を使用して、クライアント、サーバー、およびその間のファイアウォールをシミュレートできます。仮想マシンが多いほど、より多くのことが可能になります。もう1つ追加して、DMZなどを作成します。これは、どれだけの時間とどれだけ深く行きたいかに依存します。
自宅では、ネットワークファイアウォール(ゲートウェイと統合)とホストファイアウォールにiptablesを使用しています。
linux home networking iptables tutorial 、 buntu iptables tutorial および this iptables script generator を参照することをお勧めします。
このプレゼンテーションで何を表示する必要があるかを概説できれば、この質問に答えるのは簡単です。
あなたが調べなければならない主なことは、iptablesのロギング能力であるようです。 2つのワークステーションを備えた仮想(または物理的、もう少しかさばる)ネットワークをスローし、iptablesを実行する2つのインターフェースを備えたLinuxマシンでそれらを分離します。私はあなたのクラスがどれだけ進んでいるかはわかりませんが、ファイアウォールがネットワークを内部と外部の2つのゾーンに分割することを説明します。次に、2つのネットワーク間の通信を表示します。たとえば、両方のワークステーションにApacheサーバーをセットアップし、内部マシンが外部Webサイトにアクセスできる方法を示しますが、外部マシンは他のサイトにアクセスできません。これは、ファイアウォールの設定方法にも依存します。
Iptablesだけに拘束されていない場合は、 fw も参照してください。
1台のPCまたは仮想マシンをホスト2または3の異なるサービス(Webサーバー、FTPサーバー、SSHなど)に設定できます。これは、iptablesルールを編集するPCです。
最初に、各サービスにアクセスする別のPCのデモを行い、それが機能することを示します(たとえば、Webサイト、ftp、sshサーバーにアクセスします)。
次に、iptablesルールを使用して、任意のIPからポート80へのアクセスを拒否してから、もう一度Webサイトにアクセスしてみます。接続はすぐに失敗します。リジェクトの代わりにdropディレクティブを使用したときに何が起こるかを示すこともできます。 Webブラウザがハングします。 SSHまたはFTPサーバーへの接続は引き続き機能します。ポート80へのアクセスをブロックするための2つのルールを次に示します。
iptables -A INPUT -p tcp --dport 80 -j REJECT
iptables -A INPUT -p tcp --dport 80 -j DROP
次に、他のサービス(--dport 22、-dport 21)に対して同じことを実行するか、単一のIPに対して実行します。
iptables -A INPUT -s 192.168.1.100 -j REJECT #assuming client is at 192.168.1.100
上記のルールは、デフォルトのファイアウォールポリシーが、ルールに一致しないすべてのパケットをacceptすることを想定しているため、例外を追加してデモを行うこともできます。ポートを「開く」例:
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
実行できる例は他にもたくさんありますが、クライアント/サーバーモデルを実行すると、これらのコマンドを入力したときに生徒が何が起こっているかを理解しやすくなります。他の例については、 Firewall demo-iptables を参照してください。
私はおなじみのiptablesに精通していませんが、ファイアウォールがどのように機能するかを示すために私が提案するのは:
ファイアウォールのデモがなければ、iptablesの議論は完了しません。ファイアウォールのダウンロードをテストしてnessusを実行します。
また、iptablesがブロックリストまたはホワイトリストの1000および20000+に加えてIPアドレスを効率的に処理できるように、ipsetをカバーする必要があります。大きなブロックリストでipsetを使用せず、代わりに1000以上のiptablesルールを入力すると、CPU使用率は100%になり、そのまま残ります。
ipsetを使用すると、ブロックリストのタイムアウト機能またはカウンターを簡単に実装することもできます。
iptables -L -v -n -x
これはあなたが話すことができるルールごとの統計を提供します。