CentOS

6 abril 2014
Josep Ma Solanes 0

No tot s’acaba amb l’entorn Windows, avui dia més que mai, no és estrany trobar-se amb altres sistemes operatius a l’empresa realitzant tasques concretes. Continuant les entrades de instal·lació de sistemes operatius li toca el torn a preparar una màquina amb CentOS.

CentOS és una distribució Linux, gratuïta, per a l’empresa basada en Red Hat (de pagament). És una de les poques versions que podem dir està mig suportada pels fabricants de maquinari de servidors, al estar-ho Red Hat. Al ser una distribució mantinguda per la comunitat la seva descàrrega és lliure. Es poden descarregar les ISO de instal·lació des de la seva web: www.centos.org.

La vida professional m’ha portat a estar especialitzat en el món Windows, però la inquietud, curiositat, provar noves coses, etc… també m’ha fet tenir present el món Linux.

És parla molt de servidors LAMP sobretot per l’entorn de Webs, però com es munta un servidor des de 0 per servir les nostres pàgines Webs?

Instal·lació de CentOS

Per l’entrada s’utilitza una màquina virtual sobre Microsoft Hyper-V i els DVDs complets de la versió 6.5 de 64 bits.

Arrancant la màquina des de la ISO 1 s’inicia el menú d’arranc des del DVD. Seleccionar l’opció Install or upgrade an existing system.

nuvoletx-01

Al seleccionar instal·lar, s’inicia l’assistent d’instal·lació. El primer que demana és comprovar que la ISO sigui correcte. Si ho considerem, podem saltar aquest pas seleccionant Skip. (Ens movem amb el Tabulador i l’Intro).

nuvoletx-02

S’inicia l’entorn gràfic i amb ell el ratolí. Clicar el botó Next.

nuvoletx-03

Indicar l’idioma a utilitzar pel procés de instal·lació. Per simplificar-ho, seleccionar Spanish i clicar Next.

nuvoletx-04

L’entorn canvia a Español. Cal seleccionar l’idioma del teclat, per defecte marcat Español. Clicar Siguiente.

nuvoletx-05

Configuració de l’emmagatzematge, seleccionar Dispositivos de almacenamiento básicos i clicar Siguiente.

nuvoletx-06

El sistema troba un disc dur local de 20 GB que és el que hem presentat. Està net, per tant, cal que s’esborri i crear les particions corresponents. Marcar el botó Si, descarte todos los datos.

nuvoletx-07

Indicar el nom de la màquina i domini DNS. Si no ha d’estar lligada a una xarxa, el nom de domini es pot deixar localdomain. El nom de la màquina el què es vulgui, en l’exemple, nuvoletx. No clicar el botó Siguiente encara.

nuvoletx-09

Comprovar l’estat de la targeta de xarxa. Clicar el botó Configure la red. Si ha trobat els controladors de xarxa adequats, almenys hauria de sortir per configurar una interfície (eth0). Marcar-la i clicar el botó Editar.

nuvoletx-10

Assegurar que s’inicia l’interfície a l’arrancar el sistema operatiu. Marcar Conectar automáticamente.

nuvoletx-11

A la pestanya Ajustes de IPv4 i IPv6, ens permet especificar l’adreçament IP corresponent. En aquest cas, es deixa la configuració per DHCP, però si és un servidor i es disposa de les dades correctes de configuració, no està de més introduir-ho ara. Seleccionar l’opció Manual i introduir les dades que es demanen: adreça IP, porta d’enllaç, servidors DNS, domini de recerca DNS. Clicar Aplicar quan tot estigui llest i tancar el quadre de diàleg que queda obert per continuar la instal·lació.

nuvoletx-12

Configuració horària. Seleccionar el que correspongui i a mi personalment, desmarcar El reloj del sistema utiliza UTC. Clicar Siguiente.

nuvoletx-13

Contrasenya per l’administrador del sistema: root. Introduir-la dos cops per confirmar i clicar Siguiente.

nuvoletx-14

Configuració de les particions. Seleccionar Usar todo el espacio i Revisar y modificar el diseño de las particiones. Clicar Siguiente.

nuvoletx-15

Una ullada a la taula de particions que crea, amb volums LVM arrel (/) amb la majoria d’espai de disc i un volum de memòria de paginació (swap) igual a la memòria disponible. Clicar Siguiente.

nuvoletx-16

S’inicia el procés de format del disc, pot ser que aparegui alguna advertència d’esborrar les dades i d’aplicar els canvis als discs. Acceptar-les per preparar els discs.

nuvoletx-17

Configuració de l’arranc del sistema operatiu, deixar per defecte. Clicar Siguiente.

nuvoletx-18

Escollir els paquets a instal·lar amb el sistema operatiu. S’està desplegant un servidor, com menys sigui la superfície d’atac millor. Seleccionar Minimal i Personalizar ahora. Clicar el botó Siguiente.

nuvoletx-19

Al marcar Personalizar ahora abans, permet escollir els paquets a instal·lar durant la instal·lació del sistema operatiu.

  • Base de datos

Cliente de base de datos MySQL > Deixar els paquets opcionals per defecte.

Servidor de base de datos MySQL > Deixar els paquets opcionals per defecte.

  • Desarrollo

Herramientas de desarrollo > Deixar els paquets opcionals per defecte.

  • Servidor de Web

Servidor Web > Deixar els paquets opcionals per defecte.

Soporte para PHP > Deixar els paquets opcionals per defecte.

  • Servidores

Servidor FTP > Deixar els paquets opcionals per defecte.

Servidor CIFS > Deixar els paquets opcionals per defecte.

Clicar el botó Siguiente per continuar el procés de instal·lació, aquest cop copiant els binaris. Posar-se còmodes.

nuvoletx-20

Acabada la instal·lació, cal reiniciar. Clicar el botó corresponent i treure la ISO o DVD per poder iniciar el sistema operatiu des del disc dur.

nuvoletx-21

A l’arrancar des del disc dur apareix la barra de progrés de CentOS, fins a completar-se i deixar-nos amb el login.

nuvoletx-22

nuvoletx-23

Introduir el nom d’usuari root i la contrasenya que hem definit en el procés de instal·lació per accedir a l’intèrpret de comandes.

nuvoletx-24

Primers passos amb CentOS

Crear un usuari de treball per no utilitzar el root, l’operador:

adduser operador
passwd operador

Assignació de l’usuari operador al grup de sistema wheel.

usermod -G wheel operador

Establir privilegis a l’usuari operador

visudo

En el fitxer, treure el comentari de la línia (insert per editar) i guardar el fitxer (:wq)

%wheel ALL=(ALL) ALL

Configurar el tallafocs (iptables) per poder accedir per shell remota (ssh). Editar el fitxer

vi /etc/sysconfig/iptables

Comprovar que disposa de la línia, sinó la té es crea. Sortir (:q!) o sortir i guardar (:wq)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Si s’ha canviat la configuració de l’arxiu de iptables, reiniciar el servei:

service iptables restart

Comprovar l’adreça IP de la màquina, amb la instrucció següent localitzar la inet addr.

ifconfig eth0

Ja es pot realitzar la connexió des d’una aplicació de telnet més còmode com el PUTTY que ens permetrà registrar les operacions o fer copiar i enganxar. Tancar la consola:

logout

Iniciar el PUTTY. A l’opció Session > Logging,

  • Marcar All session output.
  • Log file name, indicar on generar el fitxer de log de la sessió. Per exemple escriptori amb una preconfiguració del nom del fitxer per a cada sessió (&H nom del host; &Y any; &M mes; &D dia; & Hora). Per exemple: putty_&H-&Y &M &D – &T.log
  • Si el fitxer existeix, afegir al final del fitxer. Marcar Always append to the end of it.

A Session, indicar l’adreça IP o el nom del HOST del servidor CentOS pel port 22 (SSH). Es pot guardar per recuperar després la sessió, indicant un nom i clicar el botó Save.

nuvoletx-25

Clicar el botó OPEN per obrir la sessió. El primer cop tindrem l’advertència de les claus SSL, clicar el botó Si per emmagatzemar-les per les properes sessions. Si tot és correcte s’obrirà una finestra demanant el login. Iniciar amb l’usuari operador.

nuvoletx-26

Servidor Web Apache múltiples sites en CentOS

Havent seguit les passes de la instal·lació, hem de tenir els binaris de l’Apache, MySQL, PHP instal·lats, però pendents de configurar. Per no haver d’estar escalant privilegis tota l’estona, es pot passar a mode administrador:

su -

En cas de no estar instal·lat es pot fer amb la instrucció:

yum -y install httpd php

Abans de començar a tocar, fem una còpia de seguretat del fitxer de configuració de l’Apache:

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.original

Editar el fitxer /etc/httpd/conf/httpd.conf per permetre disposar de múltiples sites (llocs web) amb una mateixa IP. Descomentar el paràmetre i guardar el fitxer (:wq):

NameVirtualHost *:80

Crear el fitxer de llocs virtuals a /etc/httpd/conf.d/vhost.conf:

vi /etc/httpd/conf.d/vhosts.conf

El contingut del fitxer per crear dos llocs web ficticis: www.exemple1.localdomain i www.exemple2.localdomain, ha de ser:

ServerName localhost
<VirtualHost *:80>
 ServerAdmin webmaster@localdomain
 ServerName localdomain
 ServerAlias localhost.localdomain
 DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *:80>
 ServerAdmin webmaster@exemple1.localdomain
 ServerName exemple1.localdomain
 ServerAlias www.exemple1.localdomain
 DocumentRoot /srv/www/exemple1/public_html
 ErrorLog /srv/www/exemple1/logs/error.log
 CustomLog /srv/www/exemple1/logs/access.log combined
 <Directory /srv/www/exemple1/public_html>
  AllowOverride All
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>

<VirtualHost *:80>
 ServerAdmin webmaster@exemple2.localdomain
 ServerName exemple2.localdomain
 ServerAlias www.exemple2.localdomain
 DocumentRoot /srv/www/exemple2/public_html
 ErrorLog /srv/www/exemple2/logs/error.log
 CustomLog /srv/www/exemple2/logs/access.log combined
 <Directory /srv/www/exemple2/public_html>
  AllowOverride All
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>

Crear els directoris per allotjar els dos llocs web:

mkdir -p /srv/www/exemple1/public_html
mkdir /srv/www/exemple1/logs

mkdir -p /srv/www/exemple2/public_html
mkdir /srv/www/exemple2/logs

Crear un grup per a webmasters que puguin accedir i modificar el contingut del les carpetes:

groupadd webmasters

Afegir l’usuari operador al grup de webmasters:

usermod -a -G webmasters operador

Modificar els permisos de grup de les carpetes dels llocs web. En cas que cada lloc web l’hagués d’administrar una persona diferent, s’assignarien permisos a grups separats, en aquest cas, com que l’administració és única, s’assignen els mateixos a partir de la carpeta www i subcarpetes:

chown root:webmasters /srv/www/ -R

I assignació de permisos d’escriptura al grup de webmasters:

chmod 775 /srv/www -R

No és massa recomanable que els altres usuaris tinguin accés d’escriptura!

Modificar l’arxiu de hosts perquè pugui resoldre els dos llocs web que hem creat

vi /etc/hosts

Que quedi semblant a:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 nuvoletx nuvoletx.localdomain
127.0.0.1 www.exemple1.localdomain
127.0.0.1 www.exemple2.localdomain

Comprovar la configuració dels arxius d’Apache

httpd -S

No haurien d’aparèixer errors ni advertiments, sinó una cosa semblant a:

nuvoletx-27

Habilitar l’inici automàtic del servei d’Apache

/sbin/chkconfig --levels 235 httpd on

Iniciar o reiniciar el servei:

service httpd restart

Configurar el tallafocs perquè permeti l’accés pel port TCP 80, sinó només hi podríem accedir des de la pròpia màquina. Modificar fitxer iptables

vi /etc/sysconfig/iptables

Afegir la línia:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Reiniciar el servei de iptables:

service iptables restart

Si cal, modificar el fitxer hosts local per poder resoldre els noms anteriors.

Provar d’accedir al servidor web mitjançant un navegador, accedint a nuvoletx ha d’accedir a la pàgina per defecte de l’Apache:

nuvoletx-28

Però si intentem accedir als altres sites virtuals, també surt la mateixa pàgina d’exemple. És a causa del SELinux que limita l’accés als directoris. Una opció per comprovar-ho és deshabilitar-lo temporalment:

echo 0 > /selinux/enforce

Per deixar aplicar el canvi permanentment, cal modificar el fitxer /etc/selinux/config, canviant el paràmetre SELINUX a disabled.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

Crear una pàgina web index.html d’exemple en cada un dels llocs Web, es pot veure com, al fer la crida, ja apareix cada lloc correctament.

Exemple de pàgina HTML senzilla:

<HTML>
   <HEAD>
      <TITLE>
         Lloc web exemple1
      </TITLE>
   </HEAD>
   <BODY>
      <H1>Lloc web EXEMPLE-1</H1>
   </BODY>
</HTML>

nuvoletx-29

nuvoletx-30

Provar també que el PHP funcioni correctament amb una pàgina d’exemple: index.php

<?php
   phpinfo();
?>

nuvoletx-31

Ja tenim el servei web a grans trets operatiu!

Servidor MySQL en CentOS

Amb el servidor web funcionant, ara toca la base de dades: MySQL. Comprovem que està instal·lat:

ls /etc/init.d/mysql

En cas de no estar-ho es pot instal·lar amb la instrucció:

yum -y install mysql-server mysql

Configurem el servei perquè s’iniciï a l’engegar el sistema operatiu i l’engeguem manualment:

/sbin/chkconfig --levels 235 mysqld on
service mysqld start

Iniciem l’assistent de configuració de la seguretat de MySQL:

/usr/bin/mysql_secure_installation

Seguir les instruccions de l’assistent:

  • Introduir l’actual contrasenya del root. No en té per tant, tecla Intro.
  • Establir la contrasenya per a root, contestar Y i introduir la nova contrasenya.
  • Eliminar l’usuari anònim, contestar Y.
  • Desactivar la connexió de root remota. En producció, millor contestar Y, en desenvolupament potser interessa poder accedir remotament amb root al MySQL. Per tant, dependrà de cada instal·lació.
  • Eliminar les bases de dades de test, contestar Y.
  • Recarregar els privilegis ara, contestar Y.

Habilitar el tallafocs perquè sigui accessible el MySQL des de l’exterior (és opcional).

vi /etc/sysconfig/iptables

Afegir la línia

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

Recordar en reiniciar el tallafocs per aplicar els canvis: service iptables restart

Crear dues bases de dades d’exemple

Accedir al MySQL i crear dues noves bases de dades (per exemple1 i exemple2).

mysql -h localhost -u root -p
create database exemple1DB;
create user 'exemple1DB_user'@'localhost' IDENTIFIED BY 'Contrasenya1';
grant all on exemple1DB.* TO 'exemple1DB_user'@'localhost';
flush privileges;
create database exemple2DB;
create user 'exemple2DB_user'@'localhost' IDENTIFIED BY 'Contrasenya2';
grant all on exemple2DB.* TO 'exemple2DB_user'@'localhost';
flush privileges;

Sortir de l’entorn de base de dades amb quit i provar que ens podem connectar a cada base de dades amb el seu usuari corresponent:

mysql -h localhost -u exemple1DB_user -p exemple1DB

Indicar que ens ensenyi les bases de dades, només ha d’aparèixer la d’esquema i la que tenim permisos:

show databases;

 

Servidor CIFS – SAMBA en CentOS

Com que normalment treballarem des de la xarxa i es generaran fitxers que s’han de col·locar al servidor, caldrà un servei de transferència de fitxers. Aquest servei pot ser un simple FTP o bé habilitar el protocol CIFS per tractar-lo com a una màquina més de la xarxa Windows.

Si hem seguit la instal·lació del principi, ja tindrem els binaris de SAMBA copiats, si no cal instal·lar-los abans.

yum -y install samba

Configurem el servei perquè s’iniciï a l’engegar el sistema operatiu:

/sbin/chkconfig --levels 235 smb on

Habilitar el tallafocs per permetre la comunicació amb els ports de CIFS. Modificar el fitxer:

vi /etc/sysconfig/iptables

amb les línies:

-A INPUT -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Reiniciar el tallafocs per aplicar els canvis:

service iptables restart

Fer una còpia de seguretat del fitxer de configuració actual de SAMBA:

cp /etc/samba/smb.conf /etc/samba/smb.original

Modificar el fitxer de configuració de SAMBA:

vi /etc/samba/smb.conf

Comentar amb un punt i coma (;) al davant, els apartats de [homes] i [printers] perquè no els comparteixi.

;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes

Afegir un nou apartat pels directoris del servidor web amb permisos al grup de Webmasters:

# Servidor Web
[webs]
 comment = Servidor Web
 path = /srv/www
 browseable = yes
 guest ok = no
 writable = yes
 admin users = operador
 valid users = +webmasters
 force user = root
 force group = webmasters
 create mask = 0774
 directory mode = 0774
 force create mode = 0774
 force directory mode = 0774

Carregar el mòdul CIFS al sistema:

modprobe cifs

Iniciar el servei de SAMBA

service smb start

Crear el fitxer de contrasenyes SAMBA pels usuaris, per exemple l’operador:

smbpasswd -a operador

Des del client Windows, podem accedir al servidor via UNC \\nom_del_servidor_Linux, en demana l’usuari i contrasenya (operador) i cap a dins. Es pot recorre l’estructura de carpetes, crear noves carpetes i fitxers:

nuvoletx-32

Les noves carpetes i fitxers tindran l’estructura de permisos que s’han definit:

nuvoletx-33

 

Arribats en aquest punt ja tenim el servidor a punt per servir pàgines web. Instal·lem WordPress, Joomla, per exemple? Però serà en una altra entrada.

 

T’ha agradat l’article? El pots compartir a les xarxes socials. També pots deixar la teva opinió, comentari o suggeriment. Gràcies!

Similar Posts by The Author: