一、redis的配置规范
1.1 禁止以root账号运行redis服务
以下Linux 命令操作创建了一个无 home 目录权限,且无法登录的普通账号redis。
#useradd -M -s /sbin/nologin redis
修改服务允许和配置文件权限:
#setsid sudo -u redis /usr/bin/redis-serer /etc/redis/redis.conf
1.2配置redis配置文件权限最小化 查看redis.conf 的访问权限
#/bin/ls –l 查看下列日志文件权限 ,
设置权限为仅redis 用户可以进行读写操作
/usr/bin/chmod 600 /etc/redis/redis.conf
redis审计日志文件权限最小化
chmod + 600 (filename)
查看redis审计日志文件redis.log
1.3
redis.conf 将命令重命名为 ””可以禁用, 或者重命名为复杂无意义的名称,进行隐藏保护。
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""
redis.conf中添加或修改对应的配置项:
requirepass <password>
1.5检查是否启用日志
Redis 自身支持日志记录到系统日志,如/var/log/localmessage。但需要通过在redis.conf 进行如下配置
syslog-enabled yes
syslog-ident redis
syslog-facility local0
保存配置文件,重启服务后生效。
检查是否限定数据库文件权限
Redis 的数据库文件位置,在redis.conf 文件中设定, 默认的数据文件存放目录为 /var/lib/redis 。
查看/var/lib/redis 目录及目录下的数据库文件访问权限
#/bin/ls –l /var/lib/redis
修改相关日志文件的权限为600
#/bin/chmod -R 600 /var/lib/redis
redis服务绑定IP地址 |
在 /etc/redis/redis.conf 中找到 bind 字段,将前面的 # 去掉,根据业务需要配置可以访问服务的IP 地址,例如127.0.0.1 、192.168.1.100 、10.0.0.1 等 ,然后保存。
bind 127.0.0.1 192.168.1.100 10.0.0.1
保存配置文件,重启服务后生效。
检查是否修改默认服务端口
在 /etc/redis/redis.conf 中找到 port 字段,将前面的 # 去掉,根据业务配置 将原有默认服务端口6379 ,修改为其他端口,例如9966,然后保存。
Port 9966
保存配置文件,重启服务后生效。
修改默认连接超时时间
在 /etc/redis/redis.conf 中找到 timeout 字段,将前面的 # 去掉,修改为其他数值,例如 600,然后保存。
timeout 600
保存配置文件,重启服务后生效
下面是完整配置:
#注释掉都能访问了 在后面添加要访问的ip
bind 127.0.0.1 10.0.0.1
protected-mode yes
port 9966
tcp-backlog 511
#
# unixsocket /tmp/redis.sock
# unixsocketperm 700
timeout 600
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_9966.pid
loglevel notice
#日志文件路径
logfile "/var/log/redis.log"
syslog-enabled yes
# Specify the syslog identity. 指定日志标识
syslog-ident redis
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.指定系统日志功能
syslog-facility local0
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass redis.7334453
#重置命令
# rename-command CONFIG ""
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
# elements of a sorted set are below the following limits:
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
es的配置规范
Elasticsearch日志记录完整性要求
在log4j.properties文件中,对Resource Manager和Node Manager进行如下配置:
Elasticsearch配置内容为:
rm.audit.logger=INFO,RMAUDIT
检查是否修改默认端口
在elasticsearch.yml 配置文件中设置:
transport.tcp.port:9301
http.port:9201
将节点间交互的tcp 端口设置为非9300 端口,对外服务的http 端口设置为非9200 端口
检查是否绑定访问源 IP
在elasticsearch.yml 配置文件中绑定IP:network.host:192.168.0.1
设置其它节点和该节点交互的 IP 地址,该地址禁止设置为0.0.0.0
关闭HTTP 访问
在elasticsearch.yml 配置文件中设置:
http.enabled:false
禁止使用全部和通配符来批量删除索引
在elasticsearch.yml 配置文件中设置:
action.destructive_requires_name:true
设置密码访问
修改elasticsearch.yml 配置文件
xpack.security.enabled: true
#说明:免费版的xpack 插件已提供账号密码认证功能。
2)创建keystore 文件,如已有该文件无需重复创建
bin/elasticsearch-keystore create
mq的配置规范