请勿利用文章内的相关技术从事非法测试,此文章只用于学习记录,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。
上一篇文章,我们详细拆解了:一次渗透测试是怎么做的?五大阶段全流程。
其实,对于网络安全工程师来说:Linux不是简单的操作系统,而是安全人员必须掌握的一项基础能力。
无论是渗透测试中的信息收集和漏洞验证、获取权限后的服务器分析、企业安全运维、网络安全事件应急响应,Linux始终贯穿整个安全工作流程。
很多新人学习网络安全时,会优先关注BurpSuite、Nmap、Xray、Metasploit、Cobalt Strike;但是工具只是手段。真正进入企业安全岗位后,你面对更多的是,Linux Web服务器、数据库服务器、云主机环境、企业业务系统。
如果不了解Linux,你可能知道漏洞名称,不知道漏洞利用后服务器发生了什么;你可能能够扫描漏洞,但不会分析攻击痕迹;你可能拿到了权限,但不知道如何进行后续排查。所以:Linux安全,是网络安全工程师从“工具使用者”成长为“安全人员”的必经阶段。
Linux安全学习可以分为六个阶段:
下面我们逐个拆解,看看每个阶段具体做什么、怎么做。
这是Linux安全学习的第一步。
目标:能够熟练使用Linux命令环境,并理解系统基本结构。
1.Linux环境搭建
推荐学习环境:
Ubuntu
特点:社区资源丰富、学习资料多、上手简单。
Kali Linux
特点:网络安全人员常用环境,内置大量安全工具:Nmap、BurpSuite、Metasploit、Wireshark
💡 建议使用VMware搭建虚拟机环境,通过快照功能方便实验。
2.Linux环境搭建
学习Linux不要只记命令,要结合安全场景理解。
例如:
ps -ef命令普通用户使用:查看运行程序;安全人员使用:排查木马进挖矿程序、异常服务。
3.vim编辑器基础
至少掌握以下操作:
三种模式切换(普通模式、插入模式、命令模式)
文件打开、保存、退出(:wq、:q)
基本编辑操作(i插入、dd删除行、/搜索)
💡 Vim是Linux下最常用的文本编辑器,在远程服务器上修改配置文件时几乎都会用到。至少学会基本操作,能让你在关键时刻不卡壳。
这是Linux安全最核心的部分。 权限管理是Linux系统安全和资源管控的基石。错误的权限设置,轻则导致“Permission Denied”,重则引发数据泄露或系统崩溃。
1.用户和组管理
掌握以下操作:
安全要点:
检查并清理非登录账号(grep"/sbin/nologin$" /etc/passwd )
锁定长期未使用的账号(usermod -L 用户名)
保护关键账号文件(chattr +i /etc/passwd /etc/shadow)
2.文件权限管理
Linux的权限体系围绕读(r)、写(w)、执行(x) 三种权限展开,分别对应所有者(u)、所属组(g)、其他人(o)
核心命令
chmod:修改文件权限(如chmod 755 filename)
chown:修改文件和所有者和所属组(如chown user:group filename)
setfacl / getfacl:更细粒度的权限控制
关键文件权限配置:
chmod 644 /etc/passwdchmod 644 /etc/groupchmod 400 /etc/shadow # 只允许root读取chmod 400 /etc/gshadow
3.sudo权限管理
4.密码安全策略
配置密码复杂度、有效期和失败锁定(等保中要求)
# 密码有效期(/etc/login.defs) 、PASS_MAX_DAYS 90 #最大90天过期PASS_MIN_DAYS 7 #最少7天才能更改PASS_WARN_AGE 7 # 提前7天警告# 密码复杂度(/etc/pam.d/system-auth) password requisite pam_cracklib.so minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1# 要求:至少8位,包含数字、大写、小写、特殊字符各至少1个
没有日志的安全事件就是猜谜。日志分析是发现入侵、追溯攻击的核心能力。
1. 系统日志位置
| |
/var/log/auth.log (Ubuntu/Debin) | |
/var/log/secure (Centos/RHEL) | |
| |
| |
| |
| |
# 统计SSH登录失败次数journalctl -u ssh | grep "Failed password" | wc -l# 提取攻击者IP并排序journalctl -u ssh | grep "Failed password" | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
查看异常登录:
# 查看近期登录记录last# 查看登录失败记录lastb# 实时监控认证日志tail -f /var/log/auth.log
排查异常进程:
# 查看CPU占用最高的进程top# 查看所有进程ps -ef# 查看网络连接状态netstat -anoss -tuln
从“能用”走向“安全”。这一阶段学习如何主动防御攻击。
1.SSH加固
SSH是服务器最常见的入口,必须重点保护
ssh_config关键配置:
# /etc/ssh/sshd_configPermitRootLogin no # 禁止root远程登录PasswordAuthentication no # 禁止密码登录,强制使用密钥PubkeyAuthentication yes # 启用公钥认证AllowUsers admin # 只允许特定用户登录
2.防火墙配置
使用 iptables 或 firewalld 控制网络流量
iptables基础规则:
# 查看当前规则iptables -L -n -v# 允许SSH(22端口)iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允许HTTP(80端口)和HTTPS(443端口)iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT# 默认拒绝所有其他入站连接iptables -P INPUT DROP
3. 强制访问控制(MAC)
SELinux(Red Hat/CentOS系列)和AppArmor(Ubuntu/Debian系列)是Linux的强制访问控制系统,能有效限制进程行为
💡 初学者可以先从AppArmor入手,理解MAC的概念后再深入学习SELinux。
4. 内核安全参数
通过sysctl配置内核参数,阻断常见网络攻击
# /etc/sysctl.d/99-hardening.confnet.ipv4.ip_forward = 0net.ipv4.conf.all.rp_filter = 1net.ipv4.icmp_echo_ignore_broadcasts = 1net.ipv4.conf.all.accept_source_route = 0net.ipv4.tcp_syncookies = 1
把每个命令和“安全场景”关联起来,才能真正掌握Linux安全。
在企业环境中,Linux服务器需要满足安全基线要求。
常见的基线配置包括:
root远程登录限制
口令生存周期(≤90天)
密码复杂度策略
账户认证失败锁定
重要文件权限配置
日志审计启用
⚠️ 重要提醒: 做安全基线配置时,一定要先备份文件。如果条件允许,先在测试环境操作,避免配置错误导致无法登录系统。
关注公众号后台回复关键字“思维导图”获取Linux全流程思维导图
最后,祝大家渗透测试之路越走越顺!如果文章对你有帮助,欢迎点赞、在看、转发,让更多朋友看到。😄