Linux云主机常用的登录方式是SSH,对于密码登录方式创建的云主机,如何保证登录安全性呢?本文以CentOS 7.6为例,对SSH登录进行安全加固。
表 弹性云主机详细信息
参数 | 取值 |
---|---|
名称 | ecs-f5a2 |
操作系统 | CentOS 7.6 64bit |
弹性公网IP | 119.3.xxx .x |
登录方式 | 密码 |
修改默认端口
1.通过SSH密码方式远程登录云主机。
2.执行以下命令,修改SSH登录的默认端口,比如修改为“5000”。
vim /etc/ssh/sshd_config
按“i”进入编辑模式,在第17行,将注释符“#”删掉,修改为“Port 5000”。
图 修改前
图 修改后
3.按“Esc”,输入:wq保存并退出。
增加防火墙规则:开放指定端口
CentOS 7系列操作系统的默认防火墙是fireware,而不是iptables。因此,如果系统是默认防火墙,则不需要执行本节操作;如果安装过iptables,则要参考本节指导开放SSH登录的5000端口。
1.执行以下命令,检查是否安装了iptables。
service iptables status
- 如果提示如下类似信息,表示未安装iptables,跳过本节,继续添加安全组规则操作。
- 如果提示如下类似信息,表示安装了iptables,并且为“active”状态。继续执行步骤2。
2.执行以下命令增加iptables规则,开放5000端口。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT
3.执行以下命令查看iptables现有规则是否已包含5000端口。
iptables -L -n
添加安全组规则
安全组中的入方向规则默认开启了22端口,当云主机的SSH登录端口修改为5000时,需要为安全组新加一条规则。
1.登录管理控制台。
2.选择“计算 > 弹性云主机”,进入云主机控制台。
3.单击云主机名称“ecs-f5a2”进入详情页面。
4.选择“安全组”页签,单击展开安全组规则详情,单击列表右上角的“更改安全组规则”。
5.添加一条入方向规则,如下图所示。
图 安全组规则
编辑hosts.allow和hosts.deny
“/etc/hosts.allow”和“/etc/hosts.deny”是控制远程访问的文件,通过配置该文件可以允许或者拒绝某个IP或者IP段的客户访问Linux云主机的某项服务。
比如SSH服务,通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。
因为云主机需要在不同地点登录,建议编辑“/etc/hosts.allow”允许所有IP地址登录,这样不会影响正常使用。
vim /etc/hosts.allow
在最后一行增加“sshd:ALL”。
我们可以通过一些方法识别云主机的安全风险,比如检查SSH状态,查看疑似恶意登录的IP,然后在“/etc/hosts.deny”中将这些地址禁止。