系统安全及应用

目录

一、账号安全控制

1. 账号安全基本措施

1.1 系统账号清理

1.2 密码安全控制

1.3 命令历史限制

1.4 终端自动注销

二、用户切换和提权

2. 使用su命令切换用户

2.1 用途及用法

2.2 密码验证

2.3 限制使用su命令的用户

2.4 查看su操作记录

2.5 配置sudo授权

2.6 查看sudo操作日志

2.7 限制root只在安全终端登录

2.8 禁止普通用户登录

2.9 开关机安全控制

三、PAM安全认证

1. PAM

2. su 命令的安全隐患

3. PAM认证原理

4. PAM认证的构成

5. PAM安全认证流程

四、网络端口扫描 - nmap


一、账号安全控制

1. 账号安全基本措施

1.1 系统账号清理

● 将非登录用户的Shell设为 /sbin/nologin

usermod -s /sbin/nologin 【用户名】

● 锁定长期不使用的账号

usermod -L 【用户名】  或   passwd -I 【用户名】       #锁定用户

passwd -u【用户名】  或   usermod -L 【用户名】       #解锁用户

passwd -S 【用户名】                                                   #查看用户状态

● 删除无用的账号

userdel  [ -r ]  【用户名】          #删除用户及其家目录

● 锁定账号文件passwd、shadow

chattr +i /etc/passwd /etc/shadow              #锁定文件并查看状态

lsattr /etc/passwd /etc/shadow                   #查看文件是否锁定

chattr -i /etc/passwd /etc/shadow               #解锁文件

修改用户信息会涉及到 /etc/passwd 和 /etc/shadow 两个文件。将这两个文件锁定,将无法管理用户,如删除/新建用户,修改密码等操作 

1.2 密码安全控制

● 设置密码有效期

● 要求用户下次登录时修改密码

[root@localhost ~]# vi /etc/login.defs         #修改密码配置文件适用于新建用户

......

PASS_MAX_DAYS    30

[root@localhost ~]# chage -M 30 lisi           #设置lisi用户的密码有效期为30天

[root@localhost ~]# cat /etc/shadow | grep lisi

常用选项解释
-m设置修改密码的最小间隔天数,m=0时任何时间都可以更改密码
-M设置密码有效天数
-w设置用户密码到期前,收到警告信息的天数
-E设置帐号到期的日期
-i设置密码可以过期的天数,超过此限制此帐号将不可用
-l列出当前设置
-d上一次更改密码的日期

chage -d 0 zhangsan          #强制zhangsan用户在下次登录时修改密码

1.3 命令历史限制

● 减少记录的命令条数

● 登录时自动清空命令历史

[root@localhost ~]# vi /etc/profile

export HISTSIZE=200

[root@localhost ~]# source /etc/profile

[root@localhost ~]# vi ~/.bashrc

echo " " > ~/.bash_history

1.4 终端自动注销

● 闲置600秒后自动注销

[root@localhost ~]# vi /etc/profile

......

exprot TMOUT=600

[root@localhost ~]# source /etc/profile

二、用户切换和提权

2. 使用su命令切换用户

2.1 用途及用法

● 用途:Substitute User,切换用户

● 格式:

su - 【目标用户】

whoami           #显示当前登录用户

2.2 密码验证

● root→任意用户,不验证密码

● 普通用户→其他用户,验证目标用户的密码

[amrian@localhost ~]# su - root          #带 - 选项表示将使用目标用户的登录Shell环境

口令:

[root@localhost ~]# whoami

root

2.3 限制使用su命令的用户

● 将允许使用su命令的用户加入wheel组

● 启用pam_wheel认证模块

[root@localhost ~]# vi /etc/pam.d/su

#%PAM-1.0

auth            sufficient   pam_rootok.so

auth            required    pam_wheel.so use_uid

......

2.4 查看su操作记录

安全日志文件位于:/var/log/secure

2.5 配置sudo授权

vi sudo 或 vi /etc/sudoers     #此文件默认权限为440,保存退出时必须使用"wq!"命令强制执行
#语法格式: 用户 主机名=命令程序列表
#          %组名 主机名=(用户)命令程序列表
#用户\%组名:直接授权的用户、组
#(用户);以何种身份执行命令,缺省时默认以root用户身份运行命令
#主机名:使用此规则的主机名,ALL代表所有主机
#命令程序列表:允许执行的命令,需填写命令的绝对路径,多个命令之间以","分隔,ALL代表所有命令
 
#例:
Tom ALL=/sbin/ifconfig     #授权TOM使用ifconfig命令
%wheel ALL=NOPASSWD:ALL     #wheel组内成员无需验证密码即可使用所有命令
 
User_Alias USERS=Tom,lisi,zhangsan     #为指定用户设置别名
Host_Alias HOSTS=localhost,bogon     #为指定主机名设置别名
Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/useradd,/usr/bin/userdel     #为指定命令设置别名

2.6 查看sudo操作日志

● 需要先启用sudo操作日志

visudo
......
Defaults logfile = "/var/log/sudo

● 查看sudo操作日志

tail /ver/log/sudo

2.7 限制root只在安全终端登录

安全终端配置:/etc/securetty

vi /etc/securetty
......
vc/9
vc/10
vc/11
tty1
#tty2     #禁止终端tty2登录,在其前方输入#
#tty3     #禁止终端tty3登录,在其前方输入
tty4
tty5
tty6
tty7

2.8 禁止普通用户登录

需建立/etc/nologin文件

touch /etc/nologin                 #禁止普通用户登录

删除nologin文件或重启后恢复正常

 rm -rf /etc/nologin                 #取消限制

2.9 开关机安全控制

● 调整BIOS引导设置

  •  将第一引导设备设为当前系统所在硬盘

  • 禁止从其他设备(光盘、U盘、网络)引导系统

  • 将安全级别设为setup,并设置管理员密码

● GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00_header文件中,添加密码记录
  • 生成新的grub.cfg配置文件

三、PAM安全认证

1. PAM

PAM(Pluggable Authentication Modules),可插拔式认证模块。

  • 是一种高效且灵活的便利的用户级别认证方式
  • 也是当前Linux服务器使用的认证方式

2. su 命令的安全隐患

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

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

3. PAM认证原理

● PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so

● 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。
● 用户访问服务器的时候,服务器的某一个服务程序把用户的不同请求发送到PAM模块进行认证。
● 不同的应用程序所对应的PAM模块也是不同的。

4. PAM认证的构成

● 查看某个程序是否支持PAM认证,可以用ls命令

示例:查看su是否支持PAM模块认证

ls /etc/pam.d | grep su

● 查看su的PAM配置文件:

cat /etc/pam.d/su

● 每一行都是一个独立的认证过程

● 每一行可以区分为三个字段

    ●认证类型

    ●控制类型

    ●PAM模块及其参数

5. PAM安全认证流程

● 控制类型也可以称作Control Flags,用于PAM验证类型的返回结果

  1. required验证失败时仍然继续,但返回Fail
  2. requisite验证失败则立即结束整个验证过程,返回Fail
  3. sufficient验证成功则立即返回,不在继续,否则忽略结果并继续
  4. optional不用于验证,只显示信息(通常用于session(会话)类型)

四、网络端口扫描 - nmap

 ● 需先安装nmap工具

yum install nmap -y     #安装nmap工具

● 用法

namp "扫描类型" "选项" "扫描目标"

常用选项与扫描类型解释
-p指定扫描的端口
-n禁用反向DNS解析(加快扫描速度)
-sSTCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN\ACK响应包就认为目标端口正在监听服务,并立即断开连接;否则认为目标端口并未开放。
-sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙对SYN数据包进行简单过滤,而忽略了其他形式的TCP。这种类型的扫描可间接检测防火墙的健壮性。
-sUUDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。

-sP

ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0跳过ping检测,这种方式认为所有的目标主机是活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃

示例:

namp -sT 127.0.0.1     #查看本机的TCP端口
namp -p 80 192.168.4.0/24     #检测192.168.4.0/24网段有哪些主机提供HTTP服务
namp -n -sP 192.168.4.0/24     #检测192.168.4.0/24网段有哪些存活主机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值