El que volem aconseguir amb el nostre projecte és tenir un wordpress on es pugui connectar la gent, pero la base de dades tenir-la en una xarxa privada per a que no es pugui connectar ningú de l’exterior y crear un bastión host per facilitar nos a nosaltres la connexió a l’instancia on esta la base de dades per poder fer còpies de seguretat de la base de dades.
El nostre objectiu amb aquest projecte és tenir in wordpress on es pugui conectar la gent, la base de dades en una xarxa privada y un bastion host per conectarnos a través d’ell a la nostra base de dades per fer còpies de seguretat.
Un bastion host és un servidor que s'utilitza com a punt d'entrada segur a una xarxa privada. S'utilitza comunament en entorns de núvol per proporcionar accés remot a servidors privats o bases de dades sense haver d'exposar aquests recursos directament a Internet.
El bastion host actua com a servidor de salt per als administradors de sistemes i altres usuaris autoritzats que necessiten accedir a la xarxa privada. Els usuaris es connecten al bastion host primer i després utilitzen aquesta connexió per accedir a altres recursos a la xarxa privada.
En resum, els bastions host són una eina important per garantir la seguretat i l'accés controlat als recursos de xarxa privats.
El primer que hem fet es crear una VPC amb una subxarxa privada y una publica.
Després hem anat en apartat de taules d’enrutament y hem associat les dos subxarxes que vam crear prèviament.
Una vegada fet això hem creat tres instancias EC2 una dos les hem posat en la subxarxa publica y una en la privada.
En la instancia on volem allotjar el nostre servidor wordpress, en el grup de seguretat ho hem configurat de la següent manera:
En la instancia on volem allotjar la nostre base de dades MySQL, en el grup de seguretat ho hem configurat de la següent manera:
En la instancia que utilitzarem com el nostre bastion host, en el grup de seguretat ho hem configurat de la següent manera:
Una vegada creades les instàncies, ens connectem mitjançant ssh a la instancia de wordpress e instal·lem els següent paquets: apache2 php php-mysql mysql-server mysql-client php-mysql. Una vegada instal·lats els paquets anem a al directori /var/www/html i executme la comanda wget https://wordpress.org/latest.tar.gz una vegada descarrgat el paquet ZIP de wordpress ho descomprimim amb la comanda tar -xzf latest.tar.gz. Una vegada descomprimit entrem en en directori wordpress y editem l’arxiu wp-config.php de la següent manera:
Després hem anat al directori /etc/apache2/sites-available crear un arxiu anomenat wordpress.conf y editar de la següent manera:
Una vegada creat l’arxiu deshabilitar el host virtual que estava configurat per defecte amb la comanda a2dissable 000-default.conf y habilitem el host virtual que acabem de crear per el nostre wordpress amb la comanda a2ensite wordpress.conf.
Quan haguem fet tot això fem un reload del servei d’Apache.
Despres hem de configurar la instancia on estara la base de dades, per poder conectarnos a la instancia, com esta en una subxarxa privada, per poder conectarnos el primer que hem de fer es conectarnos a la nostra maquina bastion, pasarnos la clau de la instancia de MySQL y desde de allí fer un ssh a la instancia de MySQL.
Una vegada connectats a la instancia on està allotjada la nostra base de dades instalar: mysql-server y mysql-client. Una vegada instal·lat entrem a MySQL y creem la base de dades amb la següent comanda: create user wordpress; despres creem l’usuari amb la comanda: create user ‘oscariateed’@’<ip-del-ec2-on-esta-wordpress>’ IDENTIFIED BY ‘losmejores’; despres donem permisos sobre la base de dades al usuari que acabem de crear amb la comanda: grant all privileges on wordpress. to ‘ateed’@’<ip-del-ec2-on-esta-wordpress>’*: i finalment escribim flush privileges;
Despres anem al fitxer /etc/mysql/mysql.conf.d/mysqld.cnf y ho editem de la següent manera:
Finalment fer un reload del servei de MySQL y quan busquem el DNS public de la instancia on està instal·lat wordpress en hauria d'aparèixer.
Per configurar el servidor de bastion host el primer que hem de fer es conectaros mitjançant ssh a la instancia del bastion y com que prèviament ja vam passar la clau de la instancia de base de dades el que hem de fer executar la comanda eval $(ssh-agent) per activar el servicio de ssh-add i després executar la comanda ssh-add base-de-dades.pem.
Després hem en la nostra máquina local fem un ssh-add tant amb al clau de la instancia de bastion host com de la de base de dades.
Finalment per conectarnos a la la instancia on està allotjada la base de dades de la maquila local hem d’executar la comanda ssh -J ubuntu@<ip-publica-del-bastion> ubuntu@<ip-privada-base-de-dades>.
El primer problema que vam tenir va se que no aconseguim conectarnos a l instancia on estava el mysql perquè estaba en una subxarxa privada y ho vam solucionar fent ús del bastion host.
El segon problema que vam tenir va ser que el wordpress no aconsegueix trobar la base de dades y això ho vam solucionar modificant l’arxiu /etc/mysql/mysql.conf.d/mysqld.cnf.