Linux系统安全

一、账号安全基本措施

1.1 系统账号清理

将用户设置为无法登陆

锁定账户

删除账户

锁定账户密码  本地锁定

1.1.1 将用户设置为无法登陆

方法1:chsh -s修改

方法2:usermod -s

1.1.2  锁定用户

usermod -L lisi			#锁定账户
usermod -U lisi			#解锁账户
 
passwd -l lisi			#锁定账户方
passwd -u lisi			#解锁账户

1.1.3  删除账户

userdel 用户名  #删除用户

1.1.4 chattr  锁定重要配置文件(passwd 、shadow、fstab等)

lsattr /etc/passwd /etc/shadow				#查看文件的状态
chattr +i /etc/passwd /etc/shadow			#锁定文件
chattr -i /etc/passwd /etc/shadow			#解锁文件

1.2 密码安全控制

1.2.1 设置密码规则

1.适用于新建用户
vim /etc/login.defs 			#修改配置文件
-----此处省略部分注释及配置-------
PASS_MAX_DAYS   30				#修改密码有效期为30天
 
2.适用于已有用户
chage -M 30 zhangsan			#修改密码有效期
 
3.强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0)
chage -d 0 zhangsan				#设置下次登录强制修改密码

1.3 命令历史

export HISTSIZE=200
#临时修改历史命令条数为200条

二、切换和限制用户、pam

2.1 su:切换用户

可以切换用户身份,并且以指定用户的身份执行命令

su 不加- 不安全的切换,继承上个用户

su  加-    安全的切换

2.2 PAM 安全认证

pam 插件式的验证模块

       当用户来访问某一程序的时候如果这个时候启用了pam模块。会先去读取配置文件。然后按照配置文件调用模块进行操作。

service ——> PAM(配置文件)——>pam_*.so(配置)

/usr/lib64/security     存放功能模块

/etc/security             复杂的配置文件

 type 类型

- auth 用户身份认证
- account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
- password 用户修改密码时密码复杂度检查机制等功能
- session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等
- -type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

Control:  ( 控制位)
required (渣男) 一票否决,如果失败最后一定失败,但会继续验证

requisite  一票否决,如果失败会立即结束验证,反馈失败

sufficient:验证成功则立即返回,不再继续,否则忽略结果并继续

三、limit 限制使用资源

功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间

修改限制的实现方式:

(1) ulimit命令

ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ulimit只影响shell进程及其子进程,用户登出后失效。

可以在profile中加入ulimit的设置,变相的做到永久生效

-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制

[root@localhost pam.d]#ulimit -a
#可以看到系统的相关 资源限制 设置

#使用压力测试工具进行测试  打开的文件数
ab -c1025 -n 2000 http://192.168.91.100/
#必须这样写, 包括url 后面的 斜杠/


[root@localhost pam.d]#ulimit -n  10000
#修改最大值  临时修改

[root@localhost security]#vim /etc/security/limits.conf 
#永久修改不用重启   软硬一起设置可以直接使用 -
zhangsan         -       nproc            5

su  -   zhangsan
#切换时  注意要完全切换


pgrep -lu  zhangsan

limits 生产中的 建议设置

*                soft    core            unlimited
*                hard    core            unlimited
*                soft    nproc           1000000
*                hard    nproc           1000000
*                soft    nofile          1000000
*                hard    nofile          1000000
*                soft    memlock         32000
*                hard    memlock         32000
*                soft    msgqueue        8192000
*                hard    msgqueue        8192000

四、sudo

4.1 sudo 命令的用途及格式

sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。

sudo特性:

sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
 
zhu1 ALL=(root) /sbin/ifconfig				#举例

root              ALL=(ALL)                ALL

root:那个用户要使用命令        lisi @192.168.91.100     zhangsan@192.168.91.100

ALL:那台主机        192.168.91.100    192.168.91.10

(ALL):以谁的身份运行  root

ALL :所有命令

4.2 查看当前sudo配置文件,启用sudo操作日志

启用sudo操作日志

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
  • 操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

查询授权的sudo操作

  • sudo -l

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux系统安全加固是为了保护系统免受恶意攻击和非法访问的操作。以下是一些常见的Linux系统安全加固措施: 1. 更新补丁:及时应用最新的系统和软件补丁,以修补已知的漏洞,降低系统被攻击的风险。 2. 禁用不必要的服务和端口:关闭不需要的或容易受到攻击的服务和端口,减少攻击面。 3. 使用强密码策略:确保系统中用户密码的复杂性,包括长度、字符种类和周期性更换密码。 4. 配置防火墙:通过配置Linux系统内置的iptables或其他防火墙工具,来限制对系统的远程访问,并对网络流量进行监控和过滤。 5. 限制Root用户权限:不使用Root用户登录系统,使用普通用户登录,只有必要时才使用"sudo"等命令获取Root权限。 6. 监控和日志记录:配置系统以记录日志文件,以便及时检测和跟踪潜在的安全事件,并及时做出反应。 7. 加密通信:使用SSL/TLS等协议对系统的远程登录、文件传输和通信进行加密,确保敏感数据在传输过程中不会被窃取。 8. 文件和目录权限设置:合理设置文件和目录的权限,只给予必要的访问权限,并定期检查和修复权限设置不当的文件和目录。 9. 安全软件的安装和配置:安装和配置安全软件,如入侵检测系统(IDS)、入侵防御系统(IPS)等,及时发现和阻止潜在的攻击。 10. 定期备份数据:定期备份系统和重要数据,以防止数据丢失和系统崩溃。 通过以上安全加固措施,可以提高Linux系统的安全性,保护系统和数据的完整性和机密性,降低系统遭受攻击的风险。但需要注意的是,安全加固不是一次性任务,而是一个持续的过程,需要根据系统的特点和风险来定期进行检查和更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值