Firewall

如何設置防火牆以在虛擬機中測試 Web 應用程序?

  • August 3, 2018

我想在不同的防火牆環境下本地測試我的 Web 應用程序的行為。

我們有一個應用程序,它根據某些條件從瀏覽器向不同的埠發出請求,我想設置一個防火牆,允許我動態修改防火牆規則,以便查看應用程序在禁用埠時的行為。

我想通過設置防火牆來阻止從我的機器到來賓機器上的埠的請求來做到這一點。

我正在使用 Virtualbox 執行 OS X Sierra,使用pfctl.

我從這個命令開始(在主機上),試圖阻止來賓(在192.168.99.100)上的埠,但我沒有成功:

block in quick inet proto { tcp, udp } from any to 192.168.99.100 port 63342

在你如何接近它時,這對我來說似乎有點違反直覺。通常,您會在 Web 應用程序所在的實際伺服器上設置防火牆。

如果您使用的是firewalld,這非常簡單。您可以使用以下命令按名稱查看它能夠處理的所有服務的名稱:

$ firewall-cmd --get-services

網名

$ firewall-cmd --get-services | grep -oE '\shttp[s]*'
http
https

要允許這兩個協議進入 VM:

$ 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)。

參考

引用自:https://unix.stackexchange.com/questions/460194