Skip to content
This repository was archived by the owner on Jul 5, 2024. It is now read-only.

aucoop/servidor_base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATENCIO, AIXO ESTA AQUI NOMES PER FER PREVIEW

INITE: Captive portal basat en DNS spoofing.

Aquesta és la documentació bàsica d'Inite. Inite incorpora un servidor DNS fet en python i un Captive Portal fen en el REST framework de python Django:

  • CustomDNS: Aquest senzill dns (a la carpeta customDNS) permet l'aparició automàtica del captive portal i l'enllaç amb els altres serveis del servidor. El seu funcionament és el següent:

    1. Un host de la xarxa interna desitja connectar-se a internet. Si el router ha estat ben configurat com explica la documentació bàsica del projecte (aqui hi ha d'anar un link a una documentació que encara no està feta) aquest host farà una petició DNS al servei per resoldre el nom del recurs que demana.
    2. Al rebre aquesta petició el servidor customDNS té dos comportaments:
    • Aquest host no ha passat pel captive portal: En aquest cas mostrarà el portal perquè el host es pugui registar.
    • Aquest host s'ha registrat correctament al captive portal: En aquest cas podrà accedir als recurosos d'internet i/o del servidor lliurement. La base de dades del DNS serà borrada cada ( encara no ho sabem ) hores per forçar el registre de la gent tenint en compte que els cursos pels que s'ha dissenyat aquest servei duren 4 hores i els ordinadors són compartits.
  • Captive Portal: La funció principal és recollir les dades de les persones que es dirigeixin al centre a fer els cursos. Aquest portal es veurà cada cop que un nou host entri a la xarxa en les X (aqui cal posar el nombre d'hores) hores entre que la base de dades es reseteja. Permet també a un administrador amb usuari i contrasenya poder-se descarregar aquestes dades i bloquejar o permetre la sortida a internet.

Instal·lació ràpida

Guia d'instal·lació ràpida del servei Inite en un servidor Devian/Ubuntu i derivats. La instal·lació pot fer-se de forma automàtica per mitjà del script d'instal·lació install.sh present a la carpeta arrel del projecte o de forma manual amb els passos següents ( Això encara no està implementat. Cal instal·lar manualment ). Si s'opta per la instal·lació automàtica el manual segueix al punt posada en marxa.

Instal·lació del programari necessari

  1. Cal primer instalar python i l'instal·lador de paquets pip, el servidor web Apache2, el SGBD postgresql
sudo apt update
sudo apt install python python-pip python3 python3-dev python-dev python3-pip apache2 postgresql postgresql-contrib libpq-dev apache2-utils libapache2-mod-wsgi expect 
  1. Configuració de l'apache.
sudo systemctl enable apache2
sudo systemctl restart apache2
cp web_server/inite.conf /etc/apache2/sites-available/ 
ln -s /etc/apache2/sites-available/inite.conf /etc/apache2/sites-enabled/inite.conf 
cp web_server/mod-wsgi.conf /etc/apache2/conf-available/
a2enconf mod-wsgi
a2enmod wsgi
sudo systemctl reload apache2
  1. Configuració de Postgres. És important escriure aquestes comandes per separat per evitar problemes amb el shell de postgres. Al llarg d'aquesta configuració s'ens demanarà la constrasenya de l'usuari de la base de dades. La contrasenya usada en el nostre programa és NTExMmZhMmU3. Recomanem usar aquesta. Si es desitja usar una de diferent cal canviar els fitxers customDNS/fakeDNS.py i inite/settings.py perquè usin la mateixa contrasenya.
sudo systemctl enable postgresql
sudo systemctl start postgresql
su postgres
psql
createuser u_dks;
createdb db_dks;
\password u_dks;  # s'ens demanarà contrasenya
alter user u_dks createdb;
\q
exit
  1. Deshabilitar el dns server per defecte d'unix
systemctl disable systemd-resolved

Instal.lació del dns customDNS

  1. Procedim a la instal·lació de customDNS
pip install -r customDNS/requirements.txt
  1. Copiar la carpeta la carpeta de sistema /usr/local/.
sudo cp -r ./customDNS /usr/local/
  1. Copiar el servei a la carpeta de serveis de Debian
 sudo cp ./customDNS/fakeDNS.service /etc/systemd/system/fakeDNS.service

Instal·lació del Captive portal

  1. Instal·lacció dels requisits de python
pip3 install -r requirements.txt
  1. Donar valor a les variables ROUTER_USER, ROUTER_PASSWD i ROUTER_IP presents a inite/settings.py amb les credencials d'administració del router Edgerouter X. (no podem assegurar el seu funcionament amb altres routers). Veure documentació general (Aqui falta un link a la documentació que encara no està feta)

Posada en marxa

Instruccions de posada en marxa dels serveis:

  • Mode debugging: Permet engegar els serveis en terminals i veure els outputs de debugging per a detectar errors en la configuració/programació
  • Mode producció: Fet amb daemons de systemd per garantir l'execució en segon plà, l'engegada del servei amb l'engegada de l'ordinador i el restabliment del servei si cau.

Posada en marxa com a procés des del terminal. Versió de debugging

  1. Assegurarnos que tenim tots els daemons al port 80 i al port 53 desctivats
netstat -putan #per veure les connexions
systemctl stop apache2 #apagar la connexió d'apache que podem tenir encesa
systemctl stop fakeDNS #apagar el dns que podem tenir encès
systemctl stop systemd-resolved #apagar el dns resolver d'ubuntu
  1. Assegurar-nos que la base de dades està activada
systemctl start postgresql
  1. Engegar el dns en un terminal
python2 customDNS/fakeDNS.py
  1. Engegar el server DJango
python3 manage.py runserver 0.0.0.0:80

Llest. Al obrir un navegador amb el DNS ben configurat i dirigit al nostre servidor ens sortirà un popup del navegador per registrar-nos.

Posada en marxa com a server (daemon). Versió de producció

  1. Posada en marxa del daemon de customDNS.
sudo systemctl enable fakeDNS
sudo systemctl start fakeDNS
  1. Posada en marxa del daemon apache2
sudo systemctl start apache2

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors