总结Centos7系统加固知识点

  • Post category:Linux

总结CentOS 7系统加固知识点

一、基础安全设置

1.1 用户管理

  • 禁止root远程登录

为了避免黑客利用常见的用户名和密码字典进行暴力破解攻击,我们需要禁止root账户的远程登录。

在/etc/ssh/sshd_config文件中修改”PermitRootLogin”为”no”,即禁止root账户远程登录:

bash
PermitRootLogin no

  • 创建普通用户

为了降低服务器被攻击的风险,我们需要创建一个普通用户,并给该用户分配sudo权限,以便后续管理操作。

“`bash
# 创建用户
useradd -m username

# 设置密码
passwd username

# 设置sudo权限
visudo
# 在文件末尾添加如下一行
username ALL=(ALL) ALL
“`

1.2 网络设置

  • 关闭不必要的服务

关闭不必要的服务可以减少攻击面,提高服务器安全性。

“`bash
# 查看所有服务
systemctl list-unit-files |grep enabled

# 禁用不必要的服务
systemctl stop servicename
systemctl disable servicename
“`

  • 安装防火墙

CentOS 7自带的防火墙是firewalld,我们需要安装并启用它。

“`bash
# 安装firewalld
yum install firewalld

# 启动firewalld服务
systemctl start firewalld

# 设置firewalld开机自启动
systemctl enable firewalld

# 查看防火墙状态
systemctl status firewalld
“`

  • 配置防火墙规则

配置防火墙规则可以限制IP访问,阻止不安全的端口开放,增加服务器安全性。

“`bash
# 查看当前防火墙规则
firewall-cmd –list-all

# 添加允许端口访问规则
firewall-cmd –add-port=80/tcp –permanent

# 删除端口访问规则
firewall-cmd –remove-port=80/tcp –permanent

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

二、应用安全设置

2.1 SSH安全设置

  • 修改SSH默认端口

为了防止黑客暴力破解SSH登录口令,我们可以修改SSH默认端口(22)。

“`bash
# 修改/etc/ssh/sshd_config文件中的Port
Port 12345

# 禁用22端口
firewall-cmd –remove-service=ssh –permanent
firewall-cmd –add-port=12345/tcp –permanent
firewall-cmd –reload

# 重启ssh服务
systemctl restart sshd
“`

  • 使用非对称加密方式

修改SSH加密方式可以增加SSH传输过程中的安全性。

“`bash
# 修改/etc/ssh/sshd_config文件中的RSAAuthentication和PubkeyAuthentication
RSAAuthentication yes
PubkeyAuthentication yes

# 生成RSA密钥对
ssh-keygen -t rsa

# 将公钥上传到服务器
ssh-copy-id username@servername
“`

2.2 Web应用安全设置

  • 更新系统和应用程序

更新系统和应用程序可以修补漏洞,避免被黑客利用。

“`bash
# 更新系统
yum update

# 更新应用程序
yum install httpd
“`

  • 配置HTTPS

HTTPS使用SSL/TLS加密协议保护Web传输过程中的数据,在传输过程中增加了安全性。

“`bash
# 安装openssl和mod_ssl
yum install openssl mod_ssl

# 生成SSL证书
openssl genrsa -out mykey.pem 2048
openssl req -new -key mykey.pem -out mycsr.csr
openssl x509 -req -days 3650 -in mycsr.csr -signkey mykey.pem -out mycert.pem

# 配置Apache
# 修改/etc/httpd/conf.d/ssl.conf文件中的SSLCertificateFile和SSLCertificateKeyFile
SSLCertificateFile /path/to/mycert.pem
SSLCertificateKeyFile /path/to/mykey.pem

# 重启Apache
systemctl restart httpd
“`

三、日志审计

  • 开启系统日志

系统日志可以记录服务器的各种操作,包括登录、应用程序运行、系统错误等,有助于排查问题和检查是否存在安全隐患。

“`bash
# 安装rsyslog
yum install rsyslog

# 启动rsyslog服务
systemctl start rsyslog

# 设置rsyslog开机自启动
systemctl enable rsyslog

# 查看日志
tail -f /var/log/messages
“`

  • 安装并配置日志分析工具

安装和配置日志分析工具可以快速发现潜在的安全问题和异常操作。

“`bash
# 安装auditd
yum install audit

# 启动auditd服务
systemctl start auditd

# 设置auditd开机自启动
systemctl enable auditd

# 查看日志
ausearch -m USER_AUTH,user_login,user_logout,USER_START,USER_END -ts today
“`

四、Tips

  • 定期备份

定期备份可以保障服务器数据的安全性,防止数据丢失。

  • 合理设置权限

合理设置权限可以避免敏感信息被非授权用户访问。