Apache em chroot + MySQL + PHP + mod_security + mod_evasive + vsftpd + Fail2ban + Debian Squeeze

Aqui abordarei a implementação de um Apache trabalhando em modo chroot, dando suporte a PHP 5, MySQL, Fail2ban, mod_security, mod_evasive e vsftpd.

[ Hits: 23.631 ]

Por: Douglas Q. dos Santos em 07/12/2012 | Blog: http://wiki.douglasqsantos.com.br


Configurando o Fail2ban e ajustando o Apache



Agora vamos configurar o Fail2ban para cuidar de nosso servidor:

# vim /etc/fail2ban/jail.conf

#/etc/fail2ban/jail.conf
[DEFAULT]
ignoreip = 127.0.0.1, 10.0.0.0/23
bantime  = 600
maxretry = 3
backend = polling
destemail = douglas@douglas.wiki.br
banaction = iptables-multiport
mta = sendmail
protocol = tcp
action_ = %(banaction)s[name=%(__name__)s, port=\"%(port)s\", protocol=\"%(protocol)s]
action_mw = %(banaction)s[name=%(__name__)s, port=\"%(port)s\", protocol=\"%(protocol)s]
%(mta)s-whois[name=%(__name__)s, dest=\"%(destemail)s\", protocol=\"%(protocol)s]
action_mwl = %(banaction)s[name=%(__name__)s, port=\"%(port)s\", protocol=\"%(protocol)s]
%(mta)s-whois-lines[name=%(__name__)s, dest=\"%(destemail)s\", logpath=%(logpath)s]

action = %(action_mwl)s

[ssh]
enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 3

[pam-generic]
enabled = true
filter  = pam-generic
port = all
banaction = iptables-allports
port     = anyport
logpath  = /var/log/auth.log
maxretry = 3

[ssh-ddos]
enabled = true
port    = ssh
filter  = sshd-ddos
logpath  = /var/log/auth.log
maxretry = 3

[apache]
enabled = true
port    = http,https
filter  = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3

[dominio.com.br]
enabled = true
port    = http,https
filter  = apache-auth
logpath = /var/www/website/logs/*error.log
maxretry = 3

[vsftpd]
enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = vsftpd
logpath  = /var/log/vsftpd.log
maxretry = 3

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log

[sasl]
enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
logpath  = /var/log/mail.log

Reiniciar o serviço para que o nosso servidor esteja com um agente analisando os logs e bloqueando quando necessário:

# /etc/init.d/fail2ban restart

Agora vamos fazer mais alguns ajustes em nosso Apache. Abra e deixe como abaixo o arquivo /etc/apache2/conf.d/security:

# vim /etc/apache2/conf.d/security

[...]
ServerTokens Prod
[...]
ServerSignature Off

E na jaula também:

# vim /var/chroot/etc/apache2/conf.d/security

[...]
ServerTokens Prod
[...]
ServerSignature Off

Agora é só reiniciar o Apache:

# /etc/init.d/apache2 restart

E é só acessar o site em:

Referências


Artigo também publicado em:
Espero ter ajudado. ;)

Página anterior    

Páginas do artigo
   1. Preparando o ambiente
   2. Adicionando suporte ao PHP, suporte ao mod_evasive e ao mod_security
   3. Adicionando suporte ao MySQL e configurando o vsftpd
   4. Configurando o Fail2ban e ajustando o Apache
Outros artigos deste autor

Alta disponibilidade com Debian Lenny + Heartbeat + DRBD8 + OCFS2 + MONIT + LVS

Bonding para Heartbeat + Bonding para DRBD + OCFS2 + Debian Squeeze

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

Servidor Jabber com Openfire + MySQL + Debian Lenny

Bind9 slave em chroot no Debian Lenny

Leitura recomendada

Como bloquear anúncios indesejados durante sua navegação pela web

Fuja da pirataria, use Last.fm

Por que eu pago por 10 megas, mas só faço download a 1 mega?

Apache 2.2 - Introdução ao módulo mod_rewrite

Apache + módulo deflate = economia de banda

  
Comentários
[1] Comentário enviado por LeonardoGoretti em 14/12/2012 - 08:47h

Muito Bom....So o script que não ta lá!!

[2] Comentário enviado por douglas_dksh em 14/12/2012 - 10:24h

Bom dia,

Desculpe o problema é que mudei o seu servidor para outra empresa e estou tento problemas com os scripts com isso estou disponibilizando ele em

http://www.douglas.wiki.br/doku.php?id=confinicialsqueeze

:D

[3] Comentário enviado por cavanso em 27/02/2013 - 07:29h

Douglas, como posso fazer por exemplo, tenho um servidor web, quero liberar o ftp para o webdesigner publicar alterações no site, instalei o ftp, porém toda vez que ele publica as permissões ficam usuario.usuario, com isto ocorre erros quando vamos abrir a pagina, ae toda vez tenho que da um chown -Rf usuario.www-data pasta/ , como posso contornar isto ? Tem como o vsftp já atribuir a permissão desta forma ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts