这个用例有点挑战性。我需要将我的 openvpn 用户映射到我机器上的特定端口。假设开发团队的用户只能访问我的服务器(其 IP 为 172.31.192.8)的端口 80,但不能访问端口 22。
答案1
只需通过防火墙规则
iptables --append INPUT --match <YourProtocol> --protocol <YourProtocl> --src <Source network/IP> -i <input Interface> --dport 80 --jump ACCEPT
<YourProtocol>
是 TCP 还是 UDP 还是 ICMP 或者其他你需要的
(以 http 为例,在端口 80 TCP 上)- 之后指定客户端获取的 IP 或网络。(如果您没有更改,则使用 openVPN 时,其通常为 10.0.8.2。
<Source network/IP>
)--src
<Input Interface>
是传入流量到达的网络接口。
(对于 OpenVPN,它通常类似于 tun0 )- 最后提供您想要允许访问的端口
--dport
。
(在您的情况下为 80)
(提示如果您想提供对多个端口的访问,请不要设置各种规则...而是使用-m multiport --dports <OnePort,AnotherPort,...>
:)
有关 iptables 防火墙的更多信息,请参阅https://wiki.ubuntuusers.de/iptables2/
我发现这个 iptables 生成器工具对于简单规则来说非常方便: https://www.perturb.org/content/iptables-rules.html