账号安全基本措施

文章详细介绍了Linux系统的一系列安全措施,包括清理非登录用户和过期账号、加强密码安全、限制命令历史、设置终端自动注销、使用PAM认证机制、控制sudo权限,以及开关机安全控制。此外,还提到了弱口令检测工具JohntheRipper和网络端口扫描工具NMAP的应用。
摘要由CSDN通过智能技术生成

Linux系统安全措施

在这里插入图片描述

1 系统账号清理

1.1 非登录用户

将其的shell设置为**/sbin/nologin 或者/bin/false**

usermod -s /sbin/nologin
或
usermod -s /bin/false

1.2 长期不使用的账号

进行锁定操作

usermod -L 用户名
passwd -S 用户名

1.3 无用账号

进行删除操作

userdel [-r] 用户名

1.4 账号文件锁定

账号文件/etc/passwd /etc/shadow

chattr +i /etc/passwd /etc/shadow 锁定文件
lsattr /etc/passwd /etc/shadow 查看状态是否锁定

在这里插入图片描述
在这里插入图片描述

此时超级用户来也无法修改
chattr -i /etc/passwd /etc/shadow 解锁文件

在这里插入图片描述


2 密码安全控制

设置密码的有效期,即该密码多久修改

vim /etc/login.defs
/PASS_MAX_DAYS 找到此行
将其改为你需要的时间,一般建议是一个月或一个季度修改一次
即PASS_MAX_DAYS 30 或 90

在这里插入图片描述
在这里插入图片描述

但是此方法只能针对以后新创建的用户,对于已经存在的用户使用此方法


chage -M 天数 用户名
chage -d 0 用户名 表示强制下次登录时更改密码
而且新密码必须强度高,要有大小写字母数字组合

3 命令历史限制

history命令可以查看历史命令,平时方向键向上翻找的就是history命令的内容

但是此举也容易被其他用户看到,为了安全考虑,需要减少记录的命令条数

vi /etc/profile
export HISTSIZE=历史命令数量 
export使得此命令在所有shell环境中生效
再次加载即可生效

或者也可以选择每次登录清空历史命令

vim /etc/profile 或 /etc/bashrc
echo '' > ~/.bash_history 
每次登录时在此文件中替换为空内容
vim /etc/bashrc
history -c
每次切换shell环境都会清空历史命令

4 终端自动注销

保证安全

vim /etc/profile
...
export TMOUT=600
source /etc/profile 检验600秒后自动断开

5 PAM认证

5.1 认证原理

只给信任的用户su权限,限制其他用户使用su

因为默认情况下任何用户都能使用su,有机会反复尝试其他用户的登录密码

将允许使用su命令的用户加入wheel组
gpasswd -a 用户名 wheel

启用pam_wheel认证模块
vi /etc/pam.d/su

第二行的配置代表root用户免密切换用户
第六行的配置代表pam_wheel组中的用户可以使用su
将其注释#取消掉使其可用

在这里插入图片描述

5.2 类型

cat /etc/pam.d
查看su的PAM配置文件
  • 第一列认证模块类型

    • auth 用户身份,如提示输入密码,判断是否为root
    • account 对账号各项属性进行检查,如是否登录系统,账号是否已经过期,是否达到最大用户数等
    • password 使用用户信息来更新数据,如修改用户密码
    • session 定义登录前以及退出后索要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统
  • 第二列PAM控制标记

    • required 验证失败时仍然继续,但返回fail
    • requisite 验证失败则立即结束整个验证过程,返回fail
    • sufficient 验证成功,则直接向程序返回成功,如果失败也不影响
    • optional 不进行成功与否的返回,一般不用于验证,只是显示信息
    • include 表示验证过程中调用其他的PAM配置文件,
  • 第三列PAM模块

    • 默认是在/lib64/security目录下,如果不在此默认路径下,要填写绝对路径
  • 第四列PAM模块参数

    • 传递给模块的参数,参数可以有多个,之间用空格分隔开

6 sudo

sudo授权命令

以其他用户身份如root执行授权的命令

并且有日志记录下操作

6.1 配置sudo授权

visudo 或 vi /etc/sudoers(因为所有用户都没有写的权限,所以需要强制保存)

记录格式 
用户 主机名=命令程序列表

用户名/用户别名 主机名/主机别名=(授权的用户 不加就是默认以root用户运行 NOPASSWD: 代表不需要进行密码验证  )程序列表/程序别名

%组名 主机名/主机别名=程序列表/程序别名

6.2 设置别名

  • Cmnd_Alias 命令别名=绝对路径命令以","分隔开
    Host_Alias主机别名
    User_Alias 用户别名
    别名必须大写

  • 示例

    • **%**wheel ALL=**NOPASSWD:**ALL 组

    组前面要加%,NOPASSWD表示不需要密码

    • jerry localhost=/sbin/ifconfig

    jerry 在主机localhost下能执行ifconfig命令

    • syrianer localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route

    syrianer用户在所有主机下都能执行/sbin/下的命令除了ifconfig和route命令

    • Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum

    给/bin/rpm /usr/bin/yum 命令设置别名为PKGTOOLS

    • mikr localhost=PKGTOOLS

    紧接上一个,用户mikr在主机localhost下能执行别名为PKGTOOLS命令

    即rpm和yum命令


7 开关机安全控制

7.1 调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

7.2 GRUB限制

通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁
可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数

##使用grub2-mkpasswd-pbkdf2生成密钥
grub2-mkpasswd-pbkdf2
PBKDF2 hash of your password is grub.pbkdf2..... 省略部分内容为经过加密生成的密码字符串

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

##修改/etc/grub.d/00_header文件中,添加密码记录
vim /etc/grub.d/00_header
cat << EOF
set superusers="root"  设置用户名为root
password_pbkdf2 root grub.pbkdf2...... 设置密码,省略部分为经过加密生成的密码字符串EOF

##生成新的grub.cfg配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统进入GRUB菜单时,按e键将需要输入密码才能修改引导参数

7.3 终端登录安全控制

限制root只在安全终端登录

vi /etc/securetty
.....
#tty5
#tty6 
加#注释掉就可以禁止root用户从虚拟终端tty5、tty6登录

7.4 禁止普通用户登录

##建立/etc/nologin文件
touch /etc/nologin

##删除nologin文件或重启后即恢复正常
rm -rf /etc/nologin

8 系统弱口令检测

Joth the Ripper
密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度

解压工具包
cd /opt
tar zxf john-1.8.0.tar.gz

安装软件编译工具
yum install 0y gcc gcc-c++ make

切换到src子目录
cd /opt/john-1.8.0/src

进行编译安装
make clean linux-x86-64

准备待破解的密码文件
cp /etc/shadow /opt/shadow.txt

执行暴力破解
cd /opt/john-1.8.0/run
./john /opt/shadow.txt

查看已破解出的账号列表
./john --show /opt/shadow.txt

9 网络端口扫描

NMAP

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

nmap [扫描类型] [选项] <扫描目标..>

9.1 NMAP常用选项

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

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

9.2 natstat常用选项

-a显示主机中所有活动的网络连接信息
-n以数字的形式显示相关的主机地址,端口等信息
-t查看TCP相关的信息
-u显示UDP协议相关的信息
-p显示与网络连接相关联的进程号、进程名称信息
-r显示路由表信息
-l显示处于监听状态的网络连接和端口信息

------------------------------------------ |
| -n | 以数字的形式显示相关的主机地址,端口等信息 |
| -t | 查看TCP相关的信息 |
| -u | 显示UDP协议相关的信息 |
| -p | 显示与网络连接相关联的进程号、进程名称信息 |
| -r | 显示路由表信息 |
| -l | 显示处于监听状态的网络连接和端口信息 |

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值