Professional Documents
Culture Documents
Artigos
Cad e rn o :
Criad a e m: 14/04/2016 16:48
http://alexos.org/2011/01/lamp-implementando-um-servidor-lamp-seguro/
U RL:
De
ServerSignature On
Para
ServerSignature Off
TraceEnable
De
TraceEnable On
Para
TraceEnable Off
Nos arquivos de configurao em /etc/apache2/sites-available/ edite a linha Document
/ deixando da seguinte forma:
Order Deny,Allow
Deny from All
Options FollowSymLinks
AllowOverride None
Habilite o server-status para adquirir estatsticas do Apache2
Crie o arquivo server-status em /etc/apache2/conf.d/ com o seguinte contedo:
SetHandler server-status
Deny from all
Allow from localhost
Se desejar faa o baixe o arquivo server-status AQUI
Adicione a seguinte linha no final do arquivo /etc/apache2/apache2.conf
ExtendedStatus On
Habilite o mdulo info
a2enmod info
Habilite o SSL
Para habilitar o SSL acesse AQUI
Tunning do Apache
As configuraes de tunning do Apache2 esto totalmente ligadas a quantidade de recursos (
CPU, memria e banda ) disponveis:
Por exemplo para um servidor QuadCore com 8 GB e um link de 5Mb eu recomendo a seguinte
configurao:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1000
MaxClients 1000
MaxRequestsPerChild 0
Descrio de cada diretiva:
StartServers Configura o nmero de processos filhos criados na inicializao ( Recomendado
deixar o valor padro )
MinSpareServers Nmero minimo de processos que no manipulam requisies. (
Recomendado deixar o valor padro )
MaxSpareServers Nmero mximo de processos que no manipulam requisies. (
Recomendado deixar o valor padro )
ServerLimit Valor mximo da diretiva MaxClients. ( Deve ser igual ou superior ao MaxClients )
MaxClients Nmero mximo de conexes simultneas. ( Varia de acordo com os recursos
disponveis )
MaxRequestsPerChild Limite de requesies que um processo filho poder manipular. ( 0
siginifica ilmitado )
Dica Importante: Para testes de benchmark do Apache2 recomendo o uso do AB ( Apache
Benchmark )
Hardening e Tuninng do MySQL
Execute o seguinte comando e siga os passos recomendados:
/usr/bin/mysql_secure_installation
Enter current password for root (enter for none): Informe a senha do root do mysql ou
Para ampliar a segurana do PHP recomendo o uso do Suhosin , o Debian implementa ele por
padro. Alm do suhosin necessrio desabilitar os seguintes parmetros do arquivo
/etc/php5/apache2/php.ini:
PATH=/bin:/usr/bin:/sbin:/usr/sbin
TCPOK=123 80 443
UDPOK=53
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Drop incoming malformed NULL packets
iptables -A INPUT -p tcp tcp-flags ALL NONE -j DROP
#Drop incoming malformed XMAS packets
iptables -A INPUT -p tcp tcp-flags ALL ALL -j DROP
#Syn flood protection
iptables -A INPUT -p tcp syn -m limit limit 1/s limit-burst 3 -j RETURN
#Drop incoming ping request
iptables -A INPUT -p icmp icmp-type echo-request -j DROP
iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j LOG -i ! lo -s 127.0.0.1/255.0.0.0
iptables -A INPUT -j DROP -i ! lo -s 127.0.0.1/255.0.0.0
iptables -A OUTPUT -j ACCEPT -o lo
# Permit SSH in the 3000 port
iptables -A INPUT -s 0.0.0.0 -p tcp dport 3000 -j ACCEPT
# Permit access in some TCP ports
for PORTA in $TCPOK
do
iptables -A INPUT -p tcp dport $PORTA -j ACCEPT
done
# Permit access in some UDP ports
for PORTA in $UDPOK
do
iptables -A INPUT -p udp dport $PORTA -j ACCEPT
done
# Drop other entering connections checking the state