Root 是 Linux 系统的超级管理员账户,拥有整个系统的最高权限,可操作系统内的所有对象。一般情况下开放了对外服务的linux系统需要设置一些安全策略来保证服务器的安全,同时亦能防止系统管理员由于平时管理过程中的误操作而导致系统不可挽回的错误。
SELinux 是 Linux 内核的安全模块,Root 账户的登录权限可由 SELinux 模块进行定义。
下面就介绍如何对系统进行设定来规避一些潜在的安全风险。
安全设置思路
- 禁用 root 登录权限
- 修改 ssh 默认端口
Root 用户的禁止登录设置
useradd username #username 为你要添加的用户名称
passwd username #设置 username 的用户密码
vi /etc/ssh/sshd_config #打开 ssh 配置文件
PermitRootLogin no #在 ssh 配置文件中找到 PermitRootLogin 这项,把后面默认的 yes 修改为 no 禁止 root 用户登录
service sshd restart #重启 sshd 服务
ssh 默认端口的修改
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent #系统防火墙开放需要加入的端口,xxxx 为你需要加入的端口号
firewall-cmd --reload #重新加载系统防火墙设置,使刚才加入的端口生效
systemctl restart firewalld.service #重启系统防火墙
firewall-cmd --list-ports #列出系统防火墙已开放端口,你会发现你刚才设置的端口号已经加入其中
vi /etc/ssh/sshd_config #打开 ssh 配置文件
#Port 22 #默认 ssh 登录端口,前面加#号注释掉默认的22端口
Port xxxx #xxxx 为你需要添加 ssh 登录权限的端口号
semanage port -a -t ssh_port_t -p tcp xxxx #xxxx 为你需要添加 ssh 登录权限的端口号,这一步是将端口加入到 SELinux 安全模块
semanage port -l|grep ssh #列出具有 ssh 权限的端口号,出现你设置的端口号证明向 SELinux 已经加入成功
systemctl reload sshd #重新加载 ssh 服务使刚才的设置生效
systemctl restart sshd #重启 ssh 服务
reboot #重启
ssh username@ip:port #尝试用新的端口号登录系统