系统安全及应用

295 阅读6分钟

一.系统安全

1. 账号安全基本措施

1.1将用户设置为无法登录

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

` #查看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.创建用户

image.png

2.修改用户shell 属性

image.png

3.修改成功

image.png

二.锁定用户

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

image.png

passwd -S 可以查看用户状态

image.png

2.passwd-u 和usermod -U 可以用来解锁

image.png

三.删除用户

userdel -r 用户名 将删除家用户的所有记录

image.png

image.png

四. 锁定配置文件

格式:   chattr +i /etc/passwd /etc/shadow

image.png

五.密码安全

1.对新建用户

编辑 /etc/login.defs 文件来设置密码规则

vim /etc/login.defs

PASS_MAX_DAYS:指定用户密码的最长有效天数 PASS_MIN_DAYS:指定在更改密码之间必须等待的最小天数

PASS_MIN_LEN: 指定用户密码的最小长度

PASS_WARN_AGE:指定在密码过期之前的多少天开始向用户发出警告

2.对已有用户

chage [选项] 用户名

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

chage -d 0 用户名 //强制用户下一次登录要修改密码

六.历史命令

history -c 来清理历史命令

image.png

历史命令限制

方式一、注销时清空历史命令

vim .bash_logout

.. ..

echo ' ' > /root/.bash_history //空文件导入

...

:wq

. .bash_logout //应用修改

方式二、修改全局配置文件

vim /etc/proflie // 修改此文件 全局生效

.....

HISTSIZE =....(自定义数字) //最大显示

....

:wq

reboot //重启应用修改

7. 用户切换和用户提权

.su 命令切换用户

su - 完全彻底切换用户(自立门户)

su 不完全切换,留下上一个用户的信息,具体信息具体情况分析。

 命令格式
su [options...] [-] [user [args...]

su [选项] 用户名 //不完全切换,上一个用户的部分设置会保留

su - 用户名 //完全切换 ,相当于重新登录,

查看su操作记录 安全日志文件:/var/log/secure

image.png

image.png

image.png

image.png

八. sodo

sudo命令使用户以超级用户的身份去执行命令

sudo [选项] 命令

-V 显示版本编号

-l 显示出自己(执行 sudo 的使用者)的权限

-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

-p 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

-u 用户名 以指定用户的权限

-s 执行环境变数中的 SHELL 所指定的 shell

九 配置文件

/etc/sudoers 配置文件

vim /etc/sudoers = visudo //编辑配置文件

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

user: 运行命令者的身份
 host: 通过哪些主机 多个 192.168.91.100 - 110  localhost
(runas):以哪个用户的身份
command: 运行哪些命令
  • user字段
  • 用户名或UID
  • %组名或者%GID
  • host字段
  • IP地址或主机名
  • ALL代表任意主机
  • 代表用户字段
  • 用户名或UID
  • ALL代表任意用户
  • 命令字段(绝对路径)
  • command name (命令)
  • directory (文件夹里的命令)
  • sudoedit (可以编辑sudoers这个文件,变相变成管理员)
  • Cmnd_Alias (命令别名)

十.grub加密

[root@localhost ~]#grub2-setpassword 直接设置密码

十一.端口号

服务端口号
HTTP80
HTTPS443
Telnet23
FTP21
SSH(安全登录).SCP(文件传输).端口重定向22
SMTP25
POP3110
Weblogic7001
TOMCAT8080
WIN2003远程登录3389
Oracle数据库1521
MS SQL*SEVER数据库sever1433
MySQL数据库sever3306

十二.Linux中的PAM安全认证

1.su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险

  • 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换

2.PAM(Pluggable Authentication Modules)可插拔式认证模块

。是一种高效而且灵活便利的用户级别的认证方式

·也是当前Linux服务器普遍使用的认证方式

3.PAM认证原理

一般遵循的顺序

Service (服务)-PAM(配置文件)-pam*.so 1.5.1PAM相关文件 包名:pam 模块文件目录I /lib64/security/*.so 特定模块相关的设置文件: /etc/securityl ·man8加模块名可以查看帮助应用程序调用PAM模块的配置文件 1.主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置2.为每种应用模块提供一个专用的配置文件: /etc/pam.d/APPNAME3.注意:如/etc/pam.d存在,/etc/pam.conf将失效

5.工作顺序:

  • 用户 来 访问 我

  • 首先确定你的service 类型 (用户名 密钥 短信验证码)

  • 根据配置文件确定 是否放行

  • 如果调用的相关的模块

    配置文件:

    主配置: /etc/secruity 只有功能强大的pam 模块 才会有 主配置文件

    次配置文件:/etc/pam.d 虽然他是此配置 他优先生效

    模块文件:/usr/lib64/security

    我怎么知道 怎么配置 模块的配置文件 ,和 模块功能(man 8 模块名)

ulimit -a 查看优化进程

你做过哪些系统 的安全加固操作?(至少写5个)

  • 1.锁定用户
  • 2.删除不需要的用户
  • 3.清除历史命令
  • 4.下次立即修改密码
  • 5.锁定 重要文件 chattr +i
  • 6.设置密码长度
  • 7.密码有效期
  • 8.禁止普通用户 touch /etc/nologin
  • 9.sudo 提权操作
  • 修改shell 类型 不让登录
  • 禁止su 切换用户
  • 禁止 终端登录
  • 9.请写出 现有4块 都是60g的硬盘组成以下raid阵列