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为零的账号。
  2. 加固空口令账号:
    • 使用命令 passwd <用户名> 为空口令账号设定密码。
    • 确认UID为零的账号只有root账号。

1.3 添加口令策略

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

操作步骤

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

    • PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
    • PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
    • PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
  2. 使用chage命令修改用户设置。
    例如,chage -m 0 -M 30 -E 2000-01-01 -W 7 <用户名>表示将此用户的密码最长使用天数设为30,最短使用天数设为0,密码2000年1月1日过期,过期前七天警告用户。
  3. 设置连续输错三次密码,账号锁定五分钟。使用命令 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服务),降低风险。

操作步骤

使用命令systemctl disable <服务名>设置服务在开机时不自动启动。

说明: 对于部分老版本的Linux操作系统(如CentOS 6),可以使用命令chkconfig --level <init级别> <服务名> off设置服务在指定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. 在配置文件中输入以下内容:
     
    1. history
    2. USER=`whoami`
    3. USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    4. if [ "$USER_IP" = "" ]; then
    5. USER_IP=`hostname`
    6. fi
    7. if [ ! -d /var/log/history ]; then
    8. mkdir /var/log/history
    9. chmod 777 /var/log/history
    10. fi
    11. if [ ! -d /var/log/history/${LOGNAME} ]; then
    12. mkdir /var/log/history/${LOGNAME}
    13. chmod 300 /var/log/history/${LOGNAME}
    14. fi
    15. export HISTSIZE=4096
    16. DT=`date +"%Y%m%d_%H:%M:%S"`
    17. export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
    18. 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服务收集存储日志。

更多内容:https://help.aliyun.com/knowledge_detail/49809.html?spm=a2c4g.11186631.2.2.7d5010ec0P2zgh

Linux操作系统加固的更多相关文章

  1. 阿里云服务器 ECS Linux操作系统加固

    1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...

  2. Linux主机操作系统加固规范

      对于企业来说,安全加固是一门必做的安全措施.主要分为:账号安全.认证授权.协议安全.审计安全.总的来说,就是4A(统一安全管理平台解决方案),账号管理.认证管理.授权管理.审计管理.用漏洞扫描工具 ...

  3. 如何保护你的linux操作系统

    如何保护你的linux操作系统 导读 在现在这个世道中,Linux操作系统的安全是十分重要的.但是,你得知道怎么干.一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作.那么试试下面这些手 ...

  4. Centos7.0操作系统加固常见方法

    1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...

  5. linux系统加固方案

    Linux主机操作系统加固规范 目  录 第1章      概述... 1 1.1        目的... 1 1.2        适用范围... 1 1.3        适用版本... 1 1 ...

  6. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份

    前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...

  7. Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

    http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...

  8. 安装linux操作系统

    安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...

  9. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

随机推荐

  1. jQuery EasyUI 详解

    EasyUI 简介 easyui 是一种基于 jQuery 的用户界面插件集合. easyui 为创建现代化,互动,JavaScript 应用程序,提供必要的功能. 使用 easyui 你不需要写很多 ...

  2. Intellij 高亮显示与选中字符串相同的内容

    如下图所示,我的是 2018,不同版本,Schema 可能要 Save As一下

  3. delphi从TRichEdit获得RTF格式文本(PC版本)

    function GetRTF(RE: TRichedit): string;varstrStream: TStringStream;beginstrStream := TStringStream.C ...

  4. iOS10.3 起,将支持应用内评分

    iOS10.3 起,将支持应用内评分. (2017-01-25,现在最高版本iOS10.2.1,Xcode 稳定版本Xcode8.2.1,Xcode Beta版本 Xcode8.3Beta(BW109 ...

  5. mac os下不同工具go env下gopath显示不同

    设置 vim ~/.zshrc 设置 vim ~/.bash_profile

  6. 使用docker安装tomcat服务

    1. 拉取官方tomcat镜像 docker pull tomcat 2. 创建tomcat容器目录 [root@WSyHRQ171356 /]# mkdir /tomcat/test 3. 创建测试 ...

  7. 深入理解 Java 虚拟机之学习笔记(3)

    垃圾回收(Garbage Collection,GC ),GC的历史其实比Java久远,1960年诞生与MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言.当Lisp还在胚胎时期时,人们 ...

  8. highcharts.js的时间轴折线图

    工作中正好用到. 鼠标按住左键 左右移动可以试试 <!DOCTYPE> <html lang='en'> <head> <title>4-Highcha ...

  9. react ref获取dom对象

    react文档 step = React.createRef(); // init <div ref={this.step}></div> // bind componentD ...

  10. MultipartFile实现文件上传

    一.主要有两个java类,和一般的servlet放在一起即可. 1.FileUploadBean.java package chb.demo.web;import org.springframewor ...