一、前言
IT运维过程中,配置的变更和管理是一件非常重要且必要的事,除了一般宏观层面的配置管理,还有应用配置参数的配置优化,本文手机整理常用应用组件配置项配置,尤其安全层面,以提供安全加固指导实践。
二、配置安全
2.1、Flink配置安全
https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/deployment/security/security-kerberos/
https://zhuanlan.zhihu.com/p/645444461?utm_id=0
2.2、Nginx 配置安全
2.3、Redis 配置安全
port 6379 #注意:此处可以改成其他端口号;
bind 127.0.0.1 #绑定到127.0.0.1,只允许本地访问redis服务,避免来自公网的攻击;当然也可以指定为多个IP 地址,用空格分隔即可,一般指定为允许访问的ip
protected-mode yes
#使用认证密码来限制用户的访问
requirepass mypassword #客户端程序中使用AUTH命令来认证
#或
./redis-cli -h localhost -p 6379 -a mypassword
#防火墙
iptables -A INPUT -p tcp –dport 6379 -s xxx.xxx.xxx.xxx -j ACCEPT #只允许固定的内网段访问redis
iptables -A INPUT -p tcp –dport 6379 -j DROP
#禁用危险命令:FLUSHALL、FLUSHDB、CONFIG 等,这些命令可以导致数据丢失或系统崩溃,禁用它们,即将需要禁用的命令解注释
rename-command CONFIG ""
rename-command FLUSHDB ""
rename-command FLUSHALL ""
#日志记录和审计
loglevel verbose #默认为notice
logfile "/var/log/redis/redis.log"
#TLS 加密通信
2.4、GPDB配置安全
https://www.bookstack.cn/read/greenplum-5.0-zh/808a64c0d6b0da30.md
sysctl -a | grep vm.overcommit_ratio
#段服务器内存:控制了每个段数据库为所有运行的查询分配的内存总量。如果查询需要的内存超过此值,则会失败
#估算公式:(swap + (RAM * vm.overcommit_ratio)) * 0.9 / number_of_Segments_per_server,注意当vm.overcommit_memory=1时,该公式变为 (swap + RAM) * 0.9/n
gp_vmem_protect_limit
#到master节点上执行以下命令即可
gpconfig -c gp_vmem_protect_limit -m 32768 -v 24576 #其中,c : 改变参数的名称;-m : 修改主备master的内存的大小一般的和-v一块使用;-v : 此值用于所有的segments,mirrors和master的修改
#验证
gpconfig -s gp_vmem_protect_limit
#只能配置segment节点,用作磁盘读写的内存缓冲区,刚开始可以设置一个较小的值,比如总内存的10%,然后逐渐增加,过程中监控性能提升和swap的情况再调整,但此值也不易设置过大,过大或导致以下错误
gpconfig -c shared_buffers -v 8GB # 总内存的10%
#最大连接数,Segment建议设置成Master的5-10倍。
max_connections = 200 #(master、standby)
max_connections = 1200 #(segment)
#设置
gpconfig -c max_connections -m 500 -m 2500
#验证
gpconfig -s max_connections
#work_mem:在segment用作sort,hash操作的内存大小,当PostgreSQL对大表进行排序时,数据库会按照此参数指定大小进行分片排序,将中间结果存放在临时文件中,这些中间结果的临时文件最终会再次合并排序,所以
#增加此参数可以减少临时文件个数进而提升排序效率。但设置过大,会导致swap的发生,所以设置此参数时仍需谨慎。刚开始可设置总内存的5%
gpconfig -s work_mem
gpconfig -c work_mem -v 2048MB