方案一:通过Linux防火墙规则限制
目标:限制Doris的端口,只允许指定的ip访问此端口,其他禁止
1、设置规则
1.1、准备工作
注意:以上命令顺序不能错,先禁止后允许,另外此处只是临时设置。
# 使用root用户进行操作
su - root
1.2、规则设置
1、禁止所有的ip访问本机端口
在tcp协议中,禁止所有的ip访问本机的Doris端口
iptables -I INPUT -p tcp --dport 8030 -j DROP
iptables -I INPUT -p tcp --dport 8040 -j DROP
iptables -I INPUT -p tcp --dport 8060 -j DROP
2、允许主机访问本机的端口
- 使用 -I 将规则插入到 INPUT 链的开头。这意味着它将在现有规则之前生效
- 仅允许来自特定 IP 地址 192.168.0.1 的数据包
- 指定了协议为 TCP 和目标端口为 8060,因此只适用于符合这些条件的数据包
iptables -I INPUT -s 192.168.0.1 -ptcp --dport 8030 -j ACCEPT
iptables -I INPUT -s 192.168.0.2 -ptcp --dport 8030 -j ACCEPT
iptables -I INPUT -s 192.168.0.3 -ptcp --dport 8030 -j ACCEPTiptables -I INPUT -s 192.168.0.1 -ptcp --dport 8040 -j ACCEPT
iptables -I INPUT -s 192.168.0.2 -ptcp --dport 8040 -j ACCEPT
iptables -I INPUT -s 192.168.0.3 -ptcp --dport 8040 -j ACCEPTiptables -I INPUT -s 192.168.0.1 -ptcp --dport 8060 -j ACCEPT
iptables -I INPUT -s 192.168.0.2 -ptcp --dport 8060 -j ACCEPT
iptables -I INPUT -s 192.168.0.3 -ptcp --dport 8060 -j ACCEPT
- 使用 -A 将规则追加到 INPUT 链的末尾。这意味着它将在现有规则之后生效。
- 允许来自整个 192.168.1.0/24 子网的所有 IP 地址。
- 没有指定协议或端口,因此适用于所有协议和端口。
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
3、允许127.0.0.1回环地址访问
iptables -I INPUT -s 127.0.0.1 -ptcp --dport 8030 -j ACCEPT
iptables -I INPUT -s 127.0.0.1 -ptcp --dport 8040 -j ACCEPT
iptables -I INPUT -s 127.0.0.1 -ptcp --dport 8060 -j ACCEPT
4、保存规则并使其生效
service iptables save
5、重启防火墙
systemctl start iptables
6、查看规则
iptables -L -n -v --line-number
7、删除规则
删除完后需要执行第4、5步骤,在执行第6步进行查看规则
# 删除编号为 2 的规则
iptables -D INPUT 2
# 删除匹配规则内容
iptables -D INPUT -p tcp --dport 8060 -j DROP
# 清空 INPUT 链的所有规则
iptables -F INPUT
# 清空所有链的所有规则
iptables -F
2、重启docker
2.1、关闭docker容器
docker ps -a |grep -v NAMES|awk '{print $NF}'|xargs docker stop
1、关闭docker服务
service docker stop
2、启动docker服务
service docker start
2.1、启动docker容器
docker ps -a |grep -v NAMES|awk '{print $NF}'|xargs docker start