0

0

Linux服务器操作系统如何加固

小云云

小云云

发布时间:2018-02-24 09:57:05

|

2525人浏览过

|

来源于php中文网

原创

本文主要和大家分享linux服务器操作系统如何加固,本帮助手册旨在指导系统管理人员或安全检查人员进行linux操作系统的安全合规性检查和加固,需要的朋友可以参考下,希望能帮助到大家。

1. 账号和口令

1.1 禁用或删除无用账号

减少系统无用账号,降低安全风险。

操作步骤

  • 使用命令 userdel 删除不必要的账号。

  • 使用命令 passwd -l 锁定不必要的账号。

  • 使用命令 passwd -u 解锁必要的账号。

1.2 检查特殊账号

检查是否存在空口令和root权限的账号。

操作步骤

  1. 查看空口令和root权限账号,确认是否存在异常账号:

  • 使用命令 awk -F: '($2=="")' /etc/shadow 查看空口令账号。

  • 使用命令 awk -F: '($3==0)' /etc/passwd 查看UID为零的账号。

  • 加固空口令账号:

    • 使用命令 passwd 为空口令账号设定密码。

    • 确认UID为零的账号只有root账号。

    1.3 添加口令策略

    加强口令的复杂度等,降低被猜解的可能性。

    操作步骤

    1. 使用命令 vi /etc/login.defs 修改配置文件。

    • PASS_MAX_DAYS 90 #新建用户的密码最长使用天数

    • PASS_MIN_DAYS 0 #新建用户的密码最短使用天数

    • PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数

  • 使用chage命令修改用户设置。
     例如,chage -m 0 -M 30 -E 2000-01-01 -W 7 表示将此用户的密码最长使用天数设为30,最短使用天数设为0,密码2000年1月1日过期,过期前七天警告用户。

  • 设置连续输错三次密码,账号锁定五分钟。使用命令 vi /etc/pam.d/common-auth修改配置文件,在配置文件中添加 auth required pam_tally.so onerr=fail deny=3 unlock_time=300

  • 1.4 限制用户su

    限制能su到root的用户。

    操作步骤

    使用命令 vi /etc/pam.d/su修改配置文件,在配置文件中添加行。例如,只允许test组用户su到root,则添加 auth required pam_wheel.so group=test

    1.4 禁止root用户直接登录

    限制root用户直接登录。

    操作步骤

    1. 创建普通权限账号并配置密码,防止无法远程登录;

    2. 使用命令 vi /etc/ssh/sshd_config修改配置文件将PermitRootLogin的值改成no,并保存,然后使用service sshd restart重启服务。

    2. 服务

    2.1 关闭不必要的服务

    关闭不必要的服务(如普通服务和xinetd服务),降低风险。

    广州礼品采购平台
    广州礼品采购平台

    具有功能全面实用、安全性稳定性高、易操作、管理维护简单 的特点,采用独创的智能型技术,web服务器、数据库和应用程序全 部自动傻瓜安装配置。 管理员可以为客户推荐产品和更新所推荐的 礼品商品。本系统比较适合做礼品商品。 界面简洁大方。后台管理方便,分类可以无限级别。产品添加 简单。

    下载

    操作步骤

    使用命令 chkconfig --level on|off|reset 设置服务在指定init级别下开机是否启动。

    2.2 SSH服务安全

    对SSH服务进行安全加固,防止暴力破解成功。

    操作步骤

    使用命令 vim /etc/ssh/sshd_config 编辑配置文件。

    • 不允许root账号直接登录系统。
       设置 PermitRootLogin 的值为 no。

    • 修改SSH使用的协议版本。
       设置 Protocol 的版本为 2。

    • 修改允许密码错误次数(默认6次)。
       设置 MaxAuthTries 的值为 3。

    配置文件修改完成后,重启sshd服务生效。

    3. 文件系统

    3.1 设置umask值

    设置默认的umask值,增强安全性。

    操作步骤

    使用命令 vi /etc/profile 修改配置文件,添加行 umask 027, 即新创建的文件属主拥有读写执行权限,同组用户拥有读和执行权限,其他用户无权限。

    3.2 设置登录超时

    设置系统登录后,连接超时时间,增强安全性。

    操作步骤

    使用命令 vi /etc/profile 修改配置文件,将以 TMOUT= 开头的行注释,设置为TMOUT=180,即超时时间为三分钟。

    4. 日志

    4.1 syslogd日志

    启用日志功能,并配置日志记录。

    操作步骤

    Linux系统默认启用以下类型日志:

    • 系统日志(默认)/var/log/messages

    • cron日志(默认)/var/log/cron

    • 安全日志(默认)/var/log/secure

    注意:部分系统可能使用syslog-ng日志,配置文件为:/etc/syslog-ng/syslog-ng.conf。

    您可以根据需求配置详细日志。

    4.2 记录所有用户的登录和操作日志

    通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查。

    操作步骤

    1、运行 [root@xxx /]# vim /etc/profile打开配置文件。

    2、在配置文件中输入以下内容:


    history
    USER=`whoami`
    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ]; then
    USER_IP=`hostname`
    fi
    if [ ! -d /var/log/history ]; then
    mkdir /var/log/history
    chmod 777 /var/log/history
    fi
    if [ ! -d /var/log/history/${LOGNAME} ]; then
    mkdir /var/log/history/${LOGNAME}
    chmod 300 /var/log/history/${LOGNAME}
    fi
    export HISTSIZE=4096
    DT=`date +"%Y%m%d_%H:%M:%S"`
    export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
    chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

    3、运行 [root@xxx /]# source /etc/profile 加载配置生效。
    注意: /var/log/history 是记录日志的存放位置,可以自定义。

    通过上述步骤,可以在 /var/log/history 目录下以每个用户为名新建一个文件夹,每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作(root用户除外)。

    同时,建议您使用OSS服务收集存储日志。

    相关推荐:

    php 获取服务器操作系统信息最全的基本命令详解

    php获取服务器操作系统相关信息的方法

    php 判断服务器操作系统的类型_PHP教程

    相关专题

    更多
    云朵浏览器入口合集
    云朵浏览器入口合集

    本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

    0

    2026.01.20

    Java JVM 原理与性能调优实战
    Java JVM 原理与性能调优实战

    本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

    20

    2026.01.20

    PS使用蒙版相关教程
    PS使用蒙版相关教程

    本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

    62

    2026.01.19

    java用途介绍
    java用途介绍

    本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

    87

    2026.01.19

    java输出数组相关教程
    java输出数组相关教程

    本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

    39

    2026.01.19

    java接口相关教程
    java接口相关教程

    本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

    10

    2026.01.19

    xml格式相关教程
    xml格式相关教程

    本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

    13

    2026.01.19

    PHP WebSocket 实时通信开发
    PHP WebSocket 实时通信开发

    本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

    19

    2026.01.19

    微信聊天记录删除恢复导出教程汇总
    微信聊天记录删除恢复导出教程汇总

    本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

    160

    2026.01.18

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PostgreSQL 教程
    PostgreSQL 教程

    共48课时 | 7.5万人学习

    Git 教程
    Git 教程

    共21课时 | 2.8万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号