Espai dels administradors: Diferència entre les revisions

De Gwiki
Dreceres ràpides: navegació, cerca
(SSL a totes els aplicacions)
(docmgr)
 
(Hi ha 7 revisions intermèdies del mateix usuari que no es mostren)
Línia 337: Línia 337:
 
Ja està forçat l'ssl des de la versió 2.60
 
Ja està forçat l'ssl des de la versió 2.60
 
== docmgr ==
 
== docmgr ==
 +
=== ssl ===
 +
Posar un .htaccess amb el contingut següent
 +
 +
AddDefaultCharset utf-8
 +
RewriteEngine On
 +
RewriteCond %{SERVER_PORT} 80
 +
RewriteRule ^(.*)$ https://docmgr.XXXX.cat/$1 [R,L]
 +
 +
i modificar la variable SITE_URL dol fitxer de configuració
 +
 +
=== Crear usuari i base de dades ===
 +
root@postgres:~# su postgres
 +
postgres@postgres:/root$ createuser docmgr_serre
 +
postgres@postgres:/root$ createdb docmgr_serre
 +
 +
Des de línia de comandes psql...
 +
postgres=# \password usuari - Canviar o establir pa password de l'usuari..... Ja pot accedir a phppgadmin
 +
postgres=# \l - llistar les bases de dades
 +
postgres=# \c mebabdd - Connectar-me a la base de dades
 +
mevabdd=# \dt -- Mostra les taules
 +
 +
=== Connexió remota des de línia de comandes ===
 +
 +
psql -h ns310295.eu -p XXXX -U docmgruser docmgrdb
 +
 +
== Habilitar accès remot ==
 +
* al fitxer de configuració /etc/postgresql/X.X/main/postgresql.conf afegint des de quines màquines escolta
 +
* al fitxer pg_hba.conf del mateix directori, afegir una línia amb el format
 +
host db user IP mask md5
 +
 +
==========================
 +
 
Al fitxer de configuració d'Apache es pot posar una redirecció de forma que no afectin les actualitzacions
 
Al fitxer de configuració d'Apache es pot posar una redirecció de forma que no afectin les actualitzacions
 
  Redirect permanent /docmgr https://192.168.1.150/docmgr
 
  Redirect permanent /docmgr https://192.168.1.150/docmgr
 +
 
== Joomla ==
 
== Joomla ==
 
Entrant com administradors, podem anar a "Global Configuration", podem , a continuació, seleccionar la petanya "Server" i en aquesta pantalla podrem configurar l'accés ssl als diferents àmbits. És suficient que ho fem per la secció d'administració
 
Entrant com administradors, podem anar a "Global Configuration", podem , a continuació, seleccionar la petanya "Server" i en aquesta pantalla podrem configurar l'accés ssl als diferents àmbits. És suficient que ho fem per la secció d'administració

Revisió de 16:50, 13 des 2018

Publicació noves versions

Neteja

  • Netejar carpeta feina guardies
  • Netejar carpeta images
  • Netejar logs
  • Eliminar carpeta gassist-server2, plesk, plesk-stat, nbproject
  • Eliminar carpeta upload_mails
  • Eliminar dades de connect.php i constants.php
  • Eliminar dades login google

Gassist lliure

  • Eliminar carpetes abs*, CCC*, ass_servei*, sort*, ctrl_prof
  • Eliminar carpeta inf_passa_llista
  • Modificar guard i esborrar
  • De la carpeta cron eliminar els scripts excepte el de majors de 18 anys
  • A func/constants, modificar la capçalera de dades sms
  • Modificar dades acces bases de dades
  • Obfuscar connect_sms.php
  • login de google
    • login_google.php - Capçalera
    • index.php - capçalera
    • logout.php
    • mobi/index.php
  • Buidar
    • imatges/ de professors i alumnes
    • Els upload de mails professors i alumnes
    • Feina guardies
  • BBDD
    • Taula config a 0
    • user i pass d'admin i vlino
    • Dates de centre amb X

Gimport

Al server:

  • Re-etiquetar la carpeta gimport i afegir la nova carpeta
  • Pujar-ho
  • Retocar el "Munta el config()" a login-exec.php
  • Esborrar el fitxer config.php
  • Buidar l'upload

Activar Google Login in en instal.lacions lliures

Després d'haver fet l'actualització pertinent, per defecte el servei està deshabilitat. Per habilitarlo has de seguir els següents passos

  • Sol.licitar-nos la creació de credencials. Seguir les instruccions que us passarem per validar el domini
  • Una vegada rebudes les credencials i validat el domini
    • Actualitzar al fitxer login_google.php la informació que es veu a continuació amb la informació proporcionada
	//Insert your cient ID and secret 
	//You can get it from : https://console.developers.google.com/
	$client_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
	$client_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
	$redirect_uri = 'https://www.XXXXXXX.cat/tutoria_goo/login_google.php';
	$adrecaRetorn =  'https://www.XXXXXXX.cat/tutoria_goo/index.php?logout=1';
    • Actualitzar el fitxer index.php la informació que es veu a continuació amb la informació proporcionada
	//Insert your cient ID and secret 
	//You can get it from : https://console.developers.google.com/
	$client_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
	$client_secret = 'XXXXXXXXXXXXXXXXXXXXX';
	$redirect_uri = 'https://www.XXXXXXX.cat/tutoria_goo/login_google.php';

Activar Google Login in en instal.lacions hosting

Després d'haver fet l'actualització pertinent, per defecte el servei està deshabilitat. Per habilitarlo has de seguir els següents passos

  • Sol.licitar-nos la creació de credencials.Si s'escau, seguir les instruccions que us passarem per validar el domini
  • Una vegada rebudes les credencials i validat el domini
    • Actualitzar al fitxer login_google.php la informació que es veu a continuació amb la informació proporcionada
	//Insert your cient ID and secret 
	//You can get it from : https://console.developers.google.com/
	$client_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
	$client_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
	$redirect_uri = 'https://www.XXXXXXX.cat/tutoria_goo/login_google.php';
	$adrecaRetorn =  'https://www.XXXXXXX.cat/tutoria_goo/index.php?logout=1';
    • Actualitzar el fitxer index.php la informació que es veu a continuació amb la informació proporcionada
	//Insert your cient ID and secret 
	//You can get it from : https://console.developers.google.com/
	$client_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
	$client_secret = 'XXXXXXXXXXXXXXXXXXXXX';
	$redirect_uri = 'https://www.XXXXXXX.cat/tutoria_goo/login_google.php';
    • Actualitzar el fitxer logout.php amb l'adreça de retorn
    • Actualitzar la informació del fitxer mobi/index.php

Login amb Google a Gassist

Per poder habilitar el login amb google a Gassist hem hagut de seguir els següents passos

Alta a la console developers

Hem de tenir un compte de google per poder-hi accedir

  • Hem de donar d'alta un projecte. En podem crear múltiples.
  • Una vegada creat, li hem de donar nom a "Pantalla de autorización de OAuth"
  • Durant el procés s'haurà de demostrar que som l'administrador del domini vinculat. Planteja diferents formes de demostrar-ho en funció dels diferents nivells d'accés que tinguem al hosting/servidor/domini
  • Una vegada donat d'alta,
    • Crear unes credencials.
    • Quan ens pregunti li hem de respondre "Id de cliente OAuth".
    • A continuació , "Web".
    • Una vegada creades les credencials, clicant a sobre ens dóna una informació que ens farà falta en la gestió de login via google: un id de client, una password secreta, i haurem de completar la URI de redireccionament autoritzat que ha de contenir el fitxer al que cridarà goolgle quan ja hagi validat , o no, l'usuari. Pot trigar uns minuts en estar actiu

Retocs en el programa

  • Afegir mod_login_google a la base de dades amb el valor 1. Per defecte, 0
  • Afegir la carpeta google
  • Afegir login_google.php.
    • Recordar de treure la informació de l'id, secret key i URI de retorn
    • Personalitzar l'adreça de retorn
  • Traspassar la imatge amb el logo de logout amb la "G" de google. es troba a images/icons/icon_exit_red_G.png
  • retocar index.php
    • Afegir a partir de la línia 12
        require_once ('./google/libraries/Google/autoload.php');

	//Insert your cient ID and secret 
	//You can get it from : https://console.developers.google.com/
	$client_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
	$client_secret = 'XXXXXXXXXXXXXXXXXXXXXXX';
	$redirect_uri = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
        $hosting        = XXXXXX; 

	//incase of logout request, just unset the session var
	if (isset($_GET['logout'])) {
	  unset($_SESSION['access_token']);
	}

	/************************************************
	  Make an API request on behalf of a user. In
	  this case we need to have a valid OAuth 2.0
	  token for the user, so we need to send them
	  through a login flow. To do this we need some
	  information from our API console project.
	 ************************************************/
	$client = new Google_Client();
	$client->setClientId($client_id);
	$client->setClientSecret($client_secret);
	$client->setRedirectUri($redirect_uri);
	$client->addScope("email");
	$client->addScope("profile");

	/************************************************
	  When we create the service here, we pass the
	  client to it. The client then queries the service
	  for the required scopes, and uses that when
	  generating the authentication URL later.
	 ************************************************/
	$service = new Google_Service_Oauth2($client);

	/************************************************
	  If we have a code back from the OAuth 2.0 flow,
	  we need to exchange that with the authenticate()
	  function. We store the resultant access token
	  bundle in the session, and redirect to ourself.
	*/
	  
	if (isset($_GET['code'])) {
	  $client->authenticate($_GET['code']);
	  $_SESSION['access_token'] = $client->getAccessToken();
	  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
	  exit;
	}

	/************************************************
	  If we have an access token, we can make
	  requests, else we generate an authentication URL.
	 ************************************************/
	if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
	  $client->setAccessToken($_SESSION['access_token']);
	  
	} else {
	  $authUrl = $client->createAuthUrl();
	 }

    • Entre la <tr> de contrasenya i la <tr> de captcha afegir aquestes línies
   <tr>
      <td> </td> 
      <td align="left">
      <?php	
      $modul_login_google = getModulsActius()->mod_login_google;
      if ($modul_login_google)
          {						
	  if (isset($authUrl)){ echo '<a class="login" href="' . $authUrl . '"><img src="./google/images/google-login-button.png" /></a>';}                
	  }
      else
	  {
	  print( '<img src="./google/images/google-login-button.png" />');
	  }
       ?>
       </td>
    </tr>
  • Retocar home.php
    • Després de la funció sortir afegir la funció següent
   function sortirg(idprofessors) {
   var url = './ctrl_prof/ctrl_prof_reg_out_home.php';
			
   if (idprofessors == 0) {
	location.href = './logout.php?google=1'; 
	}
   else {
	$.messager.confirm('Confirmar','VOLS SORTIR DE GASSIST I GOOGLE?',function(r){  
	if (r){
   	     location.href = './logout.php?google=1';
	}
	});
	}
       }

Després de la línia td amb l'icon_key.png substituir

    <td valign="top" align="right" width="40">
    <a href="javascript:void(0)" title="Sortir del sistema" onClick="sortir(<?=$idprofessors?>)" class="easyui-tooltip">
    <img src="./images/icons/icon_exit_red.png" width="35" height="35" border="0"></a>
     
    </td>

per

   <?php
   $modul_login_google = getModulsActius()->mod_login_google;
   if (isset($_SESSION['access_token']) && $_SESSION['access_token'] && $modul_login_google) 
	{
        ?>	
	<td valign="top" align="right" width="40">
	<a href="javascript:void(0)" title="Sortir de Gassist" onClick="sortir(<?=$idprofessors?>)" class="easyui-tooltip">
	<img src="./images/icons/icon_exit_red.png" width="35" height="35" border="0"></a> 
	</td>
	<td valign="top" align="right" width="40">   
	<a href="javascript:void(0)" title="Sortir de Gassist i Google" onClick="sortirg(<?=$idprofessors?>)" class="easyui-tooltip">
	<img src="./images/icons/icon_exit_red_G.png" width="35" height="35" border="0"></a> 
	</td>
	<?php
	}
   else
	{
	?>			
	<td valign="top" align="right" width="40">
        <a href="javascript:void(0)" title="Sortir del sistema" onClick="sortir(<?=$idprofessors?>)" class="easyui-tooltip">
	<img src="./images/icons/icon_exit_red.png" width="35" height="35" border="0"></a>
	 
	</td>				
	<?php	} ?>
  • Retocar el fitxer logout
    • Retocar l'adreça de retorn
    • Substituir el header del final del fitxer per
   $adrecaRetorn =  'https://www.XXXXX.XXX/tutoria/index.php?logout=1';
      if ($_GET['google'] == 1)
	{
	header('Location: https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue='.$adrecaRetorn.'');
	}
      else
	{header('Location: index.php');}

PostgreSQL

Gestió de permisos des de consola

Restaura base de dades

Si ja hem creat la base de dades i té assignat l'usuari que l'ha de gestionar, podem utilitzar el fitxer pg_all.sql que té eliminades les comandes de creació i hem de modificar elnom de l'usuari propietari i posar l'actual. Aquest fitxer es troba a la careta script del server

Restaura una cópia de seguretat des de consola

  • Situem la cópia .sql a /var/lib/postgresql
  • Posem de propietari a postgres
  • passem a usuari postgres: su postgres
  • Executem psql baseDeDades < fitxerSQL.sql

Script per fer cópies de seguretat

  • Entrem a root amb sudo -s.
  • Fem su postgres i entra en una consola amb prompt sh-4.3$
  • Faig psql i ja entrem a la consola de postgres.
#!/bin/bash
# Aquest script ha de ser executat amb l'usuari postgres
TODAY=`date +%Y-%m-%d`
DUMPFILE="/backups_docmgr/postgresql/docmgrbase_dump_$TODAY.sql"
pg_dump docmgrbase > $DUMPFILE
gzip $DUMPFILE

Modificacions a control

Gestió de les incidències

Poder tancar incidencies

Per poder tancar incidències des de l'entonn centralitzat, s'ha de

  • Afegir els dos fitxers a la carpeta incidencia: gestioIncidencia.php i gestioIncidenciaExe.php:
  • Afegir dues entrades als fitxers d'idioma al bloc "Inventario"
  • Afegir a la linia 232 de l'index.php
         // Afegit Victor. Gestió d'incidències.
         // 20180816
         print("<tr><td align=\"center\" width=50%>"._GESTIO_INCIDENCIA."</td>");
         print("<td align=\"center\" width=25%><a href='./incidencia/gestioIncidencia.php'><img border=0 src=\"./images/incidencia.gif\" title=\"Obrir incidència\">");
         print("<td align=\"center\" width=25%> </td></tr>");         
         // Final afegit 20180816

Plesk

Registrar una BDD plesk a un domini

# plesk bin database --register nombdd -domain nomDomini -server localhost:3306
# plesk bin database --register-dbuser userdb -domain nomDomini -database 'nomBDD' -type mysql -user-role readWrite -passwd XXXXXXX

SSL a totes els aplicacions

Certificats als plesk

Una vegada descarregats els tres fitxers

Subdomini de GEISoft a server 2

  • Anar "Sitios web i dominios" i al subdomini afectat
  • Clicar a Certificados ssl >> Añadir certificado ssl
  • Posar nom amb el format SSL_Centre_1X i carregar els tres fitxers en la secció corresponent
  • A l'apartat del subdomini clicar en "Configuració del hosting". Seleccionar el certificat escollit i acceptar

Gassist

Ja està forçat l'ssl des de la versió 2.3

GLPI

Al fitxer de configuració d'Apache es pot posar una redirecció de forma que no afectin les actualitzacions

Redirect permanent /glpi https://192.168.1.150/glpi

moodle

Entrant com a administrador. Anant a Administració del lloc >> Seguretat >> Seguretat https >> Marcar el primer checkbox

Lime surveys

Entrant com administrador Anant a "Global Settings" podrem configurar que es pugui forçar l'ssl. Una vegada a "Global Settings", podem escollir la pestanya Seguretat i en aquesta pantalla ens permetrà configurar l'ssl També es pot retocar directament a la base de dades a la taula que conté els paràmetres de configuració

control + chgpw

Ja està forçat l'ssl des de la versió 2.60

docmgr

ssl

Posar un .htaccess amb el contingut següent

AddDefaultCharset utf-8
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://docmgr.XXXX.cat/$1 [R,L]

i modificar la variable SITE_URL dol fitxer de configuració

Crear usuari i base de dades

root@postgres:~# su postgres
postgres@postgres:/root$ createuser docmgr_serre
postgres@postgres:/root$ createdb docmgr_serre

Des de línia de comandes psql...

postgres=# \password usuari - Canviar o establir pa password de l'usuari..... Ja pot accedir a phppgadmin
postgres=# \l - llistar les bases de dades
postgres=# \c mebabdd - Connectar-me a la base de dades
mevabdd=# \dt -- Mostra les taules

Connexió remota des de línia de comandes

psql -h ns310295.eu -p XXXX -U docmgruser docmgrdb

Habilitar accès remot

  • al fitxer de configuració /etc/postgresql/X.X/main/postgresql.conf afegint des de quines màquines escolta
  • al fitxer pg_hba.conf del mateix directori, afegir una línia amb el format
host 	db 	user	IP mask	md5
==============

Al fitxer de configuració d'Apache es pot posar una redirecció de forma que no afectin les actualitzacions

Redirect permanent /docmgr https://192.168.1.150/docmgr

Joomla

Entrant com administradors, podem anar a "Global Configuration", podem , a continuació, seleccionar la petanya "Server" i en aquesta pantalla podrem configurar l'accés ssl als diferents àmbits. És suficient que ho fem per la secció d'administració

Errors i possibles solucions

Timed out

Server 3 - Al fitxer /etc/apache2/mods_available/fcgid.conf canviar el valor de FcgidIOTimeout

Internal Server error

Server 4 - Al fitxer /etc/apache2/mods_available/fcgid.conf canviar el valor de FcgidIOTimeout

No surten els correus

En dominis al plesk que coincideixen amb dominis externs ( p.e. de google apps for education) per evitar que intenti resoldre en local s'han de fer unes modificacions

  • Al Plesk, dintre de la configuració del domini principal (p. ex: insdemo.cat), s'ha d'anar a "Configuració DNS" i modificar el registre MX que hi ha i afegir 4 més, de manera que quedi com aquests:
	insdemo.cat.	MX (5)	ALT2.ASPMX.L.GOOGLE.COM.
	insdemo.cat.	MX (5)	ALT1.ASPMX.L.GOOGLE.COM.
	insdemo.cat.	MX (10)	ASPMX3.GOOGLEMAIL.COM.
	insdemo.cat.	MX (10)	ASPMX2.GOOGLEMAIL.COM.
	insdemo.cat.	MX (0)	ASPMX.L.GOOGLE.COM.

Després d'aplicar no se li ha de donar a "Aplicar plantilla DNS" o s'esborren els canvi i es carrega la plantilla per defecte.

  • Després, també al Plesk, dintre del domini, anar a "Configuració del correu" i desmarcar l'opció "Activar el servicio de correo en este dominio".

Actualització global

Gassist ha d'evolucionar ja cap a mysql > 5.7 i php 7

Mysql >5.7

Per veure els modes activats hem de fer la consulta: @@sql_mode;

Gestió de dates

S'ha corregit a l'actualització de la versió 2.5.4. És important evitar al programa que es puguin introduir, per omissió, els valors 0000-00-00 per dates i 00:00:00 per hores ja que mysql 5.7 no ho suporta.

També podem deshabilitar el mode NO_ZERO_IN_DATE

Mode "ONLY_FULL_GROUP_BY"

sudo nano /etc/mysql/my.cnf

Add this to the end of the file

[mysqld]  
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

sudo service mysql restart to restart MySQL This will disable ONLY_FULL_GROUP_BY for ALL users