Flink自带一个Web界面,但是这个Dashboard默认没有用户权限认证。攻击者可以通过未授权的Flink Dashboard控制台,直接上传木马jar包,可远程执行任意系统命令获取服务器权限,风险极大。
解决方案可以禁止Dashboard对外访问,或者确保只对可信端点开放,但有时确实需要开放,此时我们可以借助Nignx使用HTTP基本身份验证限制访问。
1、安装Nginx(略)
2、安装httpd-tools工具
yum install httpd-tools -y
3、生成密码
运行htpasswd
带有-c
标志的实用程序(以创建一个新文件),文件路径名作为第一个参数,用户名作为第二个参数
# htpasswd -c /etc/nginx/conf.d/.htpasswd test
New password:
Re-type new password:
Adding password for user test
4、确认密码文件包含成对的用户名和加密的密码
# cat /etc/nginx/conf.d/.htpasswd
test:$apr1$dA9EyY51$2AuyHQ6Mc9u0xW/QaxveQ.
5、配置Nginx
server {
listen 8081;
server_name _;
#root /usr/share/nginx/html;
location / {
client_max_body_size 150m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8084;
auth_basic "Apache Flink Dashboard :)";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
}
配置完成后记得Reload一下
# nginx -s reload
6、验证是否配置成功