Linux之系统安全管理

news/2024/7/3 14:34:48

Linux 之系统安全管理

  • 一. 账号安全控制
    • 1. 系统账号清理
    • 2. 密码安全控制
    • 3. 命令历史限制
    • 4. 终端自动注销
    • 5. 使用 su 命令切换用户
      • 5.1 su 切换用途
      • 5.2 密码验证
      • 5.3 限制使用 su 命令的用户
  • 二. PAM安全认证
    • 1. su命令的安全隐患
    • 2. PAM认证原理
    • 3. PAM安全认证流程
  • 三. 使用sudo机制提升权限
    • 1. su命令的缺点
    • 2. sudo的用途和用法
    • 3. 配置sudo授权
  • 四. 开关机安全机制
    • 1. 调整BIOS引导设置
    • 2. GRUB限制
  • 五. 限制root 只在安全终端登录
    • 1. 安全终端配置
    • 2. 禁止普通用户登录
  • 六. 网络端口扫描
    • 1. nmap
    • 2. netstat

一. 账号安全控制

1. 系统账号清理

  • 将非登录用户的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 解锁文件

在这里插入图片描述

2. 密码安全控制

  • 设置密码有效期
    vi /etc/login.defs
    先进入 vi /etc/login.def 修改 PASS_ MAX_DAYS 30
    再查看下 vim /etc/shadow

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

在这里插入图片描述

chage -M 30 jichao
cat /etc/shadow | grep jichao 适用于已有用户

在这里插入图片描述

  • 要求用户下次登录时修改密码
    chage -d 0 jichao

在这里插入图片描述

3. 命令历史限制

  • 减少记录的命令条数

history - c 临时清除历史命令记录,重启后会重现

在这里插入图片描述
进入 vi /etc/profile 设置全局历史命令记录
export HISTSIZE=100
出来后 source /etc/profile 再查看下history

在这里插入图片描述

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

进入 vim .bashrc ,添加一条命令 echo" " > .bash_history
再查看history 历史命令

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

4. 终端自动注销

进入 vim /etc/profile 添加命令 export TMOUT=600 600秒自动注销
退出后 source /etc/profile ,echo $TMOUT 查看下

在这里插入图片描述

在这里插入图片描述

5. 使用 su 命令切换用户

5.1 su 切换用途

su 切换到用户的当前目录
su - 切换到用户的家目录

5.2 密码验证

root→任意用户,不验证密码
普通用户→其他用户,验证目标用户的密码

在这里插入图片描述

5.3 限制使用 su 命令的用户

gpasswd -a zhangsan wheel #添加授权用户 zhangsan到wheel组中

j进入 vim /etc/pam.d/ su

auth required pam_wheel.so use_uid #去掉此行开头的注释

启用pam_wheel 认证以后,未加入到 wheel 组内的其他用户将无法使用su命令

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

二. PAM安全认证

1. su命令的安全隐患

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

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

2. PAM认证原理

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

3. PAM安全认证流程

在这里插入图片描述

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

三. 使用sudo机制提升权限

1. su命令的缺点

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

2. sudo的用途和用法

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

3. 配置sudo授权

visudo或vi /etc/sudoers

记录格式:

用户 主机名=命令程序列表
用户 主机名=(用户) 命令程序列表

一: root 用户下进入visudo 给用户jichao 添加命令 jichao ALL=/sbin/config ,再回到su jichao 普通用户下 用sudo 命令添加网卡输入jichao 的 密码 就可以修改成功
在这里插入图片描述
在这里插入图片描述
二:进入到visudo 里面 把%wheel 前面的注释#去掉,代表任何普通目录都可以使用sudo 操作命令,再切换到 jichao 普通目录中 ,执行添加网卡的操作 查看下
在这里插入图片描述
在这里插入图片描述

三 . 进入 visudo 添加命令 ,然后切换到普通用户 jichao 试下命令 sudo init 6 发现没有权限执行

使用关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置别名
(别名必须为大写)

User Alias USERS=Tom, Jerry,Mike

Host Alias HOSTS=localhost, bogon

Cmnd Alias CMNDS=/sbin/ifconfig
,/usr/sbin/useradd,/usr/sbin/userdel

USERS HOSTS=CMNDS
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四. 开关机安全机制

1. 调整BIOS引导设置

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

2. GRUB限制

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

grub2-mkpasswd-pbkdf2 #根据提示设置GRUB菜单的密码

PBKDF2 hash of your password is grub .pbkd…
#省略部分内容为经过加密生成的密码字符串!

步骤:
在这里插入图片描述

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

五. 限制root 只在安全终端登录

1. 安全终端配置

/etc/securetty

#tty 5
#tty 6 代表禁止root用户从终端tty5,tty6 登录

2. 禁止普通用户登录

建立 /etc /nologin 文件
删除 nologin 文件或重启后即恢复正常

在这里插入图片描述

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

六. 网络端口扫描

1. nmap

一款强大的网络扫描,安全检测工具
官方网站: http://nmap.orgl
oCentOS 7.3光盘中安装包,nmap-6.40-7.el7.x86_64.rpm

安装 NMAP 软件包

rpm -qa | grep nmap
yum install -y nmap

nmap命令常用的选项和扫播类型:

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

例如 查看本机开放的TCP端口
namp - sT 127.0.0.1

在这里插入图片描述

检测192.168.118.0/24 网段有哪些主机提供http 服务
nmap -p 80 192.168.80.0/24

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

在这里插入图片描述

2. netstat

选项说明
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n以数字的形式显示相关的主机地址、端口等信息。
-t查看TCP相关的信息。
-u显示UDP协议相关的信息。
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root 权限)。
-r显示路由表信息。
-l显示处于监听状态的网络连接及端口信息。
netstat -natp查看正在运行的使用TCP协议的网络状态信息
netstat -naup查看正在运行的使用UDP协议的网络状态信息

http://www.niftyadmin.cn/n/3652856.html

相关文章

Linux之深入理解文件系统和日志分析

Linux 之深入理解文件系统和日志分析一. inode 与 block1. 文件数据包括元信息与实际数据2. block(块)3. inode(索引节点)4. 文件数据5. 结论6. inode的大小1. inode也会消耗硬盘空间2. 查询 inode 号方法7. 模拟消耗inode 节点二. 硬链接与软连接三. 恢复误删除的文件 EXT四. …

AJAX编写的用户注册实例及技术小结

我所举的这个例子是一个企业用户注册时的一个应用,当用户注册时检查用户名和企业名是否可用,以前的做法是在旁边加一个按钮,点击“检查”,就向服务器发出请求,然后等待……服务器返回信息,继续操作。   如…

Linux中DHCP动态分配IP

Linux中DHCP动态分配IP一. 使用DHCP动态分配IP一. 使用DHCP动态分配IP 配置相应的DHCP 和DHCP 中继 XSHELL 的属性也需要修改下 IP地址 虚拟机进入修改网卡页面修改 安装 dhcp 软件包 ,并复制文件 进入到vim dhcpd.conf 进行配置文件 ,退出后重启 在…

AJAX in Action

像其他人一样,当我看到一下RIA应用,例如Google Maps和Google Suggest的时候我都非常惊讶。我希望知道是如何实现的。现在,谜底揭开了,那就是AJAX。这是在我花了一段时间研究AJAX之后才知晓的。这里有一个很好的例子让我们知道AJAX…

Linux中DNS域名解析

DNS域名一、DNS域名二、DNS的域名结构三、DNS服务器类型四、DNS域名正向解析五、DNS域名反向解析六、构建主从DNS域名服务器六、DNS 分离服务器一、DNS域名 DNS是"域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问…

AJAX将成为移动Web2.0时代首选开发平台

LCC编译器要分析下面的程序,大体流程是这样的。#001 #include #002 #003 int main(void)#004 {#005 int nTest1 1;#006 int nTest2 2;#007 int nTest3;#008 int i;#009 #010 nTest3 nTest1 nTest2;#011 printf("nTest3 %d/r/n",nTest3);#012 …

Linux中FTP文件传输

Linux中FTP文件传输一. FTP服务二. FTP实验1. yum 安装vsfpd2. 设置匿名用户访问的FTP服务(最大权限)#修改配置文件3. 匿名访问测试4. 匿名通过FTP上传和下载文件三. 修改FTP 用户权限一. FTP服务 FTP服务是用来传输文件的协议 FTP服务器默认使用TCP协…

AJAX框架资源汇总

1. Pure Javascript: Application Frameworks1.1 Bindows (成立于2003年)Backbase是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案。Bindows无需下载安装客户端支撑组件(如Java、ActiveX或Flash&#xff…