Millorar seguretat servidor

Utilitzar claus SSH

En lloc d’utilitzar la configuració per defecte és recomanable deshabilitar l’accés de l’usuari root i utilitzar claus per accedir, en lloc de contrasenyes. Podeu veure com fer aquests canvis i alguns altres en aquesta entrada.

Bloquejar l’accés amb un tallafocs

A part de limitar l’accés SSH també és molt recomanable permetre només l’accés als ports que s’utilitzen, i bloquejar els altres. A Linux el tallafocs més conegut i utilitzat és iptables, podeu veure com realitzar una configuració molt bàsica en aquesta entrada.

Implementar un sistema IDS

Un IDS, de l’anglès intrusion detection system, és una forma de saber si es produeixen accessos no autoritzats a un servidor. Un exemple és Tripwire, i podeu veure com configurar-lo en aquesta entrada.

Instal·lar logwatch

El logwatch és una eina que permet analitzar els logs i enviar una còpia més simple a l’administrador. Podeu veure com instal·lar logwatch en aquesta entrada.

Recomanacions generals

  • Vigilar amb el que es baixa de la xarxa.
  • Mantenir el sistema actualitzat.
  • Utilitzar protocols segurs com FTPS o HTTPS, i no les seves versions sense SSL.

 

Instal·lar i configurar Tripwire a Debian

Instal·lem:

$ sudo apt-get update
$ sudo apt-get install tripwire

Diem que sí a tot. Ens preguntarà dues contrassenyes:

  • site key: Clau pels fitxers de configuració.
  • local key: Necessària per executar els binaris.

Inicialitzem la base de dades:

$ sudo tripwire --init

Saltaran molts errors de fitxers no trobats, per guardar aquesta llista executem:

$ sudo sh -c 'tripwire --check | grep Filename > test_results'

Ara hem d’eliminar tots aquests fitxers del fitxer de polítiques:

$ sudo nano /etc/tripwire/twpol.txt

I comentem tots els fitxers que hagin estat retornats per la comanda d’abans, fins que arribem als de /proc. Aquella secció hauria de quedar així:

{
/dev -> $(Device) ;
/dev/pts -> $(Device) ;
#/proc -> $(Device) ;
/proc/devices -> $(Device) ;
/proc/net -> $(Device) ;
/proc/tty -> $(Device) ;
/proc/sys -> $(Device) ;
/proc/cpuinfo -> $(Device) ;
/proc/modules -> $(Device) ;
/proc/mounts -> $(Device) ;
/proc/dma -> $(Device) ;
/proc/filesystems -> $(Device) ;
/proc/interrupts -> $(Device) ;
/proc/ioports -> $(Device) ;
/proc/scsi -> $(Device) ;
/proc/kcore -> $(Device) ;
/proc/self -> $(Device) ;
/proc/kmsg -> $(Device) ;
/proc/stat -> $(Device) ;
/proc/loadavg -> $(Device) ;
/proc/uptime -> $(Device) ;
/proc/locks -> $(Device) ;
/proc/meminfo -> $(Device) ;
/proc/misc -> $(Device) ;
}

Finalment, comentem /var/lock i /var/run.

Un cop el tenim editat tal com el volem, hem d’implementar-lo i reinicialitzar la base de dades:

$ sudo twadmin -m P /etc/tripwire/twpol.txt
$ sudo tripwire --init

Comprovem que estigui tot en ordre:

$ sudo tripwire --check

Eliminem fitxers que hem creat:

$ sudo rm test_results
$ sudo rm /etc/tripwire/twpol.txt

Per tornar a crear el text pla si ens fa falta:

$ sudo sh -c 'twadmin --print-polfile > /etc/tripwire/twpol.txt'

Prova de l’avís per correu-e

Instal·lem:

$ sudo apt-get install mailutils

Comprovem que funcioni:

$ sudo tripwire --check | mail -s "Tripwire report for `uname -n`" correu@exemple.com

Per acceptar el programari que acabem d’instal·lar:

$ sudo tripwire --check --interactive

Aquesta comanda realitzarà les proves que hem vist fins ara, però al final obre un fitxer amb la sortida. Aquest fitxer és llarg i conté molts detalls que ara mateix no ens fan falta. Ens hem de centrar amb la part de dalt, que apareix una casella marcada amb una X al costat dels fitxers modificats. Si no volem que a la propera sincronització de la base de dades aquests fitxers s’afegeixin els hem de desmarcar (en principi els volem marcats).

Configuració Cron

Bàsicament és la comanda que hem utilitzat abans però posant-la al Cron perquè s’executi cada dia. Si algun dia rebem algun informe, haurem d’entrar al servidor i operar en funció del que hagi passat.

Editem el crontab:

$ sudo crontab -e

L’executarem a les 03:30 del matí:

30 3 * * * /usr/sbin/tripwire --check | mail -s "Tripwire report for `uname -n`" correu@exemple.com

Wi-Fi Broadcom kernel 4.8

A l’actualitzar el kernel del meu portàtil al 4.8 em va deixar de funcionar el Wi-Fi. Per solucionar-ho és tan fàcil com carregar un mòdul del kernel.

$ sudo modprobe brcmsmac

Si amb això funciona només hem de fer que es carregui a l’inici del sistema.

Editem el fitxer dels mòduls:

$ sudo nano /etc/modules

Afegim:

brcmsmac

I ja ho tenim fet!

 

Instal·lar Mono a Debian

Mono is a software platform designed to allow developers to easily create cross platform applications part of the .NET Foundation.

Debian i Ubuntu:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$ echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
$ sudo apt-get update

A partir de Debian 8.0 i d’Ubuntu 13.10:

echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list

Només a partir de Debian 8.0:

echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list

Instal·lar paquets:

$ sudo apt-get update
$ sudo apt-get install mono-complete
$ sudo apt-get install monodevelop

Activar el mòdul de l’Apache:

$ sudo a2enmod mod_mono_auto

Per compilar i executar:

$ mcs fitxer.cs
$ mono fitxer.exe

Notes LAN Party Ripoll – 2016

Diferents apunts i conclusions a partir de la LAN Party organitzada a Ripoll el 5 de novembre de 2016. Aquest post s’anirà actualitzant a mesura que tingui temps.

Jocs:

  • League of Legends.
  • Counter Strike: Global Offensive.
  • Fifa17.

Personal:

A l’organització érem 5 persones amb diferents rols.

  • Difusió.
  • Instal·lacions.
  • Distribució.
  • Web.

Els d’instal·lacions són els encarregats de tirar els cables, configurar els dispositius, etc. I en aquest cas ells mateixos es van encarregar de distribuir les taules a la sala.

Sistema d’inscripcions:

El sistema d’inscripcions el vam programar nosaltres i et permetia escollir el joc i l’equip, o crear-ne un de nou si no existia. Podeu trobar el codi al meu GitHub (encara hi vaig afegint millores):

https://github.com/alar-cat/LANPartyInscripcions

Material utilitzat:

  • Mikrotik RB2011.
  • Cables RJ-45.
  • Switchos.
  • Allargadors.
  • Taules.
  • Cadires.
  • PS4 i Fifa17.

Normativa:

Instal·lació:

-Accés a internet:

La LAN Party es va realitzar al Casal de Joves “El Galliner”, on encara no hi havia fibra òptica per tenir una bona connexió. Per fer-la arribar es va fer una tirada d’uns 150m de cable des de casa meva fins al casal. Evidentment, amb aquesta longitud vam haver de posar dos switchos intermitjos abans d’arribar al router.

Esquema:

https://blog.aniolmarti.cat/wp-content/uploads/2017/01/LanPartyRipoll2016.pdf

-Router:

El router que vam utilitzar és un Mikrotik RB2011 amb Wi-Fi. Inicialment havíem configurat la interfície sense fils, però en veure que anava molt malament vam acabar desactivant-la.

La sortida principal a internet era a través del cable de 150m i per tant per fibra òptica. Com que tenir un switch al carrer és una mica delicat vam decidir fer failover amb la connexió del Casal. És a dir, si es perdia la connexió amb el router situat a 150m automàticament se sortia per internet amb la connexió d’ADSL del Casal.

A part d’aquesta configuració també vam posar-hi diverses polítiques de seguretat com per exemple no permetre connexions P2P, bloquejar l’accés a les dues xarxes locals, etc. Per motius legals, també vam configurar que s’anessin guardant els logs de les connexions en un USB connectat al router.

Fitxer de configuració: https://blog.aniolmarti.cat/wp-content/uploads/2017/01/MikrotikRouter.txt

Distribució:

La distribució de les taules i els cables es va realitzar tal com es mostra al plànol següent.