Programari Lliure a la Universitat

Ricardo Galli Granada ha publicado un artículo en Bulma realmente interesante (para variar xDD) explicando porqué es necesario el uso del programari lliure en las universidades. Está escrito en castellano (lo digo por si alguien nos lee de fuera de casa).

Ya teniamos un documento claro y sencillo explicando porque es necesario el software libre en las administración públicas, gracias a Edgar Villanueva Nuñez, congresista de la República de Perú e indirectamente gracias a Juan Alberto Gonzalez, Gerente General de Microsoft del Perú.

Carta de microsoft a Edgar Villanueva Nuñez
Respuesta de Edgar Villanueva Nuñez

Ahora con el documento de Galli tenemos lo mismo pero en el ámbito universitario.

Hay mucho debate sobre el tema del uso del software libre en las empresas, pero hasta ahora no he oido ninguna voz que pueda dar argumentos minimamente sólidos acerca de la discriminación positivia que se da al software propietario en contra del programari lliure en las administraciones públicas.

PD: Pese a que esto está escrito en castellano uso el termino “programari lliure” por un sencillo motivo. Me suena al oido mucho mejor que el término “programario libre” o el término “software libre”. Y como los préstamos linguísticos han existido de toda la vida, pos yo digo “programari lliure”. 🙂

Autor: davidcg

Posted in Software Lliure | 10 Comments

Breve introducción a Iptables

Enllaç a la versió en català

Hoy en dia la seguridad es imprescindible, sobretodo si tenemos una
conexión 24/7. Usar un cortafuegos es una de las primeras
medidas que deberíamos tomar con tal de hacer un poco más
segura nuestra maquina/red.

En este pequeño artículo veremos como se ponen en marcha
las Iptables a fin de cerrar i abrir los puertos según nuestras
necesidades.

Por suerte para nosotros, y a diferencia de algunos sistemas operativos
propietarios (o privativos como dirían algunos), casi todos (al
menos los principales) sistemas operativos libres
incorporan de serie algún mecanismo de cortafuegos. Nosotros nos
limitaremos a explicar las Iptables, que es el mecanismo “oficial”
desde la rama 2.4 del kernel de gnu/linux.

La instalación por la parte que respecta al kernel no la
comentaremos en detalle, puesto que todas las distribuciones actuales
las llevan activadas de serie en el nuclio (y si hay alguien que gusta
de compilar sus propios nuclios, seguramente ya sabrá las
opciones a activar. A modo de pista diré: Networking
Options–>IP:
Netfilter Configuration). Por la parte de usuario hay que instalar el
paquete “iptables” (apt-get, emerge, …). Nada más.

Hay gente a la que le gusta hacer servir scripts i aplicaciones
extrañas y esotéricas para configurar Iptables. Nosotros
lo haremos a mano, así de paso veremos como funciona y podremos
comprobar que no es para nada difícil.

Antes de meternos de lleno, daré un enlace sobre los
conocimientos mínimos que hay que tener de Iptables: que es,
lógica de funcionamiento y una base.

HOWTO
de filtrado de paquetes

Bien, como queremos que las Iptables se pongan en marcha ellas solas al
encender el sistema y que podamos parar y volver a poner en marcha
rapida y sencillamente, usaremos los scripts de init.d. Normalmente
estos se instalan solos al instalar el paquete “iptables” (el script
debería estar en /etc/init.d/iptables, o dondequiera que
tengáis el directorio init.d en vuestra distribución). En
caso de no existir dicho script, podéis encontrar uno de ejemplo
aquí.

Ahora hay que asegurarse de que el script se lanzará al encender
el sistema de la siguiente forma (si es que no lo había hecho
vuestro instalador de paquetes al instalar el paquete “iptables”):

En Debian sería un cosa así:
update-rc.d iptables defaults

Mientras que en Gentoo sería:
rc-update add iptables default

Si no tenéis ninguna de estas dos utilidades, simepre lo podéis hacer a mano de la forma tradicional:

1) mirar que runlevel es el que ejecutamos con el siguiente comando:
runlevel

2) ir al directorio del runlevel en cuestión:
cd /etc/rcX.d
o en algunas distribuciones:
cd /etc/init.d/rcX.d
substituyendo la "X" de "rcX.d" por el número de runlevel que nos ha dado el comando del punto 1

3) crear el enlace sombólico apropiado:
ln -s /etc/init.d/iptables S20iptables

Una vez instalado, configurado y listo para usar, nos aseguraremos que
no hay ninguna regla de Iptables cargada:

iptables -F

Y procederemos a añadir nuestras reglas (aquí pongo un
ejemplo básico):

iptables -A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -j DROP

La primera línea sirve para que se permitan las conexiones de la máquina consigo misma mediante la interfaz de red de loopback.
La segunda línea, indica que queremos abrir el puerto 22. Esto es a modo de ejemplo. Deberíamos substituir el "22" por el número del puerto que queramos abrir. Repetir esta línea con todos los puertos que se desee abrir. Hay que tener en cuenta, que es posible indicar rangos de puertos en el siguiente formato: inicio-fin. Por ejemplo, si indicaramos 22-80 en el número de puerto, estaríamos diciendo que queremos abrir todos los puertos entre el 22 y el 80, ambos incluídos. Hay que cambiar eth0 por el dispositivo adecuado

La tercera línea permite que las conexiones que establezcamos hacia el exterior puedan entrar. Hay que cambiar eth0 por el
dispositivo adecuado. Sin esta línea no nos volvería ningún paquete (no lo dejaríamos entrar).

La cuarta línea permite que entren los paquetes ICMP (principalmente pings).

La última línea impide que entre cualquier otra cosa.

Si tenéis reglas propias (prerouting, postrouting, …) metedlas
donde convenga en el orden adecuado, teniendo presente que primero
permitimos y con la última línea impedimos el resto de
conexiones. Al hacerlo de esta manera nos aseguramos de no dejarnos
nada abierto; lo que no hayamos permitido explicitamente no
podrá entrar.

Finalmente, para conseguir que estas reglas se activen automaticamente
al encender el sistema, haremos lo siguiente:

Primero nos aseguraremos de tener el directorio de destino /var/lib/iptables, y si hiciera falta lo crearíamos:
mkdir /var/lib/iptables

Y a continuación hacemos un:
/etc/init.d/iptables save active

Y para cuando queramos pararlas hay dos opciones a saber:

a) Que al parar las Iptables via “/etc/init.d/iptables stop” dejemos el
cortafuegos sin ninguna regla (todo abierto):

iptables -F
/etc/init.d/iptables save inactive

b) O que dejemos solo la regla que impide todas las conexiones
entrantes (todo cerrado):

iptables -F
iptables -A INPUT -j DROP
/etc/init.d/iptables save inactive

Una vez hecho esto, encontraremos en /var/lib/iptables dos
ficheros: “active” y “inactive”, que podremos modificar posteriormente
para modificar/quitar/añadir reglas a cualquiera de los dos
estados (active
cuando hacemos el start e inactive cuando hacemos el stop).

Para finalizar haremos un:

iptables -F
/etc/init.d/iptables restart

Y ya las tendremos funcionando. Convendría asegurar-nos de su
funcionamiento con herramientas tales como el nmap (si no las sabeis hacer
funcionar siempre podéis preguntar a vuestro man o a google.
Autor: sergi

Posted in Seguretat | Leave a comment

Breu introducció a Iptables

Enlace a la versión en castellano

Avui en dia la seguretat és gairebé imprescindible, sobretot si tenim una connexió 24/7. Fer servir un tallafocs és una de les primeres passes que hauríem de fer per tal de començar a fer una mica més segura la nostra màquina/xarxa.

En aquest breu article veurem com es posen en marxa les Iptables per tal de tancar i obrir els ports segons les nostres necessitats.

Per sort per a nosaltres, i a diferència d’alguns sistemes operatius propietaris, gairebé tots (al menys els principals) els sistemes operatius lliures porten de sèrie algun mecanisme de tallafocs. Nosaltres ens limitarem a explicar les Iptables, que és el mecanisme “oficial” des de la branca 2.4 del nucli.

La instal·lació per la banda del kernel no la comentarem massa, donat que gairebé totes les distribucions actuals ho porten de sèrie al nucli (i si algú es compila els nuclis ell mateix segurament ja sabrà quines opcions activar. Pista: Networking Options–>IP: Netfilter Configuration).
Per la banda d’usuari cal baixar el paquet “iptables” (apt-get, emerge, …). Res més.

Aquí hi ha gent que li agrada fer servir scripts i aplicacions estranyes i mig esotèriques per a configurar les Iptables. Nosaltres, per començar ho farem a mà. Així de passada veurem una mica com funciona.

Abans de ficar-nos de cap, donaré un enllaç sobre els coneixements mínims que cal tindre d’Iptables: que és, lògica de funcionament i base.

HOWTO de filtrat de paquets

Bé, com que volem que les Iptables s’engeguin soletes a l’encendre el sistema i les puguem aturar i engegar ràpidament, farem servir els scripts d’init.d. Normalment aquests s’instal·len sols al instal·lar el paquet d’iptables (l’script hauria d’estar a /etc/init.d/iptables o, si la vostra distribució té el directori init.d a un altre lloc, a aquest altre lloc). En cas de no ser així, en podeu trobar un exemple aquí.

Ara cal assegurar-nos que l’script s’engegarà al iniciar el sistema amb la següent ordre (si no ho teníeu fet automàticament per la vostra distribució a l’instal·lar el paquet):

A Debian seria un cosa així:
update-rc.d iptables defaults

Mentre que a Gentoo seria:
rc-update add iptables default

Si no teniu cap d'aquestes dos utilitats, sempre ho podeu fer a mà a la manera tradicional:
  1) mirar quin runlevel és el que executem amb la següent comanda:
    runlevel

  2) anar al directori del runlevel:
    cd /etc/rcX.d
    o a algunes altres distribucions:
    cd /etc/init.d/rcX.d
    substituint la  "X" de "rcX.d" el número de runlevel que ens ha dit la comanda del punt 1

  3) crear l'enllaç simbòlic adequat:
    ln -s /etc/init.d/iptables S20iptables

Un cop instalat, configurat i a punt, ens assegurarem que no hi ha cap regla d’iptables molestant:

iptables -F

I procedirem a afegir les nostres regles (aquí dono un exemple bàsic):

iptables -A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -j DROP

La primera línia ens indica que volem que es puguin establir connexions amb un mateix, via l'interfície de loopback.

La línia de --dport 22, indica que el port 22 en aquest cas volem que estigui obert. Justament desprès de la primera línia haurem d'afegir tantes com vulguem amb la mateixa forma i canviant el 22 pel port que vulguem deixar obert. També es poden enumerar rangs amb el format inici-fi (exemple: el rang "22-80" serien tots els ports entre el 22 i el 80, ambdós inclosos).Cal canviar eth0 pel dispositiu adequat.

La tercera línia permet que les connexions que nosaltres establim cap a l'exterior tinguin permís per entrar. Cal canviar eth0 pel dispositiu adequat. Sense aquesta línia no ens retornaria cap paquet (no el deixaríem entrar).

La quarta línia permet que entrin els paquets ICMP (principalment pings).

La darrera línia impedeix que entri qualsevol altra cosa.

Si teniu regles pròpies (prerouting, postrouting, …), fiqueu-les on convingui en l’ordre adequat, tenint en compte que primer permetem unes quantes coses i amb la darrera línia impedim tota la resta. Així permetent explícitament ens estalviem maldecaps per haver-nos deixat quelcom obert.

Finalment, per tal d’aconseguir que aquestes regles s’activin automàticament a l’engegar el sistema, farem el següent:

Primer ens assegurarem que tenim el directori destí /var/lib/iptables, i si fes falta el crearíem:
mkdir /var/lib/iptables

I a continuació fem un:
/etc/init.d/iptables save active

I per a quan vulguem parar-les hi ha dues possibilitats a saver:
a) Que al parar les iptables via “/etc/init.d/iptables stop” deixem el tallafocs sense cap regla:

iptables -F
/etc/init.d/iptables save inactive

b) O que deixem només la regla que impedeix totes les connexions entrants:

iptables -F
iptables -A INPUT -j DROP
/etc/init.d/iptables save inactive

Un cop fet això, trobarem a /var/lib/iptables dos fitxers: “active” i “inactive”, que podrem modificar posteriorment per a modificar/treure/afegir regles a qualsevol dels dos estats (active quan fem un start i inactive al fer l’stop).

Per finalitzar fem un:

iptables -F
/etc/init.d/iptables start

I ja les tindrem funcionant.
Convindria assegurar-nos del seu funcionament amb eines tals com l’nmap (si no les sabeu fer anar, sempre us podeu passar pel servidor irc.freenode.org, canal #gplurv i demanar que us facin un escaneig).
Autor: sergi

Posted in Seguretat | 2 Comments

Mitos técnicos y otras cuestiones sobre GNU/Linux

Habitualmente oigo a gente hablar de GNU/Linux y sus defectos, lo que más me sorprende es que muchos de estos supuestos defectos o no lo son tanto o simplemente es desinformación. De aqui la motivación a escribir estas lineas. Me gustaria contar con la colaboración de los internautas que lean el artículo para que comenten los defectos que ellos ven en GNU/Linux para que podamos o bien desmitificarlos o bien darles la razón.

El primero de los supuestos defectos que quiero comentar es el uso de la memoria RAM por el kernel Linux. He llegado a oir que Linux es muchisimo peor gestionando la memoria que Windows ya que en cuanto arrancas y haces 4 cosas te consume gran parte de la memoria RAM, incluso hay personas que afirman que esto es debido a la gran cantidad de opciones que proporciona Linux.

Por fortuna esto es un mito y no una realidad, Linux utiliza la memoria que no esta siendo usada por ninguna aplicación para crear (entre otras cosas) buffers de acceso al disco que optimizan el funcionamiento del sistema. Estos buffers se adaptan dinamicamente al espacio sobrante de la memoria RAM.

Podemos ver el estado actual de la memoria de mi máquina (512 MB):

marble@luna ~ $ free -m
             total       used       free     shared    buffers     cached
Mem:           501        458         43          0         25        187
-/+ buffers/cache:        244        257
Swap:          972          0        972

Como podeis observar se estan usando 458 MB, tengo varias aplicaciones abiertas pero no todos esos megas estan siendo consumidos por ellas, el kernel esta aprovechando la memoria sobrante con buffers y caches, concretamente 25 MB de buffers y 187 MB de cache. Esto permite incrementar la eficiencia de mi sistema.

Por tanto, que se este utilizando gran parte de la memoria RAM a pesar de no tener muchos programas en marcha no es un mal síntoma ni una mala gestión, es algo positivo 🙂

El segundo defecto del que habitualmente la gente se queja es en la dificultad de instalar programas, me voy a centrar en uno concreto: la instalación de un programa desde su codigo fuente. Para compilar e instalar un programa se suelen seguir unos pasos:

./configure
make
make install

Esto suele ser lo habitual aunque pueden variar puntualmente según la aplicación, siempre es recomendable leer el fichero README i/o INSTALL.

La cuestión es que hay personas que no entienden porque se deben hacer estos 3 pasos y no se crea un ejecutable que lo haga automàticamente. Al ‘configure’ se le pueden pasar diversos parámetros que:

1) Modifiquen las opciones que tendra disponibles la aplicación que estamos instalando.
2) Modifiquen los paths donde sera instalado.
3) Otras opciones…

Si hiciesemos un script que ejecutase automaticamente el ‘configure’ no podriamos adaptarlo a nuestras necesidades y esto es precisamente lo interesante en el Software Libre, como disponemos del codigo fuete podemos habilitar/deshabilitar ciertas características antes de tener el ejecutable.

Respecto al ‘make’, no siempre podriamos querer compilar lo mismo, quizás solo queremos compilar una parte del programa y por tanto ejecutariamos ‘make parte’ por ejemplo. Lo mismo para ‘make install’, en ocasiones no nos interesa realizar la instalación.

Por tanto, los 3 pasos existen por razones de peso y todos salimos ganando con ello.

Respecto a la instalación de programas en general, si es cierto que en ciertas distribuciones no es sencillo. En este sentido las mejores distribuciones segun mi opinión son Gentoo y Debian. En Gentoo existe el comando ’emerge’ con el qual es posible instalar casi cualquier programa que exista. En Debian el comando es ‘apt-get’ y la idea es la misma que en Gentoo, la única diferencia es que en Gentoo todo se compila y en Debian ya viene compilado. Los que esteis interesados buscad información en las respectivas paginas de cada distribución.

¿Que otros defectos encontrais a GNU/Linux?
Autor: marble

Posted in Linux | 25 Comments

Agenda d’Activitats

Fins fa unes setmanes tenim a la nostra web (a la secció del wiki) un apartat que anomenem Agenda d’Activitats.
Preten ser una secció de referència per a tots els actes relacionats amb informàtica i més concretament lligada al món del Programari Lliure. Tota la informació de les conferències, jornades, xerrades, partys… etc, les podeu trobar actualitzats amb un bonic calendari gràcies a Shinjix, que les va recopilant setmanalment i avisant per la nostra llista de discussió.

Podeu fer-li un cop d’ull a la pàgina web: http://www.gpltarragona.org/wiki/pmwiki.php/GplUrv/AgendaDactivitats
Continue reading

Posted in GPL Tarragona | Leave a comment