Mudanças entre as edições de "Projeto Integrador - 2011.1 - Bigodes"
Linha 229: | Linha 229: | ||
'''Exemplo arquivo virtualhost cliente.''' | '''Exemplo arquivo virtualhost cliente.''' | ||
− | '''/etc/apache2/site- | + | '''/etc/apache2/site-availabre/oi''' |
<VirtualHost *:80> | <VirtualHost *:80> | ||
Linha 287: | Linha 287: | ||
*fclose($arquivo); | *fclose($arquivo); | ||
− | '''É criado diretório com o nome do cliente, e o seu index.html''' | + | '''É criado diretório com o nome do cliente, e o seu index.html'''<br> |
− | Ex: /var/www/cliente/index.html | + | '''Ex: /var/www/cliente/index.html''' |
==Scripts de configurações. == | ==Scripts de configurações. == |
Edição das 15h24min de 10 de julho de 2011
Equipe Bigodes
- Ademir de Souza
- Amarildo Junior
- Augusto Buttemberg
- Daniel Arndt
- Evandro Schutz
- Maicon Guesser
1º Dia - 13/06/2011
- Formatamos o nosso servidor, e efetuamos as configurações básicas referentes aos IPs provisórios (rede, rota, DNS);
- Instalamos o SSH na máquina, e instalamos o equipamento no RAC.
2º Dia - 14/06/2011
- Diagnosticado o problema de bateria da BIOS. Onde o servidor não iniciava com as configurações salvas, sendo que toda vez que subir o servidor configurar o teclado.
- Efetuado a ligação dos ramais no patch panel, e identificamos a ligação do cabeamento entre o laboratório de meios e o laboratório de redes 1.
- Inciamos a configuração do DNS "bind9".
3º Dia - 15/06/2011
- Dividimos a equipe em subequipes. Tendo os alunos Ademir e Augusto, para efetuar o trabalho de IER, configurando comunicação de ponto a ponto dos modens.
- Em primeiro momento como tínhamos diagnosticado um problema na bateria da BIOS, então foi comprada uma nova e efetuada a substituição.
- Os alunos Amarildo, Daniel Arndt e Evandro continuaram a configuração do DNS. Efetuado alguns testes para comprovar o funcionamento.
- Configurado IP válido para o servidor.
4º Dia - 16/06/2011
- Iniciamos a configuração das paginas em PHP, e a integração com o MySQL.
5º Dia 17/06/2011
- Instalação dos modens entre a Sala Redes 1 e sala Meios, estabelecido a comunicação ponto a ponto do modens entre os roteadores e inicio da configuração
do DSLAN.
6º Dia - 20/06/2011
- Continuamos a configuração em paginas PHP, Iniciamos a criação de Scripts em bash para criar e direcionar arquivos que configure o DNS do cliente.
7º Dia - 21/06/2011
- A equipe continua na configuração das paginas em PHP e na resolução dos Scripts em Bash, para direcionar os arquivos de criação do DNS dos clientes.
Configurações DNS.
Arquivo /etc/bind/named.conf.local
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "bigodes.sj.ifsc.edu.br" IN { type master; file "/etc/bind/bigodes.zone"; allow-update { none; }; allow-transfer { 200.135.37.126; }; }; zone "37.135.200.in-addr.arpa" { type master; file "/etc/bind/zonareversa.zone"; }; zone "webmail.bigodes.sj.ifsc.edu.br" IN { type master; file "/etc/bind/webmail.zone"; }; // //SUBDOMINIOS // //oi zone "oi.bigodes.sj.ifsc.edu.br" IN { type master; file "/etc/bind/oi.zone"; };
Aquivo /etc/bind/bigodes.zone
$TTL 86400 @ IN SOA m.bigodes.sj.ifsc.edu.br. root ( 2011061400 ;serial 3H ;refresh 15M ;retry 1W ;expiry 1D) ;minimum IN NS m.bigodes.sj.ifsc.edu.br. IN MX 0 m.bigodes.sj.ifsc.edu.br. localhost IN CNAME bigodes.sj.ifsc.edu.br. $ORIGIN bigodes.sj.ifsc.edu.br. m A 200.135.37.101 www A 200.135.37.101 mail A 200.135.37.101
Arquivo de configuração da ZONA REVERSA /etc/bind/zonareversa.zone
$TTL 86400 @ IN SOA m.bigodes.sj.ifsc.edu.br. root ( 2011061500 ; 1d ; 1h ; 1w ; 1d ; ) IN NS m.bigodes.sj.ifsc.edu.br. 100 IN PTR m.bigodes.sj.ifsc.edu.br.
Configuração cliente: /etc/bind/oi.zone
$TTL 86400 @ IN SOA m.bigodes.sj.ifsc.edu.br bigodes ( 2011070874 ;serial 3H ;refresh 15M ;retry 1W ;expiry 1D) ;minimum IN NS m.oi.bigodes.sj.ifsc.edu.br. IN MX 0 m.oi.bigodes.sj.ifsc.edu.br. localhost IN A 127.0.0.1 $ORIGIN oi.bigodes.sj.ifsc.edu.br. m A 200.135.37.101 www A 200.135.37.101 mail A 200.135.37.101
Arquivo /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 200.135.37.101 netmask 255.255.255.192 gateway 200.135.37.126
Arquivo /etc/resolv.conf
domain bigodes.sj.ifsc.edu.br search bigodes.sj.ifsc.edu.br nameserver 200.135.37.101
Configurações Postfix
Configuração no arquivo /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = m.bigodes.sj.ifsc.edu.br mydomain = bigodes.sj.ifsc.edu.br alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mydestination = $myhostname mynetworks_style = subnet relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # Para o cliente ter email cliente@subdominio.bigodes.sj.ifsc.edu.br best_mx_transport = local virtual_alias_domains = hash:/etc/postfix/mydomains virtual_alias_maps = hash:/etc/postfix/virtual #mydestination = $myhostname, $virtual_alias_domains home_mailbox = Maildir/
Arquivo de configuração /etc/postfix/virtual
bigodes.sj.ifsc.edu.br Principal root@bigodes.sj.ifsc.edu.br root oi.bigodes.sj.ifsc.edu.br Dominio_oi oi@oi.bigodes.sj.ifsc.edu.br oi
Aquivo de configuração /etc/postfix/mydomains
bigodes.sj.ifsc.edu.br OK oi.bigodes.sj.ifsc.edu.br OK
Configuração Apache
Arquivos /etc/apache2/sites-available/default e /etc/apache2/sites-enabled/default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Exemplo arquivo virtualhost cliente. /etc/apache2/site-availabre/oi
<VirtualHost *:80> ServerName oi.bigodes.sj.ifsc.edu.br DocumentRoot /var/www/oi ServerAlias *oi.bigodes.sj.ifsc.edu.br ErrorLog /var/log/apache2/oi-error.log <Directory /var/www/oi> Options Indexes DirectoryIndex index.html index.php order allow,deny allow from all </Directory> </VirtualHost>
Trecho do arquivo /var/www/listagem.php, que cria os arquivos de configurações do cliente.
*// criando o diretorio para o apache *$diretorio = "/var/www/$nome"; *if(mkdir($diretorio)) *//criando o arquivo index.html para o usuarioi *$arquivo = fopen("/var/www/$nome/index.html" , "a"); *//nome para colocar no titulo do site do usuario *fwrite($arquivo, "<*html><*head><*title>Bem Vindo $nome !!</title></head>\n"); *// colocar o que deseja no site do cliente *fwrite($arquivo, "<*body> *<body bgcolor=#2E8B57> *<*h1> <*center> *<*b> *Bem vindo $nome!! <*br> *<*/h1> *Você acaba de adquirir uma assinatura com a empresa Bigodes Solutions,
*onde você terá sua página totalmente personalizada e uma conta de e-mail totalmente grátis.
<*br> *Você está visualizando sua pagina inicial, que atualmente está com a nossa configuração,
*você poderá acessar com o dominio escolhido www.$dominio.bigodes.sj.ifsc.edu.br. em qualquer lugar que tenha acesso a internet.
<*br> *DESENVOLVEDORES: <*br> *Ademir Lucilio
*Amarildo Junkes
*Augusto Buttemberg
*Daniel Arndt
*Evandro Schutz
*Maicon Guesser
<*br> *Para alterar a página e deixá-la como você precisa, basta entrar em contato com um de nossos desenvolvedores, *clicando no link abaixo e já usufruindo da sua conta de e-mail.
*<a href=http://www.webmail.bigodes.sj.ifsc.edu.br target=_blank> Webmail Bigodes Solutions </a>
*<EMBED SRC=/var/www/relogiodigital.swf bgcolor=#2E8B57 align=left width=150 height=150> <*br> <*br> <*br> *<*center><*h1>Bigodes Solutions *<*/body> *<*/html>"); *fclose($arquivo);
É criado diretório com o nome do cliente, e o seu index.html
Ex: /var/www/cliente/index.html
Scripts de configurações.
Este script faz a criação do email do cliente e restarta os serviços.
#!/bin/bash #Adicionando um usuario no sistema echo "$1:$1::::/home/$1:/bin/bash" > /etc/scripts/criausuario.txt #redireciona os dados do usuario para um arquivo que contem as informacoes para criacao da conta sudo newusers /etc/scripts/criausuario.txt # cria o usuario no sistema sudo maildirmake.dovecot /home/$1/Maildir #dar permissao para as pastas do usuario sudo maildirmake.dovecot /home/$1/Maildir/.Drafts sudo maildirmake.dovecot /home/$1/Maildir/.Sent sudo maildirmake.dovecot /home/$1/Maildir/.Trash sudo maildirmake.dovecot /home/$1/Maildir/.Templates sudo chown -R $1 /home/$1/Maildir/ sudo chmod -R go-rwx /home/$1/Maildir #cria um dominio virtual no postfix echo "$2.bigodes.sj.ifsc.edu.br OK" >> /etc/postfix/mydomains #associa o usuario ao dominio virtual do mesmo echo "$2.bigodes.sj.ifsc.edu.br Dominio_$2" >>/etc/postfix/virtual echo "$1@$2.bigodes.sj.ifsc.edu.br $1" >>/etc/postfix/virtual #reinicia o servico do postfix sudo /usr/sbin/postmap /etc/postfix/virtual sudo /usr/sbin/postmap /etc/postfix/mydomains sudo /etc/init.d/postfix restart sudo service dovecot restart
Exclui email do cliente e restarta o serviço
#!/bin/bash #$1 nome do usuario #$2 nome do dominio IFS=$'\n' #Excluir linha no arquivo /etc/bind/named.conf.local echo > /etc/postfix/exclui.email.bkp #cria um arquivo temporario flag=0 #flag para verificar quantas linhas serão apagadas do arquivo arq=`cat /etc/postfix/mydomains` for linha in $arq; do teste=`echo $linha | grep $2` #filtra o nome do dominio #teste que verifica o nome do usuário e exclui seu dominio if ! [ -z $teste ] #testa se nesta linha achou o nome. Se sim seta a flag then flag=1 fi if [ -z $teste ] # se não tiver o nome... then if [ $flag -ge 1 ] #...verifica se a flag ta setada... then flag=$((flag+1)) #incrementa a flag (1) else # ...e se não tiver setada, escreve no arquivo temporario echo "$linha" >> /etc/postfix/exclui.email.bkp fi fi #if [ $flag -gt 1 ] #(1) ate chegar a 5, etão zera a flag pq acabaram os campos que pertencem ao usuário # then flag=0 #fi flag=0 done echo > /etc/postfix/mydomains arquivo=`cat /etc/postfix/exclui.email.bkp` for linha1 in $arquivo; do echo "$linha1" >> /etc/postfix/mydomains #filtra o nome do dominio done echo > /etc/postfix/exclui.email.bkp #copia do temp para o original e exclui o temporario. ####################################################################### ####################################################################### flag=0 #flag para verificar quantas linhas serão apagadas do arquivo arq=`cat /etc/postfix/virtual` for linha in $arq; do teste=`echo $linha | grep $2` #filtra o nome do dominio #teste que verifica o nome do usuário e exclui seu dominio if ! [ -z $teste ] #testa se nesta linha achou o nome. Se sim seta a flag then flag=1 fi if [ -z $teste ] # se não tiver o nome... then if [ $flag -ge 1 ] #...verifica se a flag ta setada... then flag=$((flag+1)) #incrementa a flag (1) else # ...e se não tiver setada, escreve no arquivo temporario echo "$linha" >> /etc/postfix/exclui.email.bkp fi fi #if [ $flag -gt 1 ] #(1) ate chegar a 5, etão zera a flag pq acabaram os campos que pertencem ao usuário # then flag=0 #fi flag=0 done echo > /etc/postfix/virtual arquivo=`cat /etc/postfix/exclui.email.bkp` for linha1 in $arquivo; do echo "$linha1" >> /etc/postfix/virtual #filtra o nome do dominio done echo > /etc/postfix/exclui.email.bkp #copia do temp para o original e exclui o temporario. ###################################################################### #remove a conta de usuario do servidor sudo userdel -r $1 ###################################################################### #reinicia o serviçoPostfix sudo /usr/sbin/postmap /etc/postfix/virtual sudo /usr/sbin/postmap /etc/postfix/mydomains sudo /etc/init.d/postfix restart
Cria domínios e restarta o serviço.
#!/bin/bash #$1 nome do usuario #$2 nome do dominio #adiciona linhas no named.conf.local para inclusão de novo dominio echo "//$2" >> /etc/bind/named.conf.local echo "zone \"$2.bigodes.sj.ifsc.edu.br\" IN {" >> /etc/bind/named.conf.local echo " type master;" >> /etc/bind/named.conf.local echo " file \"/etc/bind/$2.zone\";" >> /etc/bind/named.conf.local #echo " allow-update { none; };" >> /etc/bind/named.conf.local #echo " allow-transfer { 200.135.37.101; };" >> /etc/bind/named.conf.local echo "};" >> /etc/bind/named.conf.local #fim de adicionar linhas no named.conf.local touch /etc/bind/$2.zone #cria o arquivo zone do dominio data=`date +%Y%m%d` # para controle do serial #cria o sub-dominio do usuario echo "$"TTL" 86400" >> /etc/bind/$2.zone echo "@ IN SOA m.bigodes.sj.ifsc.edu.br bigodes (" >> /etc/bind/$2.zone echo " $data$(($RANDOM%100)) ;serial" >> /etc/bind/$2.zone echo " 3H ;refresh" >> /etc/bind/$2.zone echo " 15M ;retry" >> /etc/bind/$2.zone echo " 1W ;expiry" >> /etc/bind/$2.zone echo " 1D) ;minimum" >> /etc/bind/$2.zone echo >> /etc/bind/$2.zone echo " IN NS m.$2.bigodes.sj.ifsc.edu.br." >> /etc/bind/$2.zone echo " IN MX 0 m.$2.bigodes.sj.ifsc.edu.br." >> /etc/bind/$2.zone echo "localhost IN A 127.0.0.1" >> /etc/bind/$2.zone echo "$"ORIGIN" $2.bigodes.sj.ifsc.edu.br." >> /etc/bind/$2.zone echo "m A 200.135.37.101" >> /etc/bind/$2.zone echo "www A 200.135.37.101" >> /etc/bind/$2.zone echo "mail A 200.135.37.101" >> /etc/bind/$2.zone #fim do sub-dominio do usuario sudo /etc/init.d/bind9 restart #restartar o apache pois o site nao faz sudo /etc/init.d/apache2 reload
Exclui Domínios e restarta o serviço.
#!/bin/bash #$1 nome do usuario #$2 nome do dominio IFS=$'\n' #Excluir linha no arquivo /etc/bind/named.conf.local touch /etc/scripts/bkp.zone #cria um arquivo temporario flag=0 #flag para verificar quantas linhas serão apagadas do arquivo arq=`cat /etc/bind/named.conf.local` for linha in $arq; do teste=`echo $linha | grep //$2` #filtra o nome do dominio #teste=`echo $linha | grep $1 | cut -d "/" -f 3` #filtra o nome "do usuario" #teste que verifica o nome do usuário e exclui seu dominio if ! [ -z $teste ] #testa se nesta linha achou o nome. Se sim seta a flag then flag=1 fi if [ -z $teste ] # se não tiver o nome... then if [ $flag -ge 1 ] #...verifica se a flag ta setada... then flag=$((flag+1)) #incrementa a flag (1) else # ...e se não tiver setada, escreve no arquivo temporario echo "$linha" >> /etc/scripts/bkp.zone fi fi if [ $flag -gt 4 ] #(1) ate chegar a 5, etão zera a flag pq acabaram os campos que pertencem ao usuário then flag=0 fi done mv /etc/scripts/bkp.zone /etc/bind/named.conf.local #copia do temp para o original e exclui o temporario. ####################################################################### #excluir o arquivo zone do usuario rm -r /etc/bind/$2.zone #exclui o arquivo zone ###################################################################### #reinicia o serviço DNS sudo /etc/init.d/bind9 restart #restartando o apache pois o site nao faz isso sudo /etc/init.d/apache2 reload
Cria usuário no arquivo /etc/freeradius/users e restarta o serviço.
#!/bin/bash #editando o arquivo de usuarios do radius echo "#$1" >> /etc/freeradius/users echo "$1 Cleartext-Password := \"$1\" " >> /etc/freeradius/users #restartando o radius sudo /etc/init.d/freeradius restart
Exclui usuário do arquivo /etc/freeradius/users
#!/bin/bash #$1 nome do usuario #$2 nome do dominio IFS=$'\n' #Excluir linha no arquivo /etc/bind/named.conf.local echo > /etc/freeradius/exclui.radius.bkp #cria um arquivo temporario flag=0 #flag para verificar quantas linhas serão apagadas do arquivo arq=`cat /etc/freeradius/users` for linha in $arq; do teste=`echo $linha | grep $1` #filtra o nome do dominio #teste que verifica o nome do usuário e exclui seu dominio if ! [ -z $teste ] #testa se nesta linha achou o nome. Se sim seta a flag then flag=1 fi if [ -z $teste ] # se não tiver o nome... then if [ $flag -ge 1 ] #...verifica se a flag ta setada... then flag=$((flag+1)) #incrementa a flag (1) else # ...e se não tiver setada, escreve no arquivo temporario echo "$linha" >> /etc/freeradius/exclui.radius.bkp fi fi #if [ $flag -gt 1 ] #(1) ate chegar a 5, etão zera a flag pq acabaram os campos que pertencem ao usuário # then flag=0 #fi flag=0 done echo > /etc/freeradius/users arquivo=`cat /etc/freeradius/exclui.radius.bkp` for linha1 in $arquivo; do echo "$linha1" >> /etc/freeradius/users #filtra o nome do dominio done echo > /etc/freeradius/exclui.radius.bkp #copia do temp para o original e exclui o temporario. ####################################################################### #reinicia o serviçoPostfix sudo /etc/init.d/freeradius restart
Cria um link simbólico no /etc/apache2/sites-enabled
#!/bin/bash ln -s /etc/apache2/sites-available/$1 /etc/apache2/sites-enabled/$1
Configuração PHP.
Arquivo index, localizado no /var/www/index
<*? session_start(); if (isset($_SESSION['nome'])){ header("location: cadastrar.php"); }else{ ?*> <*html> <*head> <*meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>Hospedagem Web<*/title> <*/head> <*body> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Bem vindo ao sistema Bigodes de inclusão digital! <br
<*img alt="Bigodino" src="1986-mascote-da-copa.jpg" style="display: block; text-align: center; margin-left: auto; margin-right: auto" width="166" height="200">
<*/p> <*form name="formTeste" action="autenticar.php" method="post"> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Usuário:
<*input type="text" name="nome">
<*p style="text-align:center;margin-left:auto;margin-right:auto;">Senha:
<*input type="password" name="senha">
<*p style="text-align:center;margin-left:auto;margin-right:auto;">
<*input type="submit" value="Entrar" name="b_enviar">
<*/form> <*/body> <*/html>
Arquivo de autenticação. Entrando com login e senha do ADMINISTRADOR. /var/www/autenticar.php
<*? session_start(); $usuario = $_POST['nome']; $senha = $_POST['senha']; if (($usuario == "login") && ($senha == "senha")){ $_SESSION['nome'] = $usuario; header("location: listagem2.php"); }else{ header("location: index.php"); } ?*>
Aquivo de listagem Este arquivo mostra os domínios existentes, com opções de incluir, editar e excluir. /var/www/listagem2.php
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else { ?*> <*html> <*head> <*title>Administracão de dminios</title> <*/head> <*body> <*a href= "destroy.php">Sair</a> <*br><*font size="5"><*p style="text-align:center;margin-left:auto;margin-right:auto;">Listagem de usuários cadastrados <*br> <*table style="text-align:center;margin-left:auto;margin-right:auto;" border="1" cellpadding="10"> <*tr align=center> <*td><*font size=5> Nome <*font><*/td> <*td><*font size=5> Dominio <*font><*/td> <*td><*font size=5> Acão <*font><*/td> <*/tr> <*? //conectando no servidor $conexao = mysql_connect("localhost","root","bigode24"); //selecao da base de dados $base_ok = mysql_select_db("bigodes",$conexao); //obtendo os registro da tabela contatos $consulta = "SELECT * from bigodes"; $resultado = mysql_query($consulta,$conexao); //percorrendo a linhas obtidas pela consulta while($linha = mysql_fetch_array($resultado)){ echo "<*tr align=center> <*td>"; echo "<*a href='alterar.php?codigo=" . $linha['codigo'] . "'>"; echo "". $linha['nome']. "<*/a>"; echo "<*/td> <*td>"; echo $linha['dominio']; echo "<*/td> <*td>"; echo "<*a href='confirma_excluir.php?codigo=" . $linha['codigo'] . "'>"; echo " Excluir <*/a>"; echo "<*/td> <*/tr>"; } //liberando a consulta mysql_free_result($resultado); //fechando a conexao mysql_close($conexao); ?*> <*/table> <*P style="text-align:center;margin-left:auto;margin-right:auto;"><a href="cadastrar.php">Adicionar novo dominio</a>
<*img alt="Bigodino" src="1986-mascote-da-copa.jpg" style="float: right" width="366" height="400"> <*/body> <*/html> <*? } ?*>
Visualizar os campos para incluir os dados do novo usuário.
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else{ ?> <*html> <*head> <*title>Adicionar Cliente<*/title> <*/head> <*body> <*p><a href= "listagem2.php">Voltar<*/a> <*center>Adicionar Usuário e Domínio<*br><*br> <*form name="formTeste" action="teste_dominio.php" method="post"> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Nome do cliente:
<*input type="text" name="nome"> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Dominio:
<*input type="text" name="dominio"> .bigodes.sj.ifsc.edu.br <*p style="text-align:center;margin-left:auto;margin-right:auto;"> <*input type="submit" name="b_enviar" value="Criar">
<*/form> <*/body> <*/html> <*? } ?>
Adicionar usuário no sistema. /var/www/listagem.php
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else { $nome=$_SESSION['nome3']; $dominio=$_SESSION['dominio3']; $conexao = mysql_connect("localhost","root","bigode24") or die ("erro na conexÃo"); //selecao da base de dados radius $base_ok = mysql_select_db("bigodes",$conexao) or die ("erro na base"); //inserindo um registro - reparar que aqui esta' esta' sendo incluido o dominio, junto com a variavel $dominio $inserir = "INSERT INTO bigodes (nome,dominio) VALUES ('$nome','$dominio.bigodes.sj.ifsc.edu.br')"; mysql_query($inserir,$conexao) or die ("erro no query"); //fechando a conexao mysql_close($conexao); // criando o diretorio para o apache $diretorio = "/var/www/$nome"; if(mkdir($diretorio)) //criando o arquivo index.html para o usuarioi $arquivo = fopen("/var/www/$nome/index.html" , "a"); //nome para colocar no titulo do site do usuario fwrite($arquivo, "<*html><*head><*title>Bem Vindo $nome !!<*/title><*/head>\n"); // colocar o que deseja no site do cliente fwrite($arquivo, "<*body> <*body bgcolor=#2E8B57> <*h1> <*center> <*b> Bem vindo $nome!! <*br> <*/h1> Você acaba de adquirir uma assinatura com a empresa Bigodes Solutions, <*br> onde você terá sua página totalmente personalizada e uma conta de e-mail totalmente grátis. <*br> <*br> Você está visualizando sua pagina inicial, que atualmente está com a nossa configuração, <*br> você poderá acessar com o dominio escolhido www.$dominio.bigodes.sj.ifsc.edu.br. em qualquer lugar que tenha acesso a internet. <*br> <*br> DESENVOLVEDORES: <*br> Ademir Lucilio<*br> Amarildo Junkes<*br> Augusto Buttemberg<*br> Daniel Arndt<*br> Evandro Schutz<*br> Maicon Guesser <*br> <*br> Para alterar a página e deixá-la como você precisa, basta entrar em contato com um de nossos desenvolvedores, clicando no link abaixo e já usufruindo da sua conta de e-mail.<*br> <*a href=http://www.webmail.bigodes.sj.ifsc.edu.br target=_blank> Webmail Bigodes Solutions <*/a><*br> <*EMBED SRC=/var/www/relogiodigital.swf bgcolor=#2E8B57 align=left width=150 height=150> <*br> <*br> <*br> <*center><*h1>Bigodes Solutions <*/body> <*/html>"); fclose($arquivo); $apache = fopen("/etc/apache2/sites-available/$nome" , "a"); fwrite($apache, " <*VirtualHost *:80> ServerName $dominio.bigodes.sj.ifsc.edu.br DocumentRoot /var/www/$nome ServerAlias *$dominio.bigodes.sj.ifsc.edu.br ErrorLog /var/log/apache2/$nome-error.log <*Directory /var/www/$nome> Options Indexes DirectoryIndex index.html index.php order allow,deny allow from all <*/Directory> <*/VirtualHost>"); fclose($apache); //criando usuario radius $radius = "/etc/scripts/radius.sh"; shell_exec("$radius $nome"); //criando link simbolico para o apache $script = "/etc/scripts/apache.sh"; shell_exec("$script $nome"); //criando arquivo de dns //apenas inseri a script, nao sei se a script esta' ok $dns = "/etc/scripts/cria_dominio.sh"; shell_exec("$dns $nome $dominio"); //criando o e-mail $email = "/etc/scripts/cria_email.sh"; shell_exec("$email $nome $dominio"); echo header("location: cadastrar.php"); } ?>
Arquivos de alterações dos dados de clientes. /var/www/alterar.php abre a base de dados para exibir nome e domínio atual e encaminha os novos dados para o arquivo listagem_alterar.php
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else{ $codigo=$_GET['codigo']; $conexao = mysql_connect("localhost","root","bigode24"); //selecao da base de dados $base_ok = mysql_select_db("bigodes",$conexao); //apresenta os valores antigos na caixa de texto $resultado = mysql_query("SELECT nome,dominio FROM bigodes WHERE codigo = '$codigo'"); $row = mysql_fetch_row($resultado); $nome = $row[0]; $dominio = $row[1]; //separar a varialvel dominio pelo "." para nao aparecer o ".bigodes.sj.ifsc.edu.br" $array=explode(".",$dominio); //pega a primeira palavra do subdominio e joga novamente em dominio $dominio=$array[0]; //fechando a conexao mysql_close($conexao); ?> <*html> <*head> <*title>Alterar<*/title> <*/head> <*body> <*p><*a href= "listagem2.php">Voltar<*/a><*br> <*center>Alterar Usuário ou Dominio<*br><*br> <*form name="formTeste" action="listagem_alterar.php" method="GET"> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Nome do Usuário:
<*INPUT TYPE=TEXT NAME="nome2" VALUE="<*? echo $nome; ?>"><*br><*br> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Dominio:<*br> <*INPUT TYPE=TEXT NAME="dominio2" VALUE="<*? echo $dominio; ?>"> .bigodes.sj.ifsc.edu.br <*br> <*input type="hidden" name="codigo2" value="<? echo " $codigo" ?>" > <*br> <*p style="text-align:center;margin-left:auto;margin-right:auto;"><*input type="submit" name="submit" value="Alterar Dados" > <*/form> <*/body> <*/html> <?
Arquivo que testa a existencia do usuário, domínio e se possui campo em braco. /var/www/teste_dominio
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else { $nome=$_POST['nome']; $dominio=$_POST['dominio']; if ( $nome == || $dominio == ) { echo "Nao deixe campos em branco!"; ?> <*html><*body> <*br><*br> <*a href= "cadastrar.php">Voltar<*/a> <*? }else{ $conexao = mysql_connect("localhost","root","bigode24") or die ("erro na conex�o"); $base_ok = mysql_select_db("bigodes",$conexao) or die ("erro na base"); $consulta = "SELECT dominio FROM bigodes WHERE dominio = '$dominio.bigodes.sj.ifsc.edu.br'"; $resultado = mysql_query($consulta,$conexao); $row = mysql_fetch_row($resultado); $teste = $row[0]; $consulta2 = "SELECT nome FROM bigodes WHERE nome = '$nome'"; $resultado2 = mysql_query($consulta2,$conexao); $row = mysql_fetch_row($resultado2); $teste2 = $row[0]; mysql_close($conexao); if ( $teste == && $teste2 == ) { $_SESSION['nome3']=$nome; $_SESSION['dominio3']=$dominio; header("location: listagem.php"); }else{ //o resultado que aparece quando ja existe o dominio escolhido echo "<*font size=5> Dominio ou Nome ja existe. <*br> Adicione novo dominio ou nome! <*/font>"; ?> <*br> <*br> <*a href= "cadastrar.php">Voltar<*/a> <*/body> <*/html> <*? } } } ?>
Aparece o campo "confirma excluir" /var/www/confirma_excluir
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else { $codigo=$_GET['codigo']; } ?> <*html> <*head> <*title>Confirmar Exclusão<*/title> <*/head> <*body> <*? $conexao = mysql_connect("localhost","root","bigode24") or die ("erro na base"); //selecao da base de dados $base_ok = mysql_select_db("bigodes",$conexao) or die ("erro na base"); $consulta = "SELECT nome from bigodes WHERE codigo='$codigo'"; $resultado = mysql_query($consulta,$conexao); while($linha = mysql_fetch_array($resultado)){ $nome = $linha["nome"]; } //fechando a conexao mysql_close($conexao); ?> <*br> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Você realmente deseja excluir o cliente "<*? echo "$nome" ?>" ? <*br> <*br><*br> <*? echo "<*a href='excluir.php?codigo=" . $codigo . "'>Sim<*/a>" ?> <*p style="text-align:center;margin-left:auto;margin-right:auto;"><*a href="listagem2.php">Nao<*/a> <*/body> <*/html>
Exclui os dados do cliente /var/www/excluir.php
<*? session_start(); if (!isset($_SESSION['nome'])){ header("location: index.php"); }else { $codigo=$_GET['codigo']; } ?> <*html> <*head> <*title>Confirmar Exclusão<*/title> <*/head> <*body> <*? $conexao = mysql_connect("localhost","root","bigode24") or die ("erro na base"); //selecao da base de dados $base_ok = mysql_select_db("bigodes",$conexao) or die ("erro na base"); $consulta = "SELECT nome from bigodes WHERE codigo='$codigo'"; $resultado = mysql_query($consulta,$conexao); while($linha = mysql_fetch_array($resultado)){ $nome = $linha["nome"]; } //fechando a conexao mysql_close($conexao); ?> <*br> <*p style="text-align:center;margin-left:auto;margin-right:auto;">Você realmente deseja excluir o cliente "<*? echo "$nome" ?>" ?
<*br><*br> <*? echo "<*a href='excluir.php?codigo=" . $codigo . "'>Sim<*/a>" ?> <*p style="text-align:center;margin-left:auto;margin-right:auto;"><*a href="listagem2.php">Nao<*/a> <*/body> <*/html>