文章目录
- 业务场景
- 操作步骤
- 修改sshd配置文件
- 修改SELinux开放给ssh使用的端口
- 修改防火墙,开放新端口
- 重启sshd生效
- 相关知识点介绍
- sshd服务
- SELinux服务
- firewall.service服务
业务场景
- 我们在某市实施交通信控平台项目,我们申请了一台服务器,用于平台安装
- 由于机房机器只有内网,不连互联网,我们无法安装所需要的软件。我们将操作系统重装,装了CentOS7.9,整理rpm包安装需要的软件(有兴趣的可以看下:CentOS7.9离线安装docker ce和docker-compose)
- 客户的维保单位告知我们,市局机房要求,为了网络和数据安全,服务器不能使用22端口,必须替换
操作步骤
修改sshd配置文件
- 注意,这里是
sshd
的配置文件sshd_config
,命令:vi /etc/ssh/sshd_config
- 找到“
#Port 22
”,然后把两行的“#”号即注释去掉,修改成:
Port 22
Port 12223
- SSH默认监听端口是22,如果你不强制说明别的端口,开放的就是22,所以一开始是注释掉的
- 我们在设置其他端口替换22时,一开始可以先保留了22端口,防止中间过程失败时,无法用22端口连接服务器,那就尴尬了(此时,只能去服务器上操作了,如果是异地服务器或者进机房流程很麻烦,就会很坑)
- 现在是有22和12223两个端口可以用,等一切都ok了,再注释关闭22端口,这样比较保险。
修改SELinux开放给ssh使用的端口
- CentOS7.9初始化系统里,是已经安装了SELinux的,所以没有这一步操作,端口修改不会生效
- 如果没有这一步,
systemctl restart sshd
重启会失败,会输出报错信息 - 其实操作也很简单,以下三步操作和验证
- 首先,查看SELinux开放给ssh使用的端口,
semanage port -l|grep ssh
,可以看到输出ssh_port_t tcp 22
,表明开放的是22端口 - 然后,添加我们的端口
semanage port -a -t ssh_port_t -p tcp 12223
- 最后,
semanage port -l|grep ssh
查看是否添加成功,可以看到输出ssh_port_t tcp 12223, 22
修改防火墙,开放新端口
- 生产环境服务器,肯定要启用防火墙的,我们使用的是系统自带的
firewall.service
- 启用防火墙加入开机自启动,并重启防火墙(防止防火墙没启动)
- 添加新端口12223,并reload生效
systemctl enable firewalld.service
systemctl restart firewalld.service
firewall-cmd --zone=public --add-port=12223/tcp --permanent
firewall-cmd --reload
重启sshd生效
- 执行命令
systemctl restart sshd
重启sshd - 重启后,可以使用ftp工具或者ssh工具测试,可以发现新端口
12223
已经可以使用 - 此时,端口号22也可以正常使用,需要修改sshd配置文件,关闭
-
vi /etc/ssh/sshd_config
,将Port 22
注释掉,重启systemctl restart sshd
即可生效 - 此时再验证,可以发现,22端口,已经不可以访问
相关知识点介绍
sshd服务
- sshd是Linux系统中的SSH服务(Secure Shell),它是一种通过加密方式远程登录和管理Linux服务器的协议
- 在Linux系统中,sshd服务默认安装在/etc/ssh/sshd_config文件中。可以通过修改这个配置文件来配置sshd的各种参数,如监听端口、登录方式、访问控制等
- 为了保障系统的安全性,建议及时更新和维护sshd服务,避免使用弱密码和默认配置,并且限制不必要的远程登录方式。此外,可以使用防火墙等安全措施来进一步增强系统的安全性
SELinux服务
- SELinux,全名为Security-Enhanced Linux,是一种强制访问控制(MAC)机制,用于增强Linux操作系统的安全性。它是由美国国家安全局(NSA)开发并贡献给开源社区的
- SELinux通过将访问控制策略应用到系统中的资源(如文件、进程、网络等)上,限制了进程和用户的访问权限,从而提供了更细粒度的安全策略控制
- 与传统的Linux访问控制模型相比,SELinux提供了更高级别的安全保护,因此它在高度安全性要求的环境中得到广泛使用,如政府、军事和金融领域
firewall.service服务
- 防火墙是用于保护计算机网络免受未经授权的访问和恶意攻击的重要安全工具。在Linux系统中,使用iptables命令来管理防火墙规则
- firewall.service是Linux系统中负责管理防火墙规则的systemd服务单元,简化了对防火墙规则的管理。它负责启动、停止、重启和管理防火墙规则的加载
- 在启动时,firewall.service会加载预先定义的防火墙规则以保护系统。这些规则可以配置让特定的网络流量通过或阻止特定的网络流量传入系统
- 通过编辑firewall.service文件,可以自定义防火墙规则。可以定义允许通过的网络端口和协议,限制网络流量的来源和目的地,以及其他的网络安全配置