Linux-系统安全及应用

# 系列文章目录
提示:仅用于个人学习,进行查漏补缺使用。
1.Linux介绍、目录结构、文件基本属性、Shell
2.Linux常用命令
3.Linux文件管理
4.Linux 命令安装(rpm、install)
5.Linux账号管理
6.Linux文件/目录权限管理
7.Linux磁盘管理/文件系统
8.Linux逻辑卷管理LVM
9.Linux磁盘配额
10.Linux服务器硬件及RAID配置实验
11.Linuxu引导过程与服务控制
12.Linux-进程和计划任务管理


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本章大概内容有:
       账号安全控制 usermod passwd、系统引导和登录控制、PAM安全认证、sudo命令、弱口令检测、JR、端口扫描、NMAP命令、补充、netstat命令等等
提示:以下是本篇文章正文内容,下面案例可供参考

一、账号安全控制

  • 账号安全基本措施
    • 将非登录用户的Shell设为/sbin/nologin【禁止用户登录】
usermod -s /sbin/nologin	用户名
  • 锁定长期不使用的账号
usermod -L 	用户名
passwd -l 	用户名
passwd -S		用户名
  • 删除无用的账号【定期清理、手动删除】
userdel [-r]	用户名
/etc/shadow		###例如:手动删除修改【慎用】
  • 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow			###锁定文件并查看状态
lsattr /etc/passwd /etc/shadow				###查看文件锁定状态											
chattr -i /etc/passwd /etc/shadow			###解锁文件
  • 小结
    • 账号安全:
      • 缩小权限集合
      • 密码更换周期缩短 root wheel
      • 账号注销时间

二、系统引导和登录控制

  • 密码安全控制
    • 设置密码有效期
    • 要求用户下次登录时修改密码
vi /etc/login.defs		###修改密码配置文件,适用于新建用户
......
chage -M 30 lisi
cat /etc/shadow | grep lisi
  • 命令 历史限制
    • 减少记录的命令条数
    • 登录时自动清空命令历史
vi /etc/profile												###设置系统上所有用户的shell环境变量
export HISTSIZE=200										###设置历史记录中保存的命令行数量是200
source /etc/profile			
###使得`/etc/profile`文件中定义的环境变量对当前shell生效。
###实际上是在当前shell会话中重新加载配置文件。
vi ~/.bashrc													###打开用户家目录下的`.bashrc`文件修改shell配置
echo "" >~/.bash_history							###清空用户的家目录下的`.bash_history`文件
  • 终端自动注销
    • 闲置600秒自动注销
vi /etc/profile												###设置系统上所有用户的shell环境变量
......
export TMOUT=600											###设置bash shell的超时时间为600秒,即10分钟
source /etc/profile									  ###重新加载配置文件

ps:若设置了6秒自动注销怎么办?
1.复制/etc/profile覆盖
2.脚本

  • 使用SU命令切换用户
    • 用途 及用法
      • 用途: Substitute User 切换用户
      • 格式: su -目标用户
    • 密码验证
      • root->任意用户,不验证密码
      • 普通用户->其他用户,验证目标用户的密码
    • 限制使用su命令的用户
      • 将允许使用su命令的用户加入wheel组
      • 启用pam_wheel认证模块 【PAM:系统相关的认证权限管理,Linux系统中较为全面的安全管理的程序】
pgasswd -a tsengyia wheel 				###将用户`tsengyia`添加到名为`wheel`的用户组中。
tsengyia 
正在将用户“tsengyia” 加入到“wheel”组中

vi /etc/pam.d/su								
#%PAM-1.0
......
  • Linux中的PAM安全认证

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

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

    • 查看某个程序是否支持PAM模块认证
ls /etc/pam.d | grep su
  • 查看su的PAM配置文件: cat /etc/pam.d/su
    • 每一行都是一个独立的认证过程
    • 每一行可以区分为三个字段
      • 认证类型
      • 控制类型
      • PAM模块及其参数
  • PAM安全认证流程
    • 控制类型也称做Control Flags,用于PAM验证类型的返回结果
      1. 服务启动:服务启动时,会调用PAM进行用户认证。
      2. 加载PAM模块:PAM加载负责认证的模块。
      3. 用户认证:认证模块要求用户提供凭证(如密码)。
      4. 验证凭证:认证模块检查提供的凭证是否有效。
      5. 继续或失败:如果凭证有效,PAM继续调用下一个模块;如果无效,认证失败。
      6. 会话管理:所有认证模块执行完毕后,PAM管理会话,服务根据认证结果继续或拒绝操作。
  • 使用sudo机制提升权限
    • su命令的缺点(安全,历史命令等等)
    • sudo命令的用途及用法
      • 用途:授权普通用户、记录审计、控制权限等等。
    • 配置sudo授权
      • visudo或者 vi /etc/sudoers
      • 记录格式
visudo
.......
  • 查看sudo操作记录
    • 需启用Defaults logfile 配置
    • 默认日志文件: /var/log/sudo
visudo
Defaults logfile = "/var/log/sudo"
tail /var/log/sudo
.....
  • 查看授权的sudo操作

    • sudo -l
  • 终端登录安全控制

    • 安全终端配置: /etc/securetty
    • 禁止普通用户登录
      • 建立/etc/noglogin文件
      • 删除nologin文件或重启后即恢复正常
touch /etc/nologin
rm -rf /etc/nologin

三、弱口令检测

  • Joth the Ripper,简称为 JR
    - 一款密码分析工具,支持字典式的暴力破解
    - 通过对shadow文件的口令分析,可以检测密码强度
    - 官方网站:http://www.openwall.com/john/

四、端口扫描

  • 网络端口扫描
    • NMAP
      • 一款强大的网络扫描、安全检测工具,支持 ping 扫描、多端口检测等多种技术。
      • 官方网站:http://nmap.org/
      • CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm
    • 安装
rpm -qa | grep nmap
yum install -y nmap
  • NMAP的扫描
nmap [扫描类型] 【选项】 《》
  • 示例
    • -sS、-sT、-sF、-sU、-sP、-P0
    • 分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1
  - **检测192.168.4.0/24网段有哪些主机提供FTP服务**
nmap -p 21 192.168.4.0/24
  - **检测192.168.4.0/24网段有哪些存活主机**
nmap -n -sP 192.168.4.0/24
  • nmap命令常用的选项和扫描类型
选项描述
-p指定要扫描的端口。例如:nmap -p 22,80,443 target
-n禁用反向DNS解析,以加快扫描速度。
-sSTCP的SYN扫描(半开扫描),只向目标发送SYN数据包。
-sTTCP连接扫描,建立完整的TCP连接。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包。
-sUUDP扫描,用于探测目标主机提供的UDP服务。
-sPICMP扫描,快速判断目标主机是否存活,不进行其他扫描。
-P0跳过ping检测,认为所有目标主机都是存活的。

ps: 这些选项可以单独使用,也可以组合使用,以适应不同的扫描需求。 例如,nmap -p 80,443 -sS target将执行针对目标主机的80和443端口的SYN扫描。

五、补充

  • netstat命令
    • 概述
      • 用来显示各种网络相关信息,如网络连接、路由表、接口统计等。
    • 常用选项
选项描述
--all-a显示所有活动和非活动的连接。
--numeric-n直接使用数字地址和端口号,不进行域名解析。
--listening-l只显示监听中的服务(监听的套接字)。
--route-r显示路由表。
--interfaces-i显示网络接口信息。
--programs-p显示与网络连接相关的程序名称。
--timers-o显示超时信息。
--extend-e显示额外的网络统计信息。
--statistice-s显示协议统计信息。
  • 输出列
列标题描述
Proto网络协议类型,如TCP、UDP、ICMP等。
Recv-Q接收队列的大小,表示尚未被应用程序读取的数据包数量。
Send-Q发送队列的大小,表示尚未被网络层发送的数据包数量。
Local Address本地的IP地址和端口号。
Foreign Address远程的IP地址和端口号。
State连接的状态,如ESTABLISHED(已建立)、SYN_SENT(SYN已发送)、TIME_WAIT(等待时间)等。
User拥有该连接的用户。
PID/Program Name对应连接的进程ID和进程名称。
  • 示例
    • netstat -a 显示所有连接
    • netstat -l 显示监听中的服务
    • netstat -r 显示路由表
    • netstat -s | grep TCP 显示TCP连接状态统计
    • netstat -i 显示所有网络接口信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值