Centos-Security-harden

安装 CentOS 8 / RHEL 8 服务器后,非常有必要做一些安全设置,以防止未经授权的访问和入侵。

1) 配置防火墙

默认情况下,Centso8 / RHEL 8 系统自带 firewalld 防火墙,启动并启用服务

$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

查看防火墙允许的服务

$ sudo firewall-cmd --list all

打开防火墙的端口,比如 443 端口,使用以下命令

$ sudo firewall-cmd --add-port=443/tcp --zone=public --permanent

To allow a service e.g ssh , use the command:

允许一个服务,比如 ssh,使用以下命令

$ sudo firewall-cmd --add-service=ssh  --zone=public --permanent

要删除端口和服务,请分别使用 remove-port 和 remove-service 选项

为使更改生效,重新加载防火墙

$ sudo firewall-cmd --reload

2) 禁用未使用 / 不良服务

通常建议关闭服务器上不使用或不必要的服务。这是因为运行的服务数量越多,系统上开放的端口数量就越多,攻击者就可以利用这些端口进入您的系统。此外,不要使用旧的和不安全的服务,比如 telnet(它发送纯文本数据)

最佳安全实践建议禁用未使用的服务,并清除系统上运行的所有不安全服务。您可以使用 nmap 工具 扫描您的系统,并检查哪些端口是开放的和正在被监听。

3) 保护重要文件

锁定重要文件以防止意外删除或编辑至关重要,比如:/etc/passwd 和 /etc/gshadow 文件,为了使文件不变(即防止修改或意外删除)使用 chattr 命令,如下所示:

$ sudo chattr +i /etc/passwd
$ sudo chattr +i /etc/shadow

这确保黑客不能更改任何或删除用户的密码导致拒绝登录系统。

4) 设置 SSH

SSH 协议是一种常用的远程登录协议,默认情况下,该协议有可能被黑客利用的固有弱点。

默认情况下,SSH 允许 root 用户远程登录。这是一个潜在的漏洞,如果黑客获得了你系统的 root 密码,那么你的服务器只能靠菩萨保佑了。为了防止这种情况,建议拒绝 root 远程登录,创建具有 sudo 特权的常规用户登录系统。

修改 SSH 配置文件 /etc/ssh/sshd_config 禁用 root 远程登录

PermitRootLogin no

另一种保护 SSH 的方法是使用 SSH 密钥设置 SSH 无密码身份验证。

首先,生成密钥对,如下所示:

$ ssh-keygen

这会生成一对公钥和私钥,公钥复制到远程系统或服务器,私钥保存于客户机上。

接下来,修改 /etc/ssh/sshd_config 配置文件,更改如下参数

PasswordAuthentication no

重启 SSH 服务,以使更改生效

$ sudo systemctl restart sshd

5 ) 限制密码尝试次数

为了进一步加强服务器,可以考虑在通过 SSH 登录时限制密码尝试次数,以防止暴力攻击。

修改 /etc/ssh/sshd_config 配置文件,更改如下参数

MaxAuthTries 3

6) 配置入侵防御系统 (IPS)

Fail2ban 是一个免费开源的入侵防御系统,它通过在一定次数的登录尝试后禁止 IP 地址来保护服务器免受暴力攻击,一旦被阻止,恶意或未经授权的用户甚至不能发起 SSH 登录尝试。

7) 定期更新服务器

确保您的服务器获得最新的功能和安全更新,这对于解决现有的安全问题至关重要。

我的开源项目

酷瓜云课堂-开源知识付费解决方案


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。