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

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


Adicionando suporte ao MySQL e configurando o vsftpd



Vamos configurar o nosso MySQL para o Apache ter acesso:

# aptitude install mysql-server-5.1 mysql-client-5.1 php5-mysql -y

Agora ajustar o MySQL:

# /etc/init.d/mysql stop
# mv /var/run/mysqld /var/chroot/var/run/mysqld
# ln -s /var/chroot/var/run/mysqld /var/run/mysqld


Já podemos inicializar o nosso MySQL:

# /etc/init.d/mysql start

Ajustar as permissões do nosso site:

# chown -R usuarioftp:www-data /var/chroot/var/www/website

Configurar o logrotate para ir fazendo rotação dos logs do nosso site, arquivo /etc/logrotate.d/websites:

# vim /etc/logrotate.d/websites

#/etc/logrotate.d/websites
/var/www/website/logs/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 www-data www-data
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}

Configurar o vsftdp para podermos subir os arquivos para o site, os usuários somente vão poder ver o seu home, eles vão ficar presos dentro da jaula. Abra o arquivo /etc/vsftpd.conf:

# vim /etc/vsftpd.conf

#/etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
nopriv_user=ftp
ftpd_banner=Bem-Vindo ao FTP douglas.wiki.br.
deny_email_enable=NO
chroot_local_user=YES
chroot_list_enable=NO
banned_email_file=/etc/vsftpd.banned_emails
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Criando mais alguns arquivos necessários

Nesse arquivos podemos colocar os usuários que vão poder sair da jaula:

# touch /etc/vsftpd.chroot_list

Nesse arquivo podemos colocar os e-mails que vão ser negados pelo vsftpd.

# touch /etc/vsftpd.banned_emails

Vamos reiniciar o nosso serviço:

# /etc/init.d/vsftpd restart

Agora vamos testar o acesso via FTP:

# ftp localhost
Connected to localhost.
220 Bem-Vindo ao FTP douglas.wiki.br.
Name (localhost:root): usuarioftp
331 Please specify the password.
Password: senha
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 1001     33           4096 Jun 24 10:41 frontend
drwxr-xr-x    2 1001     33           4096 Jun 24 10:44 logs
226 Directory send OK.
ftp> quit
221 Goodbye.

Como pode ser notado, conseguimos acessar o nosso servidor normalmente com o usuário que criamos.

Página anterior     Próxima página

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

Servidor Jabber com Openfire + MySQL + Debian Lenny

Um pouco sobre IPtables

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

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

Bind9 em chroot no Debian Lenny

Leitura recomendada

Aplicações WEB com Prisma [Mozilla Labs]

Interoperabilidade monitorando servidores e estações Windows com servidor Linux usando MRTG

Internet lenta? Reclame é um direito seu, mas antes leia isto.

LimeWire - um P2P muito interessante para Linux

Servidor FTP com NetBSD (PureFTPD + MySQL)

  
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