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隐藏在网站或其他应用的背后(主要出于娱乐目的)。
前提
- 一台有固定ip的跳板机(当然,也可以使用你家宽带ip)
- 安装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端口时
如图,当其他ip试图通过443端口连接SSH时会报错,只能通过浏览器打开网站
但是当使用上述规则设置的ip访问时则可以正常连接
总之,没什么实际作用,只是为了安全的话用开头的方法屏蔽其他ip的访问即可
- 作者:Sakura Homura
- 链接:https://endercat.eu.org/article/3f01a3f4-86a5-4925-b890-5628304f8ece
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章