一.系统安全
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.创建用户
2.修改用户shell 属性
3.修改成功
二.锁定用户
1.> 可以使用passwd -l 和usermod -L 来锁定用户使用户不能登录账户
passwd -S 可以查看用户状态
2.passwd-u 和usermod -U 可以用来解锁
三.删除用户
userdel -r 用户名 将删除家用户的所有记录
四. 锁定配置文件
格式: chattr +i /etc/passwd /etc/shadow
五.密码安全
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 来清理历史命令
历史命令限制
方式一、注销时清空历史命令
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
八. 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 直接设置密码
十一.端口号
| 服务 | 端口号 |
|---|---|
| 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 |
十二.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阵列