Differences

This shows you the differences between two versions of the page.

Link to this comparison view

servidor_web_apache_trabalhando_em_chroot_no_debian_wheezy_pt_br [2019/08/08 15:24] (current)
Line 1: Line 1:
 +====== Servidor Web Apache trabalhando em modo chroot + Debian Wheezy ======
  
 +
 +Aqui vou estar abordando a implementação de um servidor Web trabalhando em modo chroot dando suporte a php5, <nowiki>MySQL</nowiki>, Fail2ban, mod_security, mod-evasive para garantirmos a segurança de nosso servidor. 
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialwheezy_en para que não falte nenhum pacote ou configuração.
 +
 +Vamos primeiro fazer um update de nosso repositórios e a atualização de todo o sistema. 
 +<sxh bash>
 +aptitude update && aptitude dist-upgrade -y
 +</sxh>
 +
 +Agora vamos instalar o apache e módulo de chroot e o debootstrap para montar a nossa jaula. 
 +<sxh bash>
 +aptitude install apache2  debootstrap libapache2-modsecurity -y
 +</sxh>
 +
 +Montando a nossa jaula. 
 +<sxh bash>
 +debootstrap wheezy /var/chroot http://ftp.br.debian.org/debian 
 +</sxh>
 +
 +Copiando a configuração do nosso sistema para a jaula 
 +<sxh bash>
 +cp -a /etc/resolv.conf /var/chroot/etc/
 +cp -a /etc/hosts /var/chroot/etc/
 +cp -a /etc/mime.types /var/chroot/etc/
 +cp -a /usr/share/zoneinfo/America/Sao_Paulo /var/chroot/usr/share/zoneinfo/America
 +cp -a /etc/adjtime /var/chroot/etc/
 +</sxh>
 +
 +Instalando o apache dentro da jaula e o locales pois as vezes temos problemas com idioma dai já podemos corrigir este problema. 
 +<sxh bash>
 +chroot /var/chroot apt-get update 
 +chroot /var/chroot aptitude dist-upgrade -y 
 +chroot /var/chroot apt-get install apache2.2-common apache2-utils locales -y
 +</sxh>
 +
 +Acertando o idioma da jaula. 
 +<sxh bash>
 +sed -i 's/# pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/' /var/chroot/etc/locale.gen
 +chroot /var/chroot locale-gen
 +</sxh>
 +
 +Não precisamos mais ajustar o pid do apache pois quando criamos a jaula o sistema cria um link do /var/chroot/var/run para o /run
 +
 +Configurando o apache arquivo /etc/apache2/apache2.conf
 +<sxh bash>
 +echo "SecChrootDir /var/chroot" >> /etc/apache2/apache2.conf
 +</sxh>
 +
 +Copiando os sites para a jaula caso já tenha algum. 
 +<sxh bash>
 +cp -Ra /var/www/* /var/chroot/var/www/
 +</sxh>
 +
 +Vamos testar o acesso a nossa jaula, vamos editar o index.html da nossa jaula e colocar um valor diferente do padrão para termos certeza que o apache esta nos mostrando os dados da jaula. 
 +<sxh bash>
 +echo "<center><h1>Teste de chroot no Apache</h1></center> " > /var/chroot/var/www/index.html
 +</sxh>
 +
 +Agora precisamos ajustar a jaula pois nesta nova versão do debootstrap ele cria alguns links que o modsecurity não aceita, com isso vamos remover os links e vamos criar os diretórios.
 +<sxh bash>
 +unlink /var/chroot/var/lock
 +unlink /var/chroot/var/run
 +</sxh>
 +
 +Agora vamos criar os diretórios e ajustar os links.
 +<sxh bash>
 +mkdir -p /var/chroot/var/run/lock
 +ln -sf /var/chroot/var/run/lock /var/chroot/var/lock
 +mv /var/run/apache2.pid /var/chroot/var/run/apache2.pid
 +mv /var/run/apache2 /var/chroot/var/run/apache2
 +ln -s /var/chroot/var/run/apache2.pid /var/run/apache2.pid
 +ln -s /var/chroot/var/run/apache2 /var/run/apache2
 +rm -rf /var/chroot/var/run/apache2.pid
 +</sxh>
 +
 +Agora vamos matar o processo do apache
 +<sxh bash>
 +killall -9 apache2
 +</sxh>
 +
 +Vamos iniciar o apache 
 +<sxh bash>
 +/etc/init.d/apache2 start
 +</sxh>
 +
 +Vamos agora acessar o nosso site. 
 +
 +http://ip_servidor
 +
 +Vai ter que aparecer a mensagem de teste que colocamos na jaula. 
 +
 +Podemos acompanhar os erros do apache como exemplo abaixo. 
 +<sxh bash>
 +tail -f /var/log/apache2/error.log 
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity: chroot checkpoint #1 (pid=4300 ppid=4295)
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity for Apache/2.6.6 (http://www.modsecurity.org/) configured.
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity: APR compiled version="1.4.6"; loaded version="1.4.6"
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity: PCRE compiled version="8.30"; loaded version="8.30 2012-02-04"
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity: LUA compiled version="Lua 5.1"
 +[Mon Dec 02 16:53:40 2013] [notice] ModSecurity: LIBXML compiled version="2.8.0"
 +[Mon Dec 02 16:53:41 2013] [notice] ModSecurity: chroot checkpoint #2 (pid=4301 ppid=1)
 +[Mon Dec 02 16:53:41 2013] [notice] ModSecurity: chroot successful, path=/var/chroot
 +[Mon Dec 02 16:53:41 2013] [notice] Apache/2.2.22 (Debian) configured -- resuming normal operations
 +</sxh>
 +
 +A primeira parte já esta ok o apache esta trabalhando em modo chroot, agora temos que fazer o php5 e o mysql trabalhar com ele, e vamos também configurar mais alguns módulos para a segurança de nosso apache. 
 +
 +Instalando o php5 ele não precisa ficar na jaula. 
 +<sxh bash>
 +
 +aptitude install php5 libapache2-mod-php5 php5-gd php5-ps php5-cli php-pear php5-gd php5-mysql php5-imap php5-mcrypt php5-json -y
 +aptitude install php5-xmlrpc php5-dev php5-common fail2ban vsftpd postfix mysql-client -y
 +chroot /var/chroot apt-get install imagemagick php5-common -y
 +</sxh>
 +
 +Acertando permissões 
 +<sxh bash>
 +rm -rf /var/chroot/dev/*
 +for SEC in $(echo $(find /var/chroot/ -type f \( -perm -04000 -o -perm -02000 \) -print)); do chmod -s ${SEC}; done
 +chmod -x /var/chroot/bin/su
 +chmod -x /var/chroot/bin/stty
 +</sxh>
 +
 +Configurando o módulo avasive para nos ajudar a prevenir os ataques do tipo DOS. 
 +<sxh bash>
 +
 +apt-get install libapache2-mod-evasive
 +echo "LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so" > /etc/apache2/mods-available/evasive.load
 +</sxh>
 +
 +Configurando o módulo /etc/apache2/mods-available/evasive.conf  
 +<sxh apache>
 +
 +vim /etc/apache2/mods-available/evasive.conf
 +<IfModule mod_evasive.c>
 +DOSHashTableSize 3097 
 +DOSPageCount 2            
 +DOSSiteCount 50            
 +DOSPageInterval 1          
 +DOSSiteInterval 1            
 +DOSBlockingPeriod 900  
 +DOSWhitelist 66.249.65.*
 +DOSWhitelist 66.249.66.*
 +# As ultimas são as que o google usa para indexar.
 +</IfModule>
 +</sxh>
 +
 +Acertando o idioma do sistema  
 +<sxh bash>
 +
 +sed -i 's/# pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/' /etc/locale.gen
 +locale-gen
 +</sxh>
 +
 +Vamos montar um virtualhost para testarmos o nosso chroot /etc/apache2/sites-available/wiki.douglasqsantos.com.br  
 +<sxh apache>
 +
 +vim /etc/apache2/sites-available/wiki.douglasqsantos.com.br
 +<VirtualHost *:80>
 + ServerName wiki.douglasqsantos.com.br
 + ServerAlias douglasqsantos.com.br
 +
 + DocumentRoot "/var/www/website/frontend/"
 + <Directory "/var/www/website/frontend/">
 +   Options -Indexes +FollowSymLinks +MultiViews
 +   AllowOverride All
 +   Order allow,deny
 +   allow from all
 + </Directory>
 +
 + ScriptAlias /cgi-bin/ "/var/www/website/frontend/cgi-bin/"
 + <Directory "/var/www/website/frontend/cgi-bin/">
 +   AllowOverride All
 +   Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 +   Order allow,deny
 +   Allow from all
 + </Directory>
 +
 + ErrorLog ${APACHE_LOG_DIR}/wiki.douglasqsantos.com.br-error.log
 + CustomLog ${APACHE_LOG_DIR}/wiki.douglasqsantos.com.br-access.log common
 + 
 + ServerSignature Off
 + 
 + IndexIgnore .??* *~ *# README RCS CVS *,v *,t *
 +
 + # Possible values include: debug, info, notice, info, error, crit,
 + # alert, emerg.
 + LogLevel info
 +</VirtualHost>
 +</sxh>
 +
 +Vamos montar a base do nosso site  
 +<sxh bash>
 +mkdir -p /var/chroot/var/www/website/frontend/cgi-bin
 +ln -sf /var/chroot/var/www/website /var/www/website
 +</sxh>
 +
 +Criando o arquivo index de teste.  
 +<sxh bash>
 +
 +echo "<?php phpinfo(); ?>" > /var/www/website/frontend/index.php
 +</sxh>
 +
 +Incluindo o shell /bin/true para o usuário ftp  
 +<sxh bash>
 +
 +echo "/bin/true" >> /etc/shells
 +</sxh>
 +
 +Criando o usuário ftp para o nosso site  
 +<sxh bash>
 +
 +useradd -m -d /var/www/website -s /bin/true usuarioftp
 +</sxh>
 +
 +Agora vamos definir uma senha para ele  
 +<sxh bash>
 +
 +passwd usuarioftp
 +</sxh>
 +
 +Carregando o nosso site e descarregando os sites defaults  
 +<sxh bash>
 +
 +a2ensite wiki.douglasqsantos.com.br
 +a2dissite default 
 +a2dissite default-ssl 
 +a2enmod rewrite
 +</sxh>
 +
 +Agora vamos configurar o mod_security insira no final do arquivo /etc/apache2/apache2.conf o conteúdo abaixo.  
 +<sxh apache>
 +
 +vim /etc/apache2/apache2.conf
 +[...]
 +#Final do arquivo
 +<IfModule mod_security.c>
 + # Turn the filtering engine On or Off
 + SecFilterEngine On
 +
 + # Make sure that URL encoding is valid
 + SecFilterCheckURLEncoding On
 +
 + # Unicode encoding check
 + SecFilterCheckUnicodeEncoding Off
 +
 + # Only allow bytes from this range
 + SecFilterForceByteRange 0 255
 +
 + # Only log suspicious requests
 + SecAuditEngine RelevantOnly
 +
 + # The name of the audit log file
 + SecAuditLog /var/log/apache2/audit_log
 +
 + # Debug level set to a minimum
 + SecFilterDebugLog /var/log/apache2/modsec_debug_log
 + SecFilterDebugLevel 0
 +
 + # Should mod_security inspect POST payloads
 + SecFilterScanPOST On
 +
 + # By default log and deny suspicious requests
 + # with HTTP status 500
 + SecFilterDefaultAction "deny,log,status:500"
 +</IfModule>
 +</sxh>
 +
 +Vamos reiniciar agora o nosso apache. 
 +<sxh bash>
 +
 +/etc/init.d/apache2 restart
 +</sxh>
 +
 +Agora vamos analisar os logs do apache 
 +<sxh bash>
 +tail -f /var/log/apache2/error.log 
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity: chroot checkpoint #1 (pid=13239 ppid=13234)
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity for Apache/2.6.6 (http://www.modsecurity.org/) configured.
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity: APR compiled version="1.4.6"; loaded version="1.4.6"
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity: PCRE compiled version="8.30"; loaded version="8.30 2012-02-04"
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity: LUA compiled version="Lua 5.1"
 +[Mon Dec 02 17:05:42 2013] [notice] ModSecurity: LIBXML compiled version="2.8.0"
 +[Mon Dec 02 17:05:43 2013] [notice] ModSecurity: chroot checkpoint #2 (pid=13240 ppid=1)
 +[Mon Dec 02 17:05:43 2013] [notice] ModSecurity: chroot successful, path=/var/chroot
 +[Mon Dec 02 17:05:43 2013] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u5 configured -- resuming normal operations
 +</sxh>
 +
 +Vamos também tirar a assinatura do nosso php  
 +<sxh apache>
 +
 +vim /etc/php5/apache2/php.ini
 +[...]
 +expose_php = Off
 +[...]
 +</sxh>
 +
 +Agora já podemos reiniciar o nosso apache novamente para ver se vamos ter mais algum aviso ou erro. 
 +<sxh bash>
 +
 +/etc/init.d/apache2 restart
 +</sxh>
 +
 +Vamos configurar o nosso <nowiki>MySQL</nowiki> para o apache ter acesso. 
 +<sxh bash>
 +
 +aptitude install mysql-server mysql-client php5-mysql -y
 +</sxh>
 +
 +Agora vamos ajustar o <nowiki>MySQL</nowiki> 
 +<sxh bash>
 +/etc/init.d/mysql stop
 +mv /var/run/mysqld /var/chroot/var/run/mysqld
 +ln -s /var/chroot/var/run/mysqld /var/run/mysqld
 +</sxh>
 +
 +Agora podemos já inicializar o nosso <nowiki>MySQL</nowiki> 
 +<sxh bash>
 +
 +/etc/init.d/mysql start
 +</sxh>
 +
 +Agora vamos ajustar as permissões do nosso site. 
 +<sxh bash>
 +
 +chown -R usuarioftp:www-data /var/chroot/var/www/website
 +</sxh>
 +
 +Agora vamos configurar o logrotate para ir fazendo rotação dos logs do nosso site arquivo /etc/logrotate.d/websites 
 +<sxh bash>
 +
 +vim /etc/logrotate.d/websites
 +#/etc/logrotate.d/websites
 +/var/www/website/logs/*.log {
 + weekly
 + missingok
 + rotate 6
 + compress
 + delaycompress
 + notifempty
 + create 640 www-data www-data
 + sharedscripts
 + postrotate
 + /etc/init.d/apache2 reload > /dev/null
 + endscript
 +}
 +</sxh>
 +
 +Vamos 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 arquivo /etc/vsftpd.conf  
 +<sxh apache>
 +
 +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 douglasqsantos.com.br.
 +deny_email_enable=NO
 +chroot_local_user=YES
 +allow_writeable_chroot=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
 +</sxh>
 +
 +Criando mais alguns arquivos necessários 
 +
 +Nesse arquivos podemos colocar os usuários que vão poder sair da jaula. 
 +<sxh bash>
 +
 +touch /etc/vsftpd.chroot_list 
 +</sxh>
 +
 +Nesse arquivo podemos colocar os emails que vão ser negados pelo vsftpd. 
 +<sxh bash>
 +
 +touch /etc/vsftpd.banned_emails
 +</sxh>
 +
 +A Versão padrão do debian está com pau gera o seguinte erro quando loga no ftp podemos ver o bug em http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656900
 +<sxh bash>
 +ftp localhost
 +ftp: connect to address ::1: Connection refused
 +Trying 127.0.0.1...
 +Connected to localhost.
 +220 Bem-Vindo ao FTP douglasqsantos.com.br.
 +Name (localhost:root): usuarioftp
 +331 Please specify the password.
 +Password:
 +500 OOPS: vsftpd: refusing to run with writable root inside chroot()
 +Login failed.
 +ftp> quit
 +421 Service not available, remote server has closed connection
 +</sxh>
 +
 +Agora vamos ajustar o vsftpd
 +<sxh bash>
 +echo "deb http://ftp.cyconet.org/debian wheezy-updates main non-free contrib" >> /etc/apt/sources.list.d/wheezy-updates.cyconet.list 
 +aptitude update; aptitude install -t wheezy-updates debian-cyconet-archive-keyring vsftpd
 +</sxh>
 +
 +Agora que já instalamos o nosso pacote podemos remover este repositório
 +<sxh bash>
 +rm -rf /etc/apt/sources.list.d/wheezy-updates.cyconet.list 
 +</sxh>
 +
 +Vamos reiniciar o nosso serviço. 
 +<sxh bash>
 +/etc/init.d/vsftpd restart
 +</sxh>
 +Agora vamos testar o acesso via ftp. 
 +<sxh bash>
 +ftp localhost
 +ftp: connect to address ::1: Connection refused
 +Trying 127.0.0.1...
 +Connected to localhost.
 +220 Bem-Vindo ao FTP douglasqsantos.com.br.
 +Name (localhost:root): usuarioftp
 +331 Please specify the password.
 +Password:
 +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 Dec 02 17:26 frontend
 +226 Directory send OK.
 +ftp> quit
 +221 Goodbye.
 +</sxh>
 +
 +Como pode ser notado conseguimos acessar o nosso servidor normalmente com o usuário que criamos. 
 +
 +Agora vamos configurar o Fail2ban para cuidar de nosso servidor arquivo /etc/fail2ban/jail.conf 
 +<sxh apache>
 +
 +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 = email_do_webmaster
 +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
 +</sxh>
 +
 +Agora vamos reiniciar o serviço para que o nosso servidor estejá com um agente análisando os logs e bloqueando quando necessário. 
 +<sxh bash>
 +
 +/etc/init.d/fail2ban restart
 +</sxh>
 +
 +Agora vamos fazer mais alguns ajustes em nosso apache deixe como abaixo arquivo /etc/apache2/conf.d/security  
 +<sxh bash>
 +
 +vim /etc/apache2/conf.d/security
 +[...]
 +ServerTokens Prod
 +[...]
 +ServerSignature Off
 +</sxh>
 +
 +E na jaula também /var/chroot/etc/apache2/conf.d/security  
 +<sxh bash>
 +vim /var/chroot/etc/apache2/conf.d/security
 +[...]
 +ServerTokens Prod
 +[...]
 +ServerSignature Off
 +</sxh>
 +
 +Agora é só reiniciar o apache. 
 +<sxh bash>
 +/etc/init.d/apache2 restart
 +</sxh>
 +
 +Agora é só acessar o site em http://wiki.douglasqsantos.com.br  
 +
 +
 +====== Referências ======
 +
 +  - http://www.apache.org/
 +  - http://httpd.apache.org/
 +  - http://wiki.apache.org/httpd/
 +  - http://wiki.apache.org/httpd/FAQ
 +  - http://httpd.apache.org/security_report.html
 +  - http://httpd.apache.org/docs/2.2/
 +  - http://www.php.net/manual/en/install.unix.php
 +  - http://www.php.net/manual/en/install.php
 +  - http://www.php.net/manual/en/install.unix.apache2.php
 +  - http://www.mysql.com/
 +  - http://www.mysql.com/downloads/
 +  - http://dev.mysql.com/
 +  - http://dev.mysql.com/doc/
 +  - https://security.appspot.com/vsftpd.html
 +  - ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-2.3.4/
 +  - https://security.appspot.com/vsftpd/vsftpd_conf.html
 +  - http://wiki.colivre.net/Aurium/UsandoChroot
 +  - http://www.unixwiz.net/techtips/chroot-practices.html
 +  - http://www.slideshare.net/rstm/criao-de-ambientes-em-chroot
 +  - http://wiki.debian.org/pt_BR/Debootstrap
 +  - http://www.debian-administration.org/articles/426
 +  - http://www.fail2ban.org/wiki/index.php/Main_Page
 +  - http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
 +  - http://blog.waja.info/2013/05/13/500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
Print/export
QR Code
QR Code servidor_web_apache_trabalhando_em_chroot_no_debian_wheezy_pt_br (generated for current page)