✉ support@finalshell.com.cn 📖 返回首页

FinalShell安全配置完整指南:构建安全的SSH连接环境

FinalShell安全配置

引言:SSH连接安全的重要性

在互联网环境中,服务器安全是运维工作的重中之重。SSH作为远程管理服务器的最主要方式,其安全性直接关系到服务器的整体安全。FinalShell作为一款专业的SSH终端工具,提供了完善的安全功能和配置选项。本文将详细介绍如何通过FinalShell构建安全的SSH连接环境,保护您的服务器免受未授权访问。

一、SSH密钥认证配置

1.1 为什么使用SSH密钥认证?

传统的密码认证方式存在以下风险:

  • 密码被暴力破解:弱密码容易被字典攻击或暴力破解
  • 密码泄露风险:密码可能被截获或通过其他途径泄露
  • 重复使用风险:多台服务器使用相同密码,一台被攻破全部受威胁

SSH密钥认证的优势:

  • 更强的安全性:密钥长度通常2048位或4096位,几乎无法暴力破解
  • 便捷的管理:一个密钥对可以管理多台服务器
  • 无需输入密码:配置密钥后可以实现无密码自动登录

1.2 生成SSH密钥对

在FinalShell中生成SSH密钥对的步骤:

  1. 打开密钥管理器:在工具菜单中选择"SSH密钥管理"
  2. 生成新密钥:点击"生成密钥对"按钮
  3. 选择密钥类型:推荐使用RSA 4096位或ED25519
  4. 设置密钥密码:为私钥设置强密码(可选但推荐)
  5. 保存密钥:保存私钥文件并记录公钥内容

命令行方式生成密钥:

# 生成RSA 4096位密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 生成ED25519密钥对(推荐,更安全高效)
ssh-keygen -t ed25519 -C "your_email@example.com"

1.3 配置服务器端密钥认证

将公钥部署到服务器:

  1. 复制公钥内容:从FinalShell密钥管理器中复制公钥
  2. 登录到服务器:使用密码方式登录服务器
  3. 编辑authorized_keys
# 创建.ssh目录(如果不存在)
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 编辑authorized_keys文件
vim ~/.ssh/authorized_keys

# 将公钥内容粘贴到文件中,设置正确的权限
chmod 600 ~/.ssh/authorized_keys
SSH密钥认证配置

配置SSH密钥认证,提升连接安全性

1.4 在FinalShell中使用密钥认证

配置密钥认证连接:

  1. 新建SSH连接:填写服务器IP地址和端口
  2. 选择认证方式:在认证方式中选择"公钥认证"
  3. 导入私钥:导入之前生成的私钥文件
  4. 输入密钥密码:如果私钥设置了密码,在此输入
  5. 测试连接:点击连接测试密钥认证是否配置成功

二、密码安全策略

2.1 强密码设置原则

如果必须使用密码认证,请遵循以下原则:

  • 最小长度:密码长度不少于12个字符
  • 复杂度要求:包含大小写字母、数字和特殊符号
  • 避免个人信息:不使用生日、手机号等易猜信息
  • 定期更换:每3-6个月更换一次密码
  • 唯一性:不同服务器使用不同密码

强密码示例:

  • 好:K9#mP2$vL5@xR8!
  • 好:Blue-Sky-2026-Mountain-River
  • 差:12345678、password、admin123

2.2 密码存储安全

FinalShell提供了安全的密码存储机制:

  • 加密存储:密码使用AES-256加密后存储在本地
  • 主密码保护:可设置主密码,启动时需要验证
  • 自动锁定:闲置一段时间后自动锁定,需要重新输入密码
  • 密码不显示:密码输入框默认隐藏,防止偷窥

2.3 密码管理器集成

FinalShell支持与第三方密码管理器集成:

  • KeePass集成:从KeePass数据库读取密码
  • LastPass支持:通过浏览器插件获取密码
  • 1Password集成:使用1Password的安全存储

三、SSH连接安全设置

3.1 禁用不安全的认证方式

在服务器SSH配置中禁用不安全的认证方式:

编辑 /etc/ssh/sshd_config:

# 禁用密码认证(仅允许密钥认证)
PasswordAuthentication no

# 禁用空密码
PermitEmptyPasswords no

# 禁用基于主机的认证
HostbasedAuthentication no

# 禁用root直接登录(建议)
PermitRootLogin no

# 限制最大认证尝试次数
MaxAuthTries 3

# 认证失败后的延迟
LoginGraceTime 60

3.2 更改默认SSH端口

将SSH端口从默认的22改为其他端口可以减少大量自动化攻击:

# 在sshd_config中修改端口
Port 22222

# 修改后需要重启SSH服务
systemctl restart sshd
# 或
service sshd restart
SSH安全配置

修改SSH端口并加固安全设置

3.3 启用防火墙规则

使用防火墙限制SSH访问:

# 使用iptables限制SSH访问(仅允许特定IP)
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22222 -j ACCEPT
iptables -A INPUT -p tcp --dport 22222 -j DROP

# 使用firewalld配置
firewall-cmd --permanent --add-port=22222/tcp
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100/32" port protocol="tcp" port="22222" accept'
firewall-cmd --reload

# 使用ufw配置(Ubuntu)
ufw allow from 192.168.1.100 to any port 22222
ufw enable

四、会话安全与加密

4.1 选择强加密算法

在FinalShell中选择安全的加密算法:

  • 密钥交换算法:curve25519-sha256、ecdh-sha2-nistp384
  • 对称加密:chacha20-poly1305、aes256-gcm@openssh.com
  • 消息认证:hmac-sha2-256-etm@openssh.com、hmac-sha2-512-etm@openssh.com

在服务器sshd_config中配置:

# 推荐的加密算法配置
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp384
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com

4.2 会话保活设置

配置会话保活参数,防止会话被劫持:

  • 客户端保活:每隔60秒发送保活包
  • 服务端保活:设置ClientAliveInterval和ClientAliveCountMax
  • 会话超时:设置空闲会话自动断开时间
# 客户端配置(~/.ssh/config或FinalShell连接设置)
ServerAliveInterval 60
ServerAliveCountMax 3

# 服务端配置(/etc/ssh/sshd_config)
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval 300  # 5分钟后断开空闲连接

五、访问控制与审计

5.1 限制允许登录的用户

在服务器上限制哪些用户可以通过SSH登录:

# 只允许特定用户登录
AllowUsers user1 user2 user3

# 禁止特定用户登录
DenyUsers root admin test

# 只允许特定组登录
AllowGroups sshusers sysadmin

# 禁止特定组登录
DenyGroups nogroup

5.2 启用登录日志审计

启用和查看SSH登录日志:

# 查看最近的SSH登录记录
last

# 查看失败的登录尝试
lastb

# 查看认证日志
tail -f /var/log/auth.log  # Debian/Ubuntu
tail -f /var/log/secure    # CentOS/RHEL

# 查看当前登录的用户
who
w
安全审计日志

定期审计登录日志,及时发现异常访问

5.3 使用TCP Wrappers

配置TCP Wrappers进行额外的访问控制:

# 编辑/etc/hosts.allow
sshd: 192.168.1.0/24 : ALLOW
sshd: 10.0.0.100 : ALLOW

# 编辑/etc/hosts.deny
sshd: ALL : DENY

六、双因素认证(2FA)

6.1 配置Google Authenticator

为SSH添加双因素认证:

  1. 安装Google Authenticator
# Ubuntu/Debian
sudo apt-get install libpam-google-authenticator

# CentOS/RHEL
sudo yum install google-authenticator

# 运行配置向导
google-authenticator
  1. 配置SSH使用Google Authenticator
# 编辑/etc/pam.d/sshd,在文件开头添加
auth required pam_google_authenticator.so

# 编辑/etc/ssh/sshd_config
ChallengeResponseAuthentication yes

6.2 使用其他2FA方案

除了Google Authenticator,还可以使用:

  • Authy:支持多设备同步
  • FreeOTP:开源的认证应用
  • YubiKey:硬件密钥,更安全

七、FinalShell客户端安全设置

7.1 启用主密码

为FinalShell设置主密码,保护保存的连接信息:

  • 打开FinalShell设置
  • 在"安全"选项中启用"主密码保护"
  • 设置强主密码(建议使用密码管理器生成)
  • 启用"自动锁定",设置空闲超时时间

7.2 配置安全策略

在FinalShell中设置安全策略:

  • 复制确认:复制敏感内容时弹出确认对话框
  • 粘贴确认:粘贴命令前需要确认
  • 日志自动清理:定期清理会话日志
  • 禁止保存密码:对于敏感连接,不保存密码

7.3 定期更新FinalShell

保持FinalShell为最新版本:

  • 安全补丁:及时修复安全漏洞
  • 新功能:获得新的安全特性
  • 兼容性:保持与最新SSH协议的兼容

八、安全最佳实践

8.1 定期安全检查清单

  • □ 定期审查SSH登录日志,查找异常访问
  • □ 检查是否有未授权的密钥在authorized_keys中
  • □ 确保所有服务器SSH配置符合安全标准
  • □ 验证防火墙规则是否正确配置
  • □ 测试备份服务器是否可以通过SSH正常访问

8.2 应急响应流程

发现安全事件时的处理流程:

  1. 立即断开:断开可疑连接,必要时断开服务器网络
  2. 保存证据:备份日志文件和相关数据
  3. 评估损失:检查系统是否被入侵,数据是否泄露
  4. 恢复访问:更换所有密钥和密码,从备份恢复系统
  5. 加固防护:分析原因,加强安全措施

总结

SSH安全是服务器安全的基石,通过本文介绍的各项安全配置措施,您可以大幅提升SSH连接的安全性。关键是要同时保护客户端和服务器端,采用多层防护策略:使用强认证方式、限制访问来源、启用加密传输、定期审计日志。安全是一个持续的过程,需要不断学习和改进。FinalShell为您提供了完善的安全工具,合理配置和使用这些工具,可以让您的服务器管理更加安全可靠。

立即下载最新版FinalShell,开始构建安全的SSH连接环境!