如何加强服务器的网络层安全性?
美国、香港服务器
如何加强服务器的网络层安全性?
01-16 来源:
加强服务器网络层安全性的完整方案(可落地实操)
服务器网络层是抵御外部攻击的第一道防线,核心加固原则是 「最小暴露 + 精准过滤 + 主动防御」,需从 防火墙配置、端口管控、流量监控、DDoS 防护、协议加固 五个维度入手,以下是分系统的详细操作指南,适配 Linux(Ubuntu 24.04 为主)和 Windows Server。
一、 核心基础:防火墙精细化配置(仅开放必要端口)
防火墙是网络层防护的核心,目标是 拒绝所有默认流量,只放行业务必需的端口 / IP,杜绝无用端口暴露带来的攻击风险。
1. Linux 系统(Ubuntu/Debian 优先用 ufw,进阶用 iptables)
(1) 简易方案:ufw 防火墙(Ubuntu 推荐,语法简单)
bash
运行
# 1. 启用 ufw 防火墙(默认拒绝所有入站,允许所有出站)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 2. 仅放行业务必需端口(按需添加,示例为 Web+SSH)
sudo ufw allow 80/tcp # HTTP 端口(Web 业务)
sudo ufw allow 443/tcp # HTTPS 端口(加密 Web 业务)
sudo ufw allow from 192.168.1.0/24 to any port 22 # 仅允许内网 IP 登录 SSH(核心防护)
# 3. 拒绝特定恶意 IP(应急用)
sudo ufw deny from 1.2.3.4 # 封禁攻击 IP
# 4. 查看规则状态(验证配置)
sudo ufw status numbered
# 5. 禁用无用规则(比如误加的端口)
sudo ufw delete 3 # 删除编号为3的规则
(2) 进阶方案:iptables 防火墙(更灵活,适合复杂场景)
bash
运行
# 1. 清空现有规则(初始化)
sudo iptables -F
sudo iptables -X
# 2. 默认策略:拒绝所有入站,允许出站,允许已建立的连接
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 3. 允许回环地址(本地进程通信必需)
sudo iptables -A INPUT -i lo -j ACCEPT
# 4. 放行核心业务端口(按需调整)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT # 仅内网 SSH
# 5. 保存规则(Ubuntu 24.04 需安装 iptables-persistent)
sudo apt install iptables-persistent -y
sudo iptables-save > /etc/iptables/rules.v4
2. Windows Server 系统(高级防火墙)
打开 Windows Defender 高级防火墙 → 点击 「高级设置」。
入站规则:
点击 「新建规则」 → 选择 「端口」 → 仅放行 80/443/3389(远程桌面)等必要端口。
对 3389 端口,添加 「远程 IP 地址限制」,仅允许内网 IP 段访问。
默认策略:设置 「入站连接 = 阻止」,「出站连接 = 允许」。
应急封禁 IP:新建入站规则,选择 「自定义」 → 目标 IP 填攻击 IP → 动作选 「阻止连接」。
二、 端口与服务管控:关闭无用端口,最小化暴露面
网络层攻击的首要目标是开放的端口,关闭所有非业务必需的端口和服务是最直接的防护手段。
1. 步骤 1:排查当前开放的端口(找出风险端口)
bash
运行
# Linux 查看所有监听端口(含进程)
sudo ss -tulnp # t=tcp, u=udp, l=监听, n=数字端口, p=进程
sudo netstat -tulnp # 兼容旧系统
# Windows 查看监听端口
netstat -ano | findstr "LISTENING"
重点排查:21(FTP)、135(远程RPC)、139/445(SMB)、6379(Redis)、27017(MongoDB) 等默认端口,非业务必需则立即关闭。
2. 步骤 2:关闭无用服务与端口
(1) Linux 关闭无用服务
bash
运行
# 查看所有启用的服务
sudo systemctl list-unit-files | grep enabled
# 关闭无用服务(示例:FTP、蓝牙、打印机服务)
sudo systemctl disable --now vsftpd bluetooth cups
(2) 关键服务端口加固(Redis/MySQL 等)
Redis:绑定内网 IP,禁止公网访问,配置密码
ini
# 编辑 /etc/redis/redis.conf
bind 127.0.0.1 192.168.1.10 # 仅绑定本地+内网IP
protected-mode yes
requirepass StrongRedisPass@123
MySQL:禁止 root 远程登录,仅开放内网访问
sql
-- 删除远程 root 账户
DROP USER "root"@"%";
-- 仅允许内网 IP 访问
CREATE USER "appuser"@"192.168.1.%" IDENTIFIED BY "StrongPass@123";
三、 主动防御:阻断暴力破解与异常流量
针对 SSH/RDP/ 数据库的暴力破解攻击,需配置 自动封禁机制,防止攻击者通过密码爆破入侵。
1. Linux 安装 fail2ban(自动封禁攻击 IP)
fail2ban 会监控日志中的失败登录记录,达到阈值后自动封禁 IP,是防御暴力破解的必备工具。
bash
运行
# 1. 安装 fail2ban
sudo apt install fail2ban -y
# 2. 复制配置文件(避免修改默认配置)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 3. 修改核心参数(编辑 /etc/fail2ban/jail.local)
[DEFAULT]
bantime = 86400 # 封禁 24 小时
maxretry = 3 # 3 次失败登录触发封禁
findtime = 600 # 10 分钟内统计失败次数
[sshd]
enabled = true # 启用 SSH 防护(默认已开启)
# 4. 重启 fail2ban 生效
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
# 查看封禁状态
sudo fail2ban-client status sshd
2. Windows Server 防护 RDP 暴力破解
打开 组策略编辑器(gpedit.msc)→ 计算机配置 → Windows 设置 → 安全设置 → 账户策略 → 账户锁定策略。
配置:
账户锁定阈值:3 次无效登录
账户锁定时间:30 分钟
复位账户锁定计数器:30 分钟
四、 DDoS/CC 攻击防护:缓解大流量攻击
针对公网服务器的 DDoS/CC 攻击,需结合 CDN、高防 IP、限流策略 多层防护。
1. 基础防护:Nginx CC 攻击限流(Web 服务器必备)
通过限制单 IP 请求频率,缓解 CC 攻击(大量恶意请求消耗服务器资源)。
nginx
# 编辑 Nginx 配置文件 /etc/nginx/nginx.conf
http {
# 定义限流规则:10M 内存存储 IP,单 IP 每秒最多 10 个请求
limit_req_zone $binary_remote_addr zone=cc_limit:10m rate=10r/s;
server {
listen 80;
server_name yourdomain.com;
# 应用限流规则,突发请求最多 20 个
limit_req zone=cc_limit burst=20 nodelay;
# 限制单 IP 并发连接数
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
limit_conn conn_limit 20;
}
}
重启 Nginx 生效:sudo systemctl restart nginx
2. 进阶防护:接入高防 IP/CDN(公网服务器必备)
云服务器:直接开启云厂商的 DDoS 高防服务(如阿里云高防、腾讯云大禹),将流量引流到高防 IP 清洗后再回源。
自建服务器:部署 Cloudflare 等免费 CDN,隐藏服务器真实 IP,同时缓解小流量 DDoS 攻击。
五、 协议加固:禁用不安全协议,强制加密传输
禁用老旧、不安全的网络协议(如 HTTP、TLS 1.0/1.1),强制使用加密协议,防止数据传输过程中被窃听或篡改。
1. 禁用 HTTP,强制跳转 HTTPS
nginx
# Nginx 配置示例
server {
listen 80;
server_name yourdomain.com;
# 所有 HTTP 请求跳转到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
# 配置 SSL 证书
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
# 禁用不安全的 TLS 版本,仅启用 TLS 1.2/1.3
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
}
2. 加固 SSH 协议(禁用密码登录,强制密钥认证)
bash
运行
# 编辑 /etc/ssh/sshd_config
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes # 启用密钥登录
PermitRootLogin no # 禁止 root 远程登录
Protocol 2 # 仅使用 SSH 2 协议(禁用不安全的 SSH 1)
# 重启 SSH 服务生效
sudo systemctl restart sshd
六、 流量监控:实时感知网络异常
通过监控工具实时查看服务器流量,快速发现异常攻击行为。
1. Linux 常用流量监控工具
bash
运行
# 安装工具
sudo apt install iftop nethogs -y
# 实时监控带宽占用(按端口/IP 排序)
sudo iftop # 查看整体带宽
sudo nethogs # 查看进程级带宽占用(定位耗带宽的进程)
2. 日志监控:分析异常访问
bash
运行
# 查看 Nginx 访问日志中的高频请求 IP
sudo cat /var/log/nginx/access.log | awk "{print $1}" | sort | uniq -c | sort -nr | head -10
# 查看 SSH 失败登录记录
sudo grep "Failed password" /var/log/auth.log
七、 网络层安全加固 Checklist(自查清单)
✅ 防火墙是否默认拒绝所有入站流量,仅放行必要端口?
✅ SSH/RDP 是否仅允许内网 IP 访问,且启用密钥认证 / 账户锁定?
✅ 是否安装 fail2ban 等工具,自动封禁暴力破解 IP?
✅ 数据库 / 缓存服务是否绑定内网 IP,禁止公网访问?
✅ Web 服务器是否配置 CC 限流,且强制 HTTPS?
✅ 是否定期监控端口和流量,及时发现异常?
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快