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