如何给Linux云主机进行加固

一、修改远程端口

SSH(Secure Shell,远程管理协议)攻击扫描端口的时候通常会扫描固定端口,扫描到之后才会进行暴力攻击,修改远程端口,会降低SSH(Secure Shell,远程管理协议)服务被扫描到的可能性。配置过程如下:

1. 登录云主机,编辑ssh服务配置文件/etc/ssh/sshd_config,将其端口修改为自己想要的端口(1212端口为例),保存退出。

注意
修改端口后,对应的安全组、防火墙规则也需修改端口。
进行配置修改前,建议提前对配置进行备份操作。

2. 执行以下命令,重启ssh服务。

systemctl restart sshd
说明
若为CentOS 6 或Ubuntu操作系统,则使用service sshd restart。

3. 测试远程连接:默认22端口连接失败,修改后的1212端口连接成功。

二、禁用root登录

禁用root账号直接登录,使用普通账号登录,普通账号登录之后su到root账号,降低被恶意扫描或者暴力登录的概率。配置过程如下:

1. 创建普通用户。

2. 编辑sudo配置文件/etc/sudoers,为用户添加sudo权限。由于/etc/sudoers是一个只读文件,无法通过vim等命令对它直接编辑,可使用visudo命令编辑文件。

3. 编辑ssh服务配置文件/etc/ssh/sshd_config,修改PermitRootLogin属性,将yes修改为no。

说明
yes表示允许root远程登录,no表示禁止root远程登录。禁用root账号必须确保首先有一个普通权限的用户可以远程登录。远程登录使用普通权限的用户登录后根据需要sudo到root权限。

4. 重启云主机,测试远程连接:test用户登录成功,root用户登录失败。

三、配置指定地址登录

 建议使用安全组进行限制,安全组配置如下:

1. 创建安全组:点击【创建】选项,在弹出的界面中输入安全组名称及描述,单击【确定】创建完成。

2. 规则管理:点击对应安全组的【管理规则】选项,可对安全组规则进行管理。安全组介绍及管理操作说明见帮助中心:创建安全组规则。

3. 测试远程连接:安全组规则允许的IP地址登录成功,不允许IP地址登录失败。

四、禁用密码登录,使用密钥登录

防止无密钥人员恶意登录及网络暴力攻击(建议在订购云主机时安全一项中选择密钥)。配置过程如下:
1. 编辑ssh服务配置文件/etc/ssh/sshd_config,将PasswordAuthentication属性修改为no,保存并重启ssh服务。

说明
yes表示允许密码验证,no表示禁用密码验证功能。

2. 密钥配置过程如下:
     a. 执行ssh-keygen命令,生成密钥。  

     b. 执行完成后在用户目录/home/用户名(root用户目录为/root)下的.ssh目录会生成公钥及私钥。  

     c. 将公钥内容导入authorized_keys文件中,并将私钥拷贝到用来登录服务器的终端。

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

    d. 测试远程连接:密钥登录成功,使用密码登录失败。

五、设置密码复杂性要求

使用复杂密码,使暴力破解更加困难。配置过程如下:
1. 编辑配置文件/etc/pam.d/system-auth,添加一条规则。

password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

说明
retry:尝试次数
difok:最少不同字符
minlen:最小密码长度
ucredit:最少大写字母
lcredit:最少小写字母
dcredit:最少数字
dictpath:密码字典    

2. 验证测试:root用户不受此配置限制,普通用户则会被要求修改密码。 

六、设置密码过期时间

定期对密码进行修改,避免密码泄露,增加使用的安全性。
使用chage命令。

说明
-M:设置密码有效的最大天数
-m:设置可更改密码的最小天数,为0表示任何时候都可以修改
-W:密码过期前,提前收到警告信息的天数。
如需了解更多参数请参考chage --help。

七、其他安全建议

  • 如有购置1台以上的服务器,可以通过一个或两个(其中一个备用)入口访问,其余服务器使用内网互通登录。
  • 关注操作系统补丁发布、测试、更新。
  • 应用侧安全加固。
  • 建议安装云主机防护类的安全软件。
  • 如由于暴力攻击导致云主机被锁定的,可通过移动云门户-控制台-VNC登录云主机。参考如下命令进行操作:
    • 查看某一用户登录错误次数:pam_tally2 --user username。
    • 清空某一用户登录错误次数:pam_tally2 --user username --reset。
    • 清空root用户登录错误次数,进行解锁:pam_tally2 --user root --reset。
  • 安全加固为云安全中心插件,免费版提供系统漏洞检测、暴力破解检测、主机登录异常告警等基础安全功能。如在云安全中心进行升级或授权使用防勒索、防病毒等功能,会额外增加cpu消耗。
说明
若pam_tally2  命令失效,使用替换命令faillock 或根据操作系统类型使用相应命令。
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。