Centos服务器和redis和nginx和mysql基础安全加固处理

Centos服务器和redis和nginx和mysql基础安全加固处理Centos服务器和redis和nginx和mysql基础安全加固处理

Centos服务器和redis和nginx和mysql基础安全加固处理[数据库教程]

Centos 基本安全加固

确保root是唯一的UID为0的帐户 或者修改root用户名称为其他用户
     除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }‘|grep -v ‘^root$‘)都应该删除,或者为其分配新的UID  或者修改root用户
       例如: hanye:x:0:0:root:/root:/bin/bash   登录使用hanye用户登录
开启地址空间布局随机化 
    在/etc/sysctl.conf  文件中设置以下参数: kernel.randomize_va_space = 2 
     或者执行命令: sysctl -w kernel.randomize_va_space=2
设置用户权限配置文件的权限
    chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
    chmod 0644 /etc/group  
    chmod 0644 /etc/passwd  
    chmod 0400 /etc/shadow  
    chmod 0400 /etc/gshadow  
    chattr +i   /etc/passwd /etc/shadow /etc/group /etc/gshadow
访问控制配置文件的权限设置
    chown root:root /etc/hosts.allow 
    chown root:root /etc/hosts.deny 
    chmod 644 /etc/hosts.deny
    chmod 644 /etc/hosts.allow
确保SSH LogLevel设置为INFO,记录登录和注销活动
    编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):
      LogLevel INFO
确保rsyslog服务已启用 记录日志用于审计
    systemctl enable rsyslog
    systemctl start rsyslog
设置SSH空闲超时退出时间,可降低未授权用户访问其他用户SSH会话的风险
    编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
       ClientAliveInterval 600
       ClientAliveCountMax 2
    或者设置: cat /etc/profile  添加  export TMOUT=600
设置较低的Max AuthTrimes参数将降低SSH服务器被暴力***成功的风险。
    在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,
       MaxAuthTries 4
确保密码到期警告天数为7或更多
    在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7:
       PASS_WARN_AGE 7
    同时执行命令使root用户设置生效: 
       chage --warndays 7 root
禁止SSH空密码用户登录 
    编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:
       PermitEmptyPasswords no
强制用户不重用最近使用的密码,降低密码猜测***风险
    在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
检查密码长度和密码是否使用多种字符类型
    编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为8-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中的3类或4类)设置为3或4。如:
      minlen=10
      minclass=3
设置密码修改最小间隔时间,限制密码更改过于频繁
    在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
    PASS_MIN_DAYS 7
    需同时执行命令为root用户设置:
    chage --mindays 7 root
设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登录方式
    使用非密码登录方式如密钥对,请忽略此项。在 /etc/login.defs中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
    PASS_MAX_DAYS 90
    需同时执行命令设置root密码失效时间:
    chage --maxdays 90 root

redis 安全配置

redis 修改或者禁用危险的命令,或者尽量避免谁都可以使用这些命令

rename-command FLUSHALL ""    #禁用 FLUSHALL
rename-command FLUSHDB  ""    #禁用 FLUSHDB
rename-command CONFIG   ""    #禁用 CONFIG 
rename-command KEYS     ""    #禁用 KEYS
rename-command SHUTDOWN ""    #禁用 SHUTDOWN
rename-command DEL ""         #禁用 DEL
rename-command EVAL ""        #禁用 EVAL
或者替换为其他执行命令
rename-command FLUSHALL deleteall       #FLUSHALL 命令修改为 deleteall
rename-command FLUSHDB  deletedatabase  #FLUSHDB  命令修改为 deletedatabase 
rename-command CONFIG   
rename-command KEYS     
rename-command SHUTDOWN 
rename-command DEL          
rename-command EVAL       
修改 默认监听端口和ip地址
    找到redis.conf 修改 port 和 bind 配置
    vim  /usr/local/redis/etc/redis.conf
       port 8369   #修改端口为8369
       bind 127.0.0.1 10.29.129.179  #修改监听ip  如果是自己内网链接 监听127.0.0.1,如果内网其他服务器也要链接 则监听内网ip地址
  限制redis 配置文件访问权限
     chmod 600 /usr/local/redis/etc/redis.conf
 禁止root用户启动
      groupadd -g 1002 redis
      useradd -g 1002 -u 1002 -M -s /sbin/nolog redis 
      sudo -u redis /use/local/bin/redis-server /usr/local/redis/etc/redis.conf 
打开保护模式(访问控制)
    打开保护模式 protected-mode yes

mysql安全配置

MySQL服务不允许匿名登录

delete from user where user=‘‘;
flush privileges
禁用local-infile选项
    禁用local_infile选项会降低***者通过SQL注入漏洞器读取敏感文件的能力
    编辑Mysql配置文件 my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务: 
    local-infile=0
禁用skip_symbolic_links选项  禁用符号链接以防止各种安全风险
    skip_symbolic_links=yes
修改默认3306端口 
    编辑my.cnf文件,mysqld 段落中配置新的端口参数,并重启MySQL服务
    port=33066
禁止使用--skip-grant-tables选项启动MySQL服务
    编辑Mysql配置文件my.cnf,删除skip-grant-tables参数,并重启mysql服务  
确保log-raw选项没有配置为ON
    当log-raw记录启用时,有权访问日志文件的人可能会看到纯文本密码。
    编辑Mysql配置文件my.cnf,删除log-raw参数,并重启mysql服务

Nginx安全加固

Nginx后端服务指定的Header隐藏状态  隐藏Nginx后端服务X-Powered-By头
    隐藏Nginx后端服务指定Header的状态: 
    在http下配置proxy_hide_header项;
    增加或修改为 proxy_hide_header X-Powered-By; proxy_hide_header Server;
检查是否配置Nginx账号锁定策略
    Nginx服务建议使用非root用户(如nginx,www)启动,并且确保启动用户的状态为锁定状态。可执行passwd -l <Nginx启动用户> 如passwd -l nginx 来锁定Nginx服务的启动用户。命令 passwd -S <用户> 如passwd -S nginx可查看用户状态。 修改配置文件中的nginx启动用户修改为nginx或者www 如: user www; 如果您是docker用户,可忽略该项(或添加白名单)
Nginx进程启动账号状态,降低被***概率
    修改Nginx进程启动账号: 
    查看配置文件的user配置项,确认是非root启动的;(user 配置项)
    如果是root启动,修改成www或者nginx账号; 
    修改完配置文件之后需要重新启动Nginx。
Nginx服务的版本隐藏状态
    在http配置项下 配置server_tokens项 server_tokens off;
把控配置文件权限以抵御外来***
    修改Nginx配置文件权限: 执行chmod 644 conf/vhost/*.conf conf/nginx.conf 来限制Nginx配置文件的权限
SSL加固
    配置支持TLSv1.2;
    server { 
          ssl_protocols TLSv1.2;
            }
如果没有必要 不要启用目录列表,这在***者侦察中可能很有用,因此应将其禁用。如果要打开 不要忘记设置登录验证密码
    在location下删除或者修改为 autoindex off;
    加密方式:
      yum install -y httpd-tools
      htpasswd -c /usr/local/nginx/conf/passwd_xuqiu   xuqiu
      然后赋值密码
      nginx调用授权密码文件
      server {
        auth_basic "Please input password"; #这里是验证时的提示信息
        auth_basic_user_file /usr/local/nginx/conf/passwd_xuqiu;
      }

Centos服务器和redis和nginx和mysql基础安全加固处理

原文:https://blog.51cto.com/9025736/2529534

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6702.html

(0)
上一篇 2023-04-05
下一篇 2023-04-05

相关推荐

  • Python List转Array的小技巧

    Python List转Array的小技巧Python是一种强大的编程语言,广泛应用于各种领域。Python List是Python语言中的一种基本数据类型,可以用于存储一系列的数据。然而,在某些情况下,我们需要将Python List转换为Array类型,以便更好地执行我们的程序。在本文中,我们将介绍Python List转Array的小技巧,让读者可以更好地理解这个过程,并使他们的代码更为高效。

    2024-05-04
    0
  • 关系型数据库 事务_简述事务的概念

    关系型数据库 事务_简述事务的概念一、基本概念 假设用户A要从他的账户里面给B转账1000元,那么就需要两步来实现,首先从A的账号减去1000元,再给B账号加1000元。这两个步骤中,任何一步都不能少或者出错,这两步要么都得到成功操作

    2022-12-29
    101
  • 苏州哪里有开住宿费发票

    苏州哪里有开住宿费发票电薇13530507261 陈晨幵票,保真。链接与装载是一个比较晦涩的话题,大家往往容易陷入复杂的细节中而难以看清问题的本来面目。从本质上讲各个系统的编译、链接、装载过程都是大同小异的,或许可以用一…

    2023-02-16
    98
  • Apache Flink 为什么能够成为新一代大数据计算引擎?「建议收藏」

    Apache Flink 为什么能够成为新一代大数据计算引擎?「建议收藏」众所周知,Apache Flink(以下简称 Flink)最早诞生于欧洲,2014 年由其创始团队捐赠给 Apache 基金会。如同其他诞生之初的项目,它新鲜,它开源,它适应了快速转的世界中更重视的…

    2022-12-18
    97
  • 达梦数据库产品支持技术学习分享_Week1 – 时山

    达梦数据库产品支持技术学习分享_Week1 – 时山本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考。 一、达梦数据库的体系架构 二、达梦数据库的安装 三、达梦数据库的数据类型 四、达梦数据库的DDL、DML、

    2023-04-15
    101
  • ubuntu安装apache服务器_PHP服务器

    ubuntu安装apache服务器_PHP服务器Ubuntu 下 Apache2 和 PHP 服务器环境配置 1、简介 本文主要是 Ubuntu 下 Apache2 和 PHP 服务器环境配置方法,同样适用于 Debian 系统:Ubuntu 20

    2023-04-16
    102
  • 分布式数据库调优实践

    分布式数据库调优实践数据库调优实践案例 数据库作为基础数据支撑层的核心部分,对于应用和平台整体性能表现有着决定性的影响。因此,数据库性能优化可以说是最考验DBA能力的工作了。本文我们就由数据库内核专家来,以 Sequo…

    2023-03-15
    109
  • SQL 关联子查询[通俗易懂]

    SQL 关联子查询[通俗易懂]学习重点 关联子查询会在细分的组内进行比较时使用。 关联子查询和 GROUP BY 子句一样,也可以对表中的数据进行切分。 关联子查询的结合条件如果未出现在子查询之中就会发生错误。 一、普通的子查询和

    2023-04-29
    98

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注