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: 22.941 ]

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

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

Um pouco sobre IPtables

Bind9 slave em chroot no Debian Lenny

IDS com Snort + Guardian + Debian Lenny

Bind9 em chroot no Debian Lenny

Leitura recomendada

Site for IE: Até quando?

Navegando na internet com (mais) segurança usando extensões no Mozilla/Firefox

Gerenciamento de conexões

Internet no Linux através de celular HTC TYTN II

Acesso SSH com celular (wapsh)

  
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