Antes de instalar MySQL es recomendable actualizar el SO.
$> yum -y update
Descargar y añadir el repositorio a la lista de fuentes de paquetes de centos.
Mysql 5.7
$> wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
$> rpm -ivh mysql57-community-release-el7-9.noarch.rpm
Mysql 8.0
$> wget http://repo.mysql.com/mysql80-community-release-el7-2.noarch.rpm
$> rpm -ivh mysql80-community-release-el7-2.noarch.rpm
Instalar MySQL
$> yum -y install mysql-community-server
Iniciar servicio MySQL
$> systemctl start mysqld
$> systemctl enable mysqld
Habilitar firewall
$> firewall-cmd --add-service=mysql --permanent
$> firewall-cmd --reload
Ver clave generada por MYSQL
$> grep -i password /var/log/mysqld.log
Establecer parámetros de seguridad para MYSQL
$> mysql_secure_installation
Cambiar contraseña de usuario root de mysql 5.7
$> mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root#123';
mysql> flush privileges;
mysql> quit
Cambiar contraseña de usuario root de mysql 8.0
$> mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root#123';
mysql> flush privileges;
mysql> quit
Crear nuevo usuario y establecer permisos en mysql 5.7
$> mysql -u root -p
mysql> CREATE USER 'usuario1'@'localhost' IDENTIFIED BY 'User#123';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'usuario1'@'localhost';
mysql> flush privileges;
mysql> quit
Crear nuevo usuario y establecer permisos en mysql 8.0
$> mysql -u root -p
mysql> CREATE USER 'usuario1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'User#123';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'usuario1'@'localhost';
mysql> flush privileges;
mysql> quit
Reiniciar servicio MySQL
$> systemctl restart mysqld
*****************************************************************
Reiniciar la contraseña de root de MySQL
Detener la instancia del servidor de MySQL
$> systemctl stop mysqld
$> mysqld --skip-grant-tables --user=mysql &
Conectarse al servidor MySQL con root sin pedir contraseña.
$> mysql -u root
Restablecer la contraseña de root
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root#123';
mysql> quit
Inicie MySQL.
$> systemctl restart mysqld
**************************************************************
Administración de MySQL
Por consola
$> mysql -u root -p
Instalar PHP y PHPMyAdmin
========================
Instalar los repositorios de EPEL y REMI:
$> yum install -y epel-release
$> yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Desactivar el repositorio para la version PHP 5.4:
$> yum install -y yum-utils
$> yum-config-manager --disable remi-php54
Activar el repositorio REMI para la version PHP 7.3:
$> yum-config-manager --enable remi-php73
Instalación de PHP 7.3 en CentOS 7:
$> yum install php php-mysql php-mbstring
Confirmar la Version de PHP 7.3
$> php -v
buscar e instalar extensiones de PHP7
$> yum list php-*
$> yum install php-<extension_name>
$> systemctl restart httpd
Crear un script PHP de prueba.
$> vim /var/www/html/info.php
------------------
<?php phpinfo(); ?>
------------------
Ingresar al navegador:
http://Tu_IP_address/info.php
Eliminar archivo de prueba ya que en realidad podría dar información sobre su servidor a usuarios no autorizados.
$> rm /var/www/html/info.php
Descargamos la ultima versión de phpMyAdmin
$> cd /var/www/
$> wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.tar.gz
Descomprimir el archivo
$> tar -zxvf phpMyAdmin-4.9.1-all-languages.tar.gz
$> rm phpMyAdmin-4.9.1-all-languages.tar.gz
Renombrar el directorio y cambiar los permisos para apache
$> mv phpMyAdmin-4.9.1-all-languages phpmyadmin
$> cd phpmyadmin
$> chown apache:apache /var/www/phpmyadmin/
$> mv config.sample.inc.php config.inc.php
$> vim config.inc.php (Poner una clave cualquiera)
-----------------------------------------------------
17:$cfg['blowfish_secret'] = 'aS#Ttb6S*[hExCn{hT+zrD~n-o{TYL7lOvIJjg*a@ga#gs%dgysd';
18:$cfg['TempDir'] = '/tmp/php';
31:$cfg['Servers'][$i]['host'] = '192.168.1.50';
32:$cfg['Servers'][$i]['socket'] = '';
33:$cfg['Servers'][$i]['connect_type'] = 'tcp';
-----------------------------------------------------
Crear directorio para almacenar archivos temporales
$> mkdir /tmp/php
$> chown apache.apache /tmp/php
$> chmod 600 /tmp/php
Restaurar los contextos web de SELINUX
$> restorecon -FRvv /var/www/phpmyadmin
Permitir Apache conexión hacia base de datos
$> setsebool -P httpd_can_network_connect_db 1
Configurar alias y ubicación del directorio virtual:
$> vim /etc/httpd/conf.d/phpmyadmin.conf
-----------------------------------------
Alias /phpmyadmin /var/www/phpmyadmin
<Directory "/var/www/phpmyadmin">
AllowOverride all
Options Indexes
Require local
Require all granted
</Directory>
-----------------------------------------
Reiniciar Servidor Web
$> systemctl restart httpd
$> systemctl restart mysqld
Ingresar con navegador
$> http://server_domain_o_IP/phpmyadmin
usuario: root
clave: Root#123
LIMITAR EL ACCESO POR CONTRASEÑA:
Crear el archivo para la autenticacion:
$> vim /var/www/phpmyadmin/.htaccess
------------------------------------------
AuthName "Solamente usuarios autorizados"
AuthType Basic
Require valid-user
AuthUserFile /var/www/.htpasswd
------------------------------------------
Crear archivo donde se guardara las credenciales:
$> touch /var/www/.htpasswd
$> chmod 600 /var/www/.htpasswd
$> chown apache:apache /var/www/.htpasswd
Crear usuarios virtuales y contraseñas:
$> htpasswd /var/www/.htpasswd carlos
$> htpasswd /var/www/.htpasswd juan
Reniciando servidor web:
$> systemctl restart httpd
Ingresar:
http://server_domain_o_IP/phpmyadmin
usuario: root
clave: clave12345
jueves, 29 de junio de 2017
martes, 27 de junio de 2017
INSTALACION WEBMIN CENTOS 7
Descargar Webmin RPM:
$> wget https://sourceforge.net/projects/webadmin/files/webmin/1.881/webmin-1.881-1.noarch.rpm
$> yum -y install perl perl-Net-SSLeay openssl perl-IO-Tty perl-Encode-Detect
Instalar webmin
$> rpm -ivh webmin-1.881-1.noarch.rpm
Habilitar firewalld y permitir acceso a tcp (10000) y https
$> firewall-cmd --permanent --zone=public --add-port=10000/tcp
$> firewall-cmd --add-service=https --permanent
$> firewall-cmd --reload
Acceso a WEBMIN:
https://TU-IP-ADDRESS:10000
$> wget https://sourceforge.net/projects/webadmin/files/webmin/1.881/webmin-1.881-1.noarch.rpm
$> yum -y install perl perl-Net-SSLeay openssl perl-IO-Tty perl-Encode-Detect
Instalar webmin
$> rpm -ivh webmin-1.881-1.noarch.rpm
Habilitar firewalld y permitir acceso a tcp (10000) y https
$> firewall-cmd --permanent --zone=public --add-port=10000/tcp
$> firewall-cmd --add-service=https --permanent
$> firewall-cmd --reload
Acceso a WEBMIN:
https://TU-IP-ADDRESS:10000
domingo, 25 de junio de 2017
CONFIGURACION DE UN DNS PUBLICO Y UN SERVIDOR WEB APACHE | CENTOS 7
Registro de un dominio de internet
Registrar un dominio en:
.com --> godaddy, Namecheap
.pe --> punto.pe
.tk --> www.dot.tk (GRATIS)
my.freenom.com (GRATIS)
Usaremos como referencia el dominio gratuito midominio.tk
Configurar Nombre de Host
$> hostnamectl set-hostname srvweb.dominio.tk
$> exit
Volver a loguearse
$> hostnamectl
Configurar la ip del host en /etc/hosts
$> vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.2.X srvweb.dominio.com srvweb
Instalar Repositorio Epel
$> yum -y install epel-release
Ejecute lo siguiente para instalar Bind en CentOS 7
$> yum -y install bind bind-chroot bind-utils
Copiar los archivos del DNS al entorno chroot
$> cd /var/named
$> for f in named.* data dynamic slaves; do mv $f chroot/var/named/; ln -s /var/named/chroot/var/named/$f /var/named/; done
Crear firma digital del servidor
$> rndc-confgen -a -r /dev/urandom -b 512 -c /etc/rndc.key
$> chown named:named /etc/rndc.key
$> chmod 640 /etc/rndc.key
Copiar la firma digital al entorno chroot
$> cd /etc
$> for f in named.* rndc.key; do mv $f /var/named/chroot/etc/; ln -s /var/named/chroot/etc/$f /etc/; done
Actualizar el archivo de cache con los servidores DNS raíz.
$> wget -N http://www.internic.net/domain/named.root -O /var/named/named.ca
$> chown named:named /var/named/named.ca
$> chmod 640 /var/named/named.ca
Editar el archivo /etc/named.conf:
$> vim /var/named/chroot/etc/named.conf
-------------------------------------------------------------------------------------------------------------------------------------------------
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1;192.168.2.5;};
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
allow-query { localhost;any; };
forwarders { 8.8.8.8; };
recursion no;
dnssec-enable no;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// Zona raiz por defecto
zone "." IN {
type hint;
file "named.ca";
};
// Zona para nuestro dominio
zone "dominio.com" {
type master;
file "/var/named/chroot/var/named/dominio.com.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
$> cd /var/named/chroot/var/named
$> vim dominio.com.zone
-------------------------------------------------------------------------------------------------------------------------
$TTL 86400 @ IN SOA @ root ( 2017062401 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum dominio.com. IN NS ns1.dominio.com.
dominio.com. IN NS ns2.dominio.com. ns1 IN A 158.69.210.X
ns2 IN A 158.69.210.X mail IN A 158.69.210.X www IN A 158.69.210.X dominio.com. IN A 158.69.210.X dominio.com. IN MX 10 mail.dominio.com.
------------------------------------------------------------------------------------------------------------------------
Configurar DNS de tarjeta de red: $> vim /etc/resolv.conf nameserver IP DE SERVIDOR
$> systemctl restart network
Reiniciar los servicios $> systemctl start named $> systemctl enable named $> systemctl status named
Si salen errores en el servicio, verificar los logs $> tail -f /var/log/messages $> less /var/log/messages Nota si sale errores de permisos o selinux ——————————————————————————– $> chgrp -R named /var/named/chroot/var/named $> restorecon -FRvv /var/named/chroot/var/named ——————————————————————————— Reglas del firewall si se desea consultar el DNS desde otro equipo Instalar Firewalls: $> yum -y install firewalld $> systemctl enable firewalld $> systemctl start firewalld $> firewall-cmd --add-service=dns --permanent $> firewall-cmd --reload
Verificar puertos abiertos:
$> iptables -S ————————— Verificar el firewall: $> iptables -S | grep 53 ————————— Comprobación del DNS $> dig NS dominio.com $> dig MX dominio.com
Instalacion Servidor Web Apache $> yum -y install httpd Habilitar firewalld y permitir acceso a http (80) y https (443) $> firewall-cmd --add-service=http --permanent $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl start httpd $> systemctl enable httpd Ingresar con el navegador: http://www.dominio.com Agregar sitio web principal: $> cd /var/www/html ---> Web Principal
Enviar Archivos a Servidor:
C:> scp -rp /carpetaLocal/* root@159.89.235.58:/var/www/html
Reiniciar Apache $> systemctl restart httpd
Verificar archivo de configuración para detectar errores de sintaxis: $> apachectl configtest
Verificar el sitio que sea accesible usando curl: $> curl midominio.com
Entrar con el navegador: http://www.dominio.com
Ocultar la versión de Apache: $> vim /etc/httpd/conf.d/serversignature.conf Añada el siguiente contenido: **************************** ServerSignature Off ServerTokens Prod **************************** Dominios Virtuales en Apache (Virtual Hosts)
Configurar archivos de DNS.
Configuracion de Multiples Dominios: $> vim /etc/httpd/conf.d/vhosts.conf ---------------------------------------------------------------------------------------------------------------- <VirtualHost *:80> ServerName www.dominio2.com DocumentRoot "/var/www/dominio2" <Directory "/var/www/dominio2"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio2.com-error_log CustomLog /var/log/httpd/www.dominio2.com-access_log combined </VirtualHost> <VirtualHost *:80> ServerName www.dominio3.com DocumentRoot "/var/www/dominio3" <Directory "/var/www/dominio3"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio3.com-error_log CustomLog /var/log/httpd/www.dominio3.com-access_log combined </VirtualHost> ------------------------------------------------------------------------------------------------------------------ Resolviendo los nombres de Host por DNS o por /etc/hosts $> vim /etc/hosts 127.0.0.1 localhost localhost.locadomain 192.168.2.X www.dominio2.com 192.168.2.X www.dominio3.com Creando los directorios para la resolucion de los host virtuales: $> mkdir /var/www/dominio2 $> mkdir /var/www/dominio3 Agregar contenido de Paginas web en directorio: $> cd /var/www/html ---> index.html $> cd /var/www/dominio2 ---> index.php $> cd /var/www/dominio3 ---> index.php Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/dominio2/ $> restorecon -RFvv /var/www/dominio3/
Reniciando servidor web y probando: $> systemctl restart httpd Entrar con el navegador: http://www.dominio2.com http://www.dominio3.com Directorios virtuales.
========================
Crear directorio para alojar el sitio web del cliente1: $> mkdir /var/www/cliente1 Edite el archivo vhosts.conf y añadir al final el siguiente contenido: $> vim /etc/httpd/conf.d/vhosts.conf: -------------------------------------- Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes AllowOverride all Require local Require all granted </Directory> -------------------------------------- Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/cliente1/
Reniciando servidor web:
$> systemctl restart httpd Entrar con el navegador: http://www.dominio1.com/cliente1 Limitar el acceso a directorios por dirección IP. $> vim /etc/httpd/conf.d/vhosts.conf ************************************************ Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes Require local Require ip 192.168.2.0/24
</Directory> ************************************************ Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://192.168.2.X/cliente1/ Limitar el acceso basico por usuario y contraseña: Crear directorio para alojar el sitio web del cliente2:
$> mkdir /var/www/cliente2
Restaurando los contextos web SELINUX:
$> restorecon -RFvv /var/www/cliente2
$> vim /etc/httpd/conf.d/vhosts.conf
Añadir al final el siguiente contenido: -------------------------------------------------- Alias /cliente2 /var/www/cliente2 <Directory "/var/www/cliente2"> Options Indexes AllowOverride all Require local Require all granted </Directory> --------------------------------------------------- Crear el archivo para la autenticacion dentro del cliente2: $> vim /var/www/cliente2/.htaccess ------------------------------------------------------------------------ AuthName "Solamente usuarios autorizados" AuthType Basic Require valid-user AuthUserFile /var/www/.htpasswd ------------------------------------------------------------------------ Crear archivo donde se guardaran las credenciales: $> touch /var/www/.htpasswd $> chmod 600 /var/www/.htpasswd $> chown apache:apache /var/www/.htpasswd Añadir usuarios virtuales y contraseñas: $> htpasswd /var/www/.htpasswd juan $> htpasswd /var/www/.htpasswd pedro $> htpasswd /var/www/.htpasswd hugo $> htpasswd /var/www/.htpasswd luis
Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://127.0.0.1/cliente2/ HTTPS Centos Comprar Certificados en: http://godaddy.com http://verisign.com Instalar dependencias https $> yum -y install mod_ssl openssl $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl restart httpd Generar el certificado SSL $> openssl genrsa -des3 \-out /etc/pki/tls/private/ca.key 4096 Generate CSR : $> openssl req -sha256 -new \-key /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.csr --------------------------------------------- Country Name (2 letter code) [XX]:PE State or Province Name (full name) []:Lima Locality Name (eg, city) [Default City]:Lima Organization Name (eg, company) [Default Company Ltd]:PeruSystem Organizational Unit Name (eg, section)[]:Sistemas Common Name (eg, your name or your server's hostname)[]:www.perusystem.pe Email Address []:correo@gmail.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: ---------------------------------------------- Ejecute lo siguiente para crear un certificado auto-firmado con estructura X.509 en el que
se establece una validez por 1825 días (5 años): $> openssl x509 -sha256 -req -days 1825 \-in /etc/pki/tls/certs/ca.csr \-signkey /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.crt
$> chmod 600 /etc/pki/tls/*/ca.* Editar el archivo de configuracion de SSL en Apache para usar el certificado autofirmado: $> vim /etc/httpd/conf.d/ssl.conf 100: SSLCertificateFile /etc/pki/tls/certs/ca.crt 107: SSLCertificateKeyFile /etc/pki/tls/private/ca.key Reniciando servidor web: $> systemctl restart httpd
Registrar un dominio en:
.com --> godaddy, Namecheap
.pe --> punto.pe
.tk --> www.dot.tk (GRATIS)
my.freenom.com (GRATIS)
Usaremos como referencia el dominio gratuito midominio.tk
Configurar Nombre de Host
$> hostnamectl set-hostname srvweb.dominio.tk
$> exit
Volver a loguearse
$> hostnamectl
Configurar la ip del host en /etc/hosts
$> vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.2.X srvweb.dominio.com srvweb
Instalar Repositorio Epel
$> yum -y install epel-release
Ejecute lo siguiente para instalar Bind en CentOS 7
$> yum -y install bind bind-chroot bind-utils
Copiar los archivos del DNS al entorno chroot
$> cd /var/named
$> for f in named.* data dynamic slaves; do mv $f chroot/var/named/; ln -s /var/named/chroot/var/named/$f /var/named/; done
Crear firma digital del servidor
$> rndc-confgen -a -r /dev/urandom -b 512 -c /etc/rndc.key
$> chown named:named /etc/rndc.key
$> chmod 640 /etc/rndc.key
Copiar la firma digital al entorno chroot
$> cd /etc
$> for f in named.* rndc.key; do mv $f /var/named/chroot/etc/; ln -s /var/named/chroot/etc/$f /etc/; done
Actualizar el archivo de cache con los servidores DNS raíz.
$> wget -N http://www.internic.net/domain/named.root -O /var/named/named.ca
$> chown named:named /var/named/named.ca
$> chmod 640 /var/named/named.ca
Editar el archivo /etc/named.conf:
$> vim /var/named/chroot/etc/named.conf
-------------------------------------------------------------------------------------------------------------------------------------------------
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1;192.168.2.5;};
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query { localhost;any; };
forwarders { 8.8.8.8; };
recursion no;
dnssec-enable no;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// Zona raiz por defecto
zone "." IN {
type hint;
file "named.ca";
};
// Zona para nuestro dominio
zone "dominio.com" {
type master;
file "/var/named/chroot/var/named/dominio.com.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
---------------------------------------------------------------------------------------------------------------------------------------------
Crear y editar los archivos de zona de resolución Directa $> cd /var/named/chroot/var/named
$> vim dominio.com.zone
-------------------------------------------------------------------------------------------------------------------------
$TTL 86400 @ IN SOA @ root ( 2017062401 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum dominio.com. IN NS ns1.dominio.com.
dominio.com. IN NS ns2.dominio.com. ns1 IN A 158.69.210.X
ns2 IN A 158.69.210.X mail IN A 158.69.210.X www IN A 158.69.210.X dominio.com. IN A 158.69.210.X dominio.com. IN MX 10 mail.dominio.com.
------------------------------------------------------------------------------------------------------------------------
Configurar DNS de tarjeta de red: $> vim /etc/resolv.conf nameserver IP DE SERVIDOR
$> systemctl restart network
Reiniciar los servicios $> systemctl start named $> systemctl enable named $> systemctl status named
Si salen errores en el servicio, verificar los logs $> tail -f /var/log/messages $> less /var/log/messages Nota si sale errores de permisos o selinux ——————————————————————————– $> chgrp -R named /var/named/chroot/var/named $> restorecon -FRvv /var/named/chroot/var/named ——————————————————————————— Reglas del firewall si se desea consultar el DNS desde otro equipo Instalar Firewalls: $> yum -y install firewalld $> systemctl enable firewalld $> systemctl start firewalld $> firewall-cmd --add-service=dns --permanent $> firewall-cmd --reload
Verificar puertos abiertos:
$> iptables -S ————————— Verificar el firewall: $> iptables -S | grep 53 ————————— Comprobación del DNS $> dig NS dominio.com $> dig MX dominio.com
Instalacion Servidor Web Apache $> yum -y install httpd Habilitar firewalld y permitir acceso a http (80) y https (443) $> firewall-cmd --add-service=http --permanent $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl start httpd $> systemctl enable httpd Ingresar con el navegador: http://www.dominio.com Agregar sitio web principal: $> cd /var/www/html ---> Web Principal
Enviar Archivos a Servidor:
C:> scp -rp /carpetaLocal/* root@159.89.235.58:/var/www/html
Reiniciar Apache $> systemctl restart httpd
Verificar archivo de configuración para detectar errores de sintaxis: $> apachectl configtest
Verificar el sitio que sea accesible usando curl: $> curl midominio.com
Entrar con el navegador: http://www.dominio.com
Ocultar la versión de Apache: $> vim /etc/httpd/conf.d/serversignature.conf Añada el siguiente contenido: **************************** ServerSignature Off ServerTokens Prod **************************** Dominios Virtuales en Apache (Virtual Hosts)
Configurar archivos de DNS.
Configuracion de Multiples Dominios: $> vim /etc/httpd/conf.d/vhosts.conf ---------------------------------------------------------------------------------------------------------------- <VirtualHost *:80> ServerName www.dominio2.com DocumentRoot "/var/www/dominio2" <Directory "/var/www/dominio2"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio2.com-error_log CustomLog /var/log/httpd/www.dominio2.com-access_log combined </VirtualHost> <VirtualHost *:80> ServerName www.dominio3.com DocumentRoot "/var/www/dominio3" <Directory "/var/www/dominio3"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio3.com-error_log CustomLog /var/log/httpd/www.dominio3.com-access_log combined </VirtualHost> ------------------------------------------------------------------------------------------------------------------ Resolviendo los nombres de Host por DNS o por /etc/hosts $> vim /etc/hosts 127.0.0.1 localhost localhost.locadomain 192.168.2.X www.dominio2.com 192.168.2.X www.dominio3.com Creando los directorios para la resolucion de los host virtuales: $> mkdir /var/www/dominio2 $> mkdir /var/www/dominio3 Agregar contenido de Paginas web en directorio: $> cd /var/www/html ---> index.html $> cd /var/www/dominio2 ---> index.php $> cd /var/www/dominio3 ---> index.php Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/dominio2/ $> restorecon -RFvv /var/www/dominio3/
Reniciando servidor web y probando: $> systemctl restart httpd Entrar con el navegador: http://www.dominio2.com http://www.dominio3.com Directorios virtuales.
========================
Crear directorio para alojar el sitio web del cliente1: $> mkdir /var/www/cliente1 Edite el archivo vhosts.conf y añadir al final el siguiente contenido: $> vim /etc/httpd/conf.d/vhosts.conf: -------------------------------------- Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes AllowOverride all Require local Require all granted </Directory> -------------------------------------- Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/cliente1/
Reniciando servidor web:
$> systemctl restart httpd Entrar con el navegador: http://www.dominio1.com/cliente1 Limitar el acceso a directorios por dirección IP. $> vim /etc/httpd/conf.d/vhosts.conf ************************************************ Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes Require local Require ip 192.168.2.0/24
</Directory> ************************************************ Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://192.168.2.X/cliente1/ Limitar el acceso basico por usuario y contraseña: Crear directorio para alojar el sitio web del cliente2:
$> mkdir /var/www/cliente2
Restaurando los contextos web SELINUX:
$> restorecon -RFvv /var/www/cliente2
$> vim /etc/httpd/conf.d/vhosts.conf
Añadir al final el siguiente contenido: -------------------------------------------------- Alias /cliente2 /var/www/cliente2 <Directory "/var/www/cliente2"> Options Indexes AllowOverride all Require local Require all granted </Directory> --------------------------------------------------- Crear el archivo para la autenticacion dentro del cliente2: $> vim /var/www/cliente2/.htaccess ------------------------------------------------------------------------ AuthName "Solamente usuarios autorizados" AuthType Basic Require valid-user AuthUserFile /var/www/.htpasswd ------------------------------------------------------------------------ Crear archivo donde se guardaran las credenciales: $> touch /var/www/.htpasswd $> chmod 600 /var/www/.htpasswd $> chown apache:apache /var/www/.htpasswd Añadir usuarios virtuales y contraseñas: $> htpasswd /var/www/.htpasswd juan $> htpasswd /var/www/.htpasswd pedro $> htpasswd /var/www/.htpasswd hugo $> htpasswd /var/www/.htpasswd luis
Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://127.0.0.1/cliente2/ HTTPS Centos Comprar Certificados en: http://godaddy.com http://verisign.com Instalar dependencias https $> yum -y install mod_ssl openssl $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl restart httpd Generar el certificado SSL $> openssl genrsa -des3 \-out /etc/pki/tls/private/ca.key 4096 Generate CSR : $> openssl req -sha256 -new \-key /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.csr --------------------------------------------- Country Name (2 letter code) [XX]:PE State or Province Name (full name) []:Lima Locality Name (eg, city) [Default City]:Lima Organization Name (eg, company) [Default Company Ltd]:PeruSystem Organizational Unit Name (eg, section)[]:Sistemas Common Name (eg, your name or your server's hostname)[]:www.perusystem.pe Email Address []:correo@gmail.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: ---------------------------------------------- Ejecute lo siguiente para crear un certificado auto-firmado con estructura X.509 en el que
se establece una validez por 1825 días (5 años): $> openssl x509 -sha256 -req -days 1825 \-in /etc/pki/tls/certs/ca.csr \-signkey /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.crt
$> chmod 600 /etc/pki/tls/*/ca.* Editar el archivo de configuracion de SSL en Apache para usar el certificado autofirmado: $> vim /etc/httpd/conf.d/ssl.conf 100: SSLCertificateFile /etc/pki/tls/certs/ca.crt 107: SSLCertificateKeyFile /etc/pki/tls/private/ca.key Reniciando servidor web: $> systemctl restart httpd
sábado, 24 de junio de 2017
EJERCICIOS REPETITIVOS | JAVA
1) Realice un algoritmo que le pida al usuario un día de la semana, de manera que la ejecución del algoritmo no se detenga hasta que el usuario haya escrito el día "viernes".
public class Ejercicio {
public static void main(String[] args) {
String day;
Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
String day;
Scanner scanner=new Scanner(System.in);
do {
System.out.println("Ingresa un día de la semana: ");
day = scanner.nextLine();
} while (!day.equals("viernes"));
}}
2) Desarrolla un algoritmo que implemente un proceso en el cual se ingrese un valor numérico de forma reiterativa, hasta que el valor ingresado sea 0. Cuando se dé este suceso, se deberá imprimir el promedio de las cantidades ingresadas, así como la cantidad de números pares e impares ingresados.
public class Ejercicio {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int num = 0, c = 0, contadorPar = 0, contadorImpar = 0;
double promedio = 0, suma = 0;
double promedio = 0, suma = 0;
do {
System.out.println("Ingresa un número: ");
num = scanner.nextInt();
suma += num;
c++;
if (num % 2 == 0) {
contadorPar++;
} else {
contadorImpar++;
}
} while (num != 0);
}}
public class Ejercicio {
public static void main(String[] args) {
int numero,cuadrado;
Scanner entrada=new Scanner(System.in);
System.out.print("Ingrese un numero: ");
numero=entrada.nextInt();
while(numero>=0){
cuadrado = (int)Math.pow(numero,2);
System.out.println("El numero " +numero+ "elevado al cuadrado es: "+cuadrado );
break;
}
}
}
4) Leer un numero hasta que se introduzca un 0. Para cada uno indicar si es número par o impar.
public class Ejermplo {
public static void main(String[] args) {
int numero;
Scanner entrada=new Scanner(System.in);
System.out.print("Ingrese un numero: ");
numero=entrada.nextInt();
while(numero!=0){
if(numero%2==0){
System.out.println("El numero es par");
}
else{
System.out.println("El numero es impar");
}
System.out.print("Ingrese un numero: ");
numero=entrada.nextInt();
}
}
}
5) Escribir un programa que muestre las siguientes opciones:
1. Sumar dos números
2. Ordenar números
3. Fecha siguiente
4. Salir
Si el usuario ingresa la opción 1 el programa debe solicitar se ingresen dos números y mostrar en consola la suma de los mismos y luego mostrar nuevamente las opciones.
Si el usuario ingresa la opción 2 el programa debe solicitar se ingresen 3 números y mostrar en consola los números ordenados de mayor a menor y luego mostrar nuevamente las opciones.
Si el usuario ingresa la opción 3 el usuario debe solicitar que se ingrese el día, mes y año (por separado) de una fecha correcta y mostrará en consola la fecha del día siguiente, suponer que todos los meses tienen 30 días y luego mostrar nuevamente las opciones.
Si el usuario ingresa la opción 4 finaliza el programa.
public static void main(String[] args) {
int num1,num2, num3, suma,opcion=0;
int dia,mes,año;
Scanner entrada = new Scanner(System.in);
do{
System.out.println("");
System.out.println("1. Sumar dos números");
System.out.println("2. Ordenar números");
System.out.println("3. Fecha siguiente");
System.out.println("4. Salir");
System.out.print("Ingresar opcion: ");
opcion=entrada.nextInt();
switch(opcion){
case 1:
System.out.print("Ingrese primer valor: ");
num1=entrada.nextInt();
System.out.print("Ingrese segundo valor: ");
num2=entrada.nextInt();
suma=num1+num2;
System.out.println("La suma es: " + suma);
break;
case 2:
System.out.println("Ingrese 3 numeros: ");
num1=entrada.nextInt();
num2=entrada.nextInt();
num3=entrada.nextInt();
if(num1>num2 && num2>num3){
System.out.println(num1+", "+num2+", "+num3);
}else if(num1>num3 && num3>num2){
System.out.println(num1+", "+num3+" ,"+num2);
}else if(num2>num1 && num1>num3){
System.out.println(num2+", "+num1+", "+num3);
}else if(num2>num3 && num3>num1){
System.out.println(num2+", "+num3+", "+num1);
}else if(num3>num2 && num2>num1){
System.out.println(num3+", "+num2+", "+num1);
}else if(num3>num1 && num1>num2){
System.out.println(num3+", "+num1+", "+num2);
}
break;
case 3:
System.out.println("Ingrese número de día: ");
dia=entrada.nextInt();
System.out.println("Ingrese mes: ");
mes=entrada.nextInt();
System.out.println("Ingrese año: ");
año=entrada.nextInt();
if (dia>=1 && dia<=30){
if(mes>=1 && mes<=12){
if (año>=1){
dia++;
if(dia>30){
dia = 1;
mes++;
}
if (mes > 12){
mes = 1;
año++;
}
System.out.println(dia+"/"+mes+"/"+año);
} else{
System.out.println("año incorrecto");
}
}else{
System.out.println("mes incorrecto");
}
} else {
System.out.println("día incorrecto");
}
break;
case 4:
break;
}
}
while(opcion!=4);
}
6) Desarrollar un programa con menú de opciones, para realizar las operaciones: Suma, resta, multiplicacion o division, se deberá solicitar 2 numeros y realizar la opción deseada.
El programa debe mostrar las siguientes opciones:
1. Suma
2. Resta
3. Multiplicación
4. Division
5. Salir
5. Salir
Solución:
public class Aplication {
static Scanner scanner = new Scanner(System.in);
static int option = 0;
static double num1 = 0, num2 = 0, result = 0;
public static void main(String[] args) {
do {
try {
showMenu();
System.out.print("Ingresa una opcion: ");
option = scanner.nextInt();
if (option >= 1 && option <= 4) {
operation();
} else if (option == 5) {
break;
} else {
System.out.println("La opción seleccionada no es válida.");
}
} catch (Exception ex) {
scanner.nextLine();
System.out.println("Error. Ingresa solo numeros entre 1 y 5.");
}
} while (option != 5);
}
private static void showMenu() {
System.out.println("""
\n**** Aplicacion de Calculadora ****
1. Suma
2. Resta
3. Multiplicacion
4. Division
5. Salir
""");
}
private static void operation() {
System.out.print("Ingresa el primer valor: ");
num1 = scanner.nextInt();
System.out.print("Ingresa el segundo valor: ");
num2 = scanner.nextInt();
switch (option) {
case 1 -> result = num1 + num2;
case 2 -> result = num1 - num2;
case 3 -> result = num1 * num2;
case 4 -> result = num1 / num2;
}
System.out.println("El resultado de la operacion es: " + result);
}
}
Suscribirse a:
Entradas (Atom)
Instalación y Configuración de un DNS Público en Debian 12
Configuración de un DNS Público en Debian 12 ===================================== Registrar un dominio público en Goddady, Namecheap ó pun...
-
1) ingrese 2 números enteros diferentes y visualizar el mayor de ellos. package problema1; import java.util.Scanner; public class Proble...
-
Atajos de Teclado Intellij-idea ========================= Formatear Codigo: Ctrl + Alt + L Comentar/Descomentar : ...
-
Descargar el instalador RPM $> wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm Instalar Google Chrome...