系统安全及应用

1. 账号安全基本措施

1.1将用户设置为无法登录

shell------/sbin/nologin却比较特殊,所谓"无法登陆"指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。

[root@localhost 复制代码
#查看liwu的属性

[root@localhost ~]# usermod -s /sbin/nologin liwu    
#修改liwu的shell属性
Changing shell for liwu.
Shell changed.
[root@localhost ~]# tail -1 /etc/passwd				
#查看liwu的属性
liwu:x:1001:1001::/home/lisi:/sbin/nologin

1.2锁定用户

可以使用passwd -l 和usermod -L 来锁定用户使用户不能登录账户

passwd-u 和sermod -U 可以用来解锁

1.3删除账户

userdel -r  用户名
家目录 

家目录   无主文件  前主人的uid

1.4 锁定配置文件

格式: chattr 选项 文件名 -a 让文件或目录仅供附加用途。只能追加

-i 不得任意更动文件或目录

1.5密码安全控制

1.5.1对于新建用户可以修改的密码规则

可以修改/etc/login.defs 文件里的内容来设置密码规则

1.5.2 对已有用户

可以使用chage命令

ini 复制代码
chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。


[root@localhost ~]# chage -d  0 liwu
#强制liwu下一次登录一定修改密码(密码符合复杂性要求)


[root@localhost ~]#chage -M 30 liwu
#设置密码有效期为30天
[root@localhost ~]#cat /etc/shadow|tail -1
lisi:!!:19055:0:30:7:::

1.6 命令历史

Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在 的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在 命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。

1.可以使用history -c 来清理历史命令

2.使用HISTSIZE来控制命令的历史记录从源头消除

ini 复制代码
[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200

3.退出后清除 vim .bash_logout

echo " " >~/.bash_history

4.开机后清除vim .bashrc

echo " " >~/.bash_history

添加配置文件

1.7 切换用户

su 【选项】 【要切换的用户名】

  • "-":登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
  • 不加"-":非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

1.8 limit

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

修改限制的实现方式:

ulimit命令

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

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

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

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

选项:

diff 复制代码
-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 是一个特殊值,用于表示不限制

ulimit -a 可以查看系统相关资源限制的设置

ulimit -n 10000 临时修改

如果要永久修改需要进入vim /etc/security/limits.conf 这个配置文件 添加信息

之后重启使用ulimit -a 查看就可以看到设置完成

limitl生产中的建议设置

markdown 复制代码
*                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

1.9 sudo

sudo即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。

sudo特性

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
  • sudo使用时间戳文件来执行类似的"检票"系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
csharp 复制代码
[root@localhost ~]#vim /etc/sudoers    进入文件中设置权限
[root@localhost ~]#visudo            这个命令也能进
#语法检查

visudo -c
#检查语法

进入到第93行进行设置

makefile 复制代码
#用户    登入主机    =    (代表用户)     命令
#user  	host       =    (runas)       command
root     ALL=(root)                   A

user: 运行命令者的身份
host: 通过哪些主机 多个 192.168.91.100 - 110  localhost
(runas):以哪个用户的身份
command: 运行哪些命令

举例: 1.输入复制配置文件命令,规定liwu使用,保存退出

2.切换到liwu输入命令,这边的命令要一模一样,不能少一个斜杠

ini 复制代码
#也可以对组进行操作
%在前表示组
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL 

[root@localhost ~]#gpasswd -a liwu wheel
正在将用户"liwu"加入到"wheel"组中
wheel组表示管理员组是比较特殊的一个组,在wheel组中的成员可以使用任何命令

1.10 grub加密

[root@localhost ~]#grub2-setpassword

#直接设置密码

1.11 端口号

服务 端口号
HTTP 80
HTTPS 443
Telnet 23
FTP 21
SSH(安全登录)、SCP(文件传输)、端口重定向 22
SMTP 25
POP3 110
WebLogic 7001
TOMCAT 8080
WIN2003远程登录 3389
Oracle数据库 1521
MS SQL* SEVER数据库sever 1433
MySQL 数据库sever 3306
相关推荐
LCG元2 小时前
【面试问题】JIT 是什么?和 JVM 什么关系?
面试·职场和发展
GISer_Jing7 小时前
2025前端面试热门题目——计算机网络篇
前端·计算机网络·面试
m0_748245527 小时前
吉利前端、AI面试
前端·面试·职场和发展
TodoCoder8 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
Wyang_XXX9 小时前
CSS 选择器和优先级权重计算这么简单,你还没掌握?一篇文章让你轻松通关面试!(下)
面试
liyinuo201712 小时前
嵌入式(单片机方向)面试题总结
嵌入式硬件·设计模式·面试·设计规范
代码中の快捷键13 小时前
java开发面试有2年经验
java·开发语言·面试
bufanjun00116 小时前
JUC并发工具---ThreadLocal
java·jvm·面试·并发·并发基础
Zhu_S W1 天前
Java web的发展历史
面试·职场和发展
power-辰南1 天前
大厂 Java 架构师面试题全解析
java·前端·面试