さまざまなファイアウォール環境でローカルでWebアプリケーションの動作をテストしたいと思います。
特定の条件に基づいてブラウザから別のポートに要求を送信するアプリケーションがあります。ポートが無効になったときにアプリケーションがどのように機能するかを確認するためにファイアウォールルールを動的に変更できるファイアウォールを設定したいと思います。
私のコンピュータからゲストコンピュータのポートに送信する要求をブロックするようにファイアウォールを設定してこれを達成したいと思います。
私はOS X Sierraを実行しているVirtualboxを使用していますpfctl
。
ホストはこのコマンドで起動し、ゲストのポートをブロックしようとしましたが、192.168.99.100
成功しませんでした。
block in quick inet proto { tcp, udp } from any to 192.168.99.100 port 63342
答え1
あなたが進む方法は私に少し直観に反するようです。通常、Webアプリケーションがある物理サーバーにファイアウォールを設定します。
Firewalldを使用している場合、これは非常に簡単です。次のコマンドを使用すると、処理できるすべてのサービスの名前を名前で表示できます。
$ firewall-cmd --get-services
ネットワーク名
$ firewall-cmd --get-services | grep -oE '\shttp[s]*'
http
https
VMでこれら2つのプロトコルを許可するには、次の手順に従ってください。
$ firewall-cmd --permanent --add-service http --add-service https
success
$ firewall-cmd --reload
success
ファイアウォールは次のように構成されています。
$ firewall-cmd --list-all
public (active)
target: DROP
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
上記は4つのサービスを許可し、他のすべてのサービスはデフォルトの宛先に従って削除(DROP)することを指定します。