manual servidor debian
DESCRIPTION
Instructions for installing various services in debian 7:1 ssh> Server remote control console2 dhcp-> Dynamic Server IP3 DNS-> domain name server4 NTP-> Server date and time5 SSL-> Support for various protocols for secure data transmission, encrypted6 HTTP / HTTPS and> Server static websites7 php-> Support HTTP server for dynamic web pages8 FTP-> File Server FTP9 SMTP-> Server sent to and forwarding emails10 IMAP-> Server to receive and deliver e-mails11 SMB-> File Server12 PRINTER> Print Server13 database-> Server databases Postgresql14 MONITOR WEB-> This service provides statistical information through a websiteTRANSCRIPT
1 INDICE DEL MANUAL DE SERVICIOS EN DEBIAN 7.5
NOTA: Lea todas las notas :), puede salvarle la vida.
NOTA 2: En este documento se entiende que lo que sigue después de la flecha -> es un comentario o descripción
para explicar lo que se está haciendo, no se debe escribir en consola ni en ninguna otra parte.
1 SSH -> Servidor de control remoto por consola
2 DHCP -> Servidor de IP dinámica
3 DNS -> Servidor de nombres de dominio
4 NTP -> Servidor de fecha y hora
5 SSL -> Apoyo a diversos protocolos para transmisión de datos seguros, encriptados
6 HTTP/HTTPS -> Servidor de páginas web estáticas
7 PHP -> Apoyo al servidor HTTP para páginas web dinámicas
8 FTP -> Servidor de archivos mediante FTP
9 SMTP -> Servidor para envió y reenvió de correos electrónicos
10 IMAP -> Servidor para recibir y entregar correos electrónicos
11 SMB -> Servidor de archivos
12 IMPRESORA -> Servidor de impresoras
13 BASE DE DATOS -> Servidor de bases de datos Postgresql
14 MONITOR WEB -> Este servicio provee información estadística mediante una página web
/*******/*********/*************/*******************/**************/*************/
2 ACCIONES UTILES ANTES DE INSTALAR LOS SERVICIOS
NOTA: Toda línea iniciada con la cadena "user: #" indica que lo que sigue después del signo # es una instrucción
que se debe escribir en consola para realizar una acción, cuide de solo copiar lo que sigue después del signo #.
NOTA 2: El programa "nano" es un editor de texto, en este documento se encierra entre paréntesis los cambios
que se han hecho al documento que se ha abierto, numerando los cambios que hay que hacer, este número no
indica la línea ni la posición del texto a modificar, este se debe encontrar inspeccionando el archivo de texto,
además se añade una referencia al final de los paréntesis indicando si el texto contenido existe o hay que añadirlo.
2.1 ASIGNAR IP ESTATICA AL SERVIDOR
user: # nano /etc/network/interfaces
1 (iface eth0 inet static) -> cambia de dhcp a static
1
2(
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
)-> añadir texto al final del documento, cambie los datos según su red.
2.2 INSTALAR NAVEGADOR WEB POR CONSOLA
user: # aptitude install w3m
2.3 INSTALAR CLIENTE TELNET PARA PROBAR SERVICIOS
user: # aptitude install telnet
2.4 AGREGAR NUEVOS USUARIOS
user: # adduser adminis
user: # adduser impresiones
user: # adduser usuario1
user: # adduser usuario2
user: # adduser usuario3
/****/***********/**************/************/************/*************/********/
3 INSTALACION DE SERVICIOS
NOTA: El orden de instalación no afecta el funcionamiento final, pero el orden sugerido puede facilitar el
procedimiento de instalación.
NOTA 2: la instrucción "cp" es para copiar archivo, lo que se busca en este caso es hacer una copia de respaldo del
texto que tenia cada archivo antes de que lo modifiquemos por si nos equivocamos, solamente lo copiamos de
nuevo del archivo de respaldo
3.1 SERVICIO SSH
user: # aptitude install openssh-server openssh-client
user: # cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori
2
user: # nano /etc/ssh/sshd_config
1 (ListenAddress 192.168.0.2 ) -> Cambiar según sea la IP del servidor
2 (PermitRootLogin no ) -> Cambiar para evitar que se entre directamente como root
user: # /etc/init.d/ssh restart -> Reinicia el servicio para aplicar los cambios
3.11 RESULTADO DE SSH
-> Ahora puede usarlo para acceder desde los clientes linux con el comando:
user: # ssh -l adminis 192.168.0.2
-> y continuar el resto del proceso en un ambiente mas cómodo con navegador web y demás herramientas.
3.2 SERVICIO DHCP
user: # aptitude install isc-dhcp-server
user: # cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.ori
user: # nano /etc/default/isc-dhcp-server
1 ( INTERFACES="eth0" ) ->cambiar el contenido según la interfaz de red donde se dará dhcp
user: # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.ori
user: # nano /etc/dhcp/dhcpd.conf
1 (
# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.5 192.168.0.95;
option domain-name-servers 192.168.0.2;
option domain-name "ns1.mr2.edu";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
3
) -> Cambiar según la información de su red
user: # /etc/init.d/isc-dhcp-server restart -> reiniciar el servicio...
3.21 RESULTADO DE DHCP
-> Para ver el servidor DHCP en acción se debe apagar el servicio DHCP del router Wi-Fi que está brindando
conexión de la red, cada modelo varia en la forma de hacerlo.
-> Luego conectar los clientes a la red y esperar que el servidor DHCP les asigne ip y demás datos de red.
3.3 SERVICIO DNS
user: # aptitude install bind9 bind9-doc dnsutils
user: # cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori
user: # nano /etc/bind/named.conf.options
1 ( forwarders{IPDNS1; IPDNS2; ...;} ) -> poner las IP de los DNS de apoyo separados por ","
2 (
// Security options
listen-on port 53 { 127.0.0.1; 192.168.0.2; };
allow-query { 127.0.0.1; 192.168.0.0/24; };
allow-recursion { 127.0.0.1; 192.168.0.0/24; };
allow-transfer { none; };
) ->Cambiar según los datos ip del servidor en cuanto a las IPs 192.168.0.2 y 192.168.0.0/24
user: # named-checkconf -> Comprueba que no haya errores, si no hay no sale nada
user: # nano /etc/resolv.conf
1 ( nameserver 127.0.0.1 ) -> Agregar la línea al inicio de todo el documento
user: # nano /etc/nsswitch.conf
1 ( hosts: files dns ) -> Verificar que el parámetro esta así, y si no lo está ponerlo así
user: # /etc/init.d/bind9 restart -> Reiniciar el servicio para aplicar cambios
user: # cp /etc/bind/named.conf.local /etc/bind/named.conf.local.ori
4
user: # nano /etc/bind/named.conf.local
1 (
zone "mr2.edu" IN {
type master;
file "/etc/bind/mr2.edu.db";
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/0.168.192.db";
};
)-> Añadir al final del documento para definir nuestro nombre de dominio en este caso "mr2.edu"
user: # named-checkconf -> buscamos errores, si no devuelve nada todo está bien
user: # nano /etc/bind/mr2.edu.db
1 (
;
; archivo BIND para zona mr2.edu
;
$TTL 3D ; Actualizaciones cada 3 días
@ IN SOA ns1.mr2.edu. root.mr2.edu. (
12 ; serie
6H ; refresco (6 horas)
1H ; reintentos (1 hora)
2W ; expire (2 semanas)
3H ; mínimo (3 horas)
)
mr2.edu. IN NS ns1.mr2.edu.
mr2.edu. IN MX 1 mx1.mr2.edu.
localhost IN A 127.0.0.1
mr2serv IN A 192.168.0.2
mr2.edu. IN A 192.168.0.2
mr2serv.mr2.edu. IN A 192.168.0.2
ns1 IN A 192.168.0.2
mx1 IN A 192.168.0.2
www IN A 192.168.0.2
ftp IN A 192.168.0.2
smtp IN A 192.168.0.2
5
mail IN A 192.168.0.2
ssh IN A 192.168.0.2
ntp IN A 192.168.0.2
dns IN A 192.168.0.2
sql IN A 192.168.0.2
router IN A 192.168.0.1
gateway CNAME router
gw CNAME router
) -> Agregar todo el texto en el archivo, en este definimos varios subdominios y una ip asocida
user: # named-checkzone mr2.edu /etc/bind/mr2.edu.db -> buscamos errores nos devuelve si hay o no hay
user: # nano /etc/bind/0.168.192.db
1
;
; archivo BIND para la zona inversa 192.168.0.xxx
;
$ORIGIN 0.168.192.in-addr.arpa.
$TTL 3D ; 3 días
@ IN SOA ns1.mr2.edu. root.mr2.edu. (
21 ; serie
6H ; refresco (6 horas)
1H ; reintentos (1 hora)
2W ; expire (2 semanas)
3H ; mínimo (3 horas)
)
NS ns1.mr2.edu.
2 PTR ns1.mr2.edu.
2 PTR mr2serv
2 PTR mr2.edu.
2 PTR mr2serv.mr2.edu.
2 PTR mail.mr2.edu.
2 PTR mx1.mr2.edu.
2 PTR www.mr2.edu.
2 PTR ftp.mr2.edu.
2 PTR smtp.mr2.edu.
2 PTR ssh.mr2.edu.
2 PTR ntp.mr2.edu.
2 PTR dns.mr2.edu.
6
2 PTR sql.mr2.edu.
2 PTR mx1.mr2.edu.
1 PTR router.mr2.edu.
) -> Agregar todo el texto en el archivo, este es necesario para decir que dominios pertenecen
user: # named-checkzone 0.168.192.in-addr.arpa /etc/bind/0.168.192.db -> muestra un informe
user: # /etc/init.d/bind9 restart -> reinicia el servicio para tomar los cambios
user: # nano /etc/resolv.conf
1 (
domain mr2.edu
search mr2.edu
) -> Añadimos al inicio del documento.
3.31 RESULTADO DE DNS
*Para que los pc usen nuestro dns y se hagan clientes, deben configurar la ip del servidor 192.168.0.2 como
su servidor DNS manualmente o usando el servidor DHCP previamente configurado.
nslookup www.mr2.edu -> esto le indicaría al cliente que ip esta asociada a ese dominio
user: # nslookup 192.168.0.2 -> escribir en los clientes o en el mismo servidor para saber los dominios y
subdominios asociados a esa ip
3.4 SERVICIO NTP
user: # dpkg-reconfigure tzdata -> Instrucción para indicar la ubicación geográfica correcta
user: # aptitude install ntpdate ntp ntp-doc ->Instalamos el servicio
user: # ntpdate -u pool.ntp.org -> Obtenemos datos correctos según la ubicación geogradica
user: # date -> Consulta la fecha y hora ya sincronizada
user: # ntpq -p -> Indica las conexiones con otros servidores ntp
3.41 RESULTADO DE NTP
*Ahora las otras pc puede obtener una hora y fecha correcta preguntándole a este, para los clientes Linux se
7
sincroniza con: user: # ntpdate -u ntp.mr2.edu
3.5 APOYO DE SEGURIDAD CON CERTIFICADOS SSL
user: # aptitude install openssl ca-certificates
user: # cd /home/user
user: # mkdir certificados
user: # cd certificados
user: # openssl genrsa -des3 -out mr2serv.key 4096 (clave <- root)
user: # openssl rsa -in mr2serv.key -out mr2serv.key.insegura
user: # chmod 600 mr2serv.key.insegura (<- Protegiendo clave insegura)
user: # openssl req -new -key mr2serv.key -out mr2serv.csr
user: # openssl x509 -req -days 365 -in mr2serv.csr -signkey mr2serv.key -out mr2serv.crt
user: # cp mr2serv.key mr2serv.key.insegura /etc/ssl/private/
user: # cp mr2serv.crt /etc/ssl/certs/
3.51 RESULTADO CERTIFIADOS SSL
-> Como resultado de los comandos anteriores obtenemos dos archivos que son los certificados que tienen
información de la empresa que está brindando los servicios encriptados, estos archivos se utilizaran más
adelante en la configuración de otros servicios, y están guardados en las siguientes rutas.
/etc/ssl/private/mr2serv.key.insegura
/etc/ssl/certs/mr2serv.crt
3.6 SERVICIO HTTP / HTTPS
user: # aptitude install apache2 apache2-doc
user: # cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-ssl.ori
8
user: # nano /etc/apache2/sites-available/default-ssl
1(
SSLCertificateFile /etc/ssl/certs/mr2serv.crt
SSLCertificateKeyFile /etc/ssl/private/mr2serv.key.insegura
) -> cambiar las rutas y poner las de los certificados creados previamente
user: # a2enmod ssl -> se habilita el uso de certificados ssl
user: # a2ensite default-ssl -> se habilita el uso de certificados ssl
user: # /etc/init.d/apache2 restart
3.61 RESULTADO DE HTTP/HTTPS
-> con el navegador en consola acceder a la dirección www.mr2.edu para ver el archivo html del servidor:
user: # w3m www.mr2.edu
-> también se puede acceder desde los clientes a la misma dirección o a la conexión segura anteponiendo
https:// dando como resultado la misma información pero comunicada de forma segura, encriptada.
3.7 SERVICIO PHP EXTENCION PARA HTTP/HTTPS
user: # aptitude install php5 libapache2-mod-php5 php5-pgsql
user: # a2enmod userdir -> activamos el uso de páginas personales de cada usuario
user: # cp /etc/apache2/mods-available/php5.conf /etc/apache2/mods-available/php5.conf.ori
user: # nano /etc/apache2/mods-available/php5.conf
1(/etc/apache2/mods-available/php5.conf) -> activar el uso de PHP en las webs personales.
user: # /etc/init.d/apache2 restart
->Se debe crear un directorio llamado "public_html" en el home de cada usuario, en este directorio se
guardaran las páginas web personales de cada usuario. También se puede añadir el directorio
"public_html" al directorio "/etc/skel" de esta forma los nuevos usuarios tendrán el directorio
"public_html" automáticamente, al ser creados.
-> La pagina web personal del usuario es accesible mediante la direccione www.mr2.edu/~nombreusuario/
3.71 RESULTADO PHP
-> ahora podemos crear una página web .php con contenido dinámico y ponerla en el directorio /var/www
ya que a partir de ahí el servidor HTTP toma el contenido que sirve con el dominio principal.
-> también podemos ponerla en un directorio de usuario llamado public_html. donde se sirven las páginas
web personales de cada usuario accediendo a www.mr2.edu/~nombreusuario/
9
3.8 SERVICIO FTP / SFTP
user: # aptitude install proftpd-basic proftpd-doc
user: # cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.ori
user: # nano /etc/proftpd/proftpd.conf
1(UseIPv6 off) ->cambiar a off
2(ServerName "mr2serv") -> cambiar al nombre del servidor
3(ServerType standalone) ->cambiar a standalone
4(DefaultRoot ~/) -> cambiar a " ~/ " para que cada usuario entre a su carpeta home
5(<Anonymous ~ftp> ... </Anonymous> ) <-des comentar todo el bloque activa ftp anónimo en el
directorio: /srv/ftp
6(Include /etc/proftpd/tls.conf) -> Descimentar la línea para activar la configuración ssl/tls
user: # cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf.ori
user: # nano /etc/proftpd/tls.conf
1(
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
) -> Modificar para activar certificados SSL
2(
TLSRSACertificateFile /etc/ssl/certs/mr2serv.crt
TLSRSACertificateKeyFile /etc/ssl/private/mr2serv.key.insegura
) -> Modificar para poner los certificados creados previamente
3(TLSRequired off) -> cambiar a off para que permita conexiones normales y seguras
user: # /etc/init.d/proftpd restart
3.81 RESULTADO FTP/SFTP
-> Utilizando un cliente FTP como Fillezila u otro de su preferencia acceda con los usuarios de debían
creados previamente, podrá acceder a la carpeta home del usuario y cambiar los archivos que se sirven
mediante http que están en la carpeta public_html.
3.9 SERVICIO SMTP
user: # aptitude install postfix postfix-doc
10
(ok , internet sites, mr2.edu)-> En la configuración que pide marcar las siguientes opciones.
user: # cp /etc/aliases /etc/aliases.ori
user: # nano /etc/aliases
1(root: adminis)-> Se escribe el nombre del administrador de correos
user: # newaliases -> Actualiza base de datos de administradores del correo
user: # cp /etc/mailname /etc/mailname.ori
user: # nano /etc/mailname
1(mr2.edu) -> indicamos el nombre del servidor, lo que va después del @
user: # cp /etc/postfix/main.cf /etc/postfix/main.cf.ori
user: # nano /etc/postfix/main.cf
1(
inet_protocols = ipv4
home_mailbox = Maildir/
## Seguranca
# Aceitar ligacoes apenas a partir da rede local
smtpd_client_restrictions = permit_mynetworks,
reject
# Utilizadores locais podem enviar emails para qualquer endereco
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination
# Rejeitar ligacoes de clientes que nao saibam o seu hostname
11
smtpd_helo_restrictions = reject_unknown_sender_domain
# Rejeitar email de dominios que nao existem
smtpd_sender_restrictions = reject_unknown_sender_domain
) <- añadir todo al final del archivo
2(
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mr2serv.crt
smtpd_tls_key_file = /etc/ssl/private/mr2serv.key.insegura
mydestination = mr2.edu, mail.mr2.edu, mr2serv.mr2.edu, localhost.mr2.edu, localhost
mynetworks = 127.0.0.0/8, 192.168.1.0/24
)->Modificar los campos según nuestra red y nombres de dominio, dejando como se puede ver aquí
user: # /etc/init.d/postfix restart
3.91 RESULTADO DE SMTP
-> Conectarse usando el cliente telnet escribiendo: user: # telnet localhost smtp
3.10 SERVICIO IMAP / IMAPS
user: # aptitude install dovecot-imapd
user: # cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.ori
user: # nano /etc/dovecot/dovecot.conf
user: # cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.ori
user: # nano /etc/dovecot/conf.d/10-mail.conf
1(mail_location = maildir:~/Maildir)
12
user: # cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.ori
user: # nano /etc/dovecot/conf.d/10-ssl.conf
1(
ssl_cert = </etc/ssl/certs/mr2serv.crt
ssl_key = </etc/ssl/private/mr2serv.key.insegura
)->Modificamos para poner las rutas de los certificados creados previamente
user: # su - user -c 'maildirmake.dovecot ~/Maildir' <- Para cada usuario existente
user: # maildirmake.dovecot /etc/skel/Maildir <- crea el directorio para usuarios futuros
user: # dovecot -n <- comprobar configuracion
3.101 RESULTADO DE IMAP / IMAPS
-> Conectarse usando el cliente telnet escribiendo: user: # telnet localhost imap
->Conectarse de forma segura: user: # openssl s_client -connect 192.168.0.2: imaps
-> El servidor IMAP trabaja en conjunto con el servidor SMTP para comunicación mediante correo
electrónico, ahora se puede configurar un cliente de correo indicando que este servidor proveerá smtp e
imap, hay clientes de correo para linux, windows, android etc
3.11 SERVICIO SMB SERVIDOR DE ARCHIVOS
user: # aptitude install samba
user: # adduser -system -no-create-home -uid 600 cliente -> El n° de -uid va aumentando con cada nuevo
cliente, sustituir cliente por el nombre del usuario a crear, con esta línea agrega un usuario a la vez
user: # cat /etc/passwd | grep cliente -> Comprobamos cada uno de los clientes creados, si retorna:
cliente:x:600:65534::/home/cliente:/bin/false, entonces está bien.
user: # smbpasswd -a cliente -> Añade usuario al servicio samba y se le asigna una contraseña
user: # mkdir /mnt/compartida -> Creación de la carpeta compartida, crea una a la vez
user: # chmod 777 /mnt/compartida -> Asignación de permisos a la carpeta compartida
13
user: # cp /etc/samba/smb.conf /etc/samba/smb.conf.ori
user: # nano /etc/samba/smb.conf
1(
[nombredelrecurso] <-el nombre que verán los clientes.
comment= <- El comentario que uno quiera
path=/mnt/compartida <- directorio de la carpeta a compartir
read only=yes
browseable=yes
write list=cliente <- Clientes permitidos separados por coma (,)
valid users=cliente <- Clientes permitidos separados por (,)
directory mask=0775
create mask=0644
) -> Añadir el bloque de texto al final del documento, un bloque por cada carpeta a compartir.
user: # testparm -> Comprobación del archivo de configuración
user: # /etc/init.d/samba restart ->Reiniciamos el servicio
3.111 RESULTADO DE SMB SERVIDOR DE ARCHIVOS
-> Clientes windows, escribir en ejecutar: \\192.168.0.2\nombredelrecurso en la siguiente ventana, escribir
usuario "cliente" y contraseña
-> Clientes linux, abrir navegador de archivos y presionar [Ctrl+L] para visualizar barra de direcciones y
escribir en ella: smb://[email protected]/nombredelrecurso En la siguiente ventana, dejar el Dominio
por defecto, ingresar usuario, contraseña y hacer clic en continuar
3.12 SERVICIO DE IMPRESION
user: # aptitude install cups cups-pdf
user: # cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.ori
user: # nano /etc/cups/cupsd.conf
1(
# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock
Listen 192.168.0.* -> Línea añadida
)
14
2(
# Default authentication type, when authentication is required...
DefaultAuthType Basic
DefaultEncryption IfRequested -> Línea añadida
)
3(
# Restrict access to the server...
<Location />
Order allow,deny
Allow localhost -> Línea añadida
Allow 192.168.0.* -> Línea añadida
</Location>
)
4(
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow localhost -> Linea añadida
Allow 192.168.0.* -> Linea añadida
</Location>
)
5(
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow localhost -> Línea añadida
Allow 192.168.0.* -> Línea añadida
</Location>
)
user: # cp /etc/cups/cups-pdf.conf /etc/cups/cups-pdf.conf.ori
15
user: # nano /etc/cups/cups-pdf.conf
1(
Out ${HOME}/PDF -> Cambiamos a Out /home/impresiones/ImpresionesPDF
)
user: # /etc/init.d/cups restart
3.12 RESULTADO SERVICIO DE IMPRESION
-> Ingresamos a la página web de administración: http://192.168.0.2:631 aquí se puede loguear con los
usuarios de debian, para controlar el servidor, añadir impresoras virtuales, reales, mandar a imprimir.
->Para comprobar la compatibilidad de una impresora física hacer lo siguiente:
Desconectar impresora
tail -f /var/log/syslog
Conectar impresora para ver si se detecta
Ctrl+z <- para salir
Añadir la impresora con la página web de administración
3.13 SERVICIO DE BASE DE DATOS
user: # aptitude install postgresql-9.1
user: # passwd postgres -> La contraseña colocada será= datos
user: # su postgres
user: # psql postgres
user: # ALTER ROLE postgres PASSWORD 'datos';
user: # \q
user: # exit
user: # nano /etc/postgresql/9.1/main/postgresql.conf
1(listen_addresses = '*')-> Cambiamos a * para que escuche en todas las direcciones
user: # nano /etc/postgresql/9.1/main/pg_hba.conf
16
1(
host all all 127.0.0.1/32 password
host all all 192.168.0.0/24 md5
) -> Agregar debajo de # IPv4 local connections: las líneas para que todas las bases estén
disponibles y se permita conexión con todos los usuarios, la primera línea es para acceso local y la
segunda para acceso en la red local, cambiar IP de acuerdo a su red.
user: # service postgresql restart
user: # su postgres
postgres: # createuser -D -S -R -l dba_user
postgres: # psql postgres
postgres: # ALTER USER dba_user WITH ENCRYPTED PASSWORD 'datos1';
postgres: # SELECT usename, passwd FROM pg_shadow; -> verificamos que existe el nuevo usuario
postgres: # su postgres
postgres: # createdb -Ttemplate0 -O dba_user -EUTF-8 db_prueba
postgres: # psql postgres
postgres: # GRANT ALL PRIVILEGES ON DATABASE db_prueba TO dba_user;
postgres: # SELECT datname FROM pg_database; -> Verificamos que la nueva base de datos existe
postgres: # CREATE TABLE cliente{
dui char(10) NOT NULL,
nombres varchar(30),
apellidos varchar(30),
direccion text,
telefono varchar(9),
CONSTRAINT llave_cliente PRIMARY KEY (dui)
};
3.131 RESULTADO DE BASE DE DATOS
-> Ahora se puede conectar con la base de datos desde los clientes y localmente, ya sea desde su administrador
grafico pgadmin o desde una aplicación web u de otro tipo.
------------------------------------------------------------------------------------------------------------------------------------------------
17
CREATE OR REPLACE FUNCTION nuevo_cliente(cl1 character(10),cl2 character varying(30),cl3 character varying(30),cl4
TEXT,cl5 character(30),cu1 character(13),cu2 character varying(15),cu3 money)
RETURNS TEXT
AS $BODY$
BEGIN
INSERT INTO clientes VALUES($1,$2,$3,$4,$5);
INSERT INTO cuentas VALUES($6,$7,$8,$1);
RETURN 'COMMIT';
EXCEPTION WHEN others THEN
RETURN 'ROLLBACK';
END;
$BODY$
LANGUAGE 'PLPGSQL'
------------------------------------------------------------------------------------------------------------------------------------------------
SELECT nuevo_cliente('11223344-6','Rrrr2','Mmmm2','San Vi Cen Te # 3','7777-8888','1234-321654-1','Ahorros','150.50');
------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION deposito(cl1 character(10),cu1 money) RETURNS TEXT
AS $BODY$
BEGIN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE cuentas SET saldo=saldo+$2 WHERE dui=$1;
RETURN 'COMMIT';
EXCEPTION WHEN others THEN
RETURN 'ROLLBACK';
END;
$BODY$
LANGUAGE 'PLPGSQL'
-------------------------------------------------------------------------------------------------------------------------------------
SELECT deposito('11223344-6','110');
-----------------------------------------------------------------
CREATE OR REPLACE FUNCTION retiro(cl1 character(10),cu1 money) RETURNS TEXT
AS $BODY$
BEGIN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
18
UPDATE cuentas SET saldo=saldo-$2 WHERE dui=$1;
RETURN 'COMMIT';
EXCEPTION WHEN others THEN
RETURN 'ROLLBACK';
END;
$BODY$
LANGUAGE 'PLPGSQL'
-------------------------------------------------------------------------------------------------------------------------------------
SELECT retiro('11223344-6','190');
---------------------------------------------------------------
CREATE OR REPLACE FUNCTION transferencia(cl1 character(10),cl2 character(10),cu1 money) RETURNS TEXT
AS $BODY$
BEGIN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE cuentas SET saldo=saldo-$3 WHERE dui=$1;
UPDATE cuentas SET saldo=saldo+$3 WHERE dui=$2;
RETURN 'COMMIT';
EXCEPTION WHEN others THEN
RETURN 'ROLLBACK';
END;
$BODY$
LANGUAGE 'PLPGSQL'
----------------------------------------------------------------------------------------------------------------------------------------
CREATE VIEW cliente_bancario AS SELECT cl.*,cu.ncuenta,cu.tipo,cu.saldo FROM clientes cl JOIN cuentas cu ON
cu.dui=cl.dui;
-------------------------------------------------------------------------------------------------------------------------------------
3.14 SERVICIO DE MONITORIZACION
user: # aptitude install munin munin-node munin-plugins-core munin-plugins-extra
19
user: # cp /etc/munin/munin-node.conf /etc/munin/munin-node.conf.ori
user: # nano /etc/munin/munin-node.conf
1(
allow ^127\.0\.0\.1$
host_name mr2serv.mr2.edu
) -> crear las lineas al final del documento si no existen
user: # cp /etc/munin/munin.conf /etc/munin/munin.conf.ori
user: # nano /etc/munin/munin.conf
1(
[mr2serv.mr2.edu]
address 127.0.0.1
use_node_name yes
)-> añadir las líneas al final del documento si no existen
user: # ln -sf /etc/munin/apache.conf /etc/apache2/conf.d/munin
user: # cp /etc/apache2/conf.d/munin /etc/apache2/conf.d/munin.ori
user: # nano /etc/apache2/conf.d/munin
1(
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
Order allow,deny
#Allow from localhost 127.0.0.0/8 ::1
Allow from 192.168.1.0/24
# Allow from all
Options None
) -> Modificar segun informacion de red
2(
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Digest
20
require valid-user
)-> Modificar según información de red
user: # htdigest -c /etc/munin/munin-htpasswd Munin adminis -> asignamos el usuario de debian autorizado
user: # a2enmod auth_digest
user: # /etc/init.d/munin-node restart
user: # /etc/init.d/apache2 restart
3.141 RESULTADO DE MONITORIZACION
->Ahora es posible ingresar a la dirección web www.mr2.edu/munin/ Se nos solicitara loguearnos, en este caso el
usuario autorizado es adminis, en ese caso ingresamos la contraseña.
-> Esta página web nos presenta información sobre los servicios que se están brindando y estadísticas sobre su
tráfico de datos.
21