首页 > 系统相关 >【Linux入门】账号安全、系统安全以及应用相关基础命令

【Linux入门】账号安全、系统安全以及应用相关基础命令

时间:2024-08-14 17:23:50浏览次数:16  
标签:系统安全 账号 扫描 visudo 认证 etc 模块 Linux PAM

文章目录

账号安全

系统账号限制

  • 缩小权限集合
  • 密码更换周期缩短
  • 账号注销时间
  • 禁止登陆
  • 定期清理
  • 锁定账号

相关命令

  1. 将非登录用户的Shell设为/sbin/nologin
usermod -s/sbin/nologin 用户名
  1. 锁定长期不使用的账号
usermod -L用户名
passwd -S 用户名
passwd-1用户名
  1. 删除无用的账号
userdel[-r] 用户名
  1. 锁定账号文件passwd、shadow
chattr +i/etc/passwd /etc/shadow
  1. 锁定文件并查看状态
lsattr/etc/passwd /etc/shadow
  1. 解锁文件
chattr -i/etc/passwd /etc/shadow

密码安全控制

  • 设置密码有效期
  • 要求用户登陆修改密码

具体命令:

vi /etc/login.defs
PASS MAX DAYS 30
 chage -M 30 username
cat /etc/shadow | grep username

系统安全以及应用

pam-权限管理

PAM(Pluggable Authentication Modules,可插拔认证模块)体系是由Sun公司开发的一种与认证相关的通用框架机制,它在Linux系统中得到了广泛应用,被称为Linux-PAM。PAM体系通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序。

一、PAM体系概述

1. 目标和作用

  • PAM的主要目标是为程序的开发人员提供一套统一的认证接口。
  • 它通过将认证过程从应用程序中分离出来,实现了认证机制的可插拔性,便于向系统中添加新的认证手段。

2. 主要组成部分

  • PAM模块:动态链接库,位于/lib/security/lib64/security目录下,负责实际的认证工作。
  • PAM配置文件:位于/etc/pam.d目录下,每个服务或程序都有一个对应的配置文件,用于定义该服务的认证方式和规则。

二、PAM认证原理

PAM认证一般遵循以下顺序:

  1. Service(服务):确定需要认证的服务或程序。
  2. PAM配置文件:加载与该服务对应的PAM配置文件(位于/etc/pam.d目录下)。
  3. pam_*.so:根据PAM配置文件中的规则,调用相应的PAM模块(位于/lib/security/lib64/security目录下)进行认证。

PAM认证过程包括多个阶段,如用户身份识别(auth)、账号属性检查(account)、密码更新(password)和会话管理(session)等。每个阶段都可以配置多个PAM模块,按照顺序依次执行。

三、PAM配置方式

1. 配置文件位置
PAM的配置文件主要存放在/etc/pam.d目录下,每个服务或程序都有一个以该服务或程序名命名的配置文件。
2. 配置文件格式
PAM配置文件中的每一行都是一个独立的认证过程,通常包含以下几个部分:

  • 模块类型:如auth、account、password、session等,表示该行的PAM模块用于哪个阶段。
  • 控制标记:用于控制PAM模块的行为,如required、requisite、sufficient、optional等。
  • 模块路径:PAM模块的路径,通常为/lib/security/pam_*.so/lib64/security/pam_*.so
  • 模块参数:传递给PAM模块的参数,用于定制PAM模块的行为。
    3. 示例
auth    required     pam_unix.so
account required     pam_unix.so
session required     pam_unix.so

这个示例配置了对某个服务的认证、账号检查和会话管理阶段,都使用了pam_unix.so模块,并且都是必须的(required)。

四、PAM控制标记

PAM控制标记用于控制PAM模块的行为,常见的控制标记包括:

  • required:表示该模块是必需的,如果该模块失败,则整个PAM认证过程也会失败,但其他模块仍然会被执行。
  • requisite:与required类似,但如果该模块失败,则整个PAM认证过程会立即失败,不再执行其他模块。
  • sufficient:表示如果该模块成功,则整个PAM认证过程也会成功,但其他模块仍然会被执行。
  • optional:表示该模块是可选的,无论成功还是失败,都不会影响整个PAM认证过程的结果。

这些控制标记使得系统管理员可以根据需要灵活地配置PAM认证过程,以满足不同的安全需求。
综上所述,PAM体系通过提供一套可插拔的认证机制,实现了认证过程的灵活性和可扩展性。通过合理的配置PAM配置文件和控制标记,系统管理员可以轻松地为不同的服务配置不同的认证方式,从而提高系统的安全性和易用性。

visudo-组账号控制

visudo 是 Linux 系统中用于安全编辑 /etc/sudoers 文件的命令。/etc/sudoers 文件是 sudo 权限控制的核心配置文件,它决定了哪些用户和组可以以什么方式执行哪些命令。关于使用 visudo 来控制组账号的 sudo 权限。

一、visudo 的基本作用

  • 安全编辑visudo 命令通过锁定文件、检查语法错误等方式,确保 /etc/sudoers 文件的安全编辑。
  • 语法检查:在保存文件之前,visudo 会对 /etc/sudoers 文件的语法进行严格的检查,避免因为语法错误导致 sudo 无法正常工作。

二、使用 visudo 控制组账号的 sudo 权限

1. 编辑 /etc/sudoers 文件
  • 使用 root 用户执行 visudo 命令,这将以安全的方式打开 /etc/sudoers 文件进行编辑。
2. 添加组权限条目
  • /etc/sudoers 文件中,你可以添加类似于以下格式的条目来控制组的 sudo 权限:
    %组名 ALL=(ALL) ALL
    
    这里,%组名 表示一个用户组,ALL(第一个)表示该规则适用于所有主机,ALL(第二个,在括号内)表示可以切换到任何用户身份执行命令,ALL(第三个)表示可以执行任何命令。
    例如,如果你想让 wheel 组的所有成员都有执行所有命令的权限,可以添加如下条目(如果尚未存在):
    %wheel ALL=(ALL) ALL
    
3. 设置无需密码的 sudo 权限
  • 如果你想让某个组的成员在执行 sudo 命令时无需输入密码,可以在命令前添加 NOPASSWD:。例如:
    %mygroup ALL=(ALL) NOPASSWD: ALL
    
    这样,mygroup 组的所有成员在执行 sudo 命令时就不需要输入密码了。
4. 保存并退出
  • visudo 编辑器中完成编辑后,保存并退出。visudo 会自动检查文件的语法,并在发现错误时提示用户。

三、注意事项

  • 在编辑 /etc/sudoers 文件时,务必小心谨慎,因为错误的配置可能会导致 sudo 无法正常工作。
  • 使用 visudo 而不是直接编辑 /etc/sudoers 文件,可以大大降低出错的风险。
  • 在为组设置 sudo 权限时,要考虑安全性,避免给过多的用户或组不必要的权限。

nmap-网络扫描工具

Nmap网络扫描工具概述

Nmap(Network Mapper,网络映射器)是一款强大的网络连接端口扫描工具,用于扫描网上电脑开放的网络连接端口,确定哪些服务运行在哪些端口上,并推断计算机运行的操作系统(这一过程亦称fingerprinting)。它是网络管理员评估网络系统安全的必备工具之一,同时也被黑客和渗透测试人员广泛使用。

功能

Nmap具备以下主要功能:

  1. 主机发现(Host Discovery):用于发现目标主机是否处于活动状态,支持多种主机在线检测机制。
  2. 端口状态扫描(Port Scanning):扫描端口并将端口识别为开放、关闭、过滤等状态。Nmap默认可以扫描1660个常用端口。
  3. 应用程序版本探测(Version Detection):扫描占用端口的应用程序,并识别应用程序版本和使用的协议。
  4. 操作系统探测(Operating System Detection):识别目标主机的操作系统类型、版本编号及设备类型,支持1500个操作系统或设备的指纹数据库。
  5. 防火墙/IDS逃避和欺骗:探查目标主机的状况,如IP欺骗、IP伪装、MAC地址伪装等。
  6. 支持测试对象交互脚本:用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,并可扩展高级功能,如Web扫描、漏洞发现和漏洞利用等。

场景

Nmap广泛应用于以下场景:

  1. 网络安全评估:网络管理员使用Nmap来评估网络系统的安全性,发现潜在的安全漏洞。
  2. 渗透测试:渗透测试人员使用Nmap来发现目标主机的弱点和漏洞,为进一步的攻击测试做准备。
  3. 网络设备和服务管理:网络管理员使用Nmap来扫描网络设备和服务,了解其配置和状态,以便进行管理和维护。

基本格式

Nmap的基本使用格式如下:

nmap [选项] [目标]

其中,目标可以是单个主机、网络子网或整个网络,例如IP地址、域名、IP范围或CIDR表示法等。

常用选项

常用选项含义
-A进行全面扫描,包括操作系统探测和版本侦测。
-p <端口号或范围>指定要扫描的端口号或端口范围。
-sP进行Ping扫描,仅显示在线主机。
-sT进行TCP连接扫描。
-sS进行TCP SYN扫描,也称为半开扫描。
-sU进行UDP扫描。
-O启用操作系统检测。
-v提高扫描的详细程度。
-Pn禁止对目标进行Ping操作,直接进行扫描(无Ping扫描)。
–script <脚本名>执行指定的NSE脚本。

示例

  1. 全面扫描指定IP
    nmap -A 192.168.0.1
    
    该命令会对192.168.0.1进行全面扫描,包括操作系统探测和版本侦测。
  2. 扫描指定IP的特定端口
    nmap -p 80,443 192.168.0.1
    
    该命令会扫描192.168.0.1的80和443端口。
  3. 无Ping扫描
    nmap -Pn 192.168.0.0/24
    
    该命令会对192.168.0.0/24网段内的所有IP进行无Ping扫描,直接进行端口扫描。
  4. 使用NSE脚本进行Web敏感目录扫描
    nmap -p 80 --script=http-enum.nse 192.168.0.1
    
    该命令会使用http-enum.nse脚本对192.168.0.1的80端口进行Web敏感目录扫描。

标签:系统安全,账号,扫描,visudo,认证,etc,模块,Linux,PAM
From: https://blog.csdn.net/Karoku/article/details/141191508

相关文章

  • 【OS_Linux】删除日志文件中某个时间节点之前的内容
    在Linux中,可以使用sed命令命令来删除日志文件中某个时间点之前的内容。假设有一个名为logfile.log的日志文件,想删除2024年8月14日15:30:00之前的所有内容。首先,需要确定日志文件的日期格式。如果日志文件中的日期格式是YYYY-MM-DDHH:MM:SS,你可以使用以下命令:sed-i'/2024-08-1......
  • Linux Shell常用命令
    命令说明举例常用字符串运算符-a并且-n 检测检测字符串长度是否不为0,不为0返回true。[-n"$a"]返回true。-z检测字符串长度是否为0,为0返回true。[-z$a]返回false。$检测字符串是否为空,不为空返回true。[$a]返回 true。=检测两个字符串是否相等,相等返......
  • Linux 设置零时proxy 安装数据源
    一、方法一设置临时HTTP代理您可以通过在命令行中临时设置环境变量来指定HTTP代理:exporthttp_proxy=http://proxy-server:portexporthttps_proxy=http://proxy-server:port二、方法二使用SOCKS代理的配置方法设置SOCKS5代理的环境变量:exportALL_PROXY=socks5:......
  • Linux系统性能调优
    Linux系统性能调优是一个复杂而细致的过程,它涉及到硬件、软件、内核参数以及进程管理等多个方面。通过合理的调优措施和持续的监控调整,可以显著提升Linux系统的运行效率和稳定性。以下将详细介绍Linux系统性能调优的技巧,涵盖硬件、软件、内核参数、进程管理等多个角度。一......
  • 宝塔Linux面板环境要求
    操作系统:全新的操作系统,推荐使用:Centos7.x>Debian10.+>Ubuntu20.04>Centos8stream>Ubuntu18.04<其它系统 (请查看以下已兼容的操作系统列表)确保是干净的操作系统,没有安装过其它环境带的Apache/Nginx/php/MySQL/pgsql/gitlab/java(已有环境、网站在运行的不可安装)......
  • 宝塔面板常用Linux命令汇总
    Windows用户无需查看,该命令仅限Linux用户使用。管理宝塔停止面板服务/etc/init.d/btstop启动面板服务/etc/init.d/btstart重启面板服务/etc/init.d/btrestart修复面板/etc/init.d/bt16卸载面板服务/etc/init.d/btstop&&chkconfig--delbt&&rm-f/etc/init......
  • 宝塔面板Linux面板忘记密码-常用Linux命令
    命令输入这段命令,然后在最后输入新密码cd/www/server/panel&&btpythontools.pypanel此处填写新密码Linux面板清除登录限制如果提示多次登录失败,暂时禁止登录请输入以下命令清除登录限制。rm-f/www/server/panel/data/*.loginLinux面板删除域名绑定面板如果当前面板......
  • linux配置Maxwell
    1、Maxwell-1.30.0及以上的版本不再支持JDK1.8,而JDK1.8支持的最后一个版本为1.29.22、下载Maxwell的压缩包,上传到服务器并解压3、tar -xf maxwell-1.29.2.tar.gz4、开启mysql的binlog功能:vim /etc/my.cnfserver-id=1log-bin=mysql-binbinlog_format=row并重新加载配置项:s......
  • NIFI系列---【Linux离线安装nifi集群+内嵌zookeeper】
    1.环境准备准备三台4c8g的centos7服务器,分别安装jdk8,zookeeper-3.5.7(zookeeper-3.4.7版本不行,官网要求不低于3.5.5),如果不用root安装,就直接切换到对应用户(例:afp)。node01node02node032.下载nifi安装包和nifi-toolkit-1.19.1-bin.zip安装包(本教程已验证过1.19.1和1.27......
  • CentOS 7 停服后(2024-06-30)升级最新的Linux 内核
     1、CentOS7更新 USTC的源sudosed-i.bak\-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos|g'\/etc/yum.repos.d/CentOS-Base.repo 2......