问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

容器内SSH端口修改:最佳安全实践

创作时间:
作者:
@小白创作中心

容器内SSH端口修改:最佳安全实践

引用
CSDN
9
来源
1.
https://blog.csdn.net/u014721096/article/details/78559506
2.
https://blog.csdn.net/wizardforcel/article/details/140702831
3.
https://blog.csdn.net/Tassel_YUE/article/details/141181575
4.
https://www.cnblogs.com/apachecn/p/18175620
5.
https://www.cisco.com/c/zh_cn/support/docs/security-vpn/secure-shell-ssh/4145-ssh.html
6.
https://www.cnblogs.com/ggbondmz/articles/18383332
7.
https://anduin.aiursoft.cn/post/2024/2/8/setup-a-ubuntu-apt-mirror-server
8.
https://www.cnblogs.com/apachecn/p/18518249
9.
https://www.cnblogs.com/pine-apple/p/18106734

在容器环境中,SSH服务的安全性至关重要。默认情况下,SSH服务监听22端口,这使得它成为黑客攻击的首要目标。为了提升安全性,修改SSH默认端口是一项重要的最佳实践。本文将详细介绍如何在容器内修改SSH端口,并探讨其他相关的安全措施。

01

为什么需要修改SSH默认端口

SSH(Secure Shell)是一种用于安全远程登录和执行命令的网络协议。默认情况下,SSH服务监听22端口。然而,这个众所周知的端口也是黑客攻击的首选目标。通过修改SSH端口,可以有效减少未授权访问和潜在的安全威胁。

在生产环境中,建议将SSH端口修改为五位数的端口(例如22345)。虽然这不能完全阻止攻击,但可以显著降低被扫描和攻击的风险。

02

修改SSH端口的具体步骤

要在容器内部修改SSH端口,可以按照以下步骤操作:

  1. 编辑SSH配置文件

使用文本编辑器打开/etc/ssh/sshd_config文件:

vi /etc/ssh/sshd_config

找到#Port 22这一行,取消注释并修改为新的端口号(例如22345):

Port 22345
  1. 重启SSH服务

修改配置后,重启SSH服务以应用更改。使用以下命令之一:

service ssh restart

或者

systemctl restart sshd.service
  1. 更新防火墙规则

如果启用了防火墙,需要允许新端口的流量,并移除旧端口的规则:

firewall-cmd --permanent --add-port=22345/tcp
firewall-cmd --permanent --remove-port=22/tcp
firewall-cmd --reload
  1. 验证连接

尝试通过新端口登录SSH,确保一切正常:

ssh -p 22345 user@your-container-ip

如果在Docker中运行SSH服务,还需要调整容器的端口映射。例如,将容器内的22345端口映射到主机的某个端口:

docker run -p host_port:22345 your-image

其中host_port是主机上的任意可用端口。

03

容器SSH安全的其他最佳实践

仅仅修改SSH端口还不够,为了进一步提升安全性,还需要采取以下措施:

  1. 禁用root登录

允许root用户直接登录会带来巨大的安全风险。建议创建普通用户并使用sudo权限来执行管理操作。在sshd_config中设置:

PermitRootLogin no
  1. 使用公钥认证

密码认证容易受到暴力破解攻击,而公钥认证则更加安全。在sshd_config中启用公钥认证:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

同时禁用密码认证:

PasswordAuthentication no
  1. 配置防火墙和SELinux规则

确保防火墙只允许必要的端口访问,并配置SELinux策略以增强安全性。例如,在SELinux系统上,需要更新SELinux规则:

semanage port -a -t ssh_port_t -p tcp 22345
  1. 定期更新SSH服务

保持SSH服务及相关组件的最新状态,及时修复已知的安全漏洞。

04

容器SSH安全配置示例

以下是一个安全的SSH配置示例:

Port 22345
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
LogLevel INFO
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
MaxAuthTries 6
MaxSessions 10
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
05

总结

在容器环境中,SSH服务的安全性不容忽视。通过修改SSH默认端口、禁用root登录、使用公钥认证以及配置防火墙规则等措施,可以有效提升SSH服务的安全性。这些最佳实践不仅适用于传统服务器环境,在容器化部署中同样重要。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号