Linux 安全与运维指南

科技   2024-05-15 20:46   上海  

目前,很多的站点和服务都运行在Linux服务器上。而Linux日常运维和安全也是管理员的基本要求。本文简单的为你介绍Linux系统中常用的命令和日志文件,能够帮助安全运维人员更有效地管理和保护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 / -perm 644:搜索权限精确匹配644的文件
find / -perm /u=r:搜索用户可读的文件

更多find命令的高级用法,大家可以自行学习。

stat:查看文件或目录的具体信息,如修改时间、访问权限等,这对于确定文件是否被篡改非常关键。

定时任务

通过排查定时任务,可以查看潜在的攻击任务。在安全事件响应中,是常见的步骤之一。常用排除命令如下:

crontab:管理用户的定时任务。

crontab -e:编辑定时任务。

crontab -l:查看当前定时任务列表。

/etc/crontab:定时任务配置文件。

权限管理

在Linux中,权限管理是非常重要的。他决定了该风险程序能否正常执行。在Linux中,常用的权限管理命令为chmodchownchmod 用于更改文件或目录的访问权限如

chmod +x kali.sh #给kali.sh 以root身份权限

chown 更改文件或目录的所有者和/或所属组如

chown user:group www #www 目录所属user用户
文件目录的所有者和归属组

用户和组管理

在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

系统状态

通过排查占用系统进程比较高的程序,来分析是哪个程序或者服务占用了较高的系统资源。最常见的便是挖矿木马了。常用的命令如下:

top命令

top:显示当前活动的进程。

top -u username显示指定用户的进程,

top -i忽略闲置和僵尸进程。

dfdu:磁盘使用情况。

df -h可以显示本地磁盘的使用情况。

网络和进程监控

通过排查当前设备的网络和端口连接状态,从而获取异常的网络链接。常用的排除命令有:

netstat -tuln 查看所有监听端口

netstat -an | grep ESTABLISHED 查看建立的网络连接。

当然,我们可以使用更加轻量化的工具ss

ss -tuln 查看监听端口

ss -tp 显示哪些进程正在使用哪些端口。

进程排查

在Linux中,利用ps命令可以查看当前进程。常用的命令如下:

ps -aux #显示所有进程的详细列表,
ps -aux | grep httpd #查找所有运行的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中的各种命令和对日志的分析是运维的基础。通过这些命令和技巧,我们可以有效地管理系统、诊断问题并保护系统免受安全威胁。当然本文也是简单的进行了说明。更具体的用法还要结果真实的生产环境决定。

释然IT杂谈
本公众号专注于分享网络工程(思科、华为),系统运维(Linux)、以及安全等方面学习资源,以及相关技术文章、学习视频和学习书籍等。期待您的加入~~~关注回复“724”可领取免费学习资料(含有书籍)。
 最新文章