linux 安全 xshell 利用

诗林  金牌会员 | 2025-3-19 06:40:20 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 676|帖子 676|积分 2028

目次和文件

ls -l 检察目次和文件的权限的设置环境

加固方法

对于紧张目次,建议实验如下类似操作
   Chmod -R 750 /etc/rc.d/init.d/*
  这样只有root可以读写和实验这个目次下的脚本

新建了一个用户Q

写入了一些信息

发现在root用户下可以进行文件打开

接下来用平凡用户进行登录

发现没有权限进行检察

   设置默认的umask值,增强安全性
  umask 是 Linux 体系中用于控制 新建文件 / 目次默认权限 的掩码。体系创建文件 / 目次时,会基于默认权限(文件默认 666,目次默认 777)减去 umask 值,天生终极权限。比方 umask 027,表示从默认权限中扣除对应权限,确保新建文件 / 目次的权限更安全。
  
  利用命令“/vi/etc/profile” 修改配置文件,添加行“umask 027”,及新创建的文件属主读写实验权限,同组用户读写和实验权限,其他用户无权限,利用”umask 027”
  应用设置
  

   vi /etc/profile  # 打开文件 
  进入编辑模式(按 i 键),在文件末尾添加: 
  umask 027 
  保存退出(按 Esc 键,输入 :wq 回车) 
  source /etc/profile  # 立即生效配置
  


平凡用户进入修改文件,报错此用户没有读写权限,增强了安全性

Bash历史命令

   Bash历史命令
  可以设置保存历史命令的条数
  利用命令 “cat/etc/profile | group HISTSIZE ” 和“cat /etc/profile | grep HISTFILESIZE=”检察保存历史命令的条数
  利用命令“vi/etc/profile”修改配置文件,修改HISTSIZE=5和HISTFLESIZE=5
  既保存最新实验的5条命令
  通过检察发现有1000条历史命令,严峻影响体系安全
  

进行配置文件编辑


发现已经成功改变了配置文件信息

退出,先按esc   :wq!  再按enter

   退出,先按esc   :wq!  再按enter
  登陆超时,设置体系登陆后,毗连超时时间增强安全性
  利用命令   cat /etc/profile | grep TWOUT 检察TMOUT是否被设置
  加固方法:利用命令“vi/etc/profile”修改配置文件,添加“TMOUT”行开头的注释,设置为“TMOUT=180”,及超时时间为三分钟
  发现没有输出,我们进行配置
  


   配置完成,要在末了一行添加,不然会被覆盖
  G跳转到末了一行   i 进入编辑模式  Esc退出编辑模式,输入1:wq!保存并退出
  配置文件生效
  source /etc/profile
  



   
root路径
  检查体系root用户环境变量path是否包含”.”
  检查方法:以root用户环境变量path中不应该包含当前目次
  以root身份实验如下操作
  #echo $PATH
  /usr/local/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:.
  加固方法:
  利用命令“vi/etc/profile” 修改echo $PATH后面的路径
  但是我发现我的原来就不包含当前目次,所以不消修改
  

运行配置文件


   运行配置文件
  Source /etc/profile
  验证修改结果:
  Echo $PATH
  看一看结果中是否包罗当前目次“.”
  账户安全
  禁用无用账号:减少安全风险
  检查方法:利用/etc/passwd 检察口令文件,与体系管理员确认不须要的账户
  FTP等服务的账号,如果不必要登陆下体系,shell应该/sbin/nologin 
  加固方法:利用命令“passwd -l <用户名>” 锁定不须要的账号
  发现已经成功锁定了Q用户克制登录
  

扩展


   在 Linux 体系中,用户信息存储在 /etc/passwd 文件中,每行记录对应一个用户,其中末了一个字段是用户登录时利用的 Shell 程序。
  
 
  

  • /sbin/nologin 的作用
    它是一个特殊的 “伪 Shell”,当用户的 Shell 设置为 /sbin/nologin 时,该用户无法通过终端交互式登录体系(如 SSH 登录、当地控制台登录等)。体系会提示 “This account is currently not available”,拒绝登录请求。
  • 应用场景
    对于 FTP 服务账号、仅用于运行服务的账号(如某些程序运行的用户),这些账号不必要登录体系实验命令,只需保存服务功能。将它们的 Shell 设置为 /sbin/nologin,既能包管服务正常运行,又能克制用户通过这些账号登录体系,降低安全风险。
  • 安全意义:避免无用账号被攻击者利用进行登录操作,减少体系暴露面,提拔安全性。比方,若攻击者破解了一个设置为 /sbin/nologin 的账号密码,也无法通过该账号登录体系实验恶意命令。
  检察指定用户的默认登录 Shell
  通过/etc/passwd文件检察:体系用户信息存储在/etc/passwd文件中,每行对应一个用户的信息,每行末了一个字段就是该用户的默认登录 Shell。比如检察root用户的 Shell,在终端实验命令cat /etc/passwd | grep ^root ,其中^表示匹配行首,命令实验结果中末了一个:号后的内容,即为root用户的登录 Shell 范例 ,常见的如/bin/bash 。如果想检察其他用户,将root更换为对应的用户名即可
  


   

  • 通过echo $SHELL检察当前用户默认登录 Shell:在终端输入echo $SHELL命令,会返回当前正在利用终端的用户的默认登录 Shell。比方返回/bin/bash,则表示默认登录 Shell 是 Bash。
  检察当前正在运行的 Shell
  

  • 利用echo $0命令:在终端中输入echo $0,会输出当前正在运行的 Shell 名称。比如表现bash,就表示当前运行的是 Bash Shell。
  • 利用ps -p $$命令:$$代表当前 Shell 的历程号,该命令会返回当前 Shell 的详细信息,其中包罗正在运行的 Shell 范例。实验命令后,在输出结果中找到CMD列,对应的值就是正在运行的 Shell。
  


创建ftp账号

   扩展知识
  以下以 Linux 体系中常见的 vsftpd 软件为例,介绍创建 ftp 服务账号且该账号不必要登录体系(shell 为 /sbin/nologin )的教程:
  1. 安装 vsftpd

  
  打开终端,利用包管理工具安装 vsftpd。以 CentOS、RHEL 体系为例,实验命令:
  
  bash
  sudo yum -y install vsftpd
  
  对于 Debian、Ubuntu 体系,则实验:
  
  bash
  sudo apt-get -y install vsftpd
  



   

  发现没有进行激活
  






发现安装成功





   2. 创建当地映射用户(非虚拟用户方式)

  
  利用useradd命令创建一个体系用户,该用户将作为 FTP 用户的映射用户,且设置其 shell 为 /sbin/nologin,使其无法登录体系。假设创建用户名为ftpuser,命令如下:
  
  bash
  sudo useradd -d /var/ftp/pub -s /sbin/nologin ftpuser
  


   其中-d参数指定用户的家目次为/var/ftp/pub,你可以根据现实需求修改。
  3. 设置用户密码

  
  实验以下命令为新创建的用户设置密码:
  
  
  sudo passwd ftpuser
  

   按照提示输入并确认密码。
  4. 配置 vsftpd

  
  打开 vsftpd 的配置文件vsftpd.conf,一般路径为/etc/vsftpd/vsftpd.conf:
  
  
  sudo vi /etc/vsftpd/vsftpd.conf
  
  根据需求修改以下一些关键配置项:
  
 
  

  • 克制匿名登录:确保anonymous_enable=NO ,防止匿名用户访问 FTP 服务器。
  • 允许当地用户登录:确保local_enable=YES 。
  • 启用写入权限:若必要让用户有上传文件的权限,设置write_enable=YES 。
  • 锁定用户主目次:为了安全,建议设置chroot_local_user=YES ,将用户限定在其主目
  • 录中,防止访问其他体系目次。
  








  • 重装vim




   

  • 修改完成后,保存并退出编辑器。
    5. 检查并添加 shell 到合法列表(可选但建议)


    vsftpd 默认会检查用户的 shell 是否在/etc/shells文件中列出 ,如果不在大概导致用户无法登录 FTP。因此,必要检查并添加/sbin/nologin到该文件中。
    利用以下命令检察当前/etc/shells文件内容:

    bash
    cat /etc/shells

    如果其中没有/sbin/nologin这一行,则利用编辑器添加:

    bash
    sudo vi /etc/shells

    在文件末尾添加/sbin/nologin ,保存并退出。
    6. 重启 vsftpd 服务

    使配置生效,实验命令:
    对于 CentOS、RHEL、Fedora 等体系:

    bash
    sudo systemctl restart vsftpd


    对于 Debian、Ubuntu 体系:

    bash
    sudo service vsftpd restart

    7. 测试

    利用 FTP 客户端软件,如 FileZilla、CuteFTP 等,输入 FTP 服务器的地点、创建的用户名和密码进行毗连测试,验证是否能够正常访问 FTP 服务器。
    分享
    账号计谋
    操作目标:防止口令暴力破解,降低风险
    检查方法:利用命令“cat/etc/pam.d/ system-auth”检察配置文件
  

   加固方法:
  设置一连输错10次密码,账号锁定5分钟

  利用命令“vi /etc/pam.d/ system-auth”修改配置文件,添加 auth required pam_tally.so onerr=fail deny=10 unlock_time=300
  



   检查特殊账号

  操作目标:
  检察空口令和root权限的账号
  检查方法;
  利用命令:“awk -F:’($2==””)’/etc/shadow” 检察空口令账号
  利用命令:“awk -F:’($3==0)’/etc/passwd”检察UID为零的账号
  


   加固方法:

  利用命令“passwd<用户名>“为空命令账号设置密码
  UID为零的账号应该只有root,设置UID方法:
usermod -u UID<用户名>
  


   口令周期计谋

  操作目标:
  增强口令的复杂度,降低被猜解的大概性
  检查方法:
  利用命令:“cat /etc/login.defs| grep PASS“和 ”cat /etc/pam.d/system-auth“检察密码计谋设置
  

  


   加固方法:

  利用命令“vi /etc/login.defs“修改配置文件
  PASS_MAX_DAYS 90 #新建用户的密码最长利用天数
  PASS_MAX_DAYS 0 #新建用户的密码最短利用天数
  PASS_WARN_AGE 7 #新建用户的密码到期提条件醒天数
  


   利用change命令修改用户设置,比方:
  Chage -m 0 -M 30 -E 2000-01-01 -W 7<用户名>
  表示:将此用户的密码最长利用天数设为30,最短利用天数设为0,账号2000年1月1日过期,过期前7天告诫用户。
  


   口令复杂计谋

  操作目标:增强口令的复杂度等,降低被猜解的大概性
  检查方法;利用命令“cat/etc/pam.d/system-auth | grep pam_cracklib.so”
  检察密码复杂度计谋设置
  没有发现密码计谋配置
  


   加固方法:建议在/etc/pam.d/system-auth文件中配置:

  适用于平凡用户
  Passwd requisite pam_cracklib.so  retry=5 difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
  这一句适用于平凡用户和root用户
  password requisite pam_cracklib.so retry=5 difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 enforce_for_root
  


至少八位,包含一位大写字母,一位小写字母和一位数字




进来是这个界面,点击i进行输入

按esc, “:wq!”进行退出编辑模式,并保存
进行验证,发现进行了提示,密码计谋小于8位


   限定root远程登陆

  操作目标:限定root远程telent登录
  检查方法:
  利用命令“cat/etc/securetty | grep CONSOLE” 检察是否克制root远程登陆
  


   加固方法:

  Vi编辑/etc/securetty 文件,配置:CONSOLE=/dev/tty01
  直接点击G进入末了一行,
  


Esc   :wq!
扩展知识:
利用xshell进行远程毗连kali教程


sudo -i 进入(root)管理员模式






Xshell下载链接


Xshell安装教程












发现已经成功毗连


发现正常的linux命令都能利用





重新毗连,发现失败        


   限定用户  su

  操作目标:检查是否利用pam 认证模块克制wheel组之外的用户为root
  检查方法:
  利用命令:“cat /etc/pam.d/su | grep pam_wheel.so”检察配置文件,确认是否有相干的限定
  
        

加固方法

编辑su 配置文件,vi 打开/etc/pam.d/su 文件,添加大概修改以下配置



   Auth required pam_wheel.so use_uid:强制要求实验su 操作的用户属于wheel组,use_uid表示通过用户id,验证构成员身份。这一句话前面没有注释符号,说明体系已经强制要求实验su 操作用户必须属于wheel组。
  若文件存在其他与pam_wheel.so相干的注释行(#auth sufficient pam_wheel.so trust use_uid),可取消注释·并调整为上述规范配置
  

  • 将用户参加wheel组
  对允许利用su 切换为root的用户,实验命令usermod -G wheel用户名(比方:usermod -G wheel  user1),将其参加wheel组,使其得到su至root的权限
  通过以上配置,非wheel组,使其得到su 至root的权限。
  发现B用户已经可以进行su 命令的利用了        
  



   检查Grub/Lilo密码

  操作目标:

  检察体系引导管理器是否设置密码
  检查方法
  利用命令:“cat /etc/grub.conf | grep password”检察grub是否设置密码
  利用命令:“cat /etc/lilo.conf | grep password”检察lilo是否设置密码
  加固方法
  Vi编辑 /etc/grub.conf
  Splashimage 这个参数下一行添加:password密码
  如果必要md5加密,可以添加一行:password  --md5  密码
  Vi编辑/etc/lilo.conf
  Password=密码
  发现上述的方法已经不适用于新版kali
  所以又找了一个方法
  检查GBUB2是否设置密码
  Sudo grep -i ‘password_pbkdf2’ /boot/grub/grub.cfg
  



   在 GRUB2 中,password_pbkdf2 用于标识通过 PBKDF2 算法加密的启动密码配置。
  这条命令通过搜索 GRUB2 配置文件中是否存在 password_pbkdf2 相干内容,判定体系是否为 GRUB2 设置了加密启动密码。如有对应输出,说明已设置;若无输出,则表示未配置密码。
  设置GBUB2密码(精确加固方法)
  


    • 天生加密密码:
      实验命令天生PBKDF2加密密码,按提示输入密码,添加或修改以下内容(将加密字符串更换为现实天生的内容)

  GRUB_ENABLE_CRYPTODISK=y
  GBUB_PASSWORD=”grub.pbkdf2.sha512.  ………”#填入天生的加密字符串
  


   Snmp团体字

  操作目标:
  如果打开了snmp协议,snmp团体字设置不能利用默认的团体字
  检查方法:
  检察配置文件 cat /etc/snmp/snmpd.conf
  


加固方法:

Vi编辑 /etc/snmp/snmpd.cof 文件        


   应克制利用public.private 默认团体字,利用用户自定义的团体字,比方将以下设置中的public更换为用户自定义的团体字:com2sec notConfig notConfigUser default public
  


   编辑文件:
  bash
  sudo vi
   /etc/snmp/snmpd.conf 
  
  2. 添加配置:

  在文件中添加:
  Conf
  


   com2sec notConfigUser default YourCustomCommunity  # 将 YourCustomCommunity 更换为自定义强团体字(如包含巨细写字母、数字、符号)
  access notConfigGroup "" any noauth exact all none none 
  
  3. 保存退出:按 Esc,输入 :wq 保存并退出。
  4. 重启服务:bash
  
  sudo
   systemctl restart snmpd 
  


   弱口令审计

  检查方法:
  john /etc/shadow –single
  john /etc/shadow –wordlist=pass.dic
  加固方法:

  利用“passwd 用户名” 命令为用户设置复杂密码

  



   若表现!! *表示密码未设置,大概密码已经锁定,无有用哈希可破解
  服务历程
  Linux体系的服务历程

  体系守护历程(服务)
  服务就是运行在网络服务器上监听用户请求的历程
  服务就是通过端口号来区分的
  常见的服务及其对应端口号
  ftp:21
  ssh:22
  telnet:23
  smtp:25
  ssl:443
  http(www):80
  pop3:110
  体系守护历程(服务)
  在unix/linux体系中,服务是一般通过inted历程大概启动脚原来启动。
  通过inted来启动的服务可以通过在/etc/inted.conf文件进行注释来禁用。
  通过启动脚本启动的服务可以通过改变脚本名称的方式禁用。
  检察linux历程的命令
  



   检查ssh服务

  操作目标:对ssh服务进行安全检查
  检查方法:
  利用命令“cat /etc/ssh/sshd_config”检察配置文件
  


   加固方法:

  利用命令“vi /etc/ssh/sshd_config”编辑配置文件
  


    • 不允许root直接登录   设置“PermitRootLogin”的值为no

  无法通过ssh进行远程登陆
  

   修改SSH利用的协议版本   设置“Protocol”  的版本为2,如果没有这一行,直接添加这一行。
  


  • 修改允许密码错误次数(默认6次)设置“MaxAuthTries” 值为3
      ​






   Tcp Wrapper

  操作目标:

  利用tcp  wrapper 对  libwrap库支持的程序做访问控制
  检查方法:
  利用命令“vi /etc/hosts.allow” 和 “cat /etc/hosts.deny” 检察配置
  加固方法:

  
   利用命令“vi /etc/hosts.allow”   和”vi /etc/hosts.deny”  修改配置
  


   

  • 若允许 Windows 主机访问 Linux 虚拟机的 SSH

    • 检察 Windows 主机 IP:按 Win + R,输入 cmd 打开命令提示符,实验 ipconfig,找到 IPv4 地点(如 192.168.1.100)。
    • 在 Linux 虚拟机的 hosts.allow 中填写:sshd:Windows主机的IPv4地点(比方 sshd:192.168.1.100),表示仅允许该 Windows 主机 IP 访问 Linux 的 SSH 服务。

  • 若允许其他设备访问

    • 同理,获取对应设备的 IP(如另一台 Linux 服务器、手机等),填写到 hosts.allow 中。

  
  终极目标是:填写 “希望被允许毗连到 Linux 虚拟机 SSH 服务的设备 IP”,而非固定填主机或虚拟机 IP,需根据现实访问需求决定。
  


   Vi /etc/hosts.allow
  按i 进入编辑模式
  参加: sshd:IP地点
  


Vi /etc/hosts.deny
按I 进入编辑模式
Sshd:ALL


   (该配置为仅允许特定ip地点访问ssh)
  NFS共享

  操作目标:
  检察NFS共享
  检查方法:
  利用命令“exportfs” 检察NFS输出的共享文件
  加固方法:
  利用命令:“vi /etc/exports”编辑配置文件,删除不须要的共享
  



   如果发现配置文件内里没有命令,说明你没有配置过共享
  如果有的话,进行删除,并用下面的两条命令进行实验
  systemctl restart nfs-server 
  systemctl restart nfs-kernel-server 
  syslogd认证相干记录
  操作目标:

  检察全部日志记录
  检查方法:
  #cat /etc/rsyslog.conf | grep authpriv
  


   检察是否有 authpriv.* /var/log/secure
  加固方法:
  添加相干日志的记录:
将authpirv 设备的任何级别的信息记录到 /var/log/secure
  发现原来就在这个路径当中,所以不消进行修改
  Syslogd 日志设置
  操作目标:
  检察全部日志记录
  检查方法:

  利用命令:”cat /etc/rsyslog.conf”  检察rsyslogd
  


体系日志(默认)  /var/log/messages



Cron日志(默认)  /var/log/cron

安全日志(默认)  /var/log/secure


加固方法:
添加相干日志的记录


   

  • local1:属于为当地利用预留的日志办法(local0 - local7 )之一,没有固定的日志记录范例限定 ,可由用户自定义用于记录特定应用程序或服务产生的日志。比方,可以将自定义脚本的运行日志、一些特定业务体系的日志通过配置利用 local1 来记录,方便区分和管理。
  • auth:主要记录与安全和认证相干的消息,比如用户登录、注销信息,身份验证成功或失败的记录等。像用户通过 SSH 登录体系、利用 sudo 命令提权等操作产生的相干认证信息,通常会由 auth 办法来记录 。不外,对于一些更私密的安全认证信息,会利用 authpriv 办法记录。
   
  

  • 限定ctrl+alt+del命令
  • 操作目标:
  防止误利用ctrl+alt+del重启命令
  检查方法
  利用命令“cat /etc/inittab | grep ctrlaltdel”  检察输入行是否被注释
  

   加固方法:

  先利用命令“vi /etc/inittab”  编辑配置文件,在行开头添加注释符号“#”,
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now,在利用命令“init q” 应用设置
  

新旧体系判定


   从体系初始化机制来看,当前填写方式需联合体系范例判定:
  
 
  

  • 若体系利用 systemd(多数新 Linux 发行版,如 CentOS 7+、Ubuntu 16.04+)
    /etc/inittab 已不再生效(图中文件开头也提示 inittab is no longer used when using systemd),此时即使注释 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now,也无法限定 Ctrl+Alt+Del。需通过 systemd 机制处理,比方:
  bash
  systemctl mask ctrl-alt-del.target  # 屏蔽 Ctrl+Alt+Del 对应的体系目标 
  
  
  

  • 若体系仍利用传统初始化(极老旧体系)
    在 /etc/inittab 中注释 ca::ctrlaltdel:/sbin/shutdown -t3 -r now 行是精确的,注释后 Ctrl+Alt+Del 的重启功能会被禁用,后续实验 init q 革新配置即可生效。
  
  因此,需先确认体系初始化范例:新体系需用 systemd 方案,老旧体系此填写有用
  检察发现是属于新版本的
  

   这个是新版本的教程
  

  • 屏蔽 Ctrl+Alt+Del 对应的体系目标
  bash
  systemctl mask ctrl-alt-del.target 
  
  
  实验此命令后,Ctrl+Alt+Del 的重启功能会被禁用。
  

  • 验证状态(可选)
  bash
  systemctl status ctrl-alt-del.target 
  


若表现 masked,则表示屏蔽成功。


此方法适配 systemd 初始化机制,是 CentOS 7 等新体系限定 Ctrl+Alt+Del 的精确操作。



   发现虚拟机已经克制了这个命令,实验成功。
  服务历程安全

  关闭不须要的服务

  

  • 利用服务:“who -r”  检察当前init级别
  • 利用命令“chkconfig --list”检察全部服务的状态
  


   

  • 利用命令“chkconfig -level  <init级别> <服务名> on | off | reset”设置服务在个init 级别下开机是否启动
  克制 httpd 服务在运行级别 3、5 开机启动
  chkconfig --level 35 httpd off 
  设置 sshd 服务在运行级别 2、3、4、5 开机启动
  chkconfig --level 2345 sshd on 
  规复 network 服务默认启动设置
  chkconfig --level 3 network reset
  

完结撒花

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表