目录

2025年Linux-安全与运维指南

2025年Linux 安全与运维指南

目前,很多的站点和服务都运行在 服务器上。而Linux日常运维和安全也是管理员的基本要求。本文简单的为你介绍Linux系统中常用的[命令]( OQj8yJLnak746dGNnjuqG4J4CEbaazNw&zhida_source=entity “命令”)和[日志文件]( tQhINVxYLW6dNacRKVxOc&zhida_source=entity “日志文件”),能够帮助安全运维人员更有效地管理和保护Linux环境。

Linux基础命令

文件和目录操作

ls:列出目录内容。 使用ls -l 可以显示详细信息,在日常运维中,主要检查文件权限和修改时间。 find:查找文件。 #按修改时间搜索: find/-mtime-1:#搜索在过去24小时内修改的文件 find/-mmin-30:#搜索在过去30分钟内修改的文件 #按用户和组搜索: find /-user username:搜索属于指定用户的所有文件 find /-group groupname:搜索属于指定组的所有文件 #组合条件搜索: find/-name"*.log"-mtime-7:#搜索在过去7天内修改过的所有.log文件 find/-size+1M-size-5M:#搜索大小在1MB到5MB之间的文件 #忽略某些目录: find/-path/path/to/exclude- prune-o-name"*.txt"-print:#搜索所有.txt文件 #按权限搜索: find/-perm644:搜索权限精确匹配644的文件 find /-perm /u=r:搜索用户可读的文件 更多find命令的高级用法,大家可以自行学习。 stat:查看文件或目录的具体信息,如修改时间、访问权限等,这对于确定文件是否被篡改非常关键。 https://i-blog.csdnimg.cn/img_convert/067731a8d0f69268066bc54db2cd1715.jpeg

通过排查定时任务,可以查看潜在的攻击任务。在安全事件响应中,是常见的步骤之一。常用排除命令如下: crontab:管理用户的定时任务。 crontab -e:编辑定时任务。 crontab -l:查看当前定时任务列表。 /etc/crontab:定时任务配置文件。 https://i-blog.csdnimg.cn/img_convert/053936f2102b6cfd793e1b70dc3426de.jpeg

[权限管理]( YKWQ7FjOqBermeXw&zhida_source=entity “权限管理”) 在Linux中,权限管理是非常重要的。他决定了该风险程序能否正常执行。在Linux中,常用的权限管理命令为chmodchownchmod 用于更改文件或目录的访问权限如 chmod+xkali.sh#给kali.sh以root身份权限 chown 更改文件或目录的所有者和/或所属组如 chownuser:groupwww#www目录所属user用户 https://i-blog.csdnimg.cn/img_convert/438caa39341336a01f79636832bacaae.jpeg 文件目录的所有者和归属组

在Linux中,攻击者可以创建一些隐藏的账号来登录系统。常用的命令如下: useradd:用于创建新用户 userdel:用于删除用户。 usermod:用于修改用户账户,例如更改用户名或所属组。

grep 命令应用:

grep命令一般和awksed等命令结合使用。用来分析日志中的安全响应事件,如对账号和密码的暴力破解。 grep'Failed'/var/log/auth.log#从日志中获取登录失败的信息 awk-F':''{print$1}'/etc/passwd#获取passwd文件中每行的第一列 sed's/old/new/g'file.txt#将文件中所有old字符串替换为new

通过排查占用系统进程比较高的程序,来分析是哪个程序或者服务占用了较高的系统资源。最常见的便是挖矿木马了。常用的命令如下: https://i-blog.csdnimg.cn/img_convert/f1ca68671f976f053822b07c88104d10.jpeg top命令 top:显示当前活动的进程。 top -u username显示指定用户的进程, top -i忽略闲置和僵尸进程。 dfdu:磁盘使用情况。 https://i-blog.csdnimg.cn/img_convert/70feac37bd9b4b3b9308cecc6b21e15e.jpeg df -h可以显示本地磁盘的使用情况。

通过排查当前设备的网络和端口连接状态,从而获取异常的网络链接。常用的排除命令有: netstat -tuln 查看所有监听端口 netstat -an | grep ESTABLISHED 查看建立的网络连接。 https://i-blog.csdnimg.cn/img_convert/8ec02959ffed5edc108d17ae34af23a3.jpeg 当然,我们可以使用更加轻量化的工具ss ss -tuln 查看监听端口 ss -tp 显示哪些进程正在使用哪些端口。 https://i-blog.csdnimg.cn/img_convert/18a5e4e8dbd44310265f9ff86a84f084.jpeg

进程排查

在Linux中,利用ps命令可以查看当前进程。常用的命令如下: ps-aux#显示所有进程的详细列表, ps-aux|grephttpd#查找所有运行的httpd进程。 lsof#列出被进程打开的文件, lsof-i:80#显示所有打开80端口的进程。

在Linux中,日志文件是非常重要的,他记录了攻击者的各类操作和攻击手段。常见的日志文件和说明如下:

  • 安全日志/var/log/secure 如SSH暴力破解记录
  • 系统日志:/var/log/syslog记录系统运行信息
  • Web服务日志:/var/log/access.log/var/log/error.log 记录Web访问和错误信息对于分析网站安全事件至关重要
  • 内核日志:/var/log/kern.log 用于调查系统崩溃和硬件问题
  • 历史命令日志:~/.bash_history/root/.bash_history 记录用户的命令历史,可以用来追踪用户的操作历史,在调查安全事件时非常重要

常用日志分析命令

grep:用于查找特定模式如 grep'Failed'/var/log/secure#查找失败的登录尝试。 awk:用于复杂的文本处理如 awk'{print$1}'/var/log/auth.log | sort | uniq -c | sort -nr 可以统计登录尝试的频率。

敏感文件

/etc/passwd/etc/shadow:存储用户账户信息和加密后的密码,有助于发现未授权的用户账号更改。 /etc/sudoers:定义了哪些用户具有sudo权限,有助于检测未授权的权限提升。 /etc/group:存储用户组信息,包括组名、组密码、组ID和组内成员 /etc/crontab/etc/cron.\*/\*:存储计划任务配置 /root/.ssh/authorized_keys:存储有权限远程访问root用户的SSH密钥。

总结

熟练掌握Linux中的各种命令和对日志的分析是运维的基础。通过这些命令和技巧,我们可以有效地管理系统、诊断问题并保护系统免受安全威胁。当然本文也是简单的进行了说明。更具体的用法还要结果真实的生产环境决定。