22
2024
03
11:54:14

将SSH隐藏于网站背后

大家对SSH应该都不陌生,而在将SSH端口暴露在公网环境下,面临被爆破的风险也是相当普遍的。通常,我们采用设置强密码、使用证书登录,或者使用Fail2Ban来封禁攻击者的IP等方法来缓解这一问题。
不过,是否有办法能够更彻底地防止被爆破呢?一个更为严格的访问控制方法是将SSH端口仅对特定IP地址开放。
例如,将22端口仅对1.1.1.1开放
 
允许来自1.1.1.1的SSH连接
iptables -A INPUT -p tcp --dport 22 -s 1.1.1.1 -j ACCEPT
拒绝来自其他IP的SSH连接
iptables -A INPUT -p tcp --dport 22 -j DROP
JavaScript
保存规则
iptables-save > /etc/iptables/rules.v4
JavaScript
在使用这个方法的过程中,我突然想到了一个非常有趣的主意。能不能使其他IP访问443端口时打开网站,而特定IP访问443端口时建立SSH连接呢?
显然是可以的。通过iptables的转发规则,可以使特定IP访问时转发到SSH端口。通过这个方法,可以将SSH隐藏在网站或其他应用的背后(主要出于娱乐目的)。
 

前提

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

  1. 安装iptables


步骤

1.检查iptables是否安装

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

2.启用转发

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

3.设置规则

使用以下规则设置转发
Android Emoji", EmojiSymbols; font-size: 1em; margin: 2px 4px 0px 2px; fill: var(--fg-color-6); color: var(--fg-color-icon); max-width: 100%; max-height: 100%; align-self: flex-start; width: 24px; height: 24px; line-height: 1em;">?
注意来源ip替换为你访问SSH的客户端的ip
?
443可改成其他端口,如果你的SSH端口非22,请改为你的SSH端口
?
该规则不会关闭对外的22端口访问,如需关闭对外22端口,请按照开头方法设置规则
iptables -t nat -A PREROUTING -p tcp -s 来源ip --dport 443 -j REDIRECT --to-port 22
JavaScript
 
若要删除该规则,可以使用
iptables -t nat -D PREROUTING -p tcp -s 来源ip --dport 443 -j REDIRECT --to-port 22
JavaScript
 

4.保存规则

iptables命令修改规则后,规则会立即应用到当前的网络连接上。但是如果你想要永久性地保存这些规则,以便在系统重启后仍然生效,你需要将规则保存到iptables规则配置文件中。
iptables-save > /etc/iptables/rules.v4
JavaScript
 
 
现在进行测试
在其他ip访问机器443端口时

notion image
notion image

如图,当其他ip试图通过443端口连接SSH时会报错,只能通过浏览器打开网站
 
但是当使用上述规则设置的ip访问时则可以正常连接

notion image

 
 
总之,没什么实际作用,只是为了安全的话用开头的方法屏蔽其他ip的访问即可




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/5536.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: