这段时间为应对渗透攻击(GFYL),各服务都要做好端口控制,为此分享和记录工作中的一个方法,希望对各位有这问题的人有所帮助。
环境:Kubernetes(K8S)服务部署,Nginx服务反向代理80端口。
要求:确保系统能够有效抵御渗透攻击和扫描,以防止外部恶意主体扫描到内部服务并进行攻击。
方案:通过开启防火墙服务firewalld,并配置规则仅允许目标IP地址和端口访问,可以有效实现这一目标。这种做法可以有效避免外部扫描工具发现和扫描到内部端口,从而提高系统的安全性和防护性。需要注意的是,这个配置需要在所有主机节点上执行以保障整个系统的安全防护措施。
# 启用防火墙
systemctl start firewalld
# 允许来自IP地址xxx.xx.xx.xxx的IPv4数据包通过防火墙。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="xxx.xx.xx.xxx" accept'
# 通过防火墙允许输入流量,并设置注释为"kube-proxy redirects"
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -j ACCEPT -m comment --comment "kube-proxy redirects"
# 通过防火墙允许转发流量,并设置注释为"docker subnet"
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 1 -j ACCEPT -m comment --comment "docker subnet"
# 启用IP伪装功能
firewall-cmd --add-masquerade --permanent
# 在public区域中开放端口80/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 在public区域中开放端口30080/tcp
firewall-cmd --zone=public --add-port=30080/tcp --permanent
# 重新加载防火墙配置,使更改生效
firewall-cmd --reload