Centos 7 – Instalación de WordPress

Paso 1 – Instalar Servidor Web con soporte para PHP

Mirar aquí

Paso 2 – Instalar Maria DB (MySQL)

Mirar aquí

Paso 3 – Crear la base de datos para WordPress

mysql -u root -p

create database wordpress;
grant all privileges on wordpress.* to wordpress@’localhost’ identified by ‘password’;
flush privileges;
exit

Paso 4 – Instalar WordPress

Habilitar el repositorio EPEL e instalar wordpress

yum --enablerepo=epel -y install wordpress

Paso 5 – Configurar WordPress

Editar el archivo de configuración principal de wordpress

cp /etc/wordpress/wp-config.php /etc/wordpress/wp-config.php.bk

vim /etc/wordpress/wp-config.php

Línea 23: Especificar el nombre de la base de datos

define('DB_NAME', 'wordpress');

Línea 26: Definir el nombre de usuario

define('DB_USER', 'wordpress');

Línea 29: Definir la contraseña

define('DB_PASSWORD', 'password');

Paso 6: Editar el archivo de configuración de wordpress en el servidor Web

vim /etc/httpd/conf.d/wordpress.conf

La línea 8 debe decir

Require all granted
Paso 7 – Re-inicar servidor web
systemctl restart httpd
El resto de la configuración se hace en modo gráfico
  • Nombre del Sitio
  • Nombre de usuario
  • contraseña

Listo

Centos 7 – Instalación de MariaDB

Paso 1 – Instalación

yum -y install mariadb-server

Activar la codificación UTF-8 para evitar problemas con los caracteres especiales en español añadiendo dentro de la sección [mysqld]

[mysqld]
 character-set-server=utf8

Paso 2 – Iniciar y habilitar servicio

systemctl start mariadb
 systemctl enable mariadb

Paso 2 – Asegurar la instalación

mysql_secure_installation

Favor prestar atención a cada una de las preguntas del asitente

  • Contraseña actual del usuario root de la base de datos, como no tiene se presiona enter
  • Poner contraseña al usuario root – Si
  • Poner nueva contraseña
  • Remover usuarios anónimos – Si
  • Deshabilitar el inicio de sesión remoto – Si
  • Remover la base de datos de prueba y el acceso a ella – Si
  • Recargar los privilegios en las tablas – Si

Paso 3 – Acceder

Desde la terminar se escribe

mysql -u root -p

Si quieren jugar, les dejo un par de comandos, no se les olvide el ; al final

select user,host,password from mysql.user;
 show databases;
 exit

Paso 4 – El firewall

firewall-cmd --add-service=mysql --permanent
 firewall-cmd --reload

Host virtuales – HTTP Centos 7

En este ejemplo se configuran dos hosts virtuales una vez que se ha configurado el servidor web con apache en Centos 7.

El primer sitio web responderá a http://www.irt.edu.ni

El segundo sitio web responderá a mail.irt.edu.ni

La configuración del DNS está aquí

La configuración del servidor Web con php se encuentra aquí

La configuración del servidor Web con SSL se encuentra aquí

Paso 1 – Configurar las opciones de los hosts virtuales

vim /etc/httpd/conf.d/vhost.conf

# Configuración para el dominio original
<VirtualHost *:80>
 DocumentRoot /var/www/html
 ServerName www.irt.edu.ni
</VirtualHost>

# El dominio virtual
<VirtualHost *:80>
 DocumentRoot /var/www/html2
 ServerName mail.irt.edu.ni
 ServerAdmin webmaster@irt.edu.ni
 ErrorLog logs/virtual.host-error_log
 CustomLog logs/virtual.host-access_log combined
</VirtualHost>

# Configuración https para el dominio original
<VirtualHost *:443>
 DocumentRoot /var/www/html
 ServerName www.irt.edu.ni
</VirtualHost>

# https para el dominio virtual
<VirtualHost *:443>
 DocumentRoot /var/www/html2
 ServerName mail.irt.edu.ni
 ServerAdmin webmaster@irt.edu.ni
 ErrorLog logs/virtual.host-error_log
 CustomLog logs/virtual.host-access_log combined
</VirtualHost>

Paso 2 – Crear directorio y archivos del host virtual

mkdir /var/www/html2

vim /var/www/html2/index.html

<HTML>
 <HEAD>
 <TITLE>2do Sitio Web (de Prueba)</TITLE>
 </HEAD>
 <BODY bgcolor=#aabbcc>
 <CENTER>
 <H1> Mi Segunda p&aacute;gina Web </H1>
 </CENTER>
 <HR>
 P&aacute;gina Web de prueba para comprabar que el servidor apache2 funciona.

<center>
 <P> <A HREF="https://centosservidor.wordpress.com/"> No olviden visitar mi blog </A>
 </center>

</BODY>
 </HTML>

Paso 3 – Re-iniciar Servicios

systemctl restart httpd

Se prueba todo desde el cliente

Servidor Web con SSL en Centos 7 – https

Paso 1 – Configurar certificados

Ir a la ubicación donde se guardará el certificado

cd /etc/pki/tls/certs

Generar la llave de encriptación – no olvidar poner la contraseña

make server.key

Quitarle la contraseña a la llave

openssl rsa -in server.key -out server.key

Generar el certificado – hay que poner código de país, ciudad y otros datos, no poner contraseña

make server.csr

Poner todo junto  – El certificado con su llave, con una duración de 10 años

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

Paso 2 – módulo SSL

yum -y install mod_ssl

vim /etc/httpd/conf.d/ssl.conf

línea 59 – quitar comentario

línea 60 – quitar comentario y poner el nombre del servidor, no olvidar el puerto

Lína 75 – cambiar a

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

Línea 100 – especificar la ruta del certificado

SSLCertificateFile /etc/pki/tls/certs/server.crt

línea 107 – La llave

SSLCertificateKeyFile /etc/pki/tls/certs/server.key

Paso 3  – El firewall

firewall-cmd --add-service=https --permanent
 firewall-cmd --reload

Paso 4 – re-inicar servicios

systemctl restart httpd

Ahora acceder al sitio utilizando el protocolo https

 

 

 

Servidor Web + PHP Centos 7

Paso 1 – Instalar apache

yum -y install httpd

Paso 2 – editar /etc/httpd/conf/httpd.conf

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bk

vim /etc/httpd/conf/httpd.conf

Línea 86 – Cambiar el e-mail del administrador

Línea 95 – Cambiar el nombre del sitio web, no olvidar el puerto

Línea 151 – Cambiar

AllowOverride All

Línea 164 – Agregar archivos de índice

DirectoryIndex index.html index.htm index.cgi index.php

Paso 3 – Crear sitio web de ejemplo

vim /var/www/html/index.html

<HTML>
<HEAD>
<TITLE>1er Sitio Web (de Prueba)</TITLE>
</HEAD>
<BODY >
<CENTER>
<H1> Mi Primera p&aacute;gina Web </H1>
</CENTER>
<HR>
P&aacute;gina Web de prueba para comprabar que el servidor apache2 funciona.

<center>
<P> <A HREF=»https://centosservidor.wordpress.com/»> No olviden visitar mi blog </A>
</center>

</BODY>
</HTML>

Paso 4 – Instalar php

yum -y install php php-mbstring php-pear

Paso 5 – Establecer zona horaria en el php.ini

vim /etc/php.ini

date.timezone = «America/Managua»

Paso 5 – Crear página php de ejemplo

vim /var/www/html/index.php

Paso 6 – El firewall

firewall-cmd --add-service=http --permanent
 firewall-cmd --reload

Paso 7 – Re-inicar y habilitar servicios

systemctl start httpd
 systemctl enable httpd

Todo se prueba en el navegador

Squid + SquidGuard en Centos 7

Paso 1 – Instalación de squid

yum -y install squid

Paso 2 – Editar el archivo /etc/squid/squid.conf

cp /etc/squid/squid.conf /etc/squid/squid.conf.bk

vim /etc/squid/squid.conf

Agregar comentarios en las líneas 8, 9, 11 y 12

Ajustar los parámetros de red en la línea 10

#acl localnet src 10.0.0.0/8
#acl localnet src 172.16.0.0/12
acl localnet src 192.168.10.0/24
#acl localnet src fc00::/7
#acl localnet src fe80::/10

Línea 62 – Quitar comentario y dejar así

cache_dir ufs /var/spool/squid 700 16 256

Agregar al final

# no permitir el acceso anónimo
request_header_access Referer deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

# no mostrar dirección IP
forwarded_for off

# Tamaño de la memoria cache
cache_mem 256 MB

# Definir nombre del host
visible_hostname proxyserver

# Forzar el uso de SquidGuard
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

Paso 3- Activar servicio y Agregar servicios al firewall

systemctl start squid
 systemctl enable squid

firewall-cmd --add-service=squid --permanent

firewall-cmd --reload

Paso 4 – Instalar Squid Guard

yum --enablerepo=epel -y install squidGuard

mv /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf.org

Paso 5 – editar el archivo /etc/squid/squidGuard.conf

vim /etc/squid/squidGuard.conf

Debe quedar así

# Definir ubicación donde estarán los archivos que restringen el acceso
dbhome /var/lib/squidGuard/db
logdir /var/log/squidGuard

# Definir la categoría «Denegado»

dest deny {
# Definir lista de dominios prohibidos de la categordias «Denegados»
domainlist deny/domains

# Definir lista de URL prohibidad de la categoría «Denegados»
urllist deny/urls
}

acl {
default {
# Permitir todo exepto la categoría «Denegados»
pass !deny all

# Redireccionar los sitios que coincidean con la categoría denegados
redirect http://www.uca.edu.ni
}
}

Paso 6 – Crear archivos y directorios con dominios y URLs negados

Dominios

vim /var/lib/squidGuard/db/deny/domains

Debe contener algo como esto

# Escriba aquí los dominios que van a estar prohibidos
google.com.ni

URL

vim /var/lib/squidGuard/db/deny/urls

Debe ser más o menos así:
# Escriba aquí las URLs que desea prohibir
http://www.google.com.ni

Paso 7- Revisar que todo esté bien y activar servicios

squidGuard -C all

chown -R squid. /var/lib/squidGuard/db/deny

systemctl enable squid squidGuard

systemctl restart squid squidGuard

systemctl status squid

Paso 8 – SELinux

chcon -R -t squid_cache_t /var/lib/squidGuard
semanage fcontext -a -t squid_cache_t /var/lib/squidGuard

Finalmente se prueba en el cliente

 

Samba en Centos 7

Paso 1 – Instalación

yum -y install samba samba-client samba-common

Paso 2 – Creación de un directorio para acceso público

mkdir -p /var/samba/publico

Paso 3 – SELinux y samba

setsebool -P allow_smbd_anon_write 1
setsebool -P samba_domain_controller 1
setsebool -P samba_enable_home_dirs 1
setsebool -P use_samba_home_dirs 1
setsebool -P samba_create_home_dirs 1
setsebool -P samba_portmapper 1
setsebool -P samba_run_unconfined 1
setsebool -P samba_export_all_ro 1
setsebool -P samba_export_all_rw 1
chcon -t samba_share_t /var/samba/publico

Paso 4 – Editar el archivo lmhost

vim /etc/samba/lmhosts
127.0.0.1 localhost
192.168.10.10 servidor
192.168.10.101 cliente1
192.168.10.10 2 cliente2

Paso 5 – editar el archivo smb.conf

vim /etc/samba/smb.conf

workgroup = MIGRUPO
server string = Samba Server Version %v en %L
netbios name = servidor
remote announce = 192.168.10.10/MIGRUPO
interfaces = lo eth0 192.168.56.101/24
hosts allow = 127. 192.168.10.
security = user
passdb backend = tdbsam

[public]
comment = Carpeta Publica
path = /var/samba/publico
public = yes
writable = yes
printable = no

Paso 6 – agregar usuarios a Samba

smbpasswd -a usuario_samba

Paso 7 – Reiniciar servicios

systemctl restart smb nmb

Ahora lo único que falta es probar desde Windows

 

Configuracion del servidor DNS en Centos 7

Requisitos para configurar un DNS

  • Configuración correcta de los parámetros de red
    • Número IP asignado de forma estática
      • Puede ser Ip público
      • O puede ser Ip privado
    • Máscara de red
    • Puerta de enlace
    • Servidor DNS (Puede ser el mismo)
  • Disponer de un dominio
    • Puede ser dominio público
    • Dominio privado

Bind – named Bind: Berkeley Internet Name Domain

Es el servidor DNS que se utiliza prácticamente en todas las distribuciones de GNU/Linux, caba destacar que el servicio DNS se conoce como named.

El archivo de configuración principal es /etc/namend.conf, pero en dependencia de la distribución los archivos de Zona pueden estar en:

/etc/bindX – Debian, ubuntu y famila, la X es la versión de Bind
/var/named – Centos, fedora y familia
/var/lib/named – openSuse y famila

Software necesario

Paquete Descripción
bind Incluye el Servidor DNS (named) y herramientas para verificar su funcionamiento.
bind-libs Bibliotecas compartidas, que consisten en rutinas para aplicaciones para utilizarse cuando se interactúe con Servidores DNS.
bind-chroot Contiene un árbol de archivos que puede ser utilizado como una jaula chroot para named añadiendo seguridad adicional al servicio.
bind-utils Colección de herramientas para consultar Servidores DNS.

DNS y SELinux

Security-Enhanced Linux (SELinux) es un módulo de seguridad para el kernel Linux que proporciona el mecanismo para soportar políticas de seguridad para el control de acceso, incluyendo controles de acceso obligatorios como los del Departamento de Defensa de Estados Unidos.

Los conceptos clave que soportan SELinux pueden ser trazados a diversos proyectos previos de la Agencia de Seguridad Nacional de Estados Unidos.
SELinux ha sido integrado a la rama principal del núcleo Linux desde la versión 2.6, el 8 de agosto de 2003.

SELinux y el servicio named

Lo principal aquí es que aunque tengamos bien configurado el DNS se hace necesario ajustar las políticas en SELinux para que sea permitido su funcionamiento.

A fin de que SELinux permita al servicio named trabajar con permisos de escritura para zonas maestras, es decir un esquema de servidor maestro con servidores esclavos o bien como servidor DNS dinámico

Paso 0: Instalar Software necesario

  • yum -y install bind bind-chroot bind-utils

De paso El Firewall

  • firewall-cmd --permanent --zone=public --add-port=53/tcp
  • firewall-cmd --permanent --zone=public --add-port=53/udp

Paso 1:  SELinux

setsebool -P named_write_master_zones 1

Paso 2: Editar named.conf

cd /etc/
cp named.conf named.conf.bk

vim named.conf

listen-on port 53 { any; };

Después de memstatistics-file …

allow-query { any; };

       forwarders {

               8.8.8.8;

               8.8.4.4;

       };

       forward first;

Después de include «/etc/named.root.key»;

zone "irt.edu.ni" {

               type master;

               file "data/irt.edu.ni.zone";

               allow-update { none; };

       };

       zone "10.168.192.in-addr.arpa" {

               type master;

               file "data/10.168.192.in-addr.arpa.zone";

               allow-update { none; };

       };

Paso 3: Creación de los archivos de zona

cd /var/named/data/
 touch irt.edu.ni.zone 10.168.192.in-addr.arpa.zone

SELinux

chcon -u system_u -r object_r -t named_zone_t irt.edu.ni.zone 10.168.192.in-addr.arpa.zone

Zona de búsqueda directa

$TTL 86400
@ IN SOA dns.irt.edu.ni. root.irt.edu.ni. (
2017061900; No de serie
8h ; tiempo de refresco
2h ; tiempo entre reintentos de consulta
7d ; tiempo tras el cual expira la zona
8h; tiempo total de vida
)
@ IN NS dns.irt.edu.ni.
@ IN MX 10 mail.irt.edu.ni.
@ IN TXT «v=spf1 a mx -all»
@ IN A 192.168.10.10
dns IN A 192.168.10.10
www IN A 192.168.10.10
mail IN A 192.168.10.10
ftp IN CNAME www

Zona de busqueda inversa

$TTL 86400
@ IN SOA dns.irt.edu.ni. root.irt.edu.ni. (
2017062000; No de serie
8h ; tiempo de refresco
2h ; tiempo entre reintentos de consulta
7d ; tiempo tras el cual expira la zona
8h; tiempo total de vida
)
@ IN NS dns.irt.edu.ni.
@ IN MX 10 mail.irt.edu.ni.
@ IN TXT «v=spf1 a mx -all»
10 IN PTR dns
10 IN PTR mail

Probar la configuración

Integridad de la configuración

  • named-checkconf
  • named-checkzone irt.edu.ni irt.edu.ni.zone

Poner a correr el servicio usando systemctl

Herramientas DNS

nslookup: Es la herramienta por excelencia para probar el DNS, está disponible tanto en Windows como en linux ejemplos:

 

Configuración de los parámetros de red en Centos 7

Introducción

Configurar los parámetros de red en Centos 7,  requiere que se entiendan perfectamente los fundamentos de TCP/IP versión 4 y saber cómo utilizar cualquier editor de texto simple.

En CentOS y Red Hat™ Enterprise Linux la detección de las tarjetas de
red es automática mientras se trate de dispositivos soportados (o sea que estén dentro de la lista de hardware compatible). Por lo general las tarjetas de marcas reconocidas no tienen ningún problema. Para consultar la lista de dispositivos compatibles, visite http://hardware.redhat.com.

Nombres de los dispositivos de red

Las más recientes versiones de CentOS, Fedora™ y Red Hat™ Enterprise Linux utilizan un nuevo esquema para los nombres de los dispositivos de red. Antiguamente las tarjetas de red recibian nombre como: eth0, eth1, etc.

Actualmente la cosa es un tanto más compleja. Los dispositivos de red integrados a la tarjeta madre utilizan el esquema eno[1,2,3,4…]

Los dispositivos PCI utilizan el esquema enp[ranura PCI] p[puerto
ethernet] y los Dispositivos virtuales— eno[ranura PCI] p[puerto ethernet]_[interfaz virtual] o enp[ranura PCI]p[puerto ethernet]_[interfaz virtual].

Algunos ejemplos

  • eno1: Primer dispositivo de red integrado en la tarjeta madre.
  • eno2: Segundo dispositivo de red integrado en la tarjeta madre.
  • enp1p1: Dispositivo de red en la primera ranura PCI, primer puerto ethernet.
  • enp3p1: Dispositivo de red en la tercera ranura PCI, primer puerto ethernet.
  • enp3p2_1: Dispositivo de red en la tercera ranura PCI, segundo puerto ethernet, primer dispositivo virtual.

Mayor información los comandos:

Para saber los puertos disponibles

biosdecode | less

Lista de adaptadores de red disponibles

ls -l /sys/class/net

NetworkManager

Para los que no les gusta complicarse la vida con tediosas configuraciones en modo comandos existe el NetworkManager, una muy interesante aplicación que permite a los usuarios regulares controlar y añadir dispositivos de red.

La verdad es muy práctico, porque permite facilitar la administración de interfaces inalámbricas, conexiones de VPN, conexiones PPPoE y cualquier conexión de red desde el escritorio. En CentOS 7, NetworkManager viene activo e instalado de modo predeterminado en cualquier tipo de instalación.

También se puede sacar en modo texto con el comando nmtui

Personalmente no lo uso, cada quien tiene derecho a tener sus gustos

NetworkManager vs Servicio Network

NetworkManager

En un servidor es absurdo o poco saludable configurar las tarjetas de red en modo gráfico. La única ventaja que tiene frente al servicio network es que detecta, activa y desactiva automáticamente los dispositivos ethernet cuando se conecta y desconecta el cable correspondiente.

Servicio Network

Permite la administración a través de una consola de texto vía SSH. También hace posible seleccionar tarjetas que serán controladas por Network Manager y otras controladas por el servicio Network

En todo Caso, no combinar. Si opta por usar NetworkManager, no intente modificar la configuración utilizando el servicio Network.

Configuración de los parámetros de red

(Escenario en Centos 7 como servidor)

Servidor Con dos tarjetas de red

  • Red nat – Configurada con DHCP
  • Red Interna – Configuración estática

Todos los Scripts de configuración de red están en:
/etc/sysconfig/network-scripts/

  • Primero deshabilitar NetworkManager

systemctl disable NetworkManager
systemctl stop NetworkManager

Configuración de enp0s3
Editar el archivo de configuración con:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
BOOTPROTO=dhcp
ONBOOT=yes
NM_CONTROLLED=no

  • Configuración de enp0s8
    Editar el archivo de configuración con la siguiente información mínima:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s8
DEVICE=enp0s8
ONBOOT=yes
IPADDR=192.168.10.10
PREFIX=24
NM_CONTROLED=no
  • Poner nombre a los host, para este ejemplo srvcentos.irt.edu.ni

vim /etc/hosts

192.168.10.10 srvcentos srvcentos.irt.edu.ni

vi /etc/hostname

srvcentos
  • Si queremos el cambio de inmediato
hostnamectl set-hostname srvcentos.irt.edu.ni
systemctl restart systemd-hostnamed

Su Majestad el comando chmod

Por: Carlos A. Leal S.

Cada usuario es propietario de su directorio particular y los archivos contenidos en él. Un usuario en Linux puede cambiar permisos en sus archivos.

Existen categorías de usuarios, como el usuario administrador que puede cambiar cualquier permiso de cualquier archivo de cualquier usuario, pero también existen tipos de permisos que cada uno de ellos puede tener sobre un archivo y/o directorio.

Categorías de usuarios

  • Propietario del archivo (u).
  • Grupo propietario (g), formado por todos los usuarios que son miembros de un grupo asociado al archivo.
  • Resto de usuarios (o), todos los usuarios que no son ni el propietario ni miembros del grupo propietario.

Tipos de permisos:

  • r: permiso de lectura en el fichero.
  • w: permiso de escritura en el fichero.
  • x: permiso de ejecución del fichero
  • s: permiso para cambiar el propietario del fichero.

Si desea ver los permisos, simplemente se ejecuta ls -l

ls -l 

Ahora si chmod

Comando utilizado para cambiar los permisos, tanto para directorios como para archivos. Puede ser utilizado con opciones o en modo octal

Con las opciones

chmod ugo +-rwxugo archivo o directorio

  • u – propietario usuario del archivo.
  • g – grupo
  • o – resto de usuarios que no son ni el propietario ni el grupo.
  • +   añade permisos
  • –    deniega permisos.

Ejemplos

chmod ug+rw etc.tar.gz

Da permisos de lectura y escritura al usuario y al grupo propietarios

Chmod go-rwx etc.tar.gz

Quita permisos de lectura, escritura y ejecución al grupo propietario y a otros usuarios

chmod – modo octal

Es hora de utilizar aquella cosa que enseñan en las clases de introducción a la ingeniería o de introducción a la informática y que nunca la habíamos usado, si e sistema octal.

Ejemplos:

chmod 766 archivo.txt

Acceso total al propietario y lectura y escritura a los demás.

chmod 770 archivo.txt

Acceso total al propietario y al grupo y elimina todos los permisos a los demás usuarios

chmod 635 archivo.txt

Lectura y escritura al propietario,  escritura y ejecución al grupo, y lectura y ejecución al resto

Bonus chgrp y chown

El usuario root es el único autorizado para cambiar los permisos de los directorios y los archivos. Al cambiar los permisos, no se altera el contenido del archivo, lo único que cambia es quién puede tener acceso al mismo

Ejemplos

chgrp root etc.tar.gz

Cambia el grupo propietario del archivo a root sin cambiar el usuario propietario

chown root etc.tar.gz

Cambia el usuario propietario del archivo a root sin cambiar el grupo

chown loboalfa.users etc.tar.gz

Cambia el usuario propietario a loboalfa y el grupo propietario a users al archivo

chown -Rf loboalfa.users /home/loboalfa

Cambia el usuario propietario a loboalfa y el grupo propietario a users al directorio y todo su contenido