首页
关于
Search
1
一个好用的OneDrive网盘上传工具,支持文件和文件夹上传
873 阅读
2
MySQL数据库查看锁表解锁命令
843 阅读
3
在Ubuntu Linux上使用端口敲门保护SSH服务器
708 阅读
4
多种功能强大的BT离线下载程序Docker镜像及安装
551 阅读
5
unlock-music:支持解密网易云/QQ音乐的加密文件和ID3信息补全
532 阅读
默认
文档
资源
授权
登录
Search
标签搜索
Linux
Ubuntu
Nginx
SSL
Centos
OpenSSL
Git
Windows
Let’s Encrypt
acme.sh
Microsoft
KMS
qcloud
腾讯云
Docker
GOLANG
BBR
MySQL
HiYae.
累计撰写
42
篇文章
累计收到
0
条评论
首页
栏目
默认
文档
资源
授权
页面
关于
搜索到
1
篇与
Hi,Yae.
的结果
2022-04-01
在Ubuntu Linux上使用端口敲门保护SSH服务器
概要端口敲门是一种用于保护端口免受未经授权用户访问的方法。通过在一组预先指定的关闭端口上生成连接尝试,打开端口的方法是打开防火墙上的端口。一旦收到正确的连接尝试序列,防火墙将打开以前关闭的端口。端口爆震的主要目的是防御端口扫描程序。更改默认的ssh端口不是保护服务器的安全方法,因为攻击者经常在攻击服务器之前使用端口扫描程序对打开的端口进行自动扫描。因此,敲除端口是保护SSH服务器的最佳方法。例如,如果要设置端口22的端口断开功能,则仅当您依次请求端口10001、10002、10003时,此端口才会打开。正确完成序列后,防火墙将为您打开端口22。系统要求运行安装了ssh的Ubuntu 16.04的服务器。在您的服务器上设置了root密码。入门开始之前,建议使用以下命令将存储库更新为最新版本: apt-get update -y更新存储库后,请重新启动系统以应用所有更改。安装和配置iptables默认情况下,UFW防火墙安装在Ubuntu 16.04服务器中。因此,在安装iptables之前,你需要禁用UFW。可以使用以下命令禁用UFW: ufw disable接下来,通过运行以下命令来安装iptables: apt-get install iptables iptables-persistent一旦安装了iptables,你将需要允许所有已建立的连接和正在进行的会话通过iptables。可以使用以下命令执行此操作: iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT接下来,使用以下命令阻止传入的SSH端口22: iptables -A INPUT -p tcp --dport 22 -j REJECT接下来,使用以下命令保存防火墙规则: netfilter-persistent save netfilter-persistent reload接下来,你可以通过从远程系统发出命令来测试SSH端口是否被阻止安装和配置Knockd默认情况下,Ubuntu 16.04默认存储库中可使用 knocked。你可以通过运行以下命令来安装它: apt-get install knockd -y一旦安装了端口敲门服务后,你将需要启用敲门服务才能使用。可以通过编辑 /etc/default/knockd 文件来做到这一点: vim /etc/default/knockd更改行从 START_KNOCKD=0变更为 START_KNOCKD=1完成后保存并关闭文件。接下来,你可以通过编辑 /etc/knockd.conf 文件来配置敲门: vim /etc/knockd.conf根据你的需求更改 [openSSH] 和 [closeSSH] 部分的默认敲门端口:示例1:通过指定序列 打开 或 关闭 SSH的22端口 [options] logfile = /var/log/knockd.log [openSSH] sequence = 10001,10002,10003 seq_timeout = 20 tcpflags = syn command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT [closeSSH] sequence = 10003,10002,10001 seq_timeout = 20 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn示例2:通过指定序列 打开 SSH的22端口,并在指定时间后 关闭 SSH的22端口,同时不影响现有SSH会话 [options] logfile = /var/log/knockd.log [opencloseSSH] sequence = 2222:udp,3333:tcp,4444:udp seq_timeout = 15 tcpflags = syn,ack start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT cmd_timeout = 5 stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT完成后保存文件,然后启动敲门服务以应用以下更改: systemctl start knockd设置开机启动敲门服务 systemctl enable knockd注意: * sequence = 10001,10002,10003 :当从客户端计算机完成序列时,Knock将**打开SSH端口**。 * seq_timeout = 20 :此选项定义您有**多长时间**来完成敲门音序。 * command = /sbin/iptables -I INPUT -s %IP% -p tcp –dport 22 -j ACCEPT :此命令将**打开端口22**。 * sequence = 10003,10002,10001 :当从客户端计算机完成序列时,Knock将**关闭SSH端口**。 * command = /sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT :此命令将**关闭端口22**。从客户端系统测试敲门现在该测试客户端系统的敲门事件了。您可以使用Telnet,Nmap或Knockd客户端测试敲门。在这里,我将使用Telnet客户端测试敲门。因此,你需要将Telnet安装到客户端系统。运行以下命令以安装Telnet: apt-get install telnet -y接下来,在20秒内以正确的顺序运行以下命令: telnet X.X.X.X 10001 telnet X.X.X.X 10002 telnet X.X.X.X 10003一旦所有命令都成功。Knockd将通过为客户端系统添加防火墙规则来打开SSH端口。你还可以通过在服务器上运行以下命令来查看已删除的日志。 tail -f /var/log/knockd.log输出: [2020-12-23 09:11] X.X.X.X: openSSH: Stage 1 [2020-12-23 09:12] X.X.X.X: openSSH: Stage 2 [2020-12-23 09:13] X.X.X.X: openSSH: Stage 3 [2020-12-23 09:13] X.X.X.X: openSSH: OPEN SESAME [2020-12-23 09:13] openSSH: running command: /sbin/iptables -I INPUT -s X.X.X.X -p tcp --dport 22 -j ACCEPT现在,您可以从客户端系统通过SSH连接服务器。完成所有工作后,要关闭IP的SSH端口。在20秒内以正确的顺序运行以下命令: telnet X.X.X.X 10003 telnet X.X.X.X 10002 telnet X.X.X.X 10001一旦所有命令都成功。Knockd将通过为客户端系统添加防火墙规则来关闭SSH端口。结论恭喜你!你已成功测试过Ubuntu 16.04的端口敲门功能。现在,您可以轻松地通过SSH从任何位置或任何系统访问服务器。
2022年04月01日
708 阅读
0 评论
2 点赞