CentOS Linux 服务器安全设置攻略
在使用 CentOS Linux 服务器时,应该时刻考虑安全问题,因为 Linux 系统可能也存在各种漏洞和攻击方式。下面提供一些 CentOS Linux 服务器安全设置方案的建议。
1. SSH 安全设置
SSH 是远程登录 CentOS Linux 服务器的主要方式,因此 SSH 安全设置是至关重要的。
- 修改 SSH 端口号:修改 SSH 端口号可以增加攻击者破解 SSH 的难度。在
/etc/ssh/
目录下找到sshd_config
文件,将其中的#Port 22
修改为Port xxx
(xxx 为你想要设置的新端口号)。
#Port 22
Port 12345
- 禁用 root 用户登录:禁用 root 用户登录可以减少攻击者登录成功的机会。在
/etc/ssh/
目录下找到sshd_config
文件,将其中的#PermitRootLogin yes
修改为PermitRootLogin no
。
#PermitRootLogin yes
PermitRootLogin no
- 使用 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 服务器。
- 启动防火墙:在 CentOS 7 上默认使用的是 firewalld 防火墙。可以使用以下命令启动防火墙并设置为开机自启动。
“`
# 启动防火墙
systemctl start firewalld
# 设置为开机自启动
systemctl enable firewalld
“`
- 允许必要的端口:根据服务器运行的服务开启必要的端口,如 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 服务器的安全性,减少被攻击的风险。但安全设置不是一成不变的,需要时刻关注系统漏洞和攻击方式的变化,及时进行安全补丁和升级。