本帖最后由 Shiba 于 2021-12-29 08:00 编辑
Debian11系统VPS,使用如下命令想要实现只暴露主机的22 80 443端口,其他的端口都封上
- #
- iptables -A INPUT -i lo -j ACCEPT
- #
- iptables -A INPUT -p tcp –dport 22 -j ACCEPT
- iptables -A INPUT -p tcp –dport 80 -j ACCEPT
- iptables -A INPUT -p tcp –dport 443 -j ACCEPT
- #
- iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
- #
- iptables -A INPUT -j DROP
复制代码
运行着一个nginx-proxy-manager的容器,把域名test.com解析到了X.X.X.X主机地址,并在npm中设定了返代到10081端口。docker ps的状态如下
- 5272ea7c8dc6 jc21/nginx-proxy-manager:latest "/init" 15 minutes ago Up 15 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:10081->81/tcp, :::10081->81/tcp nginx-proxy-manager_app_1
复制代码
理想的结果是: 22 80 443端口可以正常访问,直接使用ip地址X.X.X.X:10081会被禁止访问。 目前的结果是: 22端口ssh连接正常,访问 X.X.X.X:80 443 10081都可以正常打开页面,但是访问域名test.com无法访问. 如果删除DROP那一条,域名就可以正常访问了。 请教一下大佬,我的设置是哪里有问题么,为什么已经设定drop规则,还能够通过ip地址访问10081端口?
iptables -L -v -n 的结果INPUT部分如下
- Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
- num pkts bytes target prot opt in out source destination
- 1 17 967 ACCEPT all — lo * 0.0.0.0/0 0.0.0.0/0
- 2 1539 116K ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
- 3 0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
- 4 1 40 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
- 5 97 9160 ACCEPT icmp — * * 0.0.0.0/0 0.0.0.0/0
- 6 60023 10M DROP all — * * 0.0.0.0/0 0.0.0.0/0
复制代码
|