konga的致命bug
最近忙于处理安全事故,在政府的白帽行动中,发现了误暴露在公网的konga,通过发送post请求,能够成功注册管理员进而管理所有规则。我试过两个版本都成功
屏蔽公网访问避免95%的安全问题!
最近忙于处理安全事故,在政府的白帽行动中,发现了误暴露在公网的konga,通过发送post请求,能够成功注册管理员进而管理所有规则。我试过两个版本都成功
屏蔽公网访问避免95%的安全问题!
在一次常态的EMQ集群巡检时发现,有非周期的CPU超过80%毛刺,按照预案新增了如下防火墙规则限流(此规则验证过多次),当天为了方便使用&&将多行语句连接成一行。执行后发现连接数立刻下降,通过监控发现大量连接都变成了non-establish
# 清空INPUT链,标记RELATED,ESTABLISHED,对超出限速的REJECT
iptables -F INPUT
iptables -t filter -A INPUT -p tcp -m multiport -m state --dport 1883,8883 --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -p tcp -m multiport -m state -m limit --dport 1883,8883 --limit 200/second --limit-burst 600 --state NEW -j ACCEPT
iptables -t filter -A INPUT -p tcp -m multiport --dport 1883,8883 -j REJECT --reject-with tcp-reset
service iptables save
# 当天为批量执行,简化为一条
iptables -F INPUT && iptables -t filter -A INPUT -p tcp -m multiport -m state --dport 1883,8883 --state RELATED,ESTABLISHED -j ACCEPT && iptables -t filter -A INPUT -p tcp -m multiport -m state -m limit --dport 1883,8883 --limit 200/second --limit-burst 600 --state NEW -j ACCEPT && iptables -t filter -A INPUT -p tcp -m multiport --dport 1883,8883 -j REJECT --reject-with tcp-reset && service iptables save
黄色为non-establish
经排查,在执行标记流量 --state RELATED,ESTABLISHED 会将连接当前状态写入系统内核文件 /proc/net/nf_conntrack,当时每台机器均有100000左右连接,写入磁盘需要2-3秒。用&&将命令合并=没有间隔马上执行下条命令,未写完的连接未标记完成,命中了第三条REJECT tcpreset。陷入取消限速集群扛不住,增加限速丢弃连接死循环,通过SLB限速后,原厂删除集群信息后重建恢复。结论:iptables标记流量需要考虑写盘IO,执行时慢一些
家中台式机win10,连接的小爱蓝牙音响。使用中有个小bug查了好久,当使用chrome播放视频关闭标签页后,电脑声音消失,必须打开蓝牙重新连接。
今天偶然搜到 chrome浏览器 输入: chrome://flags/#hardware-media-key-handling 把Hardware Media Key Handling设置成disable ,重启浏览器.解决
近期遇到个折腾需求,客户的安全管理制度严格,设备端出方向也需要经过加白才能访问。当我们使用了大量的CDN时,无法告知其准确的IP。
收到这个需求时我是崩溃的,都2021年了,客户防火墙还不能添加域名白名单。
经过一段时间的折腾,发现dnsmasq支持单域名重定向,配置也相当简单。在dnsmasq的 /etc/hosts中添加即可。
192.168.1.10 a.baidu.com web01
192.168.1.20 b.baidu.com web02
业务镜像往往是非常精简、基础(处于安全考虑也不应该安装非业务内容)。不含常见的curl、ping、tcping、tcpdump等工具,甚至没有sh,kubectl-debug太重,需要在node安装agent,有更简单的方法:nsenter,是大多数系统自带的用于进入指定命令空间的工具。
#查看容器位置
kubectl get pod xxx -n xxx -o wide
#在容器所在物理机查看容器id
docker ps |grep nginx-new-57f8fcdc7d-6r69n
#容器内查看Pid
docker inspect c5decf942415|grep -w Pid
#nsenter进入,此时和容器处于相同进程空间,可以使用宿主机的所有命令
nsenter -n -t 87296 #可以看到只能看到容器本身IP
#从抓包内容验证,只有访问此container ip的请求才能被抓到
#使用完成记得ctrl+d退出