117.info
人生若只如初见

centos apache2如何安全设置

在CentOS系统上设置Apache2的安全配置,可以遵循以下步骤:

1. 关闭SELinux和防火墙

  • 关闭SELinux
    sudo setenforce 0
    sudo nano /etc/selinux/config
    # 将SELINUX=enforcing改为SELINUX=disabled,然后保存退出
    
  • 关闭防火墙
    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    

2. 安装Apache和SSL模块

sudo yum install httpd mod_ssl

3. 配置Apache

  • 修改Apache配置文件: 编辑 /etc/httpd/conf/httpd.conf 文件,设置用户和用户组为 webuser
    User webuser
    Group webuser
    
  • 限制资源使用: 编辑 /etc/systemd/system/multi-user.target.wants/httpd.service 文件,限制Apache使用的内存:
    memory_limit_in_bytes=500*1024*1024
    
    然后重启Apache:
    sudo systemctl daemon-reload
    sudo systemctl restart httpd
    

4. 启用TLS访问

  • 创建SSL证书和密钥:
    sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt
    
  • 配置Apache使用SSL: 在 /etc/httpd/conf.d/ssl.conf 中添加或修改以下内容:
    
        ServerName www.example.com
        DocumentRoot /var/www/html
    
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/pki/tls/private/apache-selfsigned.key
        SSLCertificateChainFile /etc/pki/tls/certs/ca-bundle.crt
    
        
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        
    
    
  • 强制HTTPS重定向: 在网站根目录下创建或编辑 .htaccess 文件,添加以下内容:
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
    

5. 配置防火墙

  • 开放必要的端口
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --reload
    
  • 设置防火墙开机自启
    sudo systemctl enable firewalld
    sudo systemctl start firewalld
    

6. 隐藏Apache版本信息

/etc/httpd/conf/httpd.conf 中添加或修改以下行:

ServerTokens Prod
ServerSignature Off

7. 创建认证口令文件

使用 htpasswd 命令创建认证口令文件:

sudo htpasswd -cm /etc/httpd/conf/passwd users

然后在 httpd.conf 中配置认证:


    AuthName "Restricted Access"
    AuthType Basic
    AuthUserFile /etc/httpd/conf/passwd
    Require valid-user

8. 重启Apache服务

完成所有配置后,重启Apache服务以应用更改:

sudo systemctl restart httpd

以上步骤可以帮助你增强CentOS上Apache2服务器的安全性。请根据实际需求调整配置,并定期更新和检查安全设置。

未经允许不得转载 » 本文链接:https://www.117.info/ask/feaddAzsNAwVVAVY.html

推荐文章

  • 怎样在CentOS解决Golang依赖问题

    在CentOS上解决Golang依赖问题,通常有以下几种方法:
    使用Go Modules进行依赖管理
    从Go 1.11版本开始,Go引入了Go Modules作为官方的依赖管理解决方案...

  • centos gcc与g++区别是什么

    在CentOS系统中,gcc和g++都是GNU编译器集合(GNU Compiler Collection)的一部分,但它们用于编译不同类型的程序。以下是它们之间的主要区别:
    gcc 用途:...

  • CentOS Node.js如何实现跨平台兼容

    在CentOS上实现Node.js的跨平台兼容,可以遵循以下步骤:
    1. 安装Node.js
    首先,确保你的CentOS系统上已经安装了Node.js。你可以使用NodeSource或nvm(...

  • centos dopra兼容性好吗

    CentOS与Stata的兼容性是一个复杂的问题,因为CentOS主要是一个服务器操作系统,而Stata是一个统计软件。不过,我可以为你提供一些关于CentOS的兼容性信息,以及...

  • Debian提取命令有哪些

    在Debian系统中,有许多命令可以用来提取文件或目录。以下是一些常用的提取命令:
    1. tar
    tar 是一个非常强大的工具,用于打包和解包文件。 压缩文件:...

  • 如何使用centos ssh进行文件传输

    在CentOS系统中,你可以使用scp(Secure Copy Protocol)命令来进行安全的文件传输。以下是使用scp进行文件传输的基本步骤:
    从本地计算机复制到远程服务器...

  • Debian Hadoop高可用性怎么实现

    在Debian上实现Hadoop高可用性(High Availability, HA)主要涉及配置NameNode和ResourceManager的高可用性,以及设置ZooKeeper集群来协调和管理这些组件。以下是...

  • FTP服务器配置步骤是什么

    配置FTP服务器的步骤如下:
    1. 选择操作系统和FTP服务器软件 Windows:可以通过启用IIS中的FTP服务来进行配置。
    Linux:常用的FTP服务器软件有vsftpd、...