CentOS Linux服务器安全设置

  • Post category:Linux

CentOS Linux 服务器安全设置攻略

在使用 CentOS Linux 服务器时,应该时刻考虑安全问题,因为 Linux 系统可能也存在各种漏洞和攻击方式。下面提供一些 CentOS Linux 服务器安全设置方案的建议。

1. SSH 安全设置

SSH 是远程登录 CentOS Linux 服务器的主要方式,因此 SSH 安全设置是至关重要的。

  1. 修改 SSH 端口号:修改 SSH 端口号可以增加攻击者破解 SSH 的难度。在 /etc/ssh/ 目录下找到 sshd_config 文件,将其中的 #Port 22 修改为 Port xxx (xxx 为你想要设置的新端口号)。

#Port 22
Port 12345

  1. 禁用 root 用户登录:禁用 root 用户登录可以减少攻击者登录成功的机会。在 /etc/ssh/ 目录下找到 sshd_config 文件,将其中的 #PermitRootLogin yes 修改为 PermitRootLogin no

#PermitRootLogin yes
PermitRootLogin no

  1. 使用 SSH Key 认证:使用 SSH Key 可以避免密码的泄露和破解。可以在客户端生成公钥和私钥,将公钥添加到 CentOS Linux 服务器的 authorized_keys 文件中。

“`
# 在客户端生成 SSH Key
ssh-keygen -t rsa

# 将公钥复制到 CentOS Linux 服务器上
cat ~/.ssh/id_rsa.pub | ssh user@hostname ‘cat >> ~/.ssh/authorized_keys’
“`

2. 防火墙设置

防火墙可以过滤入站和出站的数据包,从而保护 CentOS Linux 服务器。

  1. 启动防火墙:在 CentOS 7 上默认使用的是 firewalld 防火墙。可以使用以下命令启动防火墙并设置为开机自启动。

“`
# 启动防火墙
systemctl start firewalld

# 设置为开机自启动
systemctl enable firewalld
“`

  1. 允许必要的端口:根据服务器运行的服务开启必要的端口,如 HTTP(80)、HTTPS(443)、SSH(22)等。可以使用以下命令开启 HTTP 和 HTTPS 端口。

“`
# 开放 HTTP 端口
firewall-cmd –add-service=http –permanent

# 开放 HTTPS 端口
firewall-cmd –add-service=https –permanent

# 重新加载防火墙规则
firewall-cmd –reload
“`

示例一

假设你的 CentOS Linux 服务器上运行了一个基于 Node.js 的 Web 应用程序,并监听在 3000 端口上。你可以通过以下命令来开放 3000 端口并设置防火墙规则:

# 添加 3000 端口的防火墙规则,并设置为永久生效
firewall-cmd --add-port=3000/tcp --permanent

# 重新加载防火墙规则
firewall-cmd --reload

示例二

假设你的 CentOS Linux 服务器上安装了 MySQL 数据库,并监听在默认的 3306 端口上。你可以通过以下命令来限制只有本地访问数据库:

# 添加 3306 端口的防火墙规则,并限制只有本地访问
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-source=127.0.0.1/32 --permanent

# 重新加载防火墙规则
firewall-cmd --reload

结论

通过以上设置,可以大大提高 CentOS Linux 服务器的安全性,减少被攻击的风险。但安全设置不是一成不变的,需要时刻关注系统漏洞和攻击方式的变化,及时进行安全补丁和升级。