type
status
date
slug
summary
tags
category
icon
password
前面文章介绍了自建derp节点改善Tailscale的网络延迟,如果有公网IP的环境,如何搭建安全可控的内网穿透环境?
Q: 为什么不直接开放远程访问端口?
总有人,在互联网上裸奔,然后总有人,在持续扫描公网端口服务,增加了被网络攻击的风险。假设你开放了RDP(window远程桌面)的端口,那么你在你电脑的日志中会看到一堆4625的日志(认证失败),来自各个地方的IP。不过一般强密码,禁用管理员账户也可以提高安全性。
Q: 为什么通过SSH隧道使用RDP更安全?
- 加密:SSH提供了强大的加密,这意味着所有通过隧道传输的数据(包括RDP流量)都会被加密。这对于防止数据在传输过程中被窃听非常重要。
- 封装:通过SSH隧道,RDP流量被封装在SSH的加密层中,这可以增加一个额外的保护层,阻止直接对RDP端口的访问尝试。
- 端口转发:SSH隧道使用端口转发,可以将远程服务器上的某个端口(如RDP的3389端口)转发到本地计算机的一个本地端口上。这意味着RDP流量可以绕过某些网络限制,同时减少外部对开放RDP端口的直接访问。
- 身份验证:SSH自身的身份验证机制提供了额外的安全保障。用户必须首先通过SSH验证(通常是使用密钥对),才能建立RDP会话。
FBI看了都摇头。
Q: 什么是SSH隧道?
SSH(Secure Shell)隧道是一种网络隧道创建技术,用于在不安全的网络中安全传输数据。通过SSH隧道,用户可以将网络流量加密,并通过一个安全的通道转发到任何目标服务器。
正菜来了:
1. 如何设置SSH隧道
以远程主机是你的windows电脑为例
两种安装方式:
2. 配置SSH服务
安装完成后,你需要确保SSH服务已启动并设置为自动启动:
- 按下
Win + R
键打开运行对话框。
- 输入
services.msc
并按回车。
- 在服务列表中找到“OpenSSH SSH Server”。
- 右击它,选择“属性”。
- 在“启动类型”中选择“自动”。
- 如果服务尚未运行,点击“启动”按钮。
3. 配置防火墙
确保Windows防火墙允许SSH连接:
- 打开“控制面板”。
- 进入“系统和安全”>“Windows Defender 防火墙”>“高级设置”。
- 点击“入站规则”,然后“新建规则”。
- 选择“端口”,点击“下一步”。
- 选择“TCP”,特定本地端口填写
22
(SSH默认端口),然后点击“下一步”。
- 选择“允许连接”,再次点击“下一步”。
- 确保勾选了所有配置文件(域,私人,公共),点击“下一步”。
- 给规则命名,例如“SSH”,点击“完成”。
4. 配置SSH
SSH服务使用的配置文件通常位于
C:\ProgramData\ssh\
目录下的 sshd_config
文件。你可以编辑此文件以调整安全设置- 找到并打开
C:\ProgramData\ssh\sshd_config
文件。
- 查找以下行:
修改为
同时,确保公钥认证是启用的。查找以下行:
如果前面有
#
,请移除 #
并确保其设置为 yes
。5. 重启SSH服务
配置修改后,需要重启SSH服务以使更改生效。
- 返回到“服务”窗口。
- 右击“OpenSSH SSH Server”,选择“重启”。
6. 设置SSH密钥
在客户端生成密钥对:
使用SSH客户端(如PuTTYgen或命令行ssh-keygen工具)生成密钥对。例如,在命令行中,可以使用以下命令:
将公钥添加到服务器:
- 将生成的公钥(通常是
.pub
文件)复制到服务器上。
- 在服务器上,将公钥文件的内容添加到
C:\Users\<用户名>\.ssh\authorized_keys
文件中。如果.ssh
目录或authorized_keys
文件不存在,需要手动创建它们。
7. 测试配置
使用你的SSH客户端,尝试使用密钥连接到服务器,确保连接可以成功建立而不需要密码。例如:
8. 设置SSH隧道
假设你已经在远程服务器上配置了SSH服务,你可以使用以下命令在本地机器上设置SSH隧道并通过该隧道启动RDP会话:
- 本地端口:你选择的任何未使用的本地端口(例如,可以使用3390)。
- localhost:这指的是远程服务器本身。
- 远程端口:RDP使用的端口,通常是3389。
- 用户名:你的远程服务器用户名。
- 远程服务器地址:远程服务器的IP地址或主机名。
例如,如果你的用户名是
user
,远程服务器的IP是 192.168.1.100
,你可以使用以下命令:然后,你可以启动RDP客户端,连接到
localhost:3390
,这样RDP会话就会通过SSH隧道安全地连接到远程服务器的3389端口。这样,你的安全措施,直到银河系毁灭应该都不会被爆破了。
对了,如果你远程的服务器在NAT后面(比如家用路由器),记得在路由器上配置端口转发。