FAMP Stack или FreeBSD с Apache, MariaDB и PHP – это группа программного обеспечения с открытым исходным кодом для запуска приложения на основе php в вашем браузере. FAMP аналогичен LAMP (Linux Apache MAIADB / MySQL и PHP) на сервере Linux.
Mod Security – это механизм обнаружения и предотвращения вторжений с открытым исходным кодом для веб-сервера.
Поддержка Apache Nginx и IIS на сервере Windows. Это один из модулей apache для предотвращения хакеров и других вредоносных атак, таких как SQL Injection, XSS, LFI (локальное включение файлов), RFI (включение удаленного файла) и т. д.
В этом уроке мы расскажем об установке FAMP Stack с FreeBSD 10.2, а затем предоставим вам пример конфигурации виртуального хоста на веб-сервере apache. Затем мы установим и настроим защиту мод для работы с FAMP Stack и активируем созданный виртуальный хост.
Шаг 1 – Обновление системы
Войдите в свой сервер freebsd с помощью ssh и обновите свою систему командой:
# freebsd-update fetch # freebsd-update install
Шаг 2 – Установка и настройка Apache
Apache – один из лучших и популярных веб-серверов, поддержка Linux, Window и Mac OS.
Apache разработан открытым сообществом разработчиков под Apache Software Foundation.
Поддержка некоторых языковых интерфейсов поддерживает Perl, Python, Tcl и PHP.
Мы установим apache24 с командой pkg:
# pkg install apache24
Перейдите в каталог конфигурации apache «/usr/local/etc apache24», а затем отредактируйте файл «httpd.conf» с помощью редактора nano:
cd /usr/local/etc/apache24 nano httpd.conf
Измените значение «ServerAdmin» в строке 210 и «ServerName» в строке 219:
ServerAdmin im@localhost ..... ServerName localhost:80
# sysrc apache24_enable=yes
# service apache24 start
Шаг 3 – Установка и настройка MariaDB
MariaDB вместо MySQL разрабатывает и поддерживает MySQL Developer под GNU GPL. Для системы управления реляционными базами данных MySQL MySQL.
Мы установим mariadb с командой pkg:
# 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
Затем включите mariadb для запуска во время загрузки командой sysrc:
# sysrc mysql_enable = yes
и последнее, запустить mariadb:
# service mysql-server start
Теперь вам нужно настроить имя пользователя и пароль для сервера mariadb / mysql. настроить с помощью команды:
# 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:
# mysql -u root -p ENTER YOUR PASSWORD
Шаг 4 – Установка и настройка MariaDB
В этом уроке мы будем использовать версию php 5.6. установите его с помощью команды pkg include с mod_php56 php56-mysql php56-mysqli php56-curl.
# pkg install mod_php56 php56-mysql php56-mysqli php56-curl Теперь скопируйте файл конфигурации php «php.ini-production» в «php.ini» в каталоге «/ usr / local / etc /»: # cd / usr / local / etc / # cp php.ini-production php.ini
Отредактируйте файлы php.ini и добавьте часовой пояс в строке 926:
# nano php.ini # date.timezone = Europe / Jakarta
Затем настройте php для работы с apache, вам нужно отредактировать файл конфигурации apache, а затем добавить там конфигурацию php.
Для этого вы должны перейти в каталог конфигурации apache и отредактировать «httpd.conf» с помощью редактора nano:
# <span class="">cd / usr / local / etc / apache24 /</span> # 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> .....
и добавьте index.php в директиву dir_module:
<IfModule dir_module> <span class="">DirectoryIndex index.php index.html</span> </ IfModule<span class="">>
Сохраните и закройте
Шаг 5 - Настройка Apache VirtualHost
В этом уроке мы создадим виртуальный хост под названием «saitama.me.conf» с доменом «saitama.me».
Файл конфигурации Virtualhost, хранящийся в каталоге «/ usr / local / etc / apache24 / extra /».
Но в этом уроке мы создадим новый каталог для виртуального хоста, поэтому упростим настройку вашего виртуального хоста, если у вас много конфигурационного файла.
Создайте новый каталог «virtualhost» в каталоге конфигурации apache:
# cd /usr/local/etc/apache24/ # mkdir virtualhost
Теперь создайте новый файл saitama.me.conf:
Добавьте конфигурацию виртуального хоста ниже:
<VirtualHost *:80> ServerAdmin im@saitama.me # 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>
Далее включите вашу конфигурацию виртуального хоста в файл apache «httpd.conf»:
# cd /usr/local/etc/apache24/ # nano httpd.conf
Добавьте это в конец строки:
Include etc/apache24/virtualhost/*.conf
Затем создайте новый каталог для виртуального хоста, который мы создали на странице «/ usr / local / www /»:
# <span id="result_box" class="" lang="ru"><span class="">mkdir -p /usr/local/www/saitama.me</span> <span class=""># cd /usr/local/www/saitama.me</span></span>
И создайте новый файл «index.php» и дайте php info скрипт, вы можете сделать это с помощью команды «echo»:
# <span id="result_box" class="short_text" lang="ru">echo '<? php phpinfo (); <span class="">?> '> index.php</span></span>
Теперь перезапустите апач, а затем откройте свой браузер «www.saitama.me»:
# service apache24 restart
и вы можете увидеть информацию о php:
Шаг 6 - Установка и настройка Modsecurity
Mod Security является частью модулей apache, поэтому вы можете установить его из репозитория.
Вы можете установить из истходников, но мы здесь используем команду pkg для установки из репозитория:
# pkg install ap24-mod_security-2.9.0
Теперь загрузите новый модуль «unique_id», необходимый для защиты мод, отредактировав файл конфигурации apache «httpd.conf» и раскомментируйте строку 120:
# <span class="">cd / usr / local / etc / apache24 /</span> # nano httpd.conf
<span class="">LoadModule unique_id_module libexec / apache24 / mod_unique_id.so</span>
Сохранить и выйти.
И если вы это сделали, пожалуйста, клонируйте набор основных правил owasp modsecurity (CRS) с помощью команды git в каталог crs:
# cd / usr / local / etc / # <span class="">git clone https://github.com/SpiderLabs/owasp-modsecurity-crs crs
Теперь перейдите в каталог crs и скопируйте пример файла конфигурации:
# cd crs / # <span class="">modsecurity_crs_10_setup.conf.example</span> modsecurity_crs_10_setup.conf
Затем загрузите модуль modsecurity с помощью правил owasp crs, создав новый файл «000_modsecurity.conf» в каталоге «modules.d»:
# <span class="">cd /usr/local/etc/apache22/modules.d/</span> # n<span class="">ano 000_modsecurity.conf</span>
Вставьте конфигурацию ниже:
# 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 - Добавление Modsecurity в VirtualHost
Чтoбы настроить виртуальный хост с защитой mod, вам нужно отредактировать файл virtualhost:
# cd / usr / local / etc / apache24 / virtualhost / # nano saitama.me.conf
В директиве Inside Directory добавьте скрипт ниже:
......
<IfModule security2_module>
SecRuleEngine On
</ IfModule>
......
И теперь перезапустите веб-сервер apache:
# 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"добавьте свое имя хоста в файл hosts:
# nano / etc / hosts
Добавьте свое имя хоста
<span class="">127.0.0.1 YOURHOSTNAME
Шаг 8 - Тестирование Mod Security
Отредактируйте файл «modsecurity.conf» в каталоге «/ usr / local / etc / modsecurity /»:
# cd / usr / local / etc / modsecurity # nano modsecurity.conf
Измените значение «SecRuleEngine» на «Вкл.»:
SecRuleEngine On
Сохранить и выйти.
Перезапустить Apache:
# service apache24 restart
Просмотрите файл журнала apache, чтобы обеспечить безопасность мод:
# <span class="">tail -f /var/log/httpd-error.log
Еще один тест в virtualhost с атакой SQL Injection на плагины wordpress:
Mod Security и Apache успешно запущены.
Вывод
FAMP Stack или Apache MariaDB и PHP на FreeBSD вместо LAMP на сервере Linux.
Его легко установить и настроить. Вы можете установить его с помощью команды pkg или если у вас есть время, вы можете скомпилировать ее из каталога «/ usr / ports».
Мод Security - это брандмауэр веб-приложений, который предотвращает вас от хакеров и вредоносных атак, таких как SQL Injection.
Вы можете определить свое правило, а затем добавить его для работы с apache для безопасности вашего веб-приложения.