Linux 系统安装完后就可以用了吗?其实还有一些后续工作需要做


Linux 系统安装完后就可以用了吗?其实还有一些后续工作需要做

文章插图
云计算极大地改变了服务器应用场景,许多平台都提供免费的 linux 云服务器,你可以在几分钟内通过这些平台部署一台 Linux 服务器 。
不过,作为云服务器,也有弊端 。因为它是在互联网上可见的,所以一旦你启动了一台新服务器,黑客便会通过脚本自动扫描错误的配置或者漏洞 。
所以,在安装完 Linux 系统后,还需要做一些安全相关的配置,以提升系统的安全性 。
下面是一张使用 Fail2ban 工具查看系统信息的截图:
Linux 系统安装完后就可以用了吗?其实还有一些后续工作需要做

文章插图
如上图所示,有 212 次失败的登录尝试和 6 个被阻止的 IP 地址,这些都是未经授权的人或脚本对系统进行的入侵 。
所以,对系统做一些安全的配置是十分有必要的 。如下我们总结了一些在安装 Linux 系统后建议采取的措施 。
1,确保设置了非 root 用户root 用户具有最高权限,但是我们并不是所有工作都需要使用 root 用户 。
同时,几乎所有 Linux 系统中都有 root 用户,所以攻击者通常会使用 root 用户名来尝试登录系统 。
所以,在平时工作中最好以非 root 用户登录,且 ssh 禁用远程访问的 root 登录 。
那么怎么添加用户呢?我们在先前的文章中介绍过添加用户的方法,大家可以参考:??使用 useradd 命令在 Linux 中添加新用户??
【Linux 系统安装完后就可以用了吗?其实还有一些后续工作需要做】添加用户可使用 root 用户登录系统,然后使用 useradd 命令添加新用户,如下所示:
useradd <username>使用 passwd 命令为新添加的用户设置密码:
passwd <username>2,确保非 root 用户具有 sudo 权限如果需要使用 ssh 远程登录系统,且需要执行 root 权限的活动,那么所使用的登录账户需要具有 sudo 权限 。
在 Ubuntu 和 centos 中创建 sudo 用户的过程是相似的,但是 sudo 用户组是不同的 。
首先以 root 身份登录系统 。
在 CentOS 和 Red  Hat 上,wheel 组是具有 sudo 权限的用户组,可以使用 usermod 命令将用户添加到该用户组中 。
usermod -aG wheel <username>Ubuntu 使用 sudo 用户组来管理 sudo 用户:
usermod -aG sudo <username>3,启用基于密钥的 ssh 身份验证为 ssh 启用基于密钥的身份验证非常重要,这样当我们禁用基于密码的身份验证时,它就可以正常工作 。
暴力破解或者盗取密码是入侵者获取系统访问权限的常用方式,如果我们禁用基于密码的 ssh 登录,采用基于密钥的 ssh 连接,那么攻击者就无法根据用户名和密码访问服务器了 。
启用 ssh 后,需要做的就是在个人计算机上生成 ssh 密钥,有了 ssh 密钥,就需要为非 root 用户将公钥添加到服务器的 authorized_keys 中 。
4,确保允许 ssh 通过 ufw 防火墙在系统启用防火墙之前,应确保让其允许 ssh,要不然就无法通过 ssh 访问系统 。
关于防火墙,Ubuntu 使用 ufw(Uncomplicated Firewall),CentOS 和 Red Hat 使用 firewalld 。
在 CentOS 和 Red Hat 中,使用 firewall-cmd 命令:
sudo firewall-cmd --znotallow=public --add-service=ssh --permanent在 Ubuntu 中,使用 uwf 命令:
sudo ufw allow ssh5,启用防火墙(在允许 ssh 之后)迄今为止,防火墙仍是系统安全的一道屏障,在 CentOS 和 Red Hat 中,启用  firewalld systemd 服务:?
sudo systemctl start firewalldsudo systemctl enable firewalld在 Ubuntu 中,使用如下命令:
sudo ufw enable6,设置 ssh 不显示 banner 信息攻击者可以通过运行服务的软件中的漏洞来危害服务器 。banner 会显示正在运行的 OpenSSH 或操作系统版本的信息 。所以我们需要设置 ssh 不显示 banner 。
在 CentOS 和 Red Hat 中默认就是不显示 banner,所以关于这点不需要做额外的工作 。但是在 Ubuntu 中,需要使用如下命令来禁用 banner:
sudo echo "DebianBanner no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf7,禁用所有 ssh 转发经常会有系统管理员通过 ssh 转发来加密可能传递的明文信息,如果你不用的话,应该将其关闭 。攻击者可能会使用转发来加密信息,所以你很难查看,或者使用授权的端口和服务获取可能被阻止传递的信息 。
在 CentOS 或 Red Hat 中,将如下内容添加到 /etc/ssh/sshd_config 中:


推荐阅读