Linux系统安全攻防实战——从入侵排查到加固及备份的全方位指南

深度揭秘:Linux系统安全攻防实战——从入侵排查到加固及备份的全方位指南
1 账号安全
1.1 查看特权用户
1.2 查询可登录用户
1.3 查看sudo权限用户
1.4 查看当前登录用户
1.5 禁用或删除多余账号
1.5.1 禁用账号
1.5.2 删除账号及家
目录2
历史记录2.1 查看当前用户历史命令
2.2 查看指定用户历史命令
2.3 修改历史记录保存数量
3 端口与进程
3.1 查看端口连接情况
3.1.1 确认没有未授权的网络连接
3.1.2 分析可疑端口、IP和PID
3.2 查看进程信息
3.3 查找进程对应的执行文件
4 开机启动项与定时任务
4.1 查看开机启动项
4.2 查看定时任务
4.2.1 查看crontab
4.2.2 编辑crontab
4.2.3 删除crontab
4.2.4 查看crontab相关详细内容
5 系统日志
5.1 查看系统日志
5.1.1 SSH登录日志
5.1.1.1 CentOS/RHEL系统
5.1.1.2 Debian/Ubuntu系统
5.1.2 系统核心和服务日志
5.1.3 系统活动记录日志
5.2 分析日志内容
6 文件分析
6.1 检查敏感目录
6.2 检查文件属性
6.3 查找隐藏文件
6.4 检查系统完整性
6.4.1 CentOS/RHEL系统
6.4.2 Debian/Ubuntu系统
7 rootkit检测
7.1 chkrootkit
7.1.1 安装编译工具包
7.1.2 安装Chkrootkit
7.1.3 使用Chkrootkit进行检查
7.1.3.1 全局检查
7.1.3.2 筛选检查
7.2 rkhunter
7.2.1 CentOS/RHEL系统
7.2.2 Debian/Ubuntu系统
7.3 Lynis
7.3.1 CentOS/RHEL系统
7.3.2 Debian/Ubuntu系统
8 加固系统安全性
8.1 更新和补丁
8.1.1 CentOS/RHEL系统
8.1.2 Debian/Ubuntu系统
8.2. 防火墙配置
8.2.1 CentOS/RHEL系统
8.2.2 Debian/Ubuntu系统
8.3 SELinux
8.3.1 检查SELinux其状态
8.3.2 临时启用SELinux
8.3.3 永久启用SELinux
8.4 审计和监控
8.4.1 安装auditd和fail2ban
8.4.1.1 CentOS/RHEL系统
8.4.1.2 Debian/Ubuntu系统
8.4.2 启动fail2ban
8.5 最小化服务
8.6 访问控制
8.7 定期备份
8.7.1 系统配置文件备份
8.7.2 用户数据备份
8.7.3 数据库备份
8.7.4 引导加载器和分区表
8.7.5 特殊文件和设备
8.7.6 如何备份

深度揭秘:Linux系统安全攻防实战——从入侵排查到加固及备份的全方位指南

在Linux系统中,安全入侵排查是确保系统稳定性和数据安全的重要步骤。本文将详细介绍Linux系统安全入侵排查的方法,包括检查命令及说明,帮助系统管理员及时发现并应对潜在的安全威胁。

1 账号安全

1.1 查看特权用户

特权用户(UID为0的用户)是系统中最危险的角色,需要重点排查。

\# awk -F: '{if($3==0)print $1}' /etc/passwd
1.2 查询可登录用户

查看能够登录的用户,特别是远程登录的用户。

\# cat /etc/passwd | grep /bin/bash  
\# awk '/\\$1|\\$6/{print $1}' /etc/shadow
1.3 查看sudo权限用户

检查除root外,哪些用户拥有sudo权限。

\# cat /etc/sudoers | grep -v "^#\\|^$" | grep "ALL=(ALL)"
1.4 查看当前登录用户
\# who  
\# w
1.5 禁用或删除多余账号
1.5.1 禁用账号
\# usermod -L \[username\]
1.5.2 删除账号及家目录
\# userdel -r \[username\]

2 历史记录

2.1 查看当前用户历史命令
\# history
2.2 查看指定用户历史命令
\# cat /home/username/.bash\_history
2.3 修改历史记录保存数量
\# sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

3 端口与进程

3.1 查看端口连接情况

使用netstatss命令查看端口连接情况,分析可疑端口、IP和PID。

3.1.1 确认没有未授权的网络连接
\# netstat -antup | grep LISTEN

显示所有监听状态的网络连接,检查是否有未知的监听端口。

或者

\# ss -antup

类似于netstat,但通常输出更简洁,同样用于检查监听的网络连接。

3.1.2 分析可疑端口、IP和PID
\# lsof -i :\[Port\]  
\# lsof -p \[PID\]
3.2 查看进程信息

使用ps命令查看进程信息,结合grep命令查找可疑进程。

\# ps aux | grep \[进程名或PID\]
3.3 查找进程对应的执行文件
\# ls -l /proc/\[PID\]/exe

4 开机启动项与定时任务

4.1 查看开机启动项

检查/etc/rc.local/etc/rc.d/rc[0~6].d等目录下的脚本文件。

\# systemctl list-unit-files --type=service | grep enabled    
\# chkconfig --list
4.2 查看定时任务

检查crontabanacron的定时任务。

4.2.1 查看crontab
\# crontab \[-u username\] -l
4.2.2 编辑crontab
\# crontab \[-u username\] -e
4.2.3 删除crontab
\# crontab \[-u username\] -r
4.2.4 查看crontab相关详细内容
\# cat /etc/crontab  
\# cat /etc/cron.d/\*  
\# cat /etc/anacrontab  
\# cat /var/spool/anacron/\*

5 系统日志

5.1 查看系统日志

系统日志是追踪入侵者活动的重要线索。

5.1.1 SSH登录日志
5.1.1.1 CentOS/RHEL系统
\# cat /var/log/secure
5.1.1.2 Debian/Ubuntu系统
\# cat /var/log/auth.log
5.1.2 系统核心和服务日志
\# cat /var/log/syslog
5.1.3 系统活动记录日志

包括应用程序和其他系统程序的输出。‌

\# cat /var/log/messages
5.2 分析日志内容

使用grep等工具分析日志内容,查找可疑的登录尝试、命令执行等。

\# grep "Failed password" /var/log/secure  
\# grep "Accepted password" /var/log/secure

6 文件分析

6.1 检查敏感目录

使用find命令检查敏感目录中的文件,如/opt/var/log等。

比如查找一天内被访问的文件:

\# find /opt -type f -atime -1
6.2 检查文件属性

使用stat命令查看文件的创建、修改和访问时间。

\# stat /path/file
6.3 查找隐藏文件

注意检查以.开头的隐藏文件。

\# find / -type f -name ".\*"
6.4 检查系统完整性

确认系统文件没有被篡改。

6.4.1 CentOS/RHEL系统

对于RPM包管理的系统,检查所有包的完整性和校验和。

\# rpm -Va
6.4.2 Debian/Ubuntu系统

对于Debian/Ubuntu系统,检查所有包的完整性。

\# dpkg --verify

7 rootkit检测

Rootkit是黑客用来隐藏自身踪迹和恶意活动的工具,它们能够深入操作系统的底层,甚至修改内核来逃避检测。以下是几种常用的rootkit检测工具:

7.1 chkrootkit

chkrootkit是一款流行的rootkit检测工具,它能够检查系统中是否存在多种rootkit的迹象。

7.1.1 安装编译工具包
\# yum install gcc gcc-c++ make -y  
\# yum install glibc-static -y
7.1.2 安装Chkrootkit
  1. 下载软件包
\# wget https://src.fedoraproject.org/repo/pkgs/chkrootkit/chkrootkit-0.57.tar.gz/sha512/ff35f01042bc68bdd10c4e26dbde7af7127768442c7a10f114260188dcc7e357e2c48d157c0b83b99e2fd465db3ed3933c84ae12fa411c5c28f64b955e742ff7/chkrootkit-0.57.tar.gz
  1. 解压软件包
\# tar zxvf chkrootkit-0.57.tar.gz
  1. 进入目录
\# cd chkrootkit-0.57
  1. 安装程序
\# make sense
  1. 拷贝到安装目录
\# cp ./chkrootkit /usr/local/bin/
7.1.3 使用Chkrootkit进行检查
7.1.3.1 全局检查
\# chkrootkit

检查结果如果出现了INFECTED,则说明检测出系统后门。

7.1.3.2 筛选检查
\# chkrootkit | grep INFECTED

检查结果若正常,则不会返回结果,有返回结果则说明检测出系统后门。

7.2 rkhunter

rkhunter是另一个强大的rootkit检测工具,它不仅能检测rootkit,还能检测其他类型的恶意软件。

7.2.1 CentOS/RHEL系统
\# yum install epel-release -y  
\# yum install rkhunter -y  
\# rkhunter --checkall
7.2.2 Debian/Ubuntu系统
\# apt-get install epel-release -y  
\# apt-get install rkhunter -y  
\# rkhunter --checkall
7.3 Lynis

虽然Lynis主要是一个系统安全审计工具,但它也包含了一些rootkit检测功能。

7.3.1 CentOS/RHEL系统
\# yum install lynis -y  
\# lynis audit system
7.3.2 Debian/Ubuntu系统
\# apt-get install lynis -y  
\# lynis audit system

8 加固系统安全性

8.1 更新和补丁

保持系统和所有软件的最新状态,及时应用安全补丁。

8.1.1 CentOS/RHEL系统
\# yum update -y
8.1.2 Debian/Ubuntu系统
\# apt-get update && apt-get upgrade -y
8.2. 防火墙配置

配置防火墙以限制不必要的网络访问。

8.2.1 CentOS/RHEL系统
\# firewall-cmd --permanent --zone=public --add-service=http  
\# firewall-cmd --reload
8.2.2 Debian/Ubuntu系统
\# ufw enable
8.3 SELinux

启用并配置SELinux(Security-Enhanced Linux),以增加系统的访问控制安全性。

对于使用SELinux的系统,检查其状态。

8.3.1 检查SELinux其状态
\# sestatus

查看SELinux的状态和配置,确认没有被禁用或异常配置。

8.3.2 临时启用SELinux
\# setenforce 1
8.3.3 永久启用SELinux
\# sed -i s/SELINUX=disabled/SELINUX=enforcing/g /etc/selinux/config

**注意:**重启系统后生效。

8.4 审计和监控

启用系统审计(如auditd)和实时监控(如fail2ban),以检测并记录可疑活动。

8.4.1 安装auditd和fail2ban
8.4.1.1 CentOS/RHEL系统
\# yum install audit -y  
\# yum install fail2ban -y
8.4.1.2 Debian/Ubuntu系统
\# apt-get install audit -y  
\# apt-get install fail2ban -y
8.4.2 启动fail2ban
\# systemctl start fail2ban   
\# systemctl enable fail2ban
8.5 最小化服务

关闭不必要的服务和守护进程,减少潜在的攻击面。

\# systemctl disable \[服务名\]    
\# systemctl stop \[服务名\]
8.6 访问控制

确保对系统文件和目录的访问控制是恰当的,使用最小权限原则。

赋予用户相关账号文件最小权限

\# chmod 644 /etc/passwd   
\# chmod 400 /etc/shadow   
\# chmod 644 /etc/group  
\# chmod 644 /etc/services  
\# chmod 600 /etc/xinetd.conf  
\# chmod 600 /etc/security
8.7 定期备份

定期备份系统数据和配置文件,以便在遭受攻击时能够快速恢复。

8.7.1 系统配置文件备份
  • /etc/ 目录:包含了大多数的系统配置文件,如网络配置(/etc/network/interfaces/etc/sysconfig/network-scripts/)、用户信息(/etc/passwd, /etc/shadow)、系统服务配置(如 Apache 的 /etc/httpd/conf/ 或 Nginx 的 /etc/nginx/)等。

  • /var/lib/dpkg/status(Debian/Ubuntu系统):记录了已安装的软件包信息。

  • /var/log/ 目录下的日志文件(可选备份,因为它们可能会迅速增长):虽然日志文件不是配置信息,但它们是诊断问题的重要资源。

8.7.2 用户数据备份
  • /home/ 目录:包含所有用户的主目录和他们的个人文件。

  • /var/www/ 或其他Web服务器目录(如果服务器用于Web服务):包含网站数据。

  • /var/mail/(如果系统作为邮件服务器):包含电子邮件数据。

8.7.3 数据库备份
  • 数据库文件和数据目录,这取决于你使用的数据库系统(如 MySQL 的 /var/lib/mysql/,PostgreSQL 的 /var/lib/postgresql/ 等)。
8.7.4 引导加载器和分区表
  • 虽然直接备份这些可能比较复杂,但确保你的引导加载器(如 GRUB)的配置文件(如 /boot/grub/grub.cfg)和分区表(通常通过备份整个 /boot 分区或使用如 dd 的工具备份引导扇区)是恢复系统的关键部分。
8.7.5 特殊文件和设备
  • /proc/sys 目录是虚拟文件系统,通常不需要备份,因为它们包含了系统运行时的动态信息。

  • /dev 目录下的设备文件也不需要备份,因为它们在系统启动时由udev重新创建。

8.7.6 如何备份
  • 使用如 rsynccptar 等命令行工具进行文件级备份。

  • 使用如 dumprestore(针对ext2/ext3/ext4文件系统)或 xfsdumpxfsrestore(针对XFS文件系统)等工具进行更底层的备份。

  • 使用如 Bacula、Amanda、Duplicati 或更简单的 rsync 脚本加 cron 作业来实现自动化定期备份。

  • 考虑将备份数据存储在外部硬盘、网络附加存储(NAS)、云存储服务等不同位置,以防止本地灾难导致的数据丢失。

网络安全学习资源分享:

最后给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套200G学习资源包免费分享!

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】

在这里插入图片描述

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值