我需要创建一个防火墙,只允许特定端口上的特定 IP。例如,允许1.2.3.4
,2.2.2.2
并5.5.5.5
在 端口 上45654
。如果6.6.6.6
尝试访问45654
则拒绝它。
我尝试过什么命令:
netsh advfirewall firewall add rule name="application" dir=in action=allow program="C:\application.exe" enable=yes remoteip=64.68.22.49,51.68.11.49/32,LocalSubnet profile=private protocol=TCP localport=42262
问题是我尝试通过 Windows 防火墙(界面)阻止所有 IP 并允许每个 IP,但没有起作用,要么阻止所有,要么允许所有。
在 Linux 中一切都很简单:
Linux 等效版本
-I INPUT -s 0/0 -p tcp --dport 1080:65535 -j REJECT
-I INPUT -p tcp --match multiport --dports 35001:65000 -j ACCEPT
-I INPUT -p tcp --dport 61605 -j REJECT
-I INPUT -p tcp -s 103.204.244.3/32 --dport 61605 -j ACCEPT
-I INPUT -p tcp --dport 62814 -j REJECT
-I INPUT -p tcp -s 103.204.244.3/32 --dport 62814 -j ACCEPT
-I INPUT -p tcp --dport 61525 -j REJECT
-I INPUT -p tcp -s 103.204.244.3/32 --dport 61525 -j ACCEPT
iptables 输出:
ACCEPT tcp -- 178.166.173.55 0.0.0.0/0 tcp dpt:61605
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:61605 reject-with icmp-port-unreachable
ACCEPT tcp -- 178.150.247.127 0.0.0.0/0 tcp dpt:62814
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:62814 reject-with icmp-port-unreachable
ACCEPT tcp -- 178.150.247.127 0.0.0.0/0 tcp dpt:61525
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:61525 reject-with icmp-port-unreachable
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1080:65535 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
有任何想法吗?
谢谢。