Linux系统安全及应用(账号权限管理、登录控制、弱口令、端口扫描)

目录

[1. 账号管理与权限控制](#1. 账号管理与权限控制)

[1.1 基本安全措施:](#1.1 基本安全措施:)

[1.1.1 账号管理和文件权限](#1.1.1 账号管理和文件权限)

[1.1.2 密码安全控制](#1.1.2 密码安全控制)

1.1.3历史命令和自动注销

[1.2 用户切换与提权:](#1.2 用户切换与提权:)

[2. 系统引导与登录控制](#2. 系统引导与登录控制)

[2.1 开关机安全控制:](#2.1 开关机安全控制:)

[2.1.1 GRUB](#2.1.1 GRUB)

[2.1.2 限制更改GRUB引导参数](#2.1.2 限制更改GRUB引导参数)

[2.2 终端登录控制:](#2.2 终端登录控制:)

[3. 弱口令检测与端口扫描](#3. 弱口令检测与端口扫描)

[3.1 弱口令检测-JR:](#3.1 弱口令检测-JR:)

[3.2 端口扫描-NMAP:](#3.2 端口扫描-NMAP:)

4.操作举例(帮助理解)


1. 账号管理与权限控制

1.1 基本安全措施:

1.1.1 账号管理和文件权限

#检查账号情况

cat /etc/passwd | grep /sbin/nologin #禁止终端登录的账号

cat /etc/passwd | grep -v /sbin/nologin #重点关注没有禁止终端登录的账号 invert match反向匹配

#禁止账号登录

usermod -s /sbin/nologin nologintest #禁止用户nologintest终端登录 -s shell 指定新的shell

#恢复账号登录

usermod -s /bin/bash nologintest #恢复用户nologintest终端登录

#锁定账号

passwd -l nologintest #-l lock 锁定账号

#查看锁定状态

passwd -S nologintest #-s status 查看账号锁定状态

cat /etc/shadow #用户名后面有两个!!号

#解锁账号

passwd -u nologintest #-u unlock 解锁账号

#当某用户长期无人使用时,为了安全考虑可以先进行锁定

#锁定账号

usermod -L zhangsan #锁定张三用户

#查看锁定状态

passwd -S zhangsan

#解锁账号

usermod -U zhangsan #解锁张三用户

特殊权限 suid sgid sticky

#suid 冒险位,执行二进制文件(执行文件)与文件所有人有关,与谁来执行无关(执行者以所有者的权限运行)

#去掉suid冒险位

#sgid 强制位,对目录生效,在此目录中创建文件和目录的属组都跟父目录的属组相同

#sticky 粘制位,目录中的文件只能被文件拥有者删除,root也可以删除

文件ACL getfacl setfacl

对文件的权限进行附加说明的权限设定方式,独立于基础权限

#查看权限

#设定ACL权限

#取消lisi用户的ACL权限

#取消所有用户的ACL设置,恢复文件默认设置

文件属性 chattr lsattr +i +a

#基本权限rwx概念

#默认root用户新建目录权限755,新建文件权限644。普通用户新建目录权限775,新建文件权限664

#修改umask配置文件(/etc/bashrc,/etc/profile),umask命令可以查看umask的值

#锁定配置文件,文件不能删除,不能更改,不能移动

chattr +i /etc/passwd #chattr change attribution

#设置了`i'属性的文件不能进行修改:你既不能删除它,也不能给它重新命名,你不能对该文件创建链接,而且也不能对该文件写入任何数据.只有超级用户可以设置或清除该属性.

#查看锁定情况

lsattr /etc/passwd

----i----------- /etc/passwd

#解锁配置文件

chattr -i /etc/passwd

1.1.2 密码安全控制

将密码的有效期设为30天

#新创建的用户默认设定

vim /etc/login.defs

PASS_MAX_DAYS 30 #默认值PASS_MAX_DAYS 99999

#已有用户修改设定

chage -M 30 nologintest #-M MAX_DAYS 不是-m 修改的是/etc/shadow配置文件

#账户安全限制,打开/etc/login.defs 文件,修改下列信息,修改的信息只限制新创建的用户

PASS_MAX_DAYS 20 #密码最长使用期限

PASS_MIN_DAYS 0 #密码最短使用期限

PASS_MIN_LEN 5 #密码最小字符

PASS_WARN_AGE 7 #密码临近多久到期时发出警告

强制用户下次登录时重设密码

chage -d 0 nologintest #-d LAST_DAY

1.1.3历史命令和自动注销

#修改历史记录保存条数

#统一管理

vim /etc/profile

HISTSIZE=200 #历史记录的保存条数,默认是1000

#单独定制

vim ~/.bash_profile

export HISTSIZE=200

#注销用户并清除history历史记录

vim ~/.bash_logout

echo > ~/.bash_history

#修改闲置超时时间

#统一管理

vim /etc/profile

export TMOUT=200 #单位为秒

#单独定制

vim ~/.bash_profile

export TMOUT=200

1.2 用户切换与提权:

su命令

su - root # - 切换为新用户的环境变量

whoami

限制某些用户可以使用su命令

useradd pamtest01

useradd pamtest02

gpasswd -a pamtest01 wheel #将pamtest01用户加入至wheel组内

cat /etc/group | grep wheel #确认wheel组成员

#开启pam认证

vim /etc/pam.d/su

auth required pam_wheel.so use_uid #将注释符号去掉,非wheel组成员无法使用su命令

验证su命令限制生效

sudo命令

作用:将root命令授权给普通用户使用

授权的基本配置格式:

user MACHINE=COMMANDS

user(用户);授权的用户名,或采用%组名的形式

MACHINE:使用此配置文件的主机名称,一般设为localhost或者实际的主机名即可。

COMMANDS:允许授权的用户通过sudo方式执行的特权命令。多个命令之间以逗号分隔。

#添加用户授权前

#添加用户授权后

#禁止zhang用户以root权限查看/etc/shadow文件,其他文件可以以root权限查看

#对zu1授权

测试user1,user2是否可以使用fdisk -l命令

#sudo别名使用

User Aliases(用户别名),别名需要大写

#查看当前用户被授权的命令有那些

​​​​​​​

#sudo日志/var/log/secure

#默认情况下通过sudo方式执行操作并不记录,若要启用sudo日志记录,需要在/etc/sudoers 文件内增加 Defaults logfile 设置

​​​​​​​ ​​​​​​​

2. 系统引导与登录控制

2.1 开关机安全控制:

增加GRUB引导时间。

vim /boot/grub2/grub.cfg

if [ x$feature_timeout_style = xy ] ; then

set timeout_style=menu

set timeout=20

else

set timeout=20

fi

2.1.1 GRUB

GNU GRUB(GRand Unified Bootloader简称"GRUB")是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。

2.1.2 限制更改GRUB引导参数

如果想编辑grub引导参数,按e键后,需要输入用户名密码。

#给编辑grub引导参数加密码

grub2-setpassword

#这个过程创建了一个/boot/grub2/user.cfg配置文件,其中包含已经加密的密码。密码的用户是root。如果想要删除密码,直接删除/boot/grub2/user.cfg文件就可以。

2.2 终端登录控制:

#限制普通用户登录终端

touch /etc/nologin #不需要更改任何信息,有这个文件就无法登录

rm -rf /etc/nologin #删除后普通用户就可以登录

3. 弱口令检测与端口扫描

3.1 弱口令检测-JR:

John the Ripper 开膛手约翰

安装过程

tar -zxvf john-1.9.0.tar.gz -C /usr/src

cd /usr/src/john-1.9.0

cd src

make clean linux-x86-64

#在run目录下 就会生成john工具

JR安装弱口令检测使用方法

1、复制shadow文件

cp /etc/shadow /root/shadow.txt

2、直接查找

cd /usr/src/john-1.9.0/run/

./john /root/shadow.txt

#查看已经检测出来的用户有哪些

./john --show /root/shadow.txt

#可以手动将需要添加的密码手动写入其中,做实验使用

vim password.lst

#还可以结合用户自己选择的字典文件匹配查看

./john --wordlist=./password.lst /root/shadow.txt

3.2 端口扫描-NMAP:

yum安装nmap

yum -y install nmap

nmap使用

NMAP的扫描语法

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

常用的扫描类型

-sS,TCP SYN扫描(半开)

-sT,TCP 连接扫描(全开)

-sF,TCP FIN扫描

-sU,UDP扫描

-sP,ICMP扫描

-P0,跳过ping检测

nmap 127.0.0.1 #查看当前主机的TCP所有开放端口

nmap -sU 127.0.0.1 #查看当前主机的UDP所有开放端口

nmap -p 22 192.168.37.0/24 #查看192.168.37.0网段所有主机22端口的开放情况,ssh

nmap -n -sP 192.168.37.0/24 #检测192.168.37.0/24网段有哪些存活主机,-n 禁用反向解析

4.操作举例(帮助理解)

相关推荐
wniuniu_18 小时前
运维运维运维
java·运维·dubbo
柏木乃一18 小时前
库的制作与原理(2)ELF格式,程序地址空间part2,程序加载
linux·服务器·c++·进程·elf··进程地址空间
杜子不疼.19 小时前
【Linux】基础IO(三):文件描述符与重定向
linux·c语言·开发语言·人工智能
猫猫的小茶馆21 小时前
【Linux 驱动开发】七. 中断下半部
linux·arm开发·驱动开发·stm32·嵌入式硬件·mcu
cyber_两只龙宝21 小时前
LVS-DR模式实验配置及原理详解
linux·网络·云原生·智能路由器·lvs·dr模式
好好学习啊天天向上1 天前
C盘容量不够,python , pip,安装包的位置
linux·python·pip
li_wen011 天前
文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
大数据·linux·数据库·文件系统·jffs2
wypywyp1 天前
2.虚拟机一直显示黑屏,无法打开,可能是分配的硬盘空间不够
linux·运维·服务器
SongYuLong的博客1 天前
TL-WR710N-V2.1 硬改刷机OpenWRT源码编译固件
linux·物联网·网络协议
AlfredZhao1 天前
Docker 快速入门:手把手教你打包 Python 应用
linux·docker·podman