Ciérrate, Sésamo

De Wiket
Salta a la navegació Salta a la cerca

Aquesta es la wiki del projecte elaborat per Alex Suarez i Ismael Bautista, alumnes del SIS2 de la promoció 2016-2017

Memòria tècnica

Idea

La idea del nostre projecte és montar un sistema de virtualització amb diferentes xarxes en les quals es pot configurar qualsevol servei sense gaires problemes.

DIAGRAMA SOLO REDES.jpg

Amb PROXMOX podem tenir control en tot moment de les màquines que treballen dins dels nodes configurats com a clúster i, en cas de que hi hagi problemes, imposar ràpides solucions sense que el servei es vegi greument afectat.
L'entorn PROXMOX té dins un router que fa de BASTION host amb dues línies connectades a un ISP(aquest està simulat amb una màquina fora de l'entorn PROXMOX amb dues interfícies connectades al BASTION host),rere el pfSense, podriem montar qualsevol cosa però ens hem decidit per l'aplicació NextCloud .

Objectius

✏ Control sobre el tràfic a nivell de xarxa
✏ Entorn virtualitzat estable, escalable i funcional.
✏ Securització del sistema dins l'entorn.
✏ Posada a punt d'un sistema sencer per l'aplicació que vulguem.

Requeriments tècnics

Diagrama de xarxa

Cisco.jpg

Software

Sistemes operatius

Hem decidit utilitzar programari de codi obert degut a la facilitat de trobar informació i ajuda per internet a més de per la falta de llicències de sistemes operatius de codi tancat. Els sistemes operatius de codi tancat d'aquest projecte només s'han utilitzat per proves de compabilitat.

Proxmox 4.4

  ➥L'hem utilitzat com entorn de virtualització.

PfSense 2.3.4

  ➥Utilitzat com ROUTER, FIREWALL , BASTION host.

Centos 7 Gnome-Desktop

  ➥El nostre NFS server.

Ubuntu

   ✏ Ubuntu Server 16.04
      ➥Màquines client.
   ✏ Ubuntu Desktop 16.04
      ➥Servidors LDAP,MYSQL,NextCloud.

Windows (Només testeig.)

   ✏ Windows 7
   ✏ Windows XP

Hardware


➥ Clúster Lenovo ThinkCentre
  • Especificacions per cada node

     ✏ [email protected]
     ✏ 8GB de RAM

Informació extreta amb la comanda lshw -short .
➥ Portàtils de clase

    ◊ Portàtil isp

Recursos portatil.jpg

    ◊ Portàtil CentOS

Recursos centos.jpg
Discos centos.jpg
➥ Switch CISCO.

Configuracions

  • pfSense
  • PROXMOX
"Salud" del clúster.
Datacenter1.jpg
Característiques del clúster i gestió de recursos.
Datacenter clúster.jpg
Recursos del node 1
Recursos nodo1.jpg
Recursos del node 2:
Recursos nodo2.jpg
Configuració del adaptador de xarxa del node 1:
Network nodo1.jpg
Configuració del adaptador de xarxa del node 2:
Network nodo2.jpg
  • LDAP
Ldap phpldapadmin.jpg
  1. cat ldap.ldif
# Exportar LDIF para dc=naxvanbautista,dc=local
# Servidor: Sesamo LDAP (192.168.60.100)
# Ámbito de búsqueda: sub
# Filtro de búsqueda: (objectClass=*)
# Entradas totales: 11
#
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on May 27, 2017 6:02 pm
# Version: 1.2.2

version: 1

# Objeto 1: dc=naxvanbautista,dc=local
dn: dc=naxvanbautista,dc=local
dc: naxvanbautista
o: NAXVANBAUTISTA
objectclass: top
objectclass: dcObject
objectclass: organization

# Objeto 2: cn=admin,dc=naxvanbautista,dc=local
dn: cn=admin,dc=naxvanbautista,dc=local
cn: admin
description: LDAP administrator
objectclass: simpleSecurityObject
objectclass: organizationalRole
userpassword: {SSHA}axCA3aWo+nyVSkA0M8ESclFMUcjSG/80

# Objeto 3: ou=grups,dc=naxvanbautista,dc=local
dn: ou=grups,dc=naxvanbautista,dc=local
objectclass: organizationalUnit
ou: grups

# Objeto 4: cn=NextCloudAdmins,ou=grups,dc=naxvanbautista,dc=local
dn: cn=NextCloudAdmins,ou=grups,dc=naxvanbautista,dc=local
cn: NextCloudAdmins
gidnumber: 5101
memberuid: nextcloudadmin
objectclass: posixGroup
objectclass: top

# Objeto 5: cn=nextcloudusers,ou=grups,dc=naxvanbautista,dc=local
dn: cn=nextcloudusers,ou=grups,dc=naxvanbautista,dc=local
cn: nextcloudusers
gidnumber: 5001
memberuid: naxvansito
memberuid: paquito
objectclass: posixGroup

# Objeto 6: cn=visitantes,ou=grups,dc=naxvanbautista,dc=local
dn: cn=visitantes,ou=grups,dc=naxvanbautista,dc=local
cn: visitantes
gidnumber: 500
objectclass: posixGroup
objectclass: top

# Objeto 7: ou=usuaris,dc=naxvanbautista,dc=local
dn: ou=usuaris,dc=naxvanbautista,dc=local
objectclass: organizationalUnit
ou: usuaris

# Objeto 8: cn=intruso,ou=usuaris,dc=naxvanbautista,dc=local
dn: cn=intruso,ou=usuaris,dc=naxvanbautista,dc=local
cn:  intruso
gidnumber: 500
homedirectory: /home/users/intruso
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: intruso
uid: intruso
uidnumber: 1000
userpassword: {MD5}EsurHuVXJCwTtjlu8WRwHg==

# Objeto 9: uid=naxvansito,ou=usuaris,dc=naxvanbautista,dc=local
dn: uid=naxvansito,ou=usuaris,dc=naxvanbautista,dc=local
cn: uid=naxvansito
displayname: naxvansito
gecos: naxvansito
gidnumber: 5001
givenname: naxvansito
homedirectory: /home/naxvansito
loginshell: /bin/bash
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: shadowAccount
sn: bautista
uid: naxvansito
uidnumber: 2102
userpassword: naxvansito

# Objeto 10: uid=NextcloudAdmin,ou=usuaris,dc=naxvanbautista,dc=local
dn: uid=NextcloudAdmin,ou=usuaris,dc=naxvanbautista,dc=local
cn: NextcloudAdmin
gidnumber: 5101
homedirectory: /home/users/nextcloudadmin
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: NextcloudAdmin
uid: nextcloudadmin
uidnumber: 1001
userpassword: {MD5}mHQiGCXU0xW3PWiImszLfA==

# Objeto 11: uid=paquito,ou=usuaris,dc=naxvanbautista,dc=local
dn: uid=paquito,ou=usuaris,dc=naxvanbautista,dc=local
cn: paquito
displayname: paquito
gecos: paquito
gidnumber: 5001
givenname: paquito
homedirectory: /home/paquito
loginshell: /bin/bash
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: shadowAccount
sn: bautista
uid: paquito
uidnumber: 2100
userpassword: paquito
  • NextCloud

Incidències

  • Error de sincronització entre nodes PROXMOX.
Degut al multicast del switch al que eren connectats els nodes, el clúster no podía sincronitzar els vots necessitats per fer quorum entre ells.
➥ SOLUCIÓ: Canviar de switch per un CISCO i automàticament es va sincronitzar el clúster.

  Referències:

https://forum.proxmox.com/threads/proxmox-ve-4-0-cluster-multicast-problems.24635/
  • Error de sortida de LAN privada a internet

     ➥ SOLUCIÓ:

Incident checksum.jpg

  Referències:

Versions anteriors:
https://alpha-labs.net/wp-content/uploads/2015/12/pfsense-settings.png
Discussió al forum de pfsense:
https://forum.pfsense.org/index.php?topic=88467.0
RFC Checksum offloads DOC(anglès):
https://www.kernel.org/doc/Documentation/networking/checksum-offloads.txt

Línies futures

  • Clúster amb 3 nodes(SUPER HIGH AVAILIVILITY)
  • Integració aplicació registre a NextCloud i LDAP

Manual d'instal·lació

Instal·lació d'entorn de virtualització PROXMOX

  1. Podem trobar la guía d'instal·lació d'un node a PROXMOX
  2. Combinem dos nodes amb el següent tutorial: Clúster amb PROXMOX
  3. Sistema de Backups a PROXMOX

Instal·lació de NFS Server

PROXMOX#.E2.9E.A5_NFS

Instalació de PfSense

Simulació de ISP

➤ Requisits
  • Màquina Ubuntu Física o Virtual amb 3 interfícies.
  • En el nostre cas, tenim una màquina virtual UBUNTU configurada com un router.
➤ Configuració
Configuració de xarxa del nostre ISP.
  • IPTABLES
iptables per accedir a internet
  • Activem IP Forwarding
Activem l'ip forwarding permanentment a /etc/sysctl.conf.

Instalació d'aplicatiu de compartició d'arxius NEXTCLOUD

Instal·lació de servidor LDAP

Autenticació de NEXTCLOUD amb LDAP

Assegurant el nostre servei

Port Knocking

LATCH

SNORT

Manual d'administrador

Com utilitzar LATCH per tancar el pestell del meu compte

Gestió d'usuaris a NextCloud

Com pico a la porta? (Port Knocking)

  • Linux

       ▪Port_Knocking_a_Ubuntu_16.04#Comprovaci.C3.B3_des_d.27un_client

  • Windows

Com migrar màquines a PROXMOX

Com utilitzar pfSense