Centos安全加固策略

news2025/1/10 21:29:19

 

目录

密码安全策略

设置密码的有效期和最小长度

设置用户密码的复杂度

登录安全策略

设置用户远程登录的安全策略

安全的远程管理方式

访问控制

限制root用户登录

修改ssh 22端口

设置登录超时时间

限制IP访问

安全审计

审核策略开启

日志属性设置

查看系统登录日志


操作系统安全加固就是使操作系统安全稳定的各种技术方案。安全加固可从操作系统内外来看,对内就是是操作系统配置以及内核参数的调整,加强内部管理。对外,操作系统可以通过建立防火墙,关闭不必要开放的端口等等,建立安全的网络屏障。

  • 密码安全策略

操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。设置有效的密码策略,防止攻击者破解出密码。

密码相关的安全策略,主要是通过 /etc/login.defs 与 pam_cracklib.so 实现的。

/etc/login.defs:只控制了账号密码的有效期和最小长度。修改完/etc/login.defs文件后,会立即生效,但是它只对修改后创建的用户生效。

pam_cracklib.so:该模块实现了账户密码的复杂度控制。早期用的是pam_cracklib.so模块,后来改成用pam_pwquality.so了,该模块完全兼容旧的pam_cracklib.so模块。该模块对应的配置文件路径在/etc/pam.d/目录下。

查看空口令帐号并为弱/空口令帐号设置强密码
[root@localhost ~]# awk -F: '($2 == ""){print $1}' /etc/shadow

设置密码的有效期和最小长度

 修改vim /etc/login.defs配置密码周期策略

[root@localhost ~]# vim /etc/login.defs

/etc/login.defs参数说明:
PASS_MAX_DAYS 90      #密码最大有效期,此处参数PASS_MAX_DAYS为90,表示90天后,密码会过期,99999表示永不过期。
PASS_MIN_DAYS 10       #两次修改密码的最小间隔时间,0表示可以随时修改账号密码
PASS_MIN_LEN 8           #密码最小长度,对于root无效
PASS_WARN_AGE 7       #密码过期前多少天开始提示

注:修改了 /etc/login.defs下参数时,会立即生效,但是它只对修改后创建的用户生效,以前的帐号还是按99999天周期时间来算

 

设置用户密码的复杂度

备份原有配置文件
[root@localhost ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

设置复杂度策略
[root@localhost ~]# vim /etc/pam.d/system-auth

 

找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。 

password requisite pam_cracklib.so try_first_pass local_users_only retry=3 difok=2 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
注释说明:
difok=2                 #本次密码与上次密码至少不同字符数
minlen=12               #密码最小长度为8个字符。
lcredit=-1                 #密码应包含的小写字母的至少一个
ucredit=-1                #密码应包含的大写字母至少一个
dcredit=-1                #将密码包含的数字至少为一个
retry=3                      #重试多少次后返回密码修改错误
ocredit=-1                #设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root #确保即使是root用户设置密码,也应强制执行复杂性策略。

【注】这个设置对于root没有作用,只针对普通用户修改自己密码时起作用

如果新建用户的密码不符合密码复杂度,就会出现BAD PASSWORD: it is based on a dictionary word提示。

passwd ttt

Changing password for user ttt.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

创建新用户进行验证

 

  • 登录安全策略

登录安全相关的控制策略,主要是通过 pam_tally2.so 模块实现的,比如尝试登录失败多少次就锁定用户多少分钟。同样,该模块对应的配置文件路径也是在vim /etc/pam.d/login目录下。

设置用户远程登录的安全策略

执行指令# vim /etc/pam.d/login添加以下一行

[root@localhost ~]#vim /etc/pam.d/login

 

在字符终端下,实现某一用户连续错误登陆N次后,就锁定该用户X分钟
执行 vim /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
说明:
even_deny_root=n 	  #root用户失败登录次数超过deny=n次后拒绝访问
deny=n                #设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time=n         #设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time=n    #与even_deny_root相对应的选项,如果配置该选项,则root用户在登录失败次数超出限制后被锁定指定时间。
解锁用户:
pam_tally2 --user <username>             #查看用户登录失败次数记录
[root@localhost ~]# pam_tally2 --user root

pam_tally2 --user <username> --reset     #清空失败次数记录,即解锁用户
或者[root@localhost ~]# pam_tally2 -r -u root

安全的远程管理方式

当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听。

防止远程管理过程中,密码等敏感信息被窃听

禁止telnet运行,禁止开机启动

关闭telnet有两种方法
方法一:  vi /etc/xinetd.d/telnet  将disable = no 改为   disable = yes
方法二:   chkconfig telnet off
重启服务生效   service xinetd restart
删除包    rmp -e telnet-server --nodeps

vim /etc/services 注释掉23端口

访问控制

应及时删除多余的、过期的帐户,避免共享帐户的存在。

删除或禁用临时、过期及可疑的帐号,防止被非法利用。

主要是管理员创建的普通帐号,如:test

usermod -L user   禁用帐号,帐号无法登录,/etc/shadow第二栏显示为!开头
userdel user      删除user用户
userdel -r user   将删除user用户,并且将/home目录下的user目录一并删除

限制root用户登录

首先创建一个普通用户test2,然后配置好su授权,需要时使用su授权执行命令,限制root用户直接登录服务器。

创建普通用户test2
[root@localhost ~]# useradd test2
[root@localhost ~]# passwd test2

为普通用户test2添加su授权
[root@localhost ~]# vim /etc/sudoers
root    ALL=(ALL)       ALL
test2   ALL=(ALL)       ALL

 

登录test2普通用户验证

修改root用户禁止ssh登录系统

执行指令
[root@localhost ~]# vim /etc/ssh/sshd_config
PermitRootLogin no

[root@localhost ~]# systemctl restart sshd	重启ssh服务

 再次使用root用户登录就被限制了

可以使用普通用户登录后,su 切换至root用户

 

修改ssh 22端口

[root@localhost ~]# vim /etc/ssh/sshd_config
Port 2022

 

 

[root@localhost ~]# systemctl restart sshd  重启

验证

 

设置登录超时时间

通过命令查看cat /etc/profile grep TMOUT
vim /etc/profile 
添加export TMOUT=600 --600秒超时
  • 限制IP访问

通过设置,使得SSH只允许特定用户从特定的IP登录,其它未经允许的用户和IP都不能登录。

[root@localhost ~]# vim /etc/hosts.allow
sshd:192.168.2.*:allow	#允许访问的网段
sshd:192.168.3.10:allow	 #允许访问的IP

添加sshd:ALL限制所有ip地址访问

[root@localhost ~]# vim /etc/hosts.deny

 

 

  • 安全审计

审核策略开启

审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户;

开启审核策略,若日后系统出现故障、安全事故则可以查看系统日志文件,排除故障、追查入侵者的信息等。

查看rsyslog与auditd服务是否开启
[root@localhost ~]# systemctl status rsyslog 
[root@localhost ~]# systemctl status auditd

日志属性设置

应保护审计记录,避免受到未预期的删除、修改或覆盖等。

防止重要日志信息被覆盖

让日志文件转储一个月,保留6个月的信息,先查看目前配置

[root@localhost ~]# vim  /etc/logrotate.conf
把原始配置修改成    rotate 6

[root@localhost ~]# more /etc/logrotate.conf | grep -v "^#\|^$"

 

 

  • 查看系统登录日志

[root@localhost ~]# lastlog #查看登录用户、端口和登录时间等信息

[root@localhost ~]# last –x  #查看系统关闭、用户登录和退出的信息

 

[root@localhost ~]# lastb	#查看尝试登录的失败信息

[root@localhost ~]# tail -f /var/log/messages  #查看系统日志

[root@localhost ~]# last #参看账号登录情况

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础巩固、探寻Java装箱和拆箱的奥妙!

前言 今天在逛某知名论坛的时候&#xff0c;看到一篇"请不要使用包装类型&#xff0c;避免造成性能损失"的文章。一下子就吸引了我的注意。大意就是&#xff0c;能用基本数据类型就尽量用基本数据类型&#xff0c;因为包装类型自动拆箱、装箱会带来性能损失尤其是循环…

函数式编程#3纯函数的概念

纯函数的概念 文章目录 纯函数的概念纯函数的两种形式&#xff1a;调用目标本身,不会改变函数内部,不受函数外部影响 函数的副作用如何理解"相同的输入得到相同的输出"不是纯函数的映射关系是纯函数的映射关系 纯函数的两种形式&#xff1a; 调用目标本身,不会改变 …

gcc编译 与交叉编译(x86 to arm) (一)单个文件编译

1.1、gcc编译单个c程序&#xff08;hello.c) gcc hello.c -o hello (hello是生成的可执行程序的名字&#xff09;1.2、交叉编译hello.c 源平台&#xff1a; UOS_X86_64 目标平台&#xff1a;UOS_arm 方法&#xff1a;使用现成的交叉编译工具链 参考资料&#xff1a;交叉编译…

【UE】water插件的简单使用

UE Editor版本&#xff1a;4.26 目录 一、岛屿外观修改 二、波浪参数设置 三、水体海洋的颜色设置 四、 水体河流 五、创建可浮在水体上的actor 一、岛屿外观修改 1. 保证“Landmass”和“Water”插件已启用 启用后&#xff0c;搜索water可以看到如下组件 2. 激活地形编…

LeetCode:6390. 滑动子数组的美丽值

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;6390. 滑动子数组的美丽值 题目描述&#xff1a;给你一个长度为 n 的整…

vulnhub DC:4渗透笔记

靶场下载地址:https://vulnhub.com/entry/dc416-2016,168/ 信息收集 使用nmap确定靶场ip地址 扫描ip确定开放端口 开放22 80端口&#xff0c;访问一下网页端(这边断了一次靶机ip改为192.168.100.138) 漏洞利用 登录框尝试爆破 发现用户名密码admin happy 登录进入后发现这里…

【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型

LaMDA&#xff1a;用于对话应用程序的语言模型 《LaMDA: Language Models for Dialog Applications》 论文地址&#xff1a;https://arxiv.org/abs/2201.08239 相关博客 【自然语言处理】【大模型】LaMDA&#xff1a;用于对话应用程序的语言模型 【自然语言处理】【大模型】Dee…

如何衡量 SLO 的有效性?

衡量 SLO 及错误预算策略是否有效&#xff0c;其实就是看实际运行后&#xff0c;是否真的能达到我们的期望。我们可以从下面三个关键维度来看。 SLO 达成情况。我们用达成&#xff08;Met&#xff09;&#xff0c;或未达成&#xff08;Missed&#xff09;来表示。“人肉”投入…

阿里EGES

EGES&#xff1a;Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba 阿里的EGES是Graph Embedding的一个经典应用&#xff0c;在内容冷启和物料召回上面有较多的落地潜力。主要思想是根据用户交互的物料作为节点构建物料图&#xff0c;在传统的Dee…

(二)AIGC—Stable Diffusion(2)

越往后&#xff0c;加的噪声越多&#xff0c;逐渐递增 正常的话&#xff0c;类似RNN&#xff0c;前向传递&#xff0c;不利于模型训练。 如果直接从x0到xt最好&#xff0c;DPPM这篇论文就实现了这一目标 beta这一参数在扩散过程是已知的&#xff0c;前期设计好&#xff0c;从0…

从0搭建Vue3组件库(六):前端流程化控制工具gulp的使用

随着前端诸如webpack&#xff0c;rollup&#xff0c;vite的发展&#xff0c;gulp感觉似乎好像被取代了。其实并没有&#xff0c;只不过它从台前退居到了幕后。我们仍然可以在很多项目中看到它的身影&#xff0c;比如elementplus、vant等。现在gulp更多的是做流程化的控制。 比如…

【算法题解】28.子集的递归解法

这是一道 中等难度 的题 题目来自&#xff1a; https://leetcode.cn/problems/subsets/ 题目 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 …

51单片机(二)成功点亮LED

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其实STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

nuxt3 + pinia + swiper +element-plus + less + 腾讯地图 创建项目及使用

一。先说优点 1、基于Vue3&#xff1a; Nuxt3是基于Vue.js 3开发的&#xff0c;Vue.js 3是目前最流行的前端框架之一。 这意味着你可以利用Vue3的所有优势&#xff0c;如性能优化、响应式编程、更好的TypeScript支持等。2、服务端渲染&#xff08;SSR&#xff09;&#xff1a…

C++之引用的介绍

目录 前言 引用 1.引用的概念 2.引用特性 3.引用的权限 4. 使用场景 4.1 做参数 4.2 做返回值 5.引用和指针的区别 前言 相信大家都看过水浒传&#xff0c;里面的英雄人物除了自己的名字外都有自己的称号&#xff0c;比如&#xff1a;花和尚——鲁智深&#xff0c;豹…

centOS7.9安装nginx

此示例为安装nginx-1.20.1 &#xff08;小版本无差别&#xff09; 安装过程 sftp上传nginx-1.20.1.tar.gz文件到机器&#xff08;在root目录下&#xff09; #cd /usr/local/nginx/sbin #./nginx -V (查看版本&#xff0c;如果已经有安装过的话会出现版本号) 切换到loca…

k8s 源码分析 informer篇

之前介绍过informer的流程&#xff0c;文章在 informer介绍。今天梳理一下他的源码和流程。 一、概念 什么是 Informer informer 是 client-go 中的核心工具包&#xff0c;informer 其实就是一个带有本地缓存和索引机制的&#xff0c;可以注册 EventHandler 的 client 本地缓存…

L2-1 堆宝塔

堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小&#xff0c;按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下&#xff1a; 首先准备两根柱子&#xff0c;一根 A 柱串宝塔&#xff0c;一根 B 柱用于临时叠放。把第 1 块彩虹圈…

Linux下使用Mysql 第一天

目录 安装mysql 更改账户名和密码 启动/关闭mysql mysql的基本操作 数据库CURD 创建数据库 查看数据库 修改数据库 删除数据库 表的CURD 创建表 查看表 修改表 删除表 表数据的CURD create数据 Retrieve数据 update数据 delete数据 DML和DDL的区别&#xf…

波形生成:均匀和非均匀时间向量

波形生成—— 脉冲、chirp、VCO、正弦函数、周期性/非周期性和调制信号 使用 chirp 生成线性、二次和对数 chirp。使用 square、rectpuls 和 sawtooth 创建方波、矩形波和三角形波。 如需了解此处未显示的其他无线波形生成功能&#xff0c;请参阅无线波形发生器 (Communicat…