如何在FreeBSD 10.2上安装Famp Stack和Mod安全性
使用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