设置Linux云服务器的安全规则时有些注意事项,如网络访问控制、防火墙的配置、SSH安全、系统更新和日志监控等。下面华纳云为大家分享关于Linux云服务器安全规则设置的一般步骤。
先进行网络访问的控制。网络访问的控制是云服务器的第一道防线。配置安全组,安全组属于云平台提供的一种虚拟的防火墙,可以控制入站和出站流量。放开必要端口,如22端口是用于SSH,80端口是用于HTTP,443端口用于HTTPS。限制IP范围,尽量使用固定IP或者特定IP段。
网络ACL是一个子网级别的安全规则,能设置允许或拒绝的流量。定义具体的入站和出站规则,类似安全组,但是作用范围更广。可使用防火墙来控制进入和进出服务器的流量。使用ufw(适用于Debian/Ubuntu):
# 安装ufw
sudo apt-get install ufw
# 默认拒绝所有入站流量
sudo ufw default deny incoming
# 默认允许所有出站流量
sudo ufw default allow outgoing
# 允许SSH连接
sudo ufw allow 22/tcp
# 允许HTTP和HTTPS连接
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
使用firewalld(适用于CentOS/RHEL)
# 安装firewalld
sudo yum install firewalld
# 启动并启用firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 默认拒绝所有入站流量
sudo firewall-cmd --set-default-zone=drop
# 允许SSH连接
sudo firewall-cmd --permanent --add-service=ssh
# 允许HTTP和HTTPS连接
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重新加载防火墙配置
sudo firewall-cmd --reload
SSH是远程管理服务器的方式,因此需要设置措施增强安全性。
禁用root登录
sudo nano /etc/ssh/sshd_config
# 找到PermitRootLogin,修改为
PermitRootLogin no
# 保存并退出
sudo systemctl restart sshd
更改SSH端口:
sudo nano /etc/ssh/sshd_config
# 找到Port,修改为非默认端口(例如2222)
Port 2222
# 保存并退出
sudo systemctl restart sshd
# 更新防火墙规则(以ufw为例)
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
使用SSH密钥认证
# 在本地生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到服务器
ssh-copy-id user@your_server_ip
# 在服务器上禁用密码登录
sudo nano /etc/ssh/sshd_config
# 找到PasswordAuthentication,修改为
PasswordAuthentication no
# 保存并退出
sudo systemctl restart sshd
保持系统和软件的最新状态,防止已知漏洞被利用。
# 更新软件包列表并升级所有包(Debian/Ubuntu)
sudo apt-get update
sudo apt-get upgrade
# 更新软件包列表并升级所有包(CentOS/RHEL)
sudo yum update
监控和审计系统日志,便于及时发现和响应潜在安全威胁。fail2ban可以监控日志文件,并自动禁止可疑的IP地址。
# 安装fail2ban(Debian/Ubuntu)
sudo apt-get install fail2ban
# 安装fail2ban(CentOS/RHEL)
sudo yum install epel-release
sudo yum install fail2ban
# 启动并启用fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
# 配置fail2ban
sudo nano /etc/fail2ban/jail.local
# 添加以下配置以保护SSH
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
# 保存并退出
sudo systemctl restart fail2ban
安装和配置auditd来审计系统日志。
# 安装auditd(Debian/Ubuntu)
sudo apt-get install auditd
# 安装auditd(CentOS/RHEL)
sudo yum install audit
# 启动并启用auditd
sudo systemctl start auditd
sudo systemctl enable auditd
# 配置auditd规则
sudo nano /etc/audit/audit.rules
# 添加以下规则来监控重要文件的更改
-w /etc/ssh/sshd_config -p wa -k ssh_config
-w /var/log/auth.log -p wa -k auth_logs
# 保存并退出
sudo systemctl restart auditd
以上方法,可以显著提升linux云服务器的安全性,保护数据安全,助力企业业务稳定发展。