如何在FreeBSD 10.2上安装Famp Stack和Mod安全性

时间:2020-03-05 15:27:54  来源:igfitidea点击:

使用Apache的Famp Stack或者FreeBSD,MariaDB和PHP是一组OpenSource软件,以基于PHP运行应用程序到浏览器。
Linux服务器上的 LAMP (Linux Apache Mariadb/MySQL和PHP)Simirier。

Mod Security是Web服务器的开源入侵检测和预防引擎。
支持Apache Nginx和IIS上的Windows Server。
它是一个apache模块之一,以防止黑客和其他恶意攻击,如sql注入,xss,lfi(本地文件包含),rfi(远程文件包含)等。

在本教程中,我们将指导使用FreeBSD 10.2的FAMP堆栈安装,然后为我们提供Apache Web服务器上VirtualHost的示例配置。
接下来,我们将安装和配置Mod Security以使用FAMP Stack并在创建的VirtualHost上激活。

第1步 - 更新系统

请使用SSH登录FreeBSD服务器并使用命令更新系统:

freebsd-update fetch
freebsd-update install

第2步 - 安装和配置Apache

Apache是最好和流行的Web服务器之一,支持Linux Windows和Mac OS。
Apache软件基础下开放式开放社区开发的Apache。
支持某些语言界面支持Perl,Python,Tcl和PHP。

我们将使用pkg命令安装apache24:

pkg install apache24

请转到Apache配置目录"/usr/local/etc/apache24",然后使用nano编辑器编辑文件"httpd.conf":

cd /usr/local/etc/apache24
nano httpd.conf

在第219行中更改第210行和"servername"的"serveradmin"的值:

ServerAdmin im@localhost
.....
ServerName localhost:80

接下来,在运行Apache WebServer之前,我们需要使用"sysrc"命令将apache添加到启动/启动时:

sysrc apache24_enable=yes

现在开始Apache WebServer:

service apache24 start

并打开浏览器并访问服务器IP 192.168.1.112:

第3步 - 安装和配置MariaDB

MariaDB而不是MySQL在GNU GPL下的MySQL开发人员开发和维护。
for来自MySQL MySQL关系数据库管理系统。

我们将使用pkg命令安装MariaDB:

pkg install mariadb100-server

该命令也将安装MariaDB100-Client。

现在将Mariadb文件配置从"/usr/local/share/mysql /"复制到"/usr/local/etc /":

cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf

接下来,使用sysrc命令启用MariaDB以启动启动时间:

sysrc mysql_enable=yes

最后,开始MariaDB:

service mysql-server start

所以现在我们需要为MariaDB/MySQL Server配置用户名和密码。
使用命令配置:

mysql_secure_installation
Enter current password for root (enter for none): PRESS ENTER
OK, successfully used password, moving on...
Set root password? [Y/n] Y
New password: ENTER YOUR PASSWORD
Re-enter new password: ENTER YOUR PASSWORD
Password updated successfully!
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

现在尝试访问MariaDB/MySQL shell:

mysql -u root -p
ENTER YOUR PASSWORD

第4步 - 安装和配置MariaDB

在本教程中,我们将使用PHP 5.6的版本。
使用pkg命令安装它包括mod_php56 php56-mysql php56-mysqli php56-rcl。

pkg install mod_php56 php56-mysql php56-mysqli php56-curl

现在将PHP配置文件"php.ini-production"复制到目录"/usr/local/etc /"中的"php.ini":

cd /usr/local/etc/
cp php.ini-production php.ini

编辑php.ini文件并在926行中添加时区:

nano php.ini
date.timezone = Asia/Jakarta

接下来,配置PHP以使用Apache,因此我们需要编辑Apache配置文件,然后在那里添加PHP配置。

要执行此操作,我们必须使用Nano编辑器编辑"httpd.conf"并编辑"httpd.conf":

cd /usr/local/etc/apache24/
nano httpd.conf

将PHP配置添加到第288行以下:

.....
<Files ".ht*">
Require all denied
</Files>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
.....

并在dir_module指令上添加index.php:

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

保存并退出

第5步 - 配置Apache VirtualHost

在本教程中,我们将创建一个名为"saitama.me.conf"的Virtualhost,域"Saitama.me"。

Virtualhost配置文件存储在"/usr/local/etc/apache24/extra/exce目录中。
但在本教程中,我们将为VirtualHost创建新目录,因此如果我们有许多配置文件,可以轻松地配置VirtualHost。

在Apache配置目录中创建新目录"VirtualHost":

cd /usr/local/etc/apache24/
mkdir virtualhost

现在创建新文件"saitama.me.conf":

添加下面的VirtualHost配置:

<VirtualHost *:80>
ServerAdmin [email protected]
# Directory for the file stored
DocumentRoot "/usr/local/www/saitama.me"
#Domain
ServerName saitama.me
ServerAlias www.saitama.me
ErrorLog "/var/log/saitama.me-error_log"
CustomLog "/var/log/saitama.me-access_log" common
<Directory "/usr/local/www/saitama.me">
Options All
AllowOverride All
# The syntax is case sensitive!
Require all granted
</Directory>
</VirtualHost>

接下来将VirtualHost配置包括Apache"httpd.conf"文件:

cd /usr/local/etc/apache24/
nano httpd.conf

将此添加到行的结尾:

Include etc/apache24/virtualhost/*.conf

接下来,为我们在"/usr/local/www/www /"中创建的虚拟主题创建新目录:

mkdir -p /usr/local/www/saitama.me
cd /usr/local/www/saitama.me

并创建新文件"index.php"并提供PHP信息脚本,可以使用"echo"命令进行:

echo '<?php phpinfo(); ?>' > index.php

现在重新启动Apache,然后打开浏览器"www.saitama.me":

service apache24 restart

而且你可以看到php信息:

步骤6 - 安装和配置MOD安全性

Mod Security是Apache模块的一部分,因此我们可以从存储库安装它。
我们可以从源中安装,但我们在这里使用pkg命令从存储库安装:

pkg install ap24-mod_security-2.9.0

现在通过编辑Apache配置文件"httpd.conf"来加载Mod Security所需的新模块"OUTED_ID",并取消注释第120行:

cd /usr/local/etc/apache24/
nano httpd.conf
LoadModule unique_id_module libexec/apache24/mod_unique_id.so

保存并退出。

如果我们已完成,请克隆OWASP ModSecurity Core规则将Git命令设置(CRS)到CRS目录:

cd /usr/local/etc/
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs crs

现在转到CRS目录并复制示例配置文件:

cd crs/
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf

接下来,通过在"modules.d"目录上创建新文件"000_modsecurity.conf",加载与OWASP CRS规则的ModSecurity模块

cd /usr/local/etc/apache22/modules.d/
nano 000_modsecurity.conf

粘贴配置如下:

# Load ModSecurity
LoadModule security2_module libexec/apache24/mod_security2.so
<IfModule security2_module>
# Include ModSecurity configuration
Include /usr/local/etc/modsecurity/modsecurity.conf
# Include OWASP Core Rule Set (CRS) configuration and base rules
Include /usr/local/etc/crs/modsecurity_crs_10_setup.conf
Include /usr/local/etc/crs/base_rules/*.conf
# Remove Rule by id
SecRuleRemoveById 981173
</IfModule>

保存并退出。

第7步 - 将Mod Security添加到VirtualHost

要配置Mod Security的VirtualHost,我们需要编辑VirtualHost文件:

cd /usr/local/etc/apache24/virtualhost/
nano saitama.me.conf

在目录指令中,添加脚本以下:

......
<IfModule security2_module>
SecRuleEngine On
</IfModule>
......

现在重新启动Apache Web服务器:

service apache24 restart

笔记 :

如果我们有这样的错误:

[unique_id:alert] [pid 4372] (EAI 8)hostname nor servname provided, or not known: AH01564: unable to find IPv4 address of "YOURHOSTNAME"

请将主机名添加到主机文件:

nano /etc/hosts

添加主机名

127.0.0.1           YOURHOSTNAME

第8步 - 测试MOD安全性

在Mod安全目录"/usr/local/etc/modsecurity /"中编辑文件"modsecurity.conf":

cd /usr/local/etc/modsecurity
nano modsecurity.conf

将"SELULENGINE"的价值改为"ON":

SecRuleEngine On

保存并退出。

重新启动Apache:

service apache24 restart

请参阅Apache日志文件以确保加载MOD安全性:

tail -f /var/log/httpd-error.log