Linux---系统安全

文章目录

系统安全

系统账号清理

复制代码
将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名

锁定长期不使用的账号
usermod -L用户名
passwd -l用户名
passwd -S 用户名

删除无用的账号
userdel [-r]用户名

锁定账号文件passwd、shadow
chattr +i/etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow		#锁定文件并查看状态
chattr -i/etc/passwd /etc/shadow	#解锁文件

密码安全控制

  • 设置密码有效期

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

    vi /etc/login.defs #修改密码配置文件,适用于新建用户

    chage -M 30 lisi #适用于已有用户
    cat /etc/shadow grep lisi

    chage -d 0 zhangsan #强制在下次登录时更改密码
    cat /etc/shadow | grep zhangsan #shadow文件中的第三个字段被修改为0

命令历史限制

  • 减少记录的命令条数

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

    vi /etc/profile
    export HISTSIZE=200

    source /etc/profile

    vi ~/.bashrc
    echo"">~/.bash history #当前用户

终端自动注销

闲置600秒后自动注销

复制代码
vi /etc/profile
export TMOUT=600

source /etc/profile

如设置时间短的处理方式

复制代码
另一台虚拟机
scp /etc/profile root@时间过短的虚拟机的IP:/etc/profile

使用su命令切换用户

用途及用法

复制代码
用途:Substitute User,切换用户
格式:su -目标用户

密码验证

复制代码
root→任意用户,不验证密码	带-选项表示将使用目标用户的登录Shell环境
普通用户→其他用户,验证目标用户的密码
su - root
whoami

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam wheel认证模块

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

Linux 系统中较为全面的安全管理的程序

复制代码
gpasswd -a tsengyia wheel

vi /etc/pam.d/su
#%PAM-1.0
auth		sufficient pam rootok.so
auth		required pam wheel.so use uid

查看su操作记录

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

限制使用su命令的用户

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

启用pam wheel认证模块

查看su操作记录

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

su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换

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

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

PAM认证原理

  • 一般遵循的顺序

    Service(服务)→PAM(配置文件)→pam *.so

  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证

  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

  • 不同的应用程序所对应的PAM模块是不同的

1、su------》service 服务

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

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

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

复制代码
查看su是否支持PAM模块认证
ls /etc/pam.d | grep su

查看su的PAM配置文件:cat /etc/pam.d/su

复制代码
每一行都是一个独立的认证过程
每一行可以区分为三个字段
认证类型
控制类型
PAM模块及其参数

控制类型也称做Control Flags用于PAM验证类型的返回结果

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

sudo命令的用途及用法

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

用法:sudo 授权命令

配置sudo授权

visudo或者vi /etc/sudoers

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

复制代码
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

查看sudo操作记录

需启用 Defaults logfile配置

默认日志文件:/var/log/sudo

复制代码
visudo
Defaults logfile = "/var/log/sudo"

查询授权的sudo操作

复制代码
sudo -l

限制root只在安全终端登录

复制代码
vi /etc/securetty
#tty5
#tty6
禁止root用户从终端tty5、tty6登录

禁止普通用户登录

建立/etc/nologin文件

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

复制代码
touch /etc/nologin		禁止普通用户登录
rm -rf /etc/nologin		取消上述登录限制

网络扫描-----NMAP

NMAP 是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术。

复制代码
#一台虚拟机安装 NMAP 软件包
rpm -qa | grep nmap
yum install -y nmap

#另一台虚拟机安装 httpd 软件包
yum install -y httpd
systemctl stop firewalld
setenforce 0
systemctl start httpd
systemctl enable httpd

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

#分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1

#检测192.168.4.0/24网段有哪些主机提供HTTP服务
nmap rp 80 192.168.4.0/24

#检测192.168.4.0/24网段有哪些存活主机
nmap -n -sP 192.168.4.0/24

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 通而放弃扫描。
相关推荐
maosheng11465 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken6 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2916 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C6 小时前
CPU Cache
linux·cache
Hoshino.417 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源9 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry9 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu9 小时前
Linux安装redis
linux·运维·redis
寂柒11 小时前
序列化与反序列化
linux·网络
lay_liu11 小时前
ubuntu 安装 Redis
linux·redis·ubuntu