我正在尝试配置 iptables 的安全设置。
基本上,我设置了一个白名单并尝试对其进行测试。
我设置了以下设置,通过允许输入值 22、80,443 来允许 ssh、http 和 https 访问我的服务器。临时港口也被允许。
sudo iptables -t filter -F
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3000: -j ACCEPT
以下是设置列表。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:3000:65535
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我按照上面的方法允许了,但我能够正常连接到服务器的 80 端口上的 ssh 和 apache。
但是,“curl https://google.com”命令在我的服务器上没有正确响应。
奇怪的是添加以下规则后:
sudo iptables -P INPUT ACCEPT
当我执行“curl https://google.com”时,通信正常完成。
这是什么原因,有什么解决办法呢?