Para instalar o Apache com PHP em seu servidor, siga os passos abaixo:
yum update
yum install httpd mod_ssl php php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml
sudo chkconfig httpd on
service httpd start
Para melhor performance e aumento da segurança no uso do Apache com PHP, recomendamos a realização dos seguintes passos:
O Mod Security é um firewall para aplicação web de detecção e prevenção contra intrusos. Para instalá-lo, siga os passos abaixo:
yum install gcc make yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel
yum install wget cd /usr/src wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz tar xzf modsecurity-2.9.1.tar.gz cd modsecurity-2.9.1 ./configure make install
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf cp unicode.mapping /etc/httpd/conf.d/
cd /etc/httpd/conf.d
SecRuleEngine On SecRequestBodyAccess Off
cd /etc/httpd/conf LoadModule security2_module modules/mod_security2.so
service httpd restart
Como o Mod Security não possui uma regra para proteção a ataques de negação de serviço, recomendamos a utilização do Mod Evasive. Para instalá-lo, siga os passos abaixo:
cd /usr/src wget http://pkgs.fedoraproject.org/repo/pkgs/mod_evasive/mod_evasive_1.10.1.tar.gz/784fca4a124f25ccff5b48c7a69a65e5/mod_evasive_1.10.1.tar.gz tar xzf mod_evasive_1.10.1.tar.gz cd mod_evasive apxs -cia mod_evasive20.c
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 20 DOSSiteCount 100 DOSPageInterval 3 DOSSiteInterval 5 DOSBlockingPeriod 300 DOSEmailNotify "<SUA CONTA DE EMAIL>" DOSLogDir "/var/log/apache2/mod_evasive" </IfModule>
service httpd restart
Recomendamos a alteração do padrão da variável session.name (PHPSESSID) para prevenção de ataques do tipo Session Fixation.
session.name = (Nome desejado Ex. MYSESSID)
Para facilitar a manipulação de arquivos em seu servidor Web, recomendamos instalar o serviço FTP (VSFTPD). Para isso, siga os passos abaixo:
yum install vsftpd
anonymous_enable=NO chroot_local_user=YES
useradd my_webuser
passwd my_webuser
mkdir /home/my_webuser/public_html mount --bind /var/www/html/ /home/my_webuser/public_html/ chown my_webuser.my_webuser /home/my_webuser/public_html
/var/www/html/ /home/my_webuser/public_html none bind 0 0
service vsftpd restart