系统安全及应用

一、账号安全基本措施

1.1 系统账号清理

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

usermod	-s	/sbin/nologin	用户名
1.1.1 锁定长期不使用的账号
usermod	-L	用户名

passwd	-l	用户名

passwd	-S	用户名
1.1.2 删除无用的账号
userdel	[-r]  用户名
1.1.3 锁定账号文件passwd、shadow
chattr  +i  /etc/passwd  /etc/shadow		---锁定文件

lsattr  /etc/passwd  /etc/shadow			---查看状态

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

1.2 密码安全控制

  • 设置密码有效期
  • 要求用户下次登录时修改密码
1.2.1 实例
对于新建用户,可以进入/etc/login.defs进行修改属性,设置密码规则,使得在下次创建用户时密码信息生效

设置密码有效期,要求用户下次登录时修改密码

1、适用于新建用户
[root@localhost ~]# vi /etc/login.defs		#修改配置文件
第25行:
PASS_MAX_DAYS	30							#修改密码有效期为30天

[root@localhost ~]# chage  -M  30  lisi		#修改密码有效期

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

1.3 命令历史限制

  • 减少记录的命令条数
  • 登录时自动清空命令历史

1.4 终端自动注销

闲置600秒后自动注销

1.5 实例

[root@localhost ~]# vi /etc/profile
export  HISTSIZE=200
[root@localhost ~]# source /etc/profile
[root@localhost ~]# vi ~/.bashrc
echo " " > ~/.bash_history

[root@localhost ~]# vi /etc/profile
……
export  TMOUT=600
[root@localhost ~]# source /etc/profile

1.6 使用su命令切换用户

1.6.1 用途及用法
  • 用途:Substitute User,切换用户
  • 格式
su  -目标用户
1.6.2 密码验证
  • root —任意用户,不验证密码
  • 普通用户 —其他用户,验证目标用户的密码
[jerry@localhost ~]$ su -root
 口令:

[root@localhost ~]# whoami
 root
1.6.3 限制使用su命令的用户
  • 将允许使用su命令的用户加入wheel组

  • 启用pam_wheel认证模块

pam_wheel:PAM系统相关的认证权限管理

[root@localhost ~]# gpasswd -a tsengyia wheel
tsengyia
正在将用户“tsengyia”加入到“wheel”组中

[root@localhost ~]# vi /etc/pam.d/su
#%PAM-1.0
auth	sufficient  pam_rootok.so
auth	required	pam_wheel.so use_uid
……
1.6.4 查看su操作记录
  • 安全日志:/var/log/secure
1.6.5 实例
有dn和xy03两个用户,要求设置dn可以使用su命令切换用户,xy03用户不允许使用

vim /etc/pam.d/su							#编辑/etc/pam.d/su配置文件
auth required	pam_wheel.so use_uid		#将第六行的注释取消即可
gpasswd  -a  dn  wheel						#将希望可以使用su命令的用户加入wheel组中

[root@localhost dn]#passwd  -S  dn			#查询密码状态
dn PS  1969-12-31  0  99999  7  -1(密码已设置,使用SHA512算法。)

dn:指定用户的用户名
PS:用户密码的状态标识符。这里P表示密码已经设置,且可用

二、系统安全及应用

  • 从不同角度加强对系统的安全管控

  • 主要的方向就是权限

2.1 Linux中的PAM安全认证

2.1.1 su命令的安全隐患
  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2.1.2 PAM可插拔式认证模块
  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式

2.2 PAM认证原理

  • 一般遵循的顺序
    • Service(服务) —PAM(配置文件) — pam_*.so
  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的
2.2.1 过程

1、su —service服务

2、加载PAM配置文件 —/etc/pam.d/su

3、/lib64/security —配置帮助进行安全认证生效应用完成的过程

2.3 PAM认证的构成

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

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

ls  /etc/pam.d | grep su
  • 查看su的PAM配置文件:cat /etc/pam.d/su
    • 每一行都是一个独立的认证过程
    • 每一行可以区分为三个字段
      • 认证类型
      • 控制类型
      • PAM模块及参数

三、使用sudo机制提升权限

3.1 su命令的缺点

3.2 sudo命令的用途及用法

  • 用途:以其他用户身份(如root)执行授权的命令
  • 用法 sudo 授权命令

3.3 配置sudo授权

  • visudo或者vi /etc/sudoers
  • 记录格式 用户 主机名=命令程序列表
[root@localhost ~l# visudo			可以使用通配符 * 、取反符号!
……
%wheel			ALL=NOPASSWD: ALL
jerry			localhost=/sbin/ifconfig
syrianer		localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
Cmnd Alias		PKGTOOLS=/bin/rpm,/usr/bin/yum
mike			localhost=PKGTOOLS

3.4 具体解析

visudo  或  vi /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表

用户:直接授权指定的用户名,或采用 ”%组名” 的形式(授权一个组的所有用户)主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机

(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令

命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中的所有命令

3.5 启动sudo操作日志

visudo
Defaults  logfile = “/var/log/sudo”

su - Tom
/sbin/ifconfig ens33:0 192.168.1.11/24
sudo /sbin/ifconfig ens33:0 192.168.1.11/24
#初次使用sudo时需验证当前用户的密码,默认超时时长为5分钟,在此期间不再重复验证密码
sudo -l		#查看当前用户获得哪些sudo授权

3.6 查看sudo操作记录

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
[root@localhost ~]# visudo

Defaults  logfile =“/var/log/sudo”

四、终端登录安全控制

  • 限制root只在安全终端登录
    • 安全终端配置:/etc/securetty
[root@localhost ~]# vi /etc/securetty
……
#tty5				禁止root用户从终端tty5、tty6登录
#tty6
  • 禁止普通用户登录

    • 建立/etc/nologin文件

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

[root@localhost ~]# touch /etc/nologin			#禁止普通用户登录

[root@localhost ~]# rm -rf /etc/nologin			#取消上述登录限制

4.1 网络端口扫描—NMAP

一款强大的网络扫描、安全检测工具

官方网站:http://nmap.org/

CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

4.2 开启关闭httpd服务

systemctl  start  httpd

systemctl  enable  httpd

netstat  -natp | grep  httpd

4.3 nmap命令常用的选项和扫描类型

-p:指定扫描的端口。指定扫描的端口。
-n:禁用反向 DNS 解析(以加快扫描速度)。
-sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-ST:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-SF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的 TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU:UDP 扫描,探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢。
-sP:ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。

netstat -natp			查看正在运行的使用TCP协议的网络状态信息
netstat -naup			查看正在运行的使用UDP协议的网络状态信息

小结

由保证账号安全的基本措施来引出本章对于账号的管理内容,可以用passwd,shadow来进行对账号锁定的操作,并可以附加限制和注销的操作来对账号进行管控,也可以对是否可执行su命令来限制用户操作,用户访问服务器时,一般都需要将访问的请求发送到PAM模块进行认证,而PAM模块可以其安全执行的指令,nmap可以进行网络端口的扫描,可以观察端口是否开启或关闭,便于进行生产环境的排查和连接。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值