网安在进行安全漏扫时,发现漏洞Apache Flink任意jar包上传导致远程代码执行,对此处理的过程记录
一、详细描述
Apache Flink是一个用于分布式流和批处理数据的开放源码平台。Flink的核心是一个流数据流引擎,它为数据流上的分布式计算提供数据分发、通信和容错功能。Flink在流引擎之上构建批处理,覆盖本地迭代支持、托管内存和程序优化。近日有安全研究人员发现apache flink允许上传任意的jar包从而导致远程代码执行。
二、解决方案
使用htpasswd生成用户名密码文件,然后结合nginx配置,为Flink自带的无账号密码的webUI界面添加安全访问控制。主要步骤包括安装工具,创建用户认证文件,以及调整nginx的配置设置。
三、处理过程
本次操作系统为Debian
由于Flink自带的web UI界面没有账号密码,需要通过nginx实现该效果。
1、安装htpasswd
apt-get update
apt-get install apache2-utils
2、生成密码文件
htpasswd -c /etc/nginx/flinkuser(生成的密码文件) flink(账户)
# 之后会提示让输入两次密码
3、安装nginx
apt install -y nginx
4、修改nginx配置
# 编辑新文件
vim /etc/nginx/sites-enabled/flink-api.conf
#添加以下内容
server {
listen 8082 default_server;
listen [::]:8082 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/flinkuser;
proxy_pass http://127.0.0.1:8081;
}
}
#检测配置
nginx -t
#重新加载配置
nginx -s reload
5、验证
访问nginx IP:端口
提示要输入账户密码,即为成功。
关注公众号**「原宏Cloud运维栈」**,带你学习更多实战经验!