Diferència entre revisions de la pàgina «Ciérrate, Sésamo»
Línia 45: | Línia 45: | ||
===== Aplicacions,paquets i programari ===== | ===== Aplicacions,paquets i programari ===== | ||
− | + | Implementades al sistema | |
− | + | # NextCloud | |
− | + | # NFS | |
− | + | # VMWare | |
+ | # Port Knocking | ||
+ | # LDAP | ||
+ | # Latch | ||
+ | Paquets a linux | ||
+ | # nmap (per escanejar ports) | ||
+ | # knockd (dimoni port knocking) | ||
+ | # LAMP (Servidor WEB per NextCloud) | ||
+ | |||
+ | No funcionals | ||
+ | #SnagIT editor (Per documentació) | ||
+ | #TeamViewer (Accès remot) | ||
+ | #MobaXterm (Accès ssh des de Windows) | ||
==== Hardware ==== | ==== Hardware ==== |
Revisió de 20:00, 28 maig 2017
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.
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
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
Aplicacions,paquets i programari
Implementades al sistema
- NextCloud
- NFS
- VMWare
- Port Knocking
- LDAP
- Latch
Paquets a linux
- nmap (per escanejar ports)
- knockd (dimoni port knocking)
- LAMP (Servidor WEB per NextCloud)
No funcionals
- SnagIT editor (Per documentació)
- TeamViewer (Accès remot)
- MobaXterm (Accès ssh des de Windows)
Hardware
- ➥ Clúster Lenovo ThinkCentre
- Especificacions per cada node
✏ [email protected]
✏ 8GB de RAM
- ➥ Portàtils de clase
◊ Portàtil isp
◊ Portàtil CentOS
- ➥ Switch CISCO.
Si volem configurar aquest switch, podem fer-ho següint aquesta guía de referència feta pels companys de VIVEMP: **
Configuracions
▪ pfSense
- Balanceig de càrrega i FAIL OVER
- Verificació status gateways
- WAN RULES
- LAN RULES
- DMZ RULES
- NATPD WAN TO DMZ
▪ PROXMOX
▪ LDAP
#cat ldap.ldif # 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
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Ó:
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
- Port knocking
-> Conflicte amb IPTABLES Degut a una iptable que ve mal configurada per defecte en moltes guies de referència, la regla que necesita knock no actua perquè l'afegeix sota de les altres.
'➥SOLUCIÓ: Hem de canviar l'atribut append -A per l'atribut input -I a la iptable de opertura.
Línies futures
- Clúster amb 3 nodes(SUPER HIGH AVAILIVILITY)
- Integració aplicació registre a NextCloud i LDAP
- IDS: SNORT
- pfSense com a Proxy
- Sistema de replicació de LDAP.
Manual d'instal·lació
Instal·lació d'entorn de virtualització PROXMOX
- Podem trobar la guía d'instal·lació d'un node a PROXMOX
- Combinem dos nodes amb el següent tutorial: Clúster amb PROXMOX
- Sistema de Backups a PROXMOX
Instal·lació de NFS Server
- NFS Server a Centos 7
- Afegir NFS Server a PROXMOX:
PROXMOX#.E2.9E.A5_NFS
Instalació de PfSense
Com no tenim dues línies de ISP pròpies, utilitzarem la connexió a internet de l'institut i les separarem en dos cables diferents per simular dos línies d'internet diferents.
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ó
- IPTABLES
- Activem IP Forwarding
Instal·lació
- Seguim aquesta guía de referència: PfSense
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
Manual d'administrador
Com utilitzar LATCH per tancar el pestell del meu compte
- Com sincronitzar LATCH amb el teu dispositiu
Latch#Com_sincronitzar_latch_amb_el_teu_dispositiu_m.C3.B2vil
- Com utilitzar-ho
Latch#Com_utilitzar_LATCH
NextCloud
☆ Gestió d'usuaris
- Gestió d'usuaris NextCloud:
Nextcloud_a_Ubuntu_16.04#.E2.9E.A4_Gestionar_Usuaris
- Gestió d'usuaris amb LDAP:
NextCloud_amb_LDAP#Configuraci.C3.B3
☆ Com instal·lar una aplicació
Nextcloud_a_Ubuntu_16.04#.E2.9E.A4_Instal.C2.B7lar_aplicacions
☆ Configurar el correu
Nextcloud_a_Ubuntu_16.04#.E2.9E.A4_Configurar_e-mail
Com pico a la porta? (Port Knocking)
- Linux
▪Port_Knocking_a_Ubuntu_16.04#Comprovaci.C3.B3_des_d.27un_client_ubuntu
- Windows
Administració bàsica de PROXMOX
☆ On són els logs.
☆ Com mantenir l'entorn actualitzat.
- Fer un update
- Fer un upgrade
☆ Restablir màquines corruptes.
☆ Afegir imatges a PROXMOX
- Des de els repositoris de PROXMOX
- Amb una imatge descarregada externament
Com migrar màquines a PROXMOX
Podeu trobar el manual a PROXMOX#.E2.9E.A5Migraci.C3.B3_de_m.C3.A0quines
Com utilitzar pfSense
☆ Firewall
- Definir regles
- Definir regles
Per definir una nova regla al firewall hem d'anar a Firewall > Rules.
Clickem add per afegir una nova regla...
- Actualitzar regles
☆ Donar accés a internet a una xarxa interna
- Des del menu principal de pfSense declararem que la interfície serà la de WAN1 (en aquest cas le0). Encara que per defecte ens afegeixi l'adreçament IP per DHCP, el canviarem per una :adreça estàtica. Introduïm la opció 2 de consola per assignar IPs i triem la interfície a la que volem afegir-la.
- Definirem una LAN per accedir al panell d'administració de PFsense degut a que no es pot accedir per defecte per WAN.
- Panell d'administració
- Afegim una màquina en el rang ip de la LAN que hem definit i accedim via:
- http://ip_pfSense amb l'usuari admin/pfSense
- Per defecte las direccions privades no poden accedir als serveis de un altre xarxa privada, com a l'institut treballem amb classes privades hem de desbloquejarles al panell d'administració de pfSense
- Ens desplacem fins la part inferior, desmarquem ambdues opcions i premem "Save".
- En cas de voler accedir desde WAN hauriem d'afegir una regla que permeti el tràfic des de la ip de xarxa de la LAN cap a la interfície WAN pel port 80.
- La regla tindrà la següent configuració:
Un cop definida, guardada i aplicada les màquiens dins la LAN ja podrien accedir a internet.
☆ Copies de seguretat.
Fer un backup
- Per a fer un backup anirem al mòdul Diagnostics > Backup & Restore
- Un cop dins obrim el desplegable a Backup area i marquem ALL per a salvar-ho tot.
- Podem encriptar el fitxer si volem pero al ser un backup de prova ho descarregarem sense encriptació.
Carregar un backup
- Per a carregar un backup anirem al mòdul Diagnostics > Backup & Restore
- Seleccionem ALL al desplegable de Restore Area i seleccionem el fitxer de backup que volem carregar.
- Un cop hem acabat fem click a Restore Configuration
- Si tot ha sortit bé haurien d'haverse carregat la configuració que hi havia a l'arxiu XML.
Restablir la configuració de fàbrica
Des de la terminal de pfSense, triem la opció 4 i rere la confirmació començarà el restabliment de fàbrica.
☆ Com canviar la password de pfSense
Accedim a pfSEnse via http://ip_pfSense amb l'usuari admin/pfSense
- Un cop hem entrat, anem a System > User Manager
- Editem l'usuari fent click al botó amb forma de llapis a Actions
- Afegim i confirmem la password.
- Guardem i ja hem canviat la password.