Mudanças entre as edições de "Projeto Integrador - 2011.1 - Bigodes"
Linha 425: | Linha 425: | ||
sudo /etc/init.d/bind9 restart | sudo /etc/init.d/bind9 restart | ||
#restartar o apache pois o site nao faz | #restartar o apache pois o site nao faz | ||
+ | sudo /etc/init.d/apache2 reload | ||
+ | |||
+ | '''Exclui usuário 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 | sudo /etc/init.d/apache2 reload |
Edição das 13h58min 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-availavre/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);
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 usuário 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 usuário 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