# Bastion AWS ![](https://hackmd.io/_uploads/BkDkChHvn.png) ## De que va el nostre projecte 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. ## Objectiu 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. ## Explicació de bastion host: 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. ## Procediments 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. ### Creació de Instancies En la instancia on volem allotjar el nostre servidor wordpress, en el grup de seguretat ho hem configurat de la següent manera: ![](https://hackmd.io/_uploads/SyNEAnSv3.png) 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: ![](https://hackmd.io/_uploads/BkrHC3rPn.png) En la instancia que utilitzarem com el nostre bastion host, en el grup de seguretat ho hem configurat de la següent manera: ![](https://hackmd.io/_uploads/HJAwR2Bw2.png) ### Configuració de Wordpress y MySQL 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: ![](https://hackmd.io/_uploads/H1g9R3Hw2.png) Després hem anat al directori /etc/apache2/sites-available crear un arxiu anomenat wordpress.conf y editar de la següent manera: ![](https://hackmd.io/_uploads/BJeo0hrPh.png) 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: ![](https://hackmd.io/_uploads/By1VJTHDh.png) 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. ![](https://hackmd.io/_uploads/HJGS1pBP3.png) ### Configuració del servidor Bastion 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>.** ![](https://hackmd.io/_uploads/HyOPyaHw3.png) ## Problemes que vam tenir durant el projecte 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.