0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何构建Linux服务器安全防护体系

马哥Linux运维 ? 来源:马哥Linux运维 ? 2025-08-05 17:35 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux服务器安全防护完全指南:从0到1构建铜墙铁壁

前言:作为一名运维工程师,我见过太多因为安全配置不当而被攻破的服务器。本文将分享我多年来积累的实战经验,教你如何构建一套完整的Linux服务器安全防护体系。

真实案例:一次惊心动魄的入侵事件

去年某个深夜,我接到监控告警:公司一台Web服务器CPU使用率异常飙升。登录后发现系统中运行着可疑进程,进一步排查发现服务器已被植入挖矿木马。这次事件让我深刻意识到服务器安全防护的重要性。

攻击路径复盘

? 攻击者通过SSH暴力破解获得root权限

? 植入后门程序并建立持久化连接

? 下载挖矿程序消耗服务器资源

? 尝试横向渗透内网其他主机

核心防护策略:多层安全防线

第一层:SSH安全加固

1. 修改默认端口

# 编辑SSH配置文件
vim /etc/ssh/sshd_config

# 修改端口(建议使用10000-65535范围)
Port 22022

# 重启SSH服务
systemctl restart sshd

2. 禁用root直接登录

# 在sshd_config中设置
PermitRootLogin no

# 创建普通用户并加入sudo组
useradd -m -s /bin/bash admin
usermod -aGsudoadmin

3. 配置密钥认证

# 生成SSH密钥对
ssh-keygen -t ed25519 -C"your_email@example.com"

# 在服务器上创建authorized_keys
mkdir-p ~/.ssh
chmod700 ~/.ssh
echo"your_public_key">> ~/.ssh/authorized_keys
chmod600 ~/.ssh/authorized_keys

# 禁用密码认证
echo"PasswordAuthentication no">> /etc/ssh/sshd_config
systemctl restart sshd

第二层:Fail2Ban防暴力破解

安装配置Fail2Ban

# Ubuntu/Debian
apt update && apt install fail2ban -y

# CentOS/RHEL
yum install epel-release -y && yum install fail2ban -y

自定义SSH防护规则

# 创建本地配置文件
cat> /etc/fail2ban/jail.local <

查看封禁状态

# 查看被封IP
fail2ban-client status sshd

# 手动解封IP
fail2ban-clientsetsshd unbanip 192.168.1.100

第三层:防火墙配置

UFW简单防火墙

# 启用UFW
ufwenable

# 设置默认策略
ufw default deny incoming
ufw default allow outgoing

# 允许SSH连接(使用自定义端口)
ufw allow 22022/tcp

# 允许Web服务
ufw allow 80/tcp
ufw allow 443/tcp

# 查看规则
ufw status verbose

iptables高级配置

#!/bin/bash
# 清空现有规则
iptables -F
iptables -X
iptables -Z

# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH限速(防暴力破解)
iptables -A INPUT -p tcp --dport 22022 -m state --state NEW -m recent --set--name SSH
iptables -A INPUT -p tcp --dport 22022 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 22022 -j ACCEPT

# Web服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 保存规则
iptables-save > /etc/iptables/rules.v4

第四层:入侵检测系统

部署OSSEC-HIDS

# 下载安装OSSEC
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -xzf 3.6.0.tar.gz &&cdossec-hids-3.6.0
./install.sh

# 配置监控规则
vim /var/ossec/etc/ossec.conf

自定义监控脚本

#!/bin/bash
# 系统异常检测脚本
LOG_FILE="/var/log/security_check.log"

# 检查异常进程
check_suspicious_processes() {
 echo"[$(date)] 检查可疑进程...">>$LOG_FILE
 
 # 检查CPU使用率异常的进程
  ps aux --sort=-%cpu |head-10 |whilereadline;do
    cpu=$(echo$line| awk'{print $3}')
   if(( $(echo "$cpu>80" | bc -l) ));then
     echo"警告:发现高CPU使用率进程:$line">>$LOG_FILE
   fi
 done
}

# 检查异常网络连接
check_network_connections() {
 echo"[$(date)] 检查网络连接...">>$LOG_FILE
 
 # 检查异常端口监听
  netstat -tlnp | grep -E':(1234|4444|5555|8080)'&& {
   echo"警告:发现可疑端口监听">>$LOG_FILE
  }
}

# 执行检查
check_suspicious_processes
check_network_connections

第五层:文件完整性监控

使用AIDE工具

# 安装AIDE
apt install aide -y # Ubuntu/Debian
yum install aide -y # CentOS/RHEL

# 初始化数据库
aide --init
mv/var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 创建检查脚本
cat> /usr/local/bin/aide_check.sh <

高级防护技巧

1. 端口敲门技术

# 安装knockd
apt install knockd -y

# 配置端口敲门
cat> /etc/knockd.conf <

2. 蜜罐部署(迷惑攻击者)

# 安装Cowrie SSH蜜罐
pip3 install cowrie

# 配置虚假SSH服务监听22端口
# 真实SSH服务使用非标准端口

3. 日志分析自动化

#!/bin/bash
# 自动日志分析脚本
LOGFILE="/var/log/auth.log"
ALERT_EMAIL="admin@yourdomain.com"

# 分析SSH登录失败
failed_attempts=$(grep"Failed password"$LOGFILE| grep"$(date '+%b %d')"|wc-l)

if[$failed_attempts-gt 50 ];then
 echo"警告:今日SSH登录失败次数达到$failed_attempts次"| 
  mail -s"SSH安全警报 -$(hostname)"$ALERT_EMAIL
fi

# 检查新用户创建
new_users=$(grep"new user"/var/log/auth.log | grep"$(date '+%b %d')")
if[ ! -z"$new_users"];then
 echo"警告:检测到新用户创建:$new_users"| 
  mail -s"用户管理警报 -$(hostname)"$ALERT_EMAIL
fi

监控与告警系统

搭建轻量级监控

# 安装Netdata实时监控
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

# 配置告警
vim /etc/netdata/health_alarm_notify.conf

# 设置邮件通知
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@yourdomain.com"

自定义告警脚本

#!/usr/bin/env python3
importpsutil
importsmtplib
fromemail.mime.textimportMIMEText
importtime

defcheck_system_health():
  alerts = []
 
 # CPU使用率检查
  cpu_percent = psutil.cpu_percent(interval=1)
 ifcpu_percent >80:
    alerts.append(f"CPU使用率过高:{cpu_percent}%")
 
 # 内存使用率检查
  memory = psutil.virtual_memory()
 ifmemory.percent >85:
    alerts.append(f"内存使用率过高:{memory.percent}%")
 
 # 磁盘使用率检查
 forpartitioninpsutil.disk_partitions():
    disk_usage = psutil.disk_usage(partition.mountpoint)
   ifdisk_usage.percent >90:
      alerts.append(f"磁盘{partition.mountpoint}使用率过高:{disk_usage.percent}%")
 
 returnalerts

defsend_alert(alerts):
 ifnotalerts:
   return
 
  msg = MIMEText('
'.join(alerts))
  msg['Subject'] =f'服务器健康告警 -{time.strftime("%Y-%m-%d %H:%M")}'
  msg['From'] ='monitor@yourdomain.com'
  msg['To'] ='admin@yourdomain.com'
 
 # 发送邮件逻辑
 print("发送告警:",'
'.join(alerts))

if__name__ =="__main__":
  alerts = check_system_health()
  send_alert(alerts)

应急响应预案

发现入侵后的处理步骤

1.立即隔离

# 断网隔离(保留SSH连接)
iptables -A INPUT -j DROP
iptables -I INPUT 1 -s YOUR_IP -j ACCEPT

2.保存证据

# 备份关键日志
tar -czf evidence_$(date+%Y%m%d_%H%M).tar.gz 
  /var/log/auth.log 
  /var/log/syslog 
  /var/log/messages

3.清理后门

# 检查计划任务
crontab -l
cat/etc/crontab
ls-la /etc/cron.*

# 检查启动项
systemctl list-unit-files --state=enabled
ls-la /etc/init.d/

实战演练

模拟攻击测试

# 使用Nmap扫描自己的服务器
nmap -sS -O YOUR_SERVER_IP

# 使用Hydra测试SSH暴力破解防护
hydra -l admin -P /usr/share/wordlists/rockyou.txt 
  ssh://YOUR_SERVER_IP:22022 -t 4

性能优化

# 优化SSH配置性能
echo"ClientAliveInterval 60">> /etc/ssh/sshd_config
echo"ClientAliveCountMax 3">> /etc/ssh/sshd_config
echo"MaxAuthTries 3">> /etc/ssh/sshd_config
echo"MaxSessions 5">> /etc/ssh/sshd_config

进阶技巧分享

1. 使用PAM增强认证

# 配置Google Authenticator双因子认证
apt install libpam-google-authenticator -y
google-authenticator

# 修改PAM配置
echo"auth required pam_google_authenticator.so">> /etc/pam.d/sshd

2. 自动化安全检查

# 创建安全检查清单脚本
cat> /usr/local/bin/security_audit.sh <

总结与建议

通过以上多层防护措施,可以显著提升Linux服务器的安全性:

安全等级评估

? 基础级:修改SSH端口 + 密钥认证

? 标准级:+ Fail2Ban + 防火墙配置

? 高级:+ 入侵检测 + 文件监控

? 专家级:+ 蜜罐 + 自动化响应

最佳实践建议

1. 定期更新系统和软件包

2. 最小化权限原则

3. 定期审计和日志分析

4. 制定应急响应预案

5. 定期进行安全演练

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1290

    浏览量

    71712
  • Linux
    +关注

    关注

    87

    文章

    11531

    浏览量

    214671
  • 服务器
    +关注

    关注

    13

    文章

    9844

    浏览量

    88302

原文标题:Linux服务器安全防护完全指南:从0到1构建铜墙铁壁

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    租用服务器后如何进行服务器安全防护

    基石,对网站的后续维护和发展起到重要作用,我们在租用服务器之后,如何做好安全防护也成为重中之重。河南耀磊商务总结了6点服务器在安装操作系统完毕之后需要做的安全防护:1、修改
    发表于 08-16 11:27

    基于ARM和Linux的嵌入式Web服务器构建及应用

    摘要:本文主要研究了基于ARM和Linux的嵌入式Web服务器构建及应用.随着互联网的飞速发展,越来越多的信息化产品需要接入互联网并通过Web页面进行远程访问和控制,嵌入式Web服务器
    发表于 11-05 06:07

    基于Linux系统的FTP服务器的实现

    为了在Linux系统下实现安全、高效的FTP服务器,选择了具有小巧轻快、安全易用等优点的服务器软件vsftpd。通过对
    发表于 07-24 15:36 ?39次下载

    工业物联网安全防护体系研究

    随着物联网技术的发展, 其在工业领域的应用也日益广泛, 但物联网的安全隐患对其在工业领域的应用提出了新的挑战. 分析了工业物联网特有的潜在攻击形式, 通过建立工业物联网层次化安全防护体系模型
    发表于 01-13 15:00 ?23次下载
    工业物联网<b class='flag-5'>安全防护</b><b class='flag-5'>体系</b>研究

    关于提升服务器安全防护等级的一些方法

    服务器现在是每家企业的必需品,服务器安全管理也一直是企业重点关注的地方。我们应该如何来加强服务器防护力,提升
    发表于 10-24 11:43 ?1299次阅读

    关于云服务器需要做什么安全防护

    服务器要做什么防护?在网站搭建时,云服务器是最常用的空间类型之一,由于其性价比比较高,非常适合中小型企业或者个人站长,能够降低服务器方面的成本。下面我们介绍几种常见的云
    发表于 11-02 11:14 ?2058次阅读

    服务器安全防护功能主要都有哪些

    对于企业来说,服务器是必不可少的资源之一,服务器安全关系着公司整个网络以及所有数据的安全
    发表于 02-07 19:07 ?2834次阅读

    关于网站服务器安全防护的7个观点分析

    从总体来说,新标准规定针对服务器安全防护的基本建设需要更为专业化与系统化,在解决不法攻击时,可对其“行为举动开展检测。
    发表于 03-13 11:04 ?612次阅读

    服务器安全防护经验分享

    大家都知道,服务器对于所有企业都必不可少,服务器安全关系着公司整个网络以及所有数据的安全。所以,服务器
    的头像 发表于 03-22 17:30 ?2029次阅读

    关于服务器安全防护,主要的方式有哪些

    对于企业来说,服务器是必不可少的资源之一,服务器安全关系着公司整个网络以及所有数据的安全
    发表于 04-14 11:12 ?2214次阅读

    为大家分享一下如何做好网站服务器安全防护

    随着互联网技术的不断发展,各种病毒层出不穷,网站安全,同行网站的恶意竞争,服务器安全等问题日益突出。服务器做为网站基石,对网站的后续维护和发展起到重要作用,我们在租用
    的头像 发表于 06-29 17:43 ?2658次阅读

    【虹科讲座预告】如何更有效进行服务器安全防护

    本期看点:如何更有效进行服务器安全防护,等保测评及商密评估基本流程简介,等保制度生态介绍,等保制度工作实践,会后建群交流
    的头像 发表于 12-22 17:14 ?791次阅读
    【虹科讲座预告】如何更有效进行<b class='flag-5'>服务器</b><b class='flag-5'>安全防护</b>

    介绍一种基于eBPF的Linux安全防护系统

    针对操作系统、内核安全,联通云操作系统团队开发了的一个基于 eBPF 的 Linux 安全防护系统 safeguard,可以实现安全操作的审计拦截及
    的头像 发表于 11-07 17:43 ?1343次阅读
    介绍一种基于eBPF的<b class='flag-5'>Linux</b><b class='flag-5'>安全防护</b>系统

    最有效的云服务器网络安全防护措施

    服务器网络安全防护措施是确保云服务稳定性和数据安全的关键环节,最有效的云服务器网络安全防护措施
    的头像 发表于 10-31 09:51 ?827次阅读

    芯盾时代助力赣州银行构建全渠道数字安全防护体系

    芯盾时代中标赣州银行,基于自主研发的设备指纹产品,通过集成运营商UAID能力实现跨渠道设备ID统一,并具备实时风险监测、反欺诈拦截等功能,有效解决 “数据孤岛” 和黑灰产攻击等风险,为赣州银行构建全渠道数字安全防护体系注入新动能
    的头像 发表于 05-22 09:21 ?428次阅读