2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
浏览量:28 次 发布时间:2026-01-23 19:59 作者:明扬工控商城 下载docx
2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
第一部分:安全基础概念
1.1 安全基本原则
最小权限原则:只授予必要的最小权限
纵深防御:多层安全防护
零信任模型:不信任任何内部或外部实体
安全开发生命周期:从设计到部署全程考虑安全
1.2 常见安全威胁
bash
# 常见攻击类型:
# 1. 暴力破解(Brute Force)
# 2. 中间人攻击(Man-in-the-Middle)
# 3. 拒绝服务攻击(DoS/DDoS)
# 4. 注入攻击(SQL注入、命令注入)
# 5. 跨站脚本攻击(XSS)
# 6. 社会工程学攻击
第二部分:系统安全加固
2.1 账户和安全策略
bash
# 检查空密码账户
sudo awk -F: '($2 == "") {print $1}' /etc/shadow
# 检查UID为0的用户(除了root不应该有)
sudo awk -F: '($3 == 0) {print $1}' /etc/passwd
# 设置强密码策略
sudo apt install libpam-pwquality
sudo vim /etc/security/pwquality.conf
配置示例:
text
minlen = 12
minclass = 4
maxrepeat = 3
maxsequence = 3
2.2 SSH安全加固
bash
# 备份原始配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# 编辑SSH配置
sudo vim /etc/ssh/sshd_config
安全配置示例:
bash
Port 2222 # 修改默认端口
PermitRootLogin no # 禁用root登录
PasswordAuthentication no # 禁用密码认证,使用密钥
PubkeyAuthentication yes
AllowUsers alice bob # 只允许特定用户
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 客户端活动间隔
ClientAliveCountMax 2 # 客户端活动计数
UseDNS no # 禁用DNS查询加快连接速度
2.3 防火墙配置
bash
# 使用UFW配置防火墙
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
# 查看规则
sudo ufw status verbose
# 使用iptables(更底层)
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
第三部分:漏洞扫描和评估
3.1 使用Nmap进行端口扫描
bash
# 安装Nmap
sudo apt install nmap
# 基本扫描
nmap 192.168.1.0/24
# 详细扫描
nmap -sV -sC -O 192.168.1.100
# 隐蔽扫描
nmap -sS -T2 192.168.1.100
# 全端口扫描
nmap -p- 192.168.1.100
# 保存结果
nmap -oA scan_report 192.168.1.100
3.2 使用OpenVAS进行漏洞扫描
bash
# 安装OpenVAS(GVM)
sudo apt update
sudo apt install gvm
# 初始化设置
sudo gvm-setup
# 启动服务
sudo gvm-start
# 访问Web界面
# https://localhost:9392
# 命令行扫描
sudo gvm-cli --gmp-username admin --gmp-password <password> socket --socketpath /run/gvmd/gvmd.sock
3.3 使用Lynis进行安全审计
bash
# 安装Lynis
sudo apt install lynis
# 运行系统审计
sudo lynis audit system
# 查看报告
sudo cat /var/log/lynis-report.dat | grep -E "(warning|suggestion)"
第四部分:入侵检测系统
4.1 部署OSSEC
bash
# 安装OSSEC
sudo apt install build-essential
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -xzf 3.6.0.tar.gz
cd ossec-hids-3.6.0
# 编译安装
sudo ./install.sh
# 选择本地安装(local)
# 启动服务
sudo /var/ossec/bin/ossec-control start
# 查看日志
sudo tail -f /var/ossec/logs/alerts/alerts.log
4.2 配置Snort
bash
# 安装Snort
sudo apt install snort
# 配置网络接口
sudo dpkg-reconfigure snort
# 测试配置
sudo snort -T -c /etc/snort/snort.conf
# 运行嗅探模式
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0
第五部分:渗透测试基础
5.1 信息收集
bash
# 使用theHarvester收集信息
sudo apt install theharvester
theharvester -d example.com -b google
# 使用dnsrecon进行DNS枚举
sudo apt install dnsrecon
dnsrecon -d example.com
# 使用sublist3r进行子域名枚举
git clone https://github.com/aboul3la/Sublist3r.git
cd Sublist3r
pip install -r requirements.txt
python sublist3r.py -d example.com
5.2 漏洞利用基础
bash
# 使用Metasploit框架
sudo apt install metasploit-framework
# 启动Metasploit
msfconsole
# Metasploit基本命令
# search <exploit_name> # 搜索漏洞利用模块
# use <module_path> # 使用模块
# show options # 显示选项
# set RHOST <target_ip> # 设置目标
# exploit # 执行攻击
# 示例:使用SSH暴力破解模块
# use auxiliary/scanner/ssh/ssh_login
# set RHOSTS 192.168.1.100
# set USER_FILE /path/to/users.txt
# set PASS_FILE /path/to/passwords.txt
# run
5.3 密码破解
bash
# 使用John the Ripper
sudo apt install john
# 破解shadow文件
unshadow /etc/passwd /etc/shadow > crack.db
john crack.db
# 使用Hashcat
sudo apt install hashcat
# 破解MD5哈希
hashcat -m 0 -a 0 hash.txt wordlist.txt
第六部分:Web应用安全测试
6.1 SQL注入测试
bash
# 使用SQLmap
sudo apt install sqlmap
# 基本检测
sqlmap -u "http://example.com/page?id=1"
# 获取数据库
sqlmap -u "http://example.com/page?id=1" --dbs
# 获取表
sqlmap -u "http://example.com/page?id=1" -D database --tables
# 获取数据
sqlmap -u "http://example.com/page?id=1" -D database -T table --dump
6.2 XSS测试
bash
# 使用XSStrike
git clone https://github.com/s0md3v/XSStrike.git
cd XSStrike
pip3 install -r requirements.txt
python3 xsstrike.py -u "http://example.com/search?q=test"
6.3 使用Burp Suite
bash
# 下载Burp Suite Community Edition
# https://portswigger.net/burp/communitydownload
# 运行Burp Suite
java -jar burpsuite_community.jar
# 配置浏览器代理
# 地址:127.0.0.1
# 端口:8080
第七部分:无线网络安全
7.1 无线网络嗅探
bash
# 安装无线工具
sudo apt install aircrack-ng
# 查看无线网卡
sudo airmon-ng
# 启用监听模式
sudo airmon-ng start wlan0
# 扫描无线网络
sudo airodump-ng wlan0mon
# 捕获握手包
sudo airodump-ng -c 6 --bssid 00:11:22:33:44:55 -w capture wlan0mon
7.2 WPA/WPA2破解
bash
# 使用aircrack-ng破解
sudo aircrack-ng -w wordlist.txt capture-01.cap
# 使用hashcat破解
hcxpcapngtool -o hash.hc22000 capture-01.cap
hashcat -m 22000 hash.hc22000 wordlist.txt
第八部分:社会工程学工具
8.1 使用Social-Engineer Toolkit
bash
# 安装SET
git clone https://github.com/trustedsec/social-engineer-toolkit.git
cd social-engineer-toolkit
pip3 install -r requirements.txt
# 运行SET
sudo python3 setoolkit
# 常用选项:
# 1) Social-Engineering Attacks
# 2) Website Attack Vectors
# 3) Credential Harvester Attack Method
8.2 钓鱼邮件测试
bash
# 使用Gophish
# 下载Gophish:https://getgophish.com
# 解压并运行
unzip gophish-v*.zip
cd gophish-v*
chmod +x gophish
./gophish
# 访问管理界面
# https://localhost:3333
第九部分:数字取证和事件响应
9.1 文件系统取证
bash
# 使用Sleuth Kit
sudo apt install sleuthkit
# 查看磁盘信息
mmls /dev/sda
# 查看文件系统
fsstat /dev/sda1
# 恢复删除文件
fls -r -d /dev/sda1 | grep -v "*"
# 使用Autopsy图形界面
sudo apt install autopsy
sudo autopsy
9.2 内存取证
bash
# 使用Volatility
sudo apt install volatility
# 获取内存镜像
# 使用LiME工具获取内存镜像
# 分析内存镜像
volatility -f memory.dump imageinfo
volatility -f memory.dump --profile=Win7SP1x64 pslist
volatility -f memory.dump --profile=Win7SP1x64 netscan
第十部分:安全防护实践
10.1 安全监控脚本
bash
#!/bin/bash
# security_monitor.sh
LOG_FILE="/var/log/security_monitor.log"
ALERT_EMAIL="admin@example.com"
check_system() {
echo "=== 安全监控检查 ==="
echo "时间: $(date)"
# 1. 检查失败的登录尝试
echo "1. 失败的登录尝试:"
grep "Failed password" /var/log/auth.log | tail -5
# 2. 检查可疑进程
echo "2. 可疑进程检查:"
ps aux | grep -E "(minerd|backdoor|bot)" | grep -v grep
# 3. 检查网络连接
echo "3. 异常网络连接:"
netstat -tunap | grep -E "(:6666|:4444|:31337)"
# 4. 检查文件更改
echo "4. 关键文件更改:"
find /etc -type f -mtime -1 -ls
# 5. 检查rootkit
echo "5. Rootkit检查:"
if command -v rkhunter >/dev/null; then
sudo rkhunter --check --sk
fi
}
# 发送警报
send_alert() {
local message="$1"
echo "$(date) - $message" >> "$LOG_FILE"
echo "$message" | mail -s "安全警报" "$ALERT_EMAIL"
}
# 主循环
while true; do
check_system
sleep 300 # 5分钟检查一次
done
10.2 入侵响应流程
bash
#!/bin/bash
# incident_response.sh
echo "=== 安全事件响应流程 ==="
# 1. 确认和评估
echo "1. 确认事件:"
echo " - 检查系统日志"
echo " - 确认影响范围"
echo " - 评估严重程度"
# 2. 遏制
echo "2. 遏制措施:"
read -p "是否断开网络连接? (y/n): " disconnect
if [ "$disconnect" = "y" ]; then
sudo iptables -A INPUT -j DROP
sudo iptables -A OUTPUT -j DROP
echo "网络已断开"
fi
# 3. 取证
echo "3. 取证收集:"
sudo dd if=/dev/sda of=/evidence/system.img bs=4M status=progress
sudo tar -czvf /evidence/logs.tar.gz /var/log
sudo netstat -tunap > /evidence/network_connections.txt
sudo ps aux > /evidence/process_list.txt
# 4. 根除
echo "4. 根除威胁:"
read -p "输入要删除的恶意文件路径: " malicious_file
if [ -n "$malicious_file" ]; then
sudo rm -f "$malicious_file"
fi
# 5. 恢复
echo "5. 恢复系统:"
read -p "是否从备份恢复? (y/n): " restore
if [ "$restore" = "y" ]; then
# 这里应该是实际的恢复命令
echo "执行恢复操作..."
fi
# 6. 总结
echo "6. 事件总结:"
read -p "输入事件总结: " summary
echo "$(date) - $summary" >> /evidence/incident_report.txt
练习项目
项目1:搭建安全实验环境
使用VirtualBox搭建靶机环境
配置Kali Linux攻击机
部署易受攻击的应用(如DVWA)
进行安全测试
项目2:企业安全加固
对Linux服务器进行安全评估
制定安全加固方案
实施安全配置
验证加固效果
项目3:渗透测试实战
对授权目标进行渗透测试
编写渗透测试报告
提供修复建议
验证修复效果
项目4:安全监控系统
部署入侵检测系统
配置安全信息事件管理(SIEM)
设置实时告警
模拟攻击测试监控系统
今日总结
今天我们学习了Linux安全攻防和渗透测试基础:
安全基础:原则、威胁模型
系统加固:账户安全、SSH加固、防火墙
漏洞扫描:端口扫描、漏洞评估
入侵检测:OSSEC、Snort配置
渗透测试:信息收集、漏洞利用、密码破解
Web安全:SQL注入、XSS测试
无线安全:无线网络嗅探和破解
社会工程学:钓鱼攻击和防范
数字取证:文件和内存取证
安全防护:监控、响应、恢复
重要原则:
合法授权:只在授权范围内进行测试
最小影响:尽量减少对目标系统的影响
文档记录:详细记录所有测试步骤和发现
保密原则:保护测试结果和发现的敏感信息
持续学习:安全领域日新月异,需要不断学习
安全是一个持续的过程,需要技术、流程和人员相结合。无论是防御还是攻击,都需要深入理解系统原理。
免责声明:所有安全测试必须在合法授权范围内进行,未经授权的测试是违法的。
这是Linux基础教程的最后一课。你已经学习了从基础到进阶的Linux知识,包括系统管理、网络服务、安全运维等多个方面。建议在实际工作中不断实践和深化这些知识。如果有特定领域需要深入学习,可以继续探索相关专业课程。祝你在Linux学习和使用的道路上越走越远!
将本文的Word文档下载到电脑
推荐度: