解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0
- 解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0
- 问题描述
- 解决方案
- 临时修改
- 永久生效
- 验证配置
- 影响
解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0
问题描述
服务器版本:CentOS 7.6
端口 | 协议 | 服务 | 漏洞名称 | 漏洞风险值 | 风险等级 | 威胁分类 | 详细描述 | 解决办法 |
---|---|---|---|---|---|---|---|---|
– | TCP | – | 远程主机允许路由转发 【原理扫描】 | 2 | [低] | 其他 | 路由转发即当主机根据数据包的目的 IP 地址将发往本 IP 的包根据路由表继续转发数据包。这通常是路由器所要实现的功能。出于安全考虑,Linux 系统默认是禁止数据包转发。 | Windows: 将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRoute 设为 0 Linux: 将 /proc/sys/net/ipv4/ip_forward 置为 0 |
解决方案
临时修改
如果你是临时修改,可以直接运行:
echo 0 > /proc/sys/net/ipv4/ip_forward
永久生效
要永久将 /proc/sys/net/ipv4/ip_forward
置为 0,需要修改 sysctl
配置文件并使其生效。
步骤:
- 编辑 sysctl 配置文件
使用文本编辑器修改/etc/sysctl.conf
文件:
找到或添加以下配置:sudo vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
- 使配置生效
运行以下命令,使更改立即生效:sudo sysctl -p
- 确保开机自动生效
sysctl 读取 /etc/sysctl.conf 进行配置,因此上述修改会在每次系统启动时生效,无需额外操作。
验证配置
你可以使用以下命令确认 ip_forward 是否被成功设置为 0:
cat /proc/sys/net/ipv4/ip_forward
如果返回 0,说明已生效。
影响
- 禁用路由功能:服务器无法在不同网卡之间转发流量,影响 NAT、VPN、Docker 等依赖 IP 转发的功能。
- 影响 Docker、Kubernetes:如果使用了 Docker 或 K8s,可能会导致 Pod 之间或容器之间的网络通信失败。
- 影响 VPN 服务:如 OpenVPN、IPSec VPN 需要 IP 转发,禁用后可能导致 VPN 连接异常。
- 影响网关服务器:如果服务器用作网关,禁用 IP 转发会阻止内部网络通过该服务器访问外部网络。
如果你有 NAT 或 VPN 需求,建议保持 ip_forward=1,否则请确保该更改不会影响你的网络环境。