Ubuntu基线指导手册

1.   身份鉴别策略组检测

准备:

安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。

在Debian,Ubuntu或者Linux Mint使用命令:

sudo apt-get install libpam-cracklib

这个模块在CentOS,Fedora或者RHEL默认安装了。但是在Ubuntu这些系统上就必需安装。

1.1.  口令周期检测

1.1.1.     最长使用周期小于等于90天(非强制)

sudo vim /etc/login.defs

PASS_MAX_DAYS 90

PASS_MAX_DAYS 99999 代表永不过期

1.1.2.     查看密码期限:最短更换周期大于等于2天

PASS_MIN_DAYS 2

检查命令:

chage -l root

1.1.3.     距失效提示天数大于等于5天

PASS_WARN_AGE 5

1.2.  密码复杂度检测

1.2.1.     密码复杂性要求

pam_cracklib.so支持的部分选项如下:

retry=N定义登录/修改密码失败时,可以重试的次数

minlen=N新密码的最小长度

dcredit=N当N>0时表示新密码中数字出现的最多次数;当N<0时表示新密码中数字出现最少次数;

ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数;

lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数;

ocredit=N当N>0时表示新密码中特殊字符出现的最多次数;当N<0时表示新密码中特殊字符出现最少次数;

maxrepeat=N拒绝包含多于N个相同连续字符的密码。 默认值为0表示禁用此检查

maxsequence=N拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,否则大多数此类密码都不会通过简单检查。

enforce_for_root: 如果用户更改密码是root,则模块将在失败检查时返回错误。默认情况下,此选项处于关闭状态,只打印有关失败检查的消息,但root仍可以更改密码。不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查

方法:

vim /etc/pam.d/common-password

password requisite pam_cracklib.so retry=3 minlen=10 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

在pam_cracklib.so 后添加minlen=10 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

参数含义:密码长度最小为10位,数字出现的最少次数为1次,大写字母出现最少1次,小写字母出现最少1次,特殊字符出现最少1次

1.3.  登录锁定检测

1.3.1.     普通用户触发锁定次数小于等于5

1.3.2.     普通用户锁定时间大于等于5分钟

1.3.3.     Root用户触发锁定次数小于等于5

1.3.4.     Root用户锁定时间大于等于5分钟具体安装配置:

1、修改如下配置文件:(不建议修改)

这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改sshd文件

vim /etc/pam.d/login

在第二行添加

auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root=5 root_unlock_time=300

此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

 

注意

在第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改sshd文件

2、修改sshd文件(建议修改)

vim /etc/pam.d/sshd

继续在第二行上添加

auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root=5 root_unlock_time=300

查看用户登录失败的次数:

sudo pam_tally2 --user

结果

ubuntu@VM-0-5-ubuntu:~$ sudo pam_tally2 --user

Login   Failures Latest failure  From

root    3 09/29/19 15:53:24 45.119.212.105

ubuntu    9 09/29/19 15:46:58 223.107.140.84

解锁指定用户:

sudo pam_tally2 -r -u admin

admin@VM-0-5-ubuntu:~$ sudo pam_tally2 -r -u admin

Login   Failures Latest failure  From

admin    15 09/29/19 15:58:49 223.107.140.84

ps:这个远程ssh的时候,输入密码错误超过三次但是没有提示,但是只要超过设定的值,输入正确的密码也是登陆不了的!,还是要等到设定的时间在重新尝试输入正确密码进行登录认证

1.4.  Root权限用户

1.4.1.     root权限用户检测 (非强制)

检查配置文件cat /etc/passwd,不能包含用户标识号为0,除root用户外。

以第一行为例,从左至右,分别表示:

帐号名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

1.5.  Wheel组(非强制)

1.5.1.    
wheel组检测 (非强制)

命令:cat /etc/group

检查文件/etc/group中,wheel后面是否有用户名,如果有,将其删除。

如下图中示例,viewer用户加入了wheel组中,因此viewer用户拥有了root的部分功能和权限,因此需要将viewer删除。

Wheel组概念

Wheel组是Unix系统一个遗留物。当服务器需要做比日常例行维护更高级的工作的时候,就经常需要用到root权限了。而这个wheel组就是建立用来归纳一些特殊的系统用户用的,这其中的用户都或多或少地拥有root的部分功能和权限。也就是说如果你不是wheel组成员,那就没有root身上任何的特权。也因为这样,使用wheel组成员用户的话,会尽量减少对系统“摧毁性”破坏的概率和风险。如今大多数的Linux发行版本中,仍然保留了wheel这个组,虽然它已经不像当初设计出来的那样必要了,但是有些老玩家还是忠于这种旧式经典风格的,所以他们经常还是依旧让wheel组发挥着以往的作用。他们是这样做的:在建立他们自己的用户时,将其添加入wheel组中(用wheel组作为用户的主组),或者使用vigr来编辑/etc/group文件,将他们的用户名追加到wheel组那行的末尾。

1.6.  相同ID用户

1.6.1.    
相同ID用户检测

命令:cat /etc/passwd

检查配置/etc/passwd中,是否包含用户标识号相同的帐号,用户标识号位置如下:

以第一行为例,从左至右,依次为:

帐号名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

2.   访问控制策略组检测

2.1.  空口令监测

2.1.1.    
空口令账户

命令:cat /etc/shadow(检查shadow文件中密码为空且的用户)

如图上所示,输出test3为空口令账户,且可以登录的用户。

用户test2:!!:18820:0:99999:7:::第二个字段是“:!!:”代表没有设置密码,但无法登录。

用户test3::18820:0:99999:7:::第二个字段是“::”代表第二个字段密码为空,且可以登录。

如果检测出有空口令账户,可以做以下处理:

A. 删除该用户

命令如下:

userdel 用户名

rm -rf
/home/用户名 (可选,表示删除该用户的主目录)

B. 给该用户设置密码

passwd 用户名

2.2.  弱口令检测

2.2.1.    
弱口令账户

如果检测出弱口令账户,建议设置符合秘密复杂度要求的密码,命令如下:

passwd 用户名

3.   安全审计策略组检测

3.1.  日志守护进程

3.1.1.    
开启日志守护进程

当rsyslog没有在运行,则检测失败,操作命令如下:

systemctl
status rsyslog 
(查看状态)

systemctl
stop rsyslog 
(停止)

systemctl
start rsyslog 
(启动)

启动成功后状态:

查看进程有没有启动:

命令:ps -ef | grep rsyslog

4.  
SSH策略检测

4.1.  SSH检测

执行如下命令,修改配置文件

sudo
vim /etc/ssh/sshd_config

4.1.1.    
最大失败尝试登录次数小于等于5(需要修改)

MaxAuthTries
5

4.1.2.    
开启密码认证

PasswordAuthentication
yes

4.1.3.    
开启RSA认证

RSAAuthentication
yes
  (有的系统 需要手动添加)

4.1.4.    
开启公钥验证

PubkeyAuthentication
yes

重启sshd生效,重启命令如下:

CentOS系列: systemctl restart sshd

后续随着建立应用账户会回收root权限登陆。

5.   入侵防范策略组监测

5.1.  防火墙

查看状态

systemctl
status firewalld.service

启动防火墙

systemctl
start firewalld.service

关闭防火墙

systemctl
stop firewalld.service

重新启动防火墙

systemctl
restart firewalld.service

5.2.  防暴力破解

安装EDR

6.   恶意代码防范监测

6.1.  安装EDR

7.   NTP时间同步配置

安装ntpdateNTP时间同步配置

apt-get
install ntpdate

编辑/etc/ntp.conf文件

vim
/etc/ntp.conf

添加配置

server
10.14.1.11 prefer iburst

其中的prefer优先级最高,不然在多个同步服务时,可能自己本地的ntp服务不被选中,会使用其他的源作为同步的时间选项。

其中的iburst是初始化时,每2秒发送一批同步

重新启动NTP服务器:

service
ntp restart

查看同步情况:

watch
ntpq –p

Ubuntu基线指导手册的更多相关文章

  1. 指导手册02:伪分布式安装Hadoop(ubuntuLinux)

    指导手册02:伪分布式安装Hadoop(ubuntuLinux)   Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...

  2. 指导手册 07 安装配置HIVE

    指导手册 07 安装配置HIVE   安装环境及所需安装包: 1.操作系统:centos6.8 2.四台虚拟机:master :10.0.2.4, slave1:10.0.2.5,slave2:10. ...

  3. 指导手册06:HBase安装部署

    指导手册06:HBase安装部署 配置环境 1.参考文件: https://www.cnblogs.com/lzxlfly/p/7221890.html https://www.cnblogs.com ...

  4. 指导手册05:MapReduce编程入门

    指导手册05:MapReduce编程入门   Part 1:使用Eclipse创建MapReduce工程 操作系统: Centos 6.8, hadoop 2.6.4 情景描述: 因为Hadoop本身 ...

  5. 指导手册04:运行MapReduce

    指导手册04:运行MapReduce   Part 1:运行单个MapReduce任务 情景描述: 本次任务要求对HDFS目录中的数据文件/user/root/email_log.txt进行计算处理, ...

  6. 指导手册03:Hadoop基础操作

    指导手册03:Hadoop基础操作 Part 1:查看Hadoop集群的基本信息1.查询存储系统信息(1)在WEB浏览器的地址栏输入http://master:50070/ 请查看自己的Hadoop集 ...

  7. 指导手册01:安装Hadoop

    指导手册01:安装Hadoop  Part 1:安装及配置虚拟机 1.安装Linux. (1)打开VMvirtualBox (2) 控制->新建虚拟机,输入虚拟机名称“marst+学号” 类型: ...

  8. Apache安全配置基线指导

    搜索关键词:Apache安全配置基线指导 参考链接: windows服务器下Apache 的降权 https://www.landui.com/help/show-1749.html

  9. 【干货】电路设计师指导手册(已更新完毕)(转载EDN)

    [干货]电路设计师指导手册(已更新完毕) 第一部分:接地与布线第二部分:电源返回路径与I/O信号接地第三部分:板间互连.星形接地及屏蔽第四部分:安全地以及电线/电缆第五部分:射频电缆.双绞线与串扰

  10. [转]Markdown 公式指导手册(包含LaTeX)

    Cmd Markdown 公式指导手册 本文为转载文章,并且由于LaTeX的可能不能全部兼容,所以可能有部分公式无法在博客园显示,可以移步原网站. 本文固定链接: https://www.zybulu ...

随机推荐

  1. Text2Cypher:大语言模型驱动的图查询生成

    话接上文<图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index> 同大家简单介绍过 LLM 和图.知识图谱相关的结合,现在我来和大家分享下最新的成果.毕竟,从 GP ...

  2. 算法打卡|Day2 数组part02

    Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 目录 Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的 ...

  3. ElasticSearch系列——倒排索引、删除映射类型、打分机制、配置文件、常见错误

    文章目录 1 倒排索引 2 删除映射类型 一 前言 二 什么是映射类型? 三 为什么要删除映射类型? 四 映射类型的替代方法 4.1 将映射类型分开存储在索引中 4.2 自定义类型字段回到顶部 五 没 ...

  4. 研发提速:nacos+openfeign环境下的本地链接服务

    项目研发过程中,经常会遇到与测试人员工作重叠的情况,十分影响效率. 做了一个修改,可以在本地环境启动项目后和测试环境交互,并且不影响测试环境,理论上也可以用于线上环境的异常的快速处理. 准备事项如下: ...

  5. 【短道速滑十】非局部均值滤波的指令集优化和加速(针对5*5的搜索特例,可达到单核1080P灰度图 28ms/帧的速度)。

    非局部均值滤波(Non Local Means)作为三大最常提起来的去燥和滤波算法之一(双边滤波.非局部均值.BM3D),也是有着很多的论文作为研究和比较的对象,但是也是有着致命的缺点,速度慢,严重的 ...

  6. Anaconda虚拟环境配置Python库与Spyder编译器

      本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法.   在文章创建Anaconda虚拟Python环境的方法中,我们介绍了在Anaconda环境下, ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题

    二.用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT. 文心一言: 在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构.对于一 ...

  8. Net 高级调试之二:CLR和Windows加载器及应用程序域介绍

    一.简介 今天是 Net 高级调试的第二篇文章,第一篇文章记录了自己学习 Net 高级调试的第一步,认识一些调试工具,有了工具的倚仗,我们开始仗剑走天涯了,开始Net 高级调试正式的征程了.我先说一下 ...

  9. 2023华为杯·第二届中国研究生网络安全创新大赛初赛复盘 Writeup

    A_Small_Secret 题目压缩包中有个提示和另一个压缩包On_Zen_with_Buddhism.zip,提示内容如下: 除了base64还有什么编码 MFZWIYLEMFSA==== asd ...

  10. influxdb报错:cache-max-memory-size exceeded

    转载请注明出处: influxdb报错日志: 该错误信息表示 InfluxDB 引擎超过了缓存最大内存大小.这意味着 InfluxDB 的缓存使用量超出了配置的限制. 要解决此问题,可以采取以下步骤来 ...