|
|
Linha 275: |
Linha 275: |
| *Criado pagina em HTML (www.true.sj.ifsc.edu.br) | | *Criado pagina em HTML (www.true.sj.ifsc.edu.br) |
| *Criado: | | *Criado: |
− |
| |
− | - Alterar
| |
− |
| |
− | - Atualizar
| |
− |
| |
− | - Login
| |
− |
| |
− | - Buscar
| |
− |
| |
− | - Cadastrar
| |
− |
| |
− | - Excluir
| |
− |
| |
− | *Scripts:
| |
− |
| |
− | Script para exclusão dos usuários do Radius:
| |
− |
| |
− | Adicionado na crontab
| |
− |
| |
− | #!/bin/bash
| |
− | data=`date +%F`
| |
− | sed -i /\#$data/,+5d teste
| |
− |
| |
− |
| |
− | == Atualizar ==
| |
− | * atualizar.php
| |
− | <?
| |
− | session_start();
| |
− | ?>
| |
− |
| |
− | <?
| |
− |
| |
− | if ($_SESSION['autenticado'] == "certo"){
| |
− |
| |
− | $nome = $_POST['nome'];
| |
− | $rg = $_POST['rg'];
| |
− | $cpf = $_POST['cpf'];
| |
− | $email = $_POST['email'];
| |
− | $telefones = $_POST['telefones'];
| |
− | $data_de_entrada = $_POST['data_de_entrada'];
| |
− | $data_de_saida = $_POST['data_de_saida'];
| |
− | $dias_de_hospedagem = $_POST['dias_de_hospedagem'];
| |
− | $quarto = $_POST['quarto'];
| |
− | $conexao = mysql_connect("localhost","********",";******;");
| |
− |
| |
− | $base_ok = mysql_select_db("hotel",$conexao) ;
| |
− |
| |
− | $atualizar = "update usuarios set nome='$nome', rg='$rg', cpf='$cpf', email='$email',
| |
− | telefones='$telefones',
| |
− | data_de_entrada= '$data_de_entrada',
| |
− | data_de_saida='$data_de_saida',
| |
− | dias_de_hospedagem='$dias_de_hospedagem',
| |
− | quarto='$quarto' where codigo='$_POST[cod]'";
| |
− |
| |
− | mysql_query($atualizar,$conexao);
| |
− |
| |
− | mysql_close($conexao);
| |
− | echo "<script> window.location='agenda3.php' </script>";
| |
− |
| |
− | ?>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− | }
| |
− | ?>
| |
− |
| |
− | == Alterar ==
| |
− | * alterar.php
| |
− | <?
| |
− | session_start();
| |
− | ?>
| |
− | <html>
| |
− | <head>
| |
− | <title>alterando os usuarios</title>
| |
− | </head>
| |
− | <body>
| |
− | <center>
| |
− |
| |
− | <h1>Alterar</h1></center><P>
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo"){
| |
− | $cod = $_GET['cod'];
| |
− | $conexao = mysql_connect("localhost","********",";********;");
| |
− | $base_ok = mysql_select_db("hotel",$conexao);
| |
− | $consulta = "SELECT * from usuarios where codigo=$cod";
| |
− | $resultado = mysql_query($consulta,$conexao);
| |
− | while ($linha = mysql_fetch_array($resultado)){
| |
− | $nome=$linha['nome'];
| |
− | $rg=$linha['rg'];
| |
− | $cpf=$linha['cpf'];
| |
− | $email=$linha['email'];
| |
− | $telefones=$linha['telefones'];
| |
− | $data_de_entrada=$linha['data_de_entrada'];
| |
− | $data_de_saida=$linha['data_de_saida'];
| |
− | $dias_de_hospedagem=$linha['dias_de_hospedagem'];
| |
− | $quarto=$linha['quarto'];
| |
− | }
| |
− | ?>
| |
− |
| |
− | <center>
| |
− | <form name="alterar" action="atualizar.php"method="post">
| |
− | <p>Nome: <br>
| |
− | <input type="text"name="nome" value=<? echo $nome; ?>
| |
− | <p>RG: <br>
| |
− | <input type="text" name="rg" value=<? echo $rg; ?>
| |
− | <p>CPF: <br>
| |
− | <input type="text" name="cpf" value=<? echo $cpf; ?>
| |
− | <p>Email: <br>
| |
− | <input type="text" name="email" value=<? echo $email; ?>
| |
− | <p>Telefones: <br>
| |
− | <input type="text" name="telefones" value=<? echo $telefones; ?>
| |
− | <p>Data de Entrada: <br>
| |
− | <input type="text" name="data_de_entrada" value=<? echo $data_de_entrda; ?>
| |
− | <p>Data de Saida: <br>
| |
− | <input type="text" name="data_de_saida" value=<? echo $data_de_saida; ?>
| |
− |
| |
− | <p>Dias de Hospedagem: <br>
| |
− | <input type="text" name="dias_de_hospedagem" value=<? echo $dias_de_hospedagem; ?>
| |
− | <p>Quarto: <br>
| |
− | <input type="text" name="quarto" value=<? echo $quarto; ?>
| |
− |
| |
− | <input type="hidden" name="cod" value=<? echo $cod; ?>
| |
− | <br>
| |
− | <input type="submit" name="b_OK" value="OK">
| |
− | </form>
| |
− | <form name="voltar" action="listarcontatos3.php" method="post">
| |
− | <input type="submit"name="b_voltar" value="Voltar"></center>
| |
− | </body>
| |
− | </html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− | }
| |
− | ?>
| |
− |
| |
− | == Cadastrar ==
| |
− | * cadastrar.php
| |
− | <?
| |
− | session_start();
| |
− | ?>
| |
− | <html>
| |
− | <head>
| |
− | <title>cadastro de usuarios</title>
| |
− | </head>
| |
− | <body>
| |
− | == Buscar ==
| |
− | *buscar.php
| |
− |
| |
− | <?
| |
− | session_start();
| |
− | ?>
| |
− | <html>
| |
− | <head>
| |
− | <title>busca de usuarios</title>
| |
− | </head>
| |
− | <body>
| |
− |
| |
− | <h1><center>busca de usuarios</center></h1>
| |
− | <?
| |
− | if ($_SESSION['autenticado'] =="certo") {
| |
− | ?>
| |
− |
| |
− | <form name="digite_o_cpf" action="buscar2.php"method="post">
| |
− | <p>Digite o CPF: <br<
| |
− | <input type="text"name="digite_o_cpf">
| |
− |
| |
− | <input type="submit" name="b_buscar" value="buscar">
| |
− | </form>
| |
− |
| |
− | <form name="voltar" action="agenda3.php" method="post">
| |
− | <input type="submit" name="b_voltar" value="Voltar">
| |
− | </form">
| |
− | <?
| |
− | }else{
| |
− | echo "<script>window.location='login1.php'</script">";
| |
− | }
| |
− | ?">
| |
− | </body">
| |
− | </html>
| |
− | ">
| |
− |
| |
− | == Buscar2 ==
| |
− | *buscar2.php
| |
− |
| |
− | ?
| |
− | session_start();
| |
− | ?>
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo") {
| |
− | ? >
| |
− |
| |
− | <html>
| |
− | <head>
| |
− | <title>buscando contatos</title>
| |
− | </head>
| |
− | <body>
| |
− | <center> <h1>Contatos</h1> </center> <P>
| |
− | <center>
| |
− | <?
| |
− |
| |
− | $cpf=$_POST['digite_o_cpf'];
| |
− | $conexao = mysql_connect("localhost","********",";********;");
| |
− |
| |
− | $base_ok = mysql_select_db("hotel",$conexao);
| |
− | $consulta = "select * from usuarios where cpf = '$cpf'";
| |
− | $resultado = mysql_query($consulta,$conexao);
| |
− |
| |
− | while($linha = mysql_fetch_array($resultado)){
| |
− | echo " <BR>codigo: " . $linha['codigo'];
| |
− | echo "<BR>nome: " . $linha['nome'];
| |
− | echo "<BR>rg: " . $linha['rg'];
| |
− | echo "<BR>CPF: " . $linha['cpf'];
| |
− | echo "<BR>Email: " . $linha['email'];
| |
− | echo "<BR>Telefones: " . $linha['telefones'];
| |
− | echo "<BR>Data de Entrada: " . $linha['data_de_entrada'];
| |
− | echo "BR>Data de Saida: " . $linha['data_de_saida'];
| |
− | echo "<BR>Dias de Hospedagem: " . $linha['dias_de_hospedagem'];
| |
− | echo "<BR>Quarto: " . $linha['quarto'];
| |
− | echo "<BR> <a href=excluir.php?cod=$linha[codigo] >EXCLUIR</a>";
| |
− | echo "<BR> <a href=alterar.php?cod=$linha[codigo] >ALTERAR</a>";
| |
− | ? >
| |
− | center>
| |
− | <form name="voltar" action="buscar.php" method="post">
| |
− | <input type="submit"name="b_voltar" value="Voltar"></center>
| |
− | <?
| |
− | echo
| |
− | "<BR><BR><BR>";
| |
− |
| |
− | }
| |
− | mysql_free_result($resultado);
| |
− |
| |
− | mysql_close($conexao);
| |
− |
| |
− | ? >
| |
− | </center>
| |
− | </body>
| |
− | </html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− | }?>
| |
− |
| |
− | == Excluir ==
| |
− | *excluir.php
| |
− |
| |
− | <?
| |
− | session_start();
| |
− | ? >
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo"){
| |
− | ? >
| |
− | <html>
| |
− | <?
| |
− | $cod = $_GET['cod'];
| |
− |
| |
− | $conexao = mysql_connect("localhost","********",";********;");
| |
− |
| |
− | $base_ok = mysql_select_db("hotel",$conexao);
| |
− |
| |
− | $deletar = "delete from usuarios where codigo=$cod";
| |
− | mysql_query($deletar,$conexao);
| |
− |
| |
− | mysql_close($conexao);
| |
− | echo "<script> window.location= 'listarcontatos3.php'</script>";
| |
− | ? >
| |
− | </html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− |
| |
− | }
| |
− | ? >
| |
− |
| |
− | == Sair ==
| |
− | *sair.php
| |
− |
| |
− | <?
| |
− | session_start();
| |
− | session_destroy();
| |
− | ?>
| |
− |
| |
− | <html>
| |
− | <script>window.location='index.html';</script>
| |
− | </HTML>
| |
− |
| |
− | == Tabela ==
| |
− | *tabela.php
| |
− |
| |
− | <
| |
− | session_start();
| |
− | ? >
| |
− |
| |
− |
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo"){
| |
− |
| |
− | $nome=$_POST['NOME'];
| |
− | $rg=$_POST['RG'];
| |
− | $cpf=$_POST['CPF'];
| |
− | $email=$_POST['EMAIL'];
| |
− | $telefone=$_POST['TELEFONES'];
| |
− | $data_de_entrada=$_POST['DATA_DE_ENTRADA'];
| |
− | $data_de_saida=$_POST['DATA_DE_SAIDA'];
| |
− | $dias_de_hospedagem=$_POST['DIAS_DE_HOSPEDAGEM'];
| |
− | $quarto=$_POST['QUARTO'];
| |
− |
| |
− | $conexao = mysql_connect("localhost","********",";********;");
| |
− |
| |
− |
| |
− | $base_ok = mysql_select_db("hotel",$conexao);
| |
− |
| |
− | $inserir = "INSERT INTO usuarios (nome,rg,cpf,email,telefones,data_de_entrada,data_de_saida,dias_de_hospedagem,quarto) VALUES
| |
− | ('$nome','$rg','$cpf','$email','$telefone','$data_de_entrada','$data_de_saida','$dias_de_hospedagem' ,'$quarto')";
| |
− |
| |
− | mysql_query($inserir,$conexao);
| |
− |
| |
− | mysql_close($conexao);
| |
− | ? > <br>
| |
− | < br>
| |
− | <br>
| |
− | <html><h1><center>USUARIO CADASTRADO COM SUCESSO! </h1></center>
| |
− | <body><center><form name="Voltar" action="agenda3.php"method="post">
| |
− | <input type="submit"name="b_voltar" value="Voltar">
| |
− | </form></center></body></html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− | }
| |
− | ? >
| |
− | == Autenticar ==
| |
− | *autenticar2.php
| |
− |
| |
− | HTML>
| |
− | <body>
| |
− | <?
| |
− | session_start();
| |
− | ? >
| |
− | <
| |
− | if ( ($_POST['nome']=="********") && ($_POST['senha']=="********") ){
| |
− | $_SESSION['autenticado'] = "certo";
| |
− | echo "<script>> window.location='agenda3.php' < script>
| |
− | ? >
| |
− | <?
| |
− | }else{
| |
− | if (isset($_POST['nome'])){
| |
− | $_SESSION['autenticado'] = "errado";
| |
− | }
| |
− | echo "<script> window.location='login1.php' < script>";
| |
− | }
| |
− | ? >
| |
− | < body>
| |
− | < html>
| |
− | == Agenda ==
| |
− | *agenda.php
| |
− |
| |
− | <?
| |
− | session_start();
| |
− | ?>
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo"){
| |
− | ? >
| |
− | < html>
| |
− | < head>
| |
− | <title>Sistema de usuarios< </title>
| |
− | < head>
| |
− | < body>< img src="images/img03.gif">
| |
− | < h1>< center><HOME< center>< h1>
| |
− | < center>
| |
− | < form name="cadastrar" action="cadastrar4.php" method="post">
| |
− | < input type="submit"name="b_cadastrar" value="cadastrar">
| |
− | </form>
| |
− | < form name="Listar"action="listarcontatos3.php" metod="post">
| |
− | < input type="submit" name="b_listar" value="Listar">
| |
− | < form>
| |
− | < form name="buscar" action="buscar.php"metod"post">
| |
− | < input type="submit" name="b_buscar" value="buscar">
| |
− | </form>
| |
− | < form name="Sair" action="sair.php"metod"post">
| |
− | <input type="submit" name="b_Sair" value="Sair">
| |
− | </form>
| |
− | </center>< body>
| |
− | </html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php' </script>";
| |
− | }
| |
− | >
| |
− |
| |
− | == Contatos ==
| |
− | *listarcontatos3.php
| |
− |
| |
− | ?
| |
− | session_start();
| |
− |
| |
− | ?>
| |
− | <?
| |
− | if ($_SESSION['autenticado'] == "certo") {
| |
− | ?>
| |
− |
| |
− | <html>
| |
− | <head>
| |
− | <title>Lista de Clientes</title>
| |
− | </head>
| |
− | <body>
| |
− | <center><h1>Clientes</h1></center><P>
| |
− | <center>
| |
− | <?
| |
− |
| |
− | $conexao = mysql_connect("localhost","********",";********;");
| |
− |
| |
− | $base_ok = mysql_select_db("hotel",$conexao);
| |
− | $consulta = "select * from usuarios";
| |
− | $resultado = mysql_query($consulta,$conexao);
| |
− |
| |
− | while($linha = mysql_fetch_array($resultado)){
| |
− | echo " <BR>Codigo: " . $linha['codigo'];
| |
− | echo "<BR>Nome: " . $linha['nome'];
| |
− | echo "<BR>RG: " . $linha['rg'];
| |
− | echo "<BR>CPF: " . $linha['cpf'];
| |
− | echo "<BR>Email: " . $linha['email'];
| |
− | echo "<BR>Telefones: " . $linha['telefones'];
| |
− | echo "<BR>Data de Entrada: " . $linha['data_de_entrada'];
| |
− | echo "<BR>Data de Saida: " . $linha['data_de_saida'];
| |
− | echo "<BR>Dias de Hospedagem: " . $linha['dias_de_hospedagem'];
| |
− | echo "<BR>Quarto: " . $linha['quarto'];
| |
− | echo "<BR><a href=excluir.php?cod=$linha[codigo]>excluir</a>";
| |
− | echo " / ";
| |
− | echo "<a href=alterar.php?cod=$linha[código>alterar</a>";
| |
− | ?>
| |
− | <center>
| |
− | <form name="voltar" action="agenda3.php" method="post">
| |
− | <input type="submit"name="b_voltar" value="Voltar"</center>
| |
− | <?
| |
− | echo "<BR><BR><BR>";
| |
− |
| |
− | }
| |
− | mysql_free_result($resultado);
| |
− |
| |
− | mysql_close($conexao);
| |
− | ?>
| |
− | </center></body>
| |
− | </html>
| |
− | <?
| |
− | }else{
| |
− | echo "<script> window.location='login1.php'</script>";
| |
− | }
| |
− | ?>
| |
Cabeamento Estruturado - CBE
- Passagem cabo UTP cat 5e, laboratório de meios de transmissão para redes II.
Atividade envolvendo todas as equipes.
Crimpagem de cabos no Patch Panel.
Passagem de cabeamento secundário.
Cordões de manobra(Patch Cord)
Gerência de Redes - GER
Profº Ederson Torresini
Sistema Operacional
Banco de Dados
Serviços instalados
Servidor de E-mail + IMAP:
Postfix
Uw-imapd
Servidor DNS:
Bind9
Servidor DHCP:
DHCP3-server
Servidor WEB:
Apache2
Acesso remoto:
Sshd
Servidor de autenticação:
FreeRadius
Controle e Monitoração:
Snmpd
Cacti
Comunicador Instantâneo:
OpenFire
Interfaces
eth0 Link encap:Ethernet HWaddr 00:11:d8:d4:94:ea
inet addr:200.135.37.114 Bcast:200.135.37.127 Mask:255.255.255.192
eth0.40 Link encap:Ethernet HWaddr 00:11:d8:d4:94:ea
inet addr:10.4.1.1 Bcast:10.4.1.255 Mask:255.255.255.0
eth0.45 Link encap:Ethernet HWaddr 00:11:d8:d4:94:ea
inet addr:10.4.2.1 Bcast:10.4.2.255 Mask:255.255.255.0
eth0.100 Link encap:Ethernet HWaddr 00:11:d8:d4:94:ea
inet addr:10.4.10.1 Bcast:10.4.10.255 Mask:255.255.255.0
Tabela de Roteamento
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
200.135.37.64 0.0.0.0 255.255.255.192 U 0 0 0 eth0
10.4.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.40
10.4.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.45
10.4.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.100
0.0.0.0 200.135.37.126 0.0.0.0 UG 100 0 0 eth0
Configuraçao de arquivos
DHCP
apt-get install dhcp3-server
dhcpd.conf
#/etc/dhcp3/dhcpd.conf
subnet 10.4.1.0 netmask 255.255.255.0 {
#IP
range 10.4.1.128 10.4.1.138;
#Máscara
option subnet-mask 255.255.255.0;
#Broadcast
option broadcast-address 10.4.1.255;
#Rota-padrão
option routers 10.4.1.1;
#DNS
option domain-name-servers 200.135.37.114;
}
subnet 10.4.2.0 netmask 255.255.255.0 {
#IP
range 10.4.2.128 10.4.2.138;
#Máscara
option subnet-mask 255.255.255.0;
#Broadcast
option broadcast-address 10.4.2.255;
#Rota-padrão
option routers 10.4.2.1;
#DNS
option domain-name-servers 200.135.37.114;
}
subnet 10.4.10.0 netmask 255.255.255.0 {
#IP
range 10.4.10.128 10.4.10.138;
#Máscara
option subnet-mask 255.255.255.0;
#Broadcast
option broadcast-address 10.4.10.255;
#Rota-padrão
option routers 10.4.10.1;
#DNS
option domain-name-servers 200.135.37.114;
DNS
apt-get install bind9
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 "true.sj.ifsc.edu.br" {
type master;
file "/etc/bind/true.sj.ifsc.edu.br";
};
zone "37.135.200.in-addr.arpa" {
type master;
file "/etc/bind/37.135.200.in-addr.arpa";
};
true.sj.ifsc.edu.br
$TTL 86400
@ IN SOA dns.true.sj.ifsc.edu.br. true.true.sj.ifsc.edu.br. (
2009062200 ; Serial
1d ; Refresh
4h ; Retry
1w ; Expire
1d ) ; Negative Cache TTL
; nome dos dns
@ IN NS dns
; Servidor de email ; Mail eXchanger
@ IN MX 0 mail
mail IN A 200.135.37.114
; adress: endereço
dns IN A 200.135.37.114
www IN A 200.135.37.114
37.135.200.in-addr.arpa
$TTL 86400
@ IN SOA dns.true.sj.ifsc.edu.br. true.true.sj.ifsc.edu.br. ( ; Start of Authority
2009062200 ;Thiego Vierira ; Serial
1d ; Refresh
4h ; Retry
4w ; Expire
1d ) ; Negative Cache TTL
;Servidores DNS
@ IN NS dns.true.sj.ifsc.edu.br.
;Servidor de email; Mail eXchanger
@ IN MX 0 mail.true.sj.ifsc.edu.br.
;Address ; endereco
114 IN PTR dns.true.sj.ifsc.edu.br.
114 IN PTR mail.true.sj.ifsc.edu.br.
114 IN PTR www.true.sj.ifsc.edu.br.
SMTP/IMAP
apt-get install postfix
main.cf
# Usado principalmente no envio das mensagens
myhostname = mail.true.sj.ifsc.edu.br
mydomain = true.sj.ifsc.edu.br
# Quem pode enviar
mynetworks = 127.0.0.0/8 10.4.2.0/24
relayhost =
inet_interfaces = all
# Tratamento dos cabeçalhos a serem enviados
append_dot_mydomain = no
recipient_delimiter = +
# Usado principalmente no recebimento das mensagens
smtpd_banner = $myhostname ESMTP Qmail - Kurumin
mydestination = mail.true.sj.ifsc.edu.br, localhost.true.sj.ifsc.edu.br, localhost, true.sj.ifsc.edu.br
#
# Quotas
mailbox_size_limit = 0
#
# Apelidos de usuários
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# Segurança com TLS
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
RADIUS
Arquivo users:
O hóspede terá como login o nome e sua senha o CPF.
aluno Cleartext-Password := "aluno"
Tunnel-Type = "VLAN",
Tunnel-Medium-Type = "IEEE-802",
Tunnel-Private-Group-ID = "5"
Arquivo clients.conf
Exemplo de arquivo de configuração.
Cada switch e AP terão seus dados cadastrados neste formato.
client 200.135.37.66 {
ipaddr = 200.135.37.66
shortname = teste
secret = 123456
nastype = other
}
Instalação de Equipamentos de Redes - IER
Profº Marcelo Sobral
Configuração de Switch A e B:
vconfig add eth0 VID
Funcionários:45
Hóspedes:40
Visitantes:100
- Criação de Vlans no servidor True:
vconfig add interface VID
- Configurado servidor Radius nos Switchs:
Security Management -> Port Access Entity -> RADIUS.
obs.: Devido a falta de equipamentos, foi configurado um servidor Radius-Proxy pelos professores, onde este fará o direcionamento para o servidor das equipes. Logo a configuração nos Switchs foi direcionada ao servidor Proxy.
Programação para redes de Computadores - PRC
- Criado pagina em HTML (www.true.sj.ifsc.edu.br)
- Criado: