Pular para o conteúdo

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.
Douglas Q. dos Santos douglas_dksh
Hits: 24.109 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 4: 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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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. ;)

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   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

Bind9 slave em chroot no Debian Lenny

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

Um pouco sobre IPtables

IDS com Snort + Guardian + Debian Lenny

Bind9 em chroot no Debian Lenny

Utilizando endereços personalizados no seu servidor web: passo-a-passo

Sarg + Relatórios Automáticos + Domínio Autenticado + Desbloqueio na Página do Squid

NTLMAPS: NTLM Authorization Proxy Server

Servidor FTP com NetBSD (PureFTPD + MySQL)

Compartilhar uma conexão via rádio na rede interna

#1 Comentário enviado por LeonardoGoretti em 14/12/2012 - 08:47h
Muito Bom....So o script que não ta lá!!
#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

Entre na sua conta para comentar.