权限维持小记-ssh

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

本文介绍了在Ubuntu/Debian和CentOS上设置防火墙规则以允许SSH连接的方法,包括使用公私钥进行身份验证和启动SSH服务的命令。文章还提供了一个自动配置防火墙规则和SSH服务器的脚本,并介绍了建立SSH软链接的方法。

🔎

延伸解读

防火墙配置的跨平台差异

文章对比了Ubuntu/Debian和CentOS的防火墙管理方式。Ubuntu/Debian可使用iptables或ufw,而CentOS使用firewalld。iptables规则需保存并重启服务以持久化,ufw则通过allow和enable命令简化操作。CentOS的firewall-cmd需加--permanent参数并reload才能永久生效。读者需根据系统选择对应命令,避免规则丢失。

SSH密钥认证的配置要点

文章详细说明了使用公私钥进行SSH认证的步骤。需要在服务端修改sshd_config,启用RSAAuthentication和PubkeyAuthentication,并指定AuthorizedKeysFile。客户端生成密钥对后,将公钥上传至服务端的~/.ssh/authorized_keys。若遇到密钥不匹配,可指定KexAlgorithms和HostKeyAlgorithms参数。这能提升安全性,避免密码暴力破解。

后门账户与软链接的风险

文章提及了添加UID为0的后门账户和建立SSH软链接的方法。后门账户通过修改/etc/passwd或使用useradd命令创建超级用户,软链接则利用sshd的-oPort参数在非标准端口监听。这些技术常被用于权限维持,但属于高风险操作,可能被攻击者利用。读者应了解其原理,以便检测和防御。

自动化脚本的便利与局限

文章提供了一个自动配置防火墙和SSH服务的脚本,涵盖添加规则、启动服务、修改配置和生成密钥等步骤。脚本使用|| true确保命令失败不中断,但可能掩盖错误。此外,脚本直接修改系统配置,在生产环境中需谨慎测试。读者可参考脚本逻辑,但应根据实际需求调整,避免盲目执行。

❓

Q&A

如何在Ubuntu上设置SSH防火墙规则?

可以使用命令 'iptables -A INPUT -p tcp --dport 22 -j ACCEPT' 添加规则,或使用 'sudo ufw allow 22' 通过ufw允许SSH流量。

CentOS如何管理firewalld以允许SSH连接?

在CentOS上,可以使用 'systemctl start firewalld' 启动firewalld,并使用 'firewall-cmd --zone=public --add-port=22/tcp --permanent' 添加SSH端口。

如何使用公私钥进行SSH身份验证?

生成SSH密钥对后,将公钥上传到目标主机的 '~/.ssh/authorized_keys' 文件中,以实现无密码登录。

如何自动配置SSH和防火墙规则?

可以使用提供的脚本示例,该脚本会添加防火墙规则、启动SSH服务并配置SSH服务器。

在SSH连接中如何指定不同的端口?

在SSH连接时,可以使用 '-p' 参数指定端口,例如 'ssh user@IP -p 9999'。

如何在Ubuntu上使用ufw管理SSH流量?

使用 'sudo ufw allow 22' 命令允许SSH流量,并使用 'sudo ufw enable' 激活规则。

🏷️

标签

➡️

继续阅读