type
status
date
slug
summary
tags
category
icon
password
💡
一时兴起写的水文~没什么实用性
 
大家对SSH应该都不陌生,而在将SSH端口暴露在公网环境下,面临被爆破的风险也是相当普遍的。通常,我们采用设置强密码、使用证书登录,或者使用Fail2Ban来封禁攻击者的IP等方法来缓解这一问题。
不过,是否有办法能够更彻底地防止被爆破呢?一个更为严格的访问控制方法是将SSH端口仅对特定IP地址开放。
例如,将22端口仅对1.1.1.1开放
 
允许来自1.1.1.1的SSH连接
拒绝来自其他IP的SSH连接
保存规则
在使用这个方法的过程中,我突然想到了一个非常有趣的主意。能不能使其他IP访问443端口时打开网站,而特定IP访问443端口时建立SSH连接呢?
显然是可以的。通过iptables的转发规则,可以使特定IP访问时转发到SSH端口。通过这个方法,可以将SSH隐藏在网站或其他应用的背后(主要出于娱乐目的)。
 

前提

  1. 一台有固定ip的跳板机(当然,也可以使用你家宽带ip)
  1. 安装iptables

步骤

1.检查iptables是否安装

输入以下命令
若显示iptables版本号,则iptables已安装

2.启用转发

使用以下命令查看端口转发是否启用
若显示1,则可以跳过本步
若显示0,使用以下命令启用
若要永久启用端口转发,还需要编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward的值设置为1,然后运行sysctl -p命令使其生效

3.设置规则

使用以下规则设置转发
💡
注意来源ip替换为你访问SSH的客户端的ip
💡
443可改成其他端口,如果你的SSH端口非22,请改为你的SSH端口
💡
该规则不会关闭对外的22端口访问,如需关闭对外22端口,请按照开头方法设置规则
 
若要删除该规则,可以使用
 

4.保存规则

iptables命令修改规则后,规则会立即应用到当前的网络连接上。但是如果你想要永久性地保存这些规则,以便在系统重启后仍然生效,你需要将规则保存到iptables规则配置文件中。
 
 
现在进行测试
在其他ip访问机器443端口时
notion image
notion image
如图,当其他ip试图通过443端口连接SSH时会报错,只能通过浏览器打开网站
 
但是当使用上述规则设置的ip访问时则可以正常连接
notion image
 
 
总之,没什么实际作用,只是为了安全的话用开头的方法屏蔽其他ip的访问即可
Coze - 免费GPT-4机器人! 可画图可联网!Dropbear - 更轻量的SSH协议实现
Loading...