强化TCP/IP安全的核心是精准抑制攻击面、加固连接生命周期、阻断协议层滥用,需通过内核级配置关闭危险特性(如IP转发、广播ICMP响应、源路由、ICMP重定向),启用SYN Cookie、调优队列与TIME_WAIT参数,收紧分片阈值、禁用TCP时间戳,并限制socket内存与本地端口范围。

强化服务器 TCP/IP 协议栈安全参数,核心不是堆砌防护,而是精准抑制攻击面、加固连接生命周期、阻断常见协议层滥用。重点在内核级配置,而非仅靠防火墙或应用层拦截。
关闭危险协议特性与默认暴露
很多攻击利用的是协议栈中“默认开启但业务无需”的功能:
- 禁用 IP 转发:非网关/路由器设备必须关闭,防止被用作跳板。设 net.ipv4.ip_forward = 0
- 关闭广播 ICMP 响应:防 Smurf 类放大攻击。设 net.ipv4.icmp_echo_ignore_broadcasts = 1
- 禁用源路由选项:避免攻击者绕过防火墙策略。设 net.ipv4.conf.all.accept_source_route = 0 和 net.ipv4.conf.default.accept_source_route = 0
- 关闭 ICMP 重定向:防止中间人篡改路由表。设 net.ipv4.conf.all.accept_redirects = 0
加固 TCP 连接建立与状态管理
SYN Flood、连接耗尽、TIME_WAIT 泛滥是高频攻击入口,需从队列和超时双端控制:
- 启用 SYN Cookie:队列满时自动启用无状态握手,防 SYN Flood。设 net.ipv4.tcp_syncookies = 1
- 增大 SYN 队列与 Accept 队列:避免正常连接被丢弃。设 net.ipv4.tcp_max_syn_backlog = 65535 和 net.core.somaxconn = 65535
- 快速回收 TIME_WAIT 连接:尤其对短连接服务(如 API 网关),设 net.ipv4.tcp_tw_reuse = 1(客户端)和 net.ipv4.tcp_fin_timeout = 30
- 限制异常连接数:防连接耗尽,设 net.ipv4.tcp_max_tw_buckets = 10000
防御分片与路径扰动类攻击
IP 分片重组、MTU 探测等机制易被用于绕过检测或触发内核漏洞:
- 关闭反向路径过滤(RP Filter)需谨慎:若启用了严格模式(rp_filter = 2),可能误丢合法多宿主流量;推荐设为宽松模式 net.ipv4.conf.all.rp_filter = 1(仅检查入接口是否含对应路由)
- 收紧 IP 分片阈值:降低分片缓存压力与碎片攻击风险。设 net.ipv4.ipfrag_high_thresh = 262144、net.ipv4.ipfrag_low_thresh = 196608、net.ipv4.ipfrag_time = 30
- 禁用 TCP timestamps(如无时序敏感需求):规避潜在的时钟侧信道泄露(如某些 TLS 实现)。设 net.ipv4.tcp_timestamps = 0
限制资源滥用与内核态攻击面
防止攻击者通过构造畸形包耗尽内存或触发内核 panic:
- 控制 socket 内存分配上限:避免单个连接占用过多缓冲区。设 net.ipv4.tcp_mem = "94500000 91500000 92700000"(low pressure high 三值)
- 限制本地端口范围(对客户端角色服务):配合连接池使用,减少端口扫描面。设 net.ipv4.ip_local_port_range = "1024 65535"
- 关闭不必要的网络命名空间暴露:容器或虚拟化环境应限制 netns 创建权限,非 root 用户禁用 CAP_NET_ADMIN

















