Differences

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

Link to this comparison view

habilitando_o_apache_a_utilizar_shell_como_cgi_no_centos_6.3_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Habilitando o Apache a utilizar Shell como CGI no CentOS 6.3  ======
  
 +
 +O apache já vem com suporte a CGI por padrão com isso vamos habilitar ele a utilizar shell script como CGI
 +
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialcentos6_en para que não falte nenhum pacote ou configuração.
 +
 +
 +Vamos instalar o apache
 +<sxh bash>
 +yum install httpd
 +</​sxh>​
 +
 +Agora vamos inserir ele na inicialização do sistema
 +<sxh bash>
 +chkconfig --add httpd
 +chkconfig httpd on
 +</​sxh>​
 +
 +Vamos criar um diretório para armazenar as nossas páginas em shell
 +<sxh bash>
 +mkdir -p /​var/​www/​html/​shell
 +</​sxh>​
 +
 +Agora vamos criar um virtualhost para armazenar as nossas páginas
 +<sxh apache>
 +vim /​etc/​httpd/​conf.d/​shell.conf
 +<​VirtualHost *:80>
 + ​ServerName shell.douglasqsantos.com.br
 + ​ServerAlias shell.douglasqsantos.com.br
 + ​DocumentRoot "/​var/​www/​html/​shell"​
 +
 + #​Controle de acesso ao shell
 + <​Directory "/​var/​www/​html/​shell">​
 +   ​DirectoryIndex index.sh
 +   ​Options +ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch
 +   ​AddHandler cgi-script .sh
 +   ​AllowOverride All
 +
 +   #​Autenticação do shell
 +   ​AuthUserFile /​etc/​httpd/​access/​shell-htpasswd
 +   ​AuthName "​Shell"​
 +   ​AuthType Basic
 +   ​require valid-user
 + </​Directory>​
 +
 + #​Configuração dos logs do apache
 + ​ErrorLog /​var/​log/​httpd/​shell.douglasqsantos.com.br-error.log
 + ​CustomLog /​var/​log/​httpd/​shell.douglasqsantos.com.br-access.log common
 +
 + #​Retirando a assinatura do Apache
 + ​ServerSignature Off
 +
 + ​IndexIgnore .??* *~ *# README RCS CVS *,v *,t *
 +
 + # Possible values include: debug, info, notice, info, error, crit,
 + # alert, emerg.
 + ​LogLevel info
 +</​VirtualHost>​
 +</​sxh>​
 +
 +Agora vamos criar a nossa página index.sh
 +<sxh bash>
 +vim /​var/​www/​html/​shell/​index.sh
 +#!/bin/bash
 +#index.sh
 +
 +echo Content-type:​ text/html
 +echo
 +echo "<​h1>​Hello World</​h1>"​
 +</​sxh>​
 +
 +Como os sh vão trabalhar como cgi eles tem que ter permissão de execução senão vamos ter um erro do servidor apache
 +
 +Vamos dar permissão para o index.sh
 +<sxh bash>
 +chmod +x /​var/​www/​html/​shell/​index.sh
 +</​sxh>​
 +
 +Agora vamos criar o diretório que vai armazenar a autenticação do nosso site
 +<sxh bash>
 +mkdir /​etc/​httpd/​access/​
 +</​sxh>​
 +
 +Agora vamos criar o arquivo que vai armazenar os usuários, eu vou cadastrar o usuário shell
 +<sxh bash>
 +htpasswd -c -s /​etc/​httpd/​access/​shell-htpasswd shell
 +New password: ​
 +Re-type new password: ​
 +Adding password for user shell
 +</​sxh>​
 +
 +Agora vamos reiniciar o apache
 +<sxh bash>
 +/​etc/​init.d/​httpd restart
 +</​sxh>​
 +
 +Agora já podemos acessar http://​shell.douglasqsantos.com.br ou http://​ip_servidor,​ aqui vai ser solicitado usuário que vai ser shell e a senha que foi definida para ele.
 +
 +**OBS:** Não esqueça que os script vão ser executados pelo usuário apache e ele não tem permissão total ao sistema com isso vamos estar executando scripts como usuário comum.