---
title: 确保禁用SSH的TCP转发功能
description: "将AllowTcpForwarding设置为no，可以禁止SSH客户端进行TCP端口转发。TCP端口转发是通过SSH隧道在本地和远程主机之间传输数据，关闭后可有效限制用户在SSH会话中的数据传输和访问范围，从而增强系统的安全性。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengaiagent/bestpractice/aiagent-0038.html
sourcePath: /source/zh/kunpengaiagent/bestpractice/aiagent-0038.html
indexId: 24719acb981c40107a3ba66b77d06a90a87f0fabaa947796108b5437c3c91d7e56
---
# 确保禁用SSH的TCP转发功能

将AllowTcpForwarding设置为no，可以禁止SSH客户端进行TCP端口转发。TCP端口转发是通过SSH隧道在本地和远程主机之间传输数据，关闭后可有效限制用户在SSH会话中的数据传输和访问范围，从而增强系统的安全性。

#### 影响范围说明

配置后具体影响如下：

- 限制数据传输： 禁用TCP端口转发可以防止用户在SSH会话中传输数据，从而降低数据泄露的风险。
- 减少攻击面：开启TCP端口转发可能带来额外的安全风险，例如攻击者可能绕过网络安全措施或访问受限服务。禁用该功能可以减少系统的攻击面。
- 避免资源滥用：TCP端口转发可能占用服务器资源和带宽，禁用后可以避免资源被滥用。
- 符合安全最佳实践：在某些情况下，如安全性要求较高的环境，禁用TCP端口转发可能是安全最佳实践之一。


#### 操作步骤

禁用TCP端口转发可能会影响某些应用和用例，例如需要远程访问受限服务的情况。

1. 检查AllowTcpForwarding配置是否正确（需同时满足如下两个命令行的检查）：

  - 命令一

```
sshd -T -C user=root -C host="$(hostname)" -C addr="$(grep $(hostname) /etc/hosts | awk '{print $1}')" | grep allowtcpforwarding
```


    如下为示例，表示禁止rootTCP端口转发。

```
allowtcpforwarding no
```


  - 命令二

```
grep -Ei '^\s*AllowTcpForwarding\s+yes\b' /etc/ssh/sshd_config
```


    如下为示例，表示不存在“AllowTcpForwardingyes”的配置。

```
Nothing is returned
```


2. 编辑“/etc/ssh/sshd_config”配置文件，并重启sshd服务。

  a. 打开配置文件。

```
vim /etc/ssh/sshd_config
```


  b. 按“i”进入编辑模式，修改或添加“AllowTcpForwarding”参数，并设置为“no”。

```
AllowTcpForwarding no
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
  d. 重启sshd服务。

```
systemctl restart sshd
```
