易君召
发布于 2026-09-13 / 作者:易君召 / 4 阅读
0

TCP/IP 网络安全优化建议

内核协议栈参数、TCP 加固、IP 层防护、应用侧、边界防护、监测审计几个维度整理,偏向可落地的生产环境方案,兼顾 Linux 为主,附带通用原理。

一、Linux 内核 TCP/IP 协议栈安全调优(sysctl)

修改 /etc/sysctl.confsysctl -p 生效

1. 防 SYN 洪水攻击(SYN Flood)

# 开启SYN cookie,半连接队列打满时启用
net.ipv4.tcp_syncookies = 1
# 增大半连接队列长度
net.ipv4.tcp_max_syn_backlog = 2048
# SYN+ACK重试次数,减少等待时间
net.ipv4.tcp_synack_retries = 2

注意:tcp_syncookies 开启后部分 TCP 选项会失效,正常业务不要一直依赖,优先配合防火墙限流。

2. 关闭 IP 源路由、重定向报文

# 禁止接收源路由包
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 禁止ICMP重定向,防止路由劫持
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

3. ICMP 安全控制(防 Ping 扫描、Smurf 攻击)

# 忽略广播ping,防止Smurf
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 拒绝错误ICMP错误报文,防护恶意ICMP
net.ipv4.icmp_ignore_bogus_error_responses = 1

不建议直接完全禁 ping,会影响故障排查;可在防火墙限制 ping 源 IP。

4. TCP 连接超时加固,释放僵死连接

# TCP保持探测时间,单位秒
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
# FIN_WAIT2超时,快速关闭半关闭连接
net.ipv4.tcp_fin_timeout = 30
# 减少TIME_WAIT占用,高并发场景
net.ipv4.tcp_tw_reuse = 1
# 【谨慎】tcp_tw_recycle 不推荐开启,NAT环境会导致断连
net.ipv4.tcp_tw_recycle = 0

5. 端口与连接限制

# 本地端口范围,按需扩大
net.ipv4.ip_local_port_range = 1024 65000
# 全局最大文件句柄/连接数配套
net.core.somaxconn = 4096
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = "4096 87380 16777216"
net.ipv4.tcp_wmem = "4096 65536 16777216"

二、TCP 协议层面安全加固

  1. 禁用 TCP 时间戳劫持风险 net.ipv4.tcp_timestamps = 0

    利弊:关闭后可防止某些 TCP 序列号预测攻击;缺点是无法更好的 RTT 估算,高延迟业务谨慎。现代环境更推荐防火墙防护而不是直接关闭。

  2. 保护 TCP 序列号 Linux 默认序列号随机化,不要手动关闭 tcp_sequence 相关随机算法。

  3. 禁止 TCP SACK (可选,对抗某些 DoS) net.ipv4.tcp_sack = 0

    代价:丢包场景传输性能下降,带宽高、丢包多业务不要关。

  4. 启用 TCP MD5 签名(BGP 等路由协议) 用于 TCP 会话校验,防止路由 TCP 会话劫持,普通业务很少使用。

三、IP 层安全优化

  1. 启用反向路径校验 rp_filter

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

严格模式(rp_filter=1):报文源 IP 从收到报文的网卡路由回去才放行;防 IP 欺骗。多网卡复杂路由场景可设为 2。

  1. IP 转发最小化 服务器不是路由器:net.ipv4.ip_forward = 0;只有网关 / 容器节点才开启。

  2. 隔离 IP 分片 恶意大分片包可做 DoS,在 iptables/nftables 限制分片报文速率。

四、防火墙 / 边界防护(iptables /nftables)

  1. 最小权限原则:默认策略 DROP,只放行业务端口。

  2. 连接状态跟踪-m state --state RELATED,ESTABLISHED 放行已有连接,拦截新建陌生入站。

  3. 速率限制:对 SYN、ICMP、新建连接做限流,抵御端口扫描、CC、SYN 洪水。

  4. 阻止异常报文:拦截畸形 TCP 包(无 flag、FIN+SYN 等非法组合)。

# 示例:拦截非法TCP标志组合
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  1. 限制源 IP:重要服务绑定白名单源地址。

五、应用层与业务侧 TCP 安全

  1. 启用 TLS 加密(HTTPS/TLS) TCP 本身明文,所有业务流量尽量 TLS,规避会话劫持、中间人嗅探;优先 TLS1.2/1.3,禁用 SSLv3、TLS1.0/1.1。

  2. 应用层连接管理

  • 业务侧设置合理 SO_RCVBUF/SO_SNDBUF,不要无限扩大缓冲区(防内存耗尽 DoS)

  • 业务代码设置读写超时,避免僵死连接占满文件句柄

  • 服务端 backlog 不要设置过大,配合内核 somaxconn

  1. 端口暴露收敛 不要把数据库、内部 RPC 直接公网暴露;用 VPN、专线、跳板机。

六、监测与审计

  1. 监控指标:SYN 队列溢出、TIME_WAIT、半连接数量、重传率

  2. 工具:ssnetstattcpdumpwireshark,内核日志 dmesg 看 TCP 错误

  3. 入侵检测:IDS/IPS(Suricata)识别 TCP 端口扫描、异常连接、畸形报文

七、IPv6 配套安全(如有启用)

  • IPv6 同样要禁用源路由、限制 ICMPv6 类型(邻居发现防护)

  • 开启 rp_filter 对应 ipv6 参数

  • 防火墙同时管控 IPv6,不要只防护 IPv4

风险提醒(避坑)

  1. 参数调优是辅助防护,不能替代防火墙、WAF、应用安全;协议栈加固只能缓解网络层 DoS、IP 欺骗。

  2. 调优前做压测,tcp_tw_recycle 很多 NAT 环境会导致客户端无法建立连接,生产慎用。

  3. 内核参数改动前备份配置,灰度验证。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/tcp-ip-network-security-optimization-tips

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/