miércoles, 1 de septiembre de 2010

Bloquear messenger por MAC : FIREWALL + SQUID

Hola todos.

Esta vez voy a explicar cómo bloquear el messenger restringiéndolo por direcciónes MAC usando la combinación FIREWALL - SQUID.

Lo que me permitirá dejar utilizar el messenger a unos si, y a otros no. E incluso bloquear sitios de messenger web... a unos si, y a otros no.

En mi caso utilizaré SHOREWALL como firewall, pero también se puede hacer con el buen iptables.

En fin.

A) PREPARACIÓN SQUID


Primero que nada, necesitamos que el SQUID (proxy), tenga soporte de arp mac.
Según el manual de squid en su página web eso se hace al momento de instalar/compilar su codigo fuente
./configure --enable-arp-acl
make
make install
Pero Googleando un poco encontré un chévere tutorial que con la ayuda de unos repositorios extras, y el yum, que te reemplaza tu actual squid por una versión que ya tiene el soporte para arp mac.

La información completa está en :
http://www.alcancelibre.org/staticpages/index.php/como-squid-arp/print

pero resumiendo..

1)Crear el archivo /etc/yum.repos.d/AL-Server.repo

2)En el archivo poner esto

[AL-Server]
name=Enterprise Linux $releasever - $basearch - AL Server
mirrorlist=http://www.alcancelibre.org/al/el5/al-server
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

3) Ejecutar el comando. (ojo hacer backup de tu actual squid antes de ejecutar el comando)

yum -y install squid-arp

y listo. ya tenemos el SQUID re-instalado con soporte para mac.


4) Creamos archivos que contengan las direcciones MAC y posteriormente creamos las reglas de acceso. En mi caso usaré:

acl MACs_depGerencia arp "/etc/squid/MACs_depGerencia"
acl MACs_depVentas arp "/etc/squid/MACs_depSeresInferiores"
acl listaPaginasWebMessenger url_regex "/etc/squid/paginasWebMessenger"

Está más que claro que en los archivos que dicen MACs... voy a poner una lista de MACs en formato 00:00:00:00:00:00 y en el archivo paginasWebMessenger voy a poner una lista de palabras para bloquear páginas de web messenger

5) Googleando más encontré otros ACLs que necesitamos poner

acl msn_messenger req_mime_type -i ^application/x-msn-messenger$
acl msn_url url_regex -i gateway.dll
acl msn_port port 1863
acl msn_method method POST

6) Reestructuración de nuestros http_access, cuidando el orden para poner los bloqueos de messenger después de que depGerencia acceda , pero antes de depSeresInferiores

En mi caso lo tengo así

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost
http_access allow MACs_depGerencia

http_access deny msn_messenger
http_access deny msn_method msn_url
http_access deny msn_port
http_access deny CONNECT msn_port

http_access allow MACs_depSeresInferiores !pornografia !ListaPaginasWebMessenger

http_access deny all
http_reply_access allow all
icp_access allow all



7) Listo, hacemos un buen restart al squid y probamos.

B) CONFIGURACIÓN EN EL FIREWALL


La configuración del firewall es sencilla se aplicará las siguientes reglas

1) Todo tráfico de web debe redireccionarse al puerto 3128 (para que vaya al squid transpartente). En el caso del shorewall se hace asi.

REDIRECT loc 3128 tcp www - !192.168.0.1

Siendo "loc" la interfaz de la red LAN de oficina, y 192.168.0.1 el ip del servidor

2) Bloquear el tráfico de red desde las MAC de los equipos a bloquear el messenger hacia el puerto 1863. esto obligará a que el messenger trate de conectarse por el puerto 80 y pase al squid en donde se le dará el bloqueo final

ejm:

DROP loc:~00-A7-BE-0D-3D-DE net tcp 1863 -


3) Por ultimo un buen service squid restart y un service shorewall restart para tener todo listo, probar y dejar.

Sin Comentarios

Hola.

Este es un pequeño comando que utiliza las funcionalidades de CAT para ayudarnos a eliminar todas las líneas de comentarios en un archivo de configuración y mostrarnos solo las lineas descomentadas

Ejm:
#cat squid.conf | grep -v ^# | grep -v ^$ > squid.nuevo.conf

El ejemplo lee el archivo squid.conf y escribe uno nuevo llamado squid.nuevo.conf pero omitiendo las líneas que comiencen con # que es el signo de comentario.

jueves, 29 de julio de 2010

netstat - Comando del de vez en cuando

Hola

hoy necesitè saber què puertos estaban usando mis procesos en mi servidor en tiempo real. O al menos en el segundo que dura la consulta del comando.

Googleando un poco encontrè que con el comando

netstat -tun

se logra eso.

netstat: te muestra el estado de tu red
-t: te muestra la actividad de puertos tcp
-u: te muestra la actividad de puertos udp
-n: te muestra la actividad del NUMERO de puerto (si se omite la n, en lugar de salir 80, por ejemplo, saldrà www)

Una explicaciòn màs detallada de netstat la encontraràn en

http://www.estrellateyarde.org/so/netstat-en-linux

jueves, 24 de junio de 2010

fsck - Comando del de vez en cuando

Y bueno, el fsck es un comando, mejor dicho una utilidad, a la cual debemos recurrir cuando se presenten inconsistenciaa en el sistema de archivos. Esta utilidad intenta corregir los posibles errores que hubiésen.

Esta utilidad verifica el sistema de archivos en un disco duro, y de preferencia (MUY MUY DE PREFERENCIA, O SEA CASI OBLIGATORIO) dicho disco duro debe estar desmontado.

Para ejecutarlo con el disco desmontado podemos utilizar el disco de arranque del linux y correr en modo de rescue sin montar el disco duro.

Sintaxis:

fsck [-opciones] /dev/hdXXX (o sdXXX)

Opciones:

-a confirmar automáticamente. No recomendado.
-c comprobar bloques en el disco.
-f forzar el chequeo aunque todo parezca ok.
-v (verbose) despliega más información.
-r Modo interactivo. Espera nuestra respuesta.
-y asume yes de respuesta.

Googleando un poco, cuando aún no sabía bien las opciones del fsck, yo utilicé el comando

fsck -fyc

donde fuerza el checkeo, me respondía todo yes, y comprueba los bloques en el disco.

creo que ahora lo agregaría una v en las opciones para que me muestre en verbose qué estuvo haciendo porque se demoró un montón. y no sabía qué mismo pasaba. Solo me mostraba en qué bloque iba. pero no sabía qué hacía.



miércoles, 23 de junio de 2010

gpasswd - Comando del de vez en cuando

Y bueno, volvemos a los años desde la publicación del último post. y aqui traigo un comando para agrgar un usuario de linux a un grupo específico.

gpasswd -a NOMBRE_USUARIO NOMBRE_GRUPO

simplemente agrega el usuario al grupo.

asi nomás.

lunes, 26 de abril de 2010

NTFS reloaded

Jeje. Y bueno.. Hoy le hicimos el montaje de una partición NTFS en nuestro buen Linux..

El objetivo es descargar e instalar el ntfs-3g que nos permitirá montar particiones netf de la siguiente forma

mount -t ntfs-3g /dev/sdb1 /carpeta_NTFS

*Asumiendo que /dev/sdb1 es nuestra partición NTFS y que /carpeta_NTFS es donde vamos a montarla

Para eso nos valimos de los paquetes del software NTFS-3G y sus dependencias con FUSE

Averiguando un poco al Dr. G. nos envió al sitio

http://wiki.centos.org/TipsAndTricks/NTFS

En donde solo indica que utilicemos el yum para instalar los paquetes y ya!. Pero no resultó tan simple. Pues el yum nos indicó que no existían los paquetes para el ntfs-3g en los repositorios del Centos.

Asi que .. buscando por ahi.. encontramos que una buena opción es actualizar los repositorios de búsqueda del yum y agregarle otros. En este caso los de rpmforge

Para lo que se siguieron los siguientes pasos:

1)Descargamos los repositorios de rpmforge e importamos las claves com:

#> wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

#> rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt


2)Verificamos el paquete descargado con:

#> rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm


3)Una vez verificado, lo instalamos:

#> rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm

4) Una vez instalado, procedemos con el uso del yum para instalar el ntfs-3g

#>  yum install fuse fuse-ntfs-3g dkms dkms-fuse

(correccion, este ultimo paso y el punto 5) no
fueron necesarios ya que con lo de arriba bastó)

#> yum install ntfs-3g
5) Si el ntfs-3g no se nos instala. Pues nos descargamos del sitio web oficial y lo compilamos en nuestro equipo

a) descargamos el paquete
wget http://tuxera.com/opensource/ntfs-3g-2010.3.6.tgz
b) descomprimimos el paquete
tar -xzpvf ntfs-3g-2010.3.6.tgz
c) ingresamos a la carpeta descomprimida y procedemos a compilar

#> cd ntfs-3g-2010.3.6
#> ./configure
#> make
#> make install



6) si despues de esto seguimos sin poder montar el ntfs, probamos de nuevo con el yum para que se nos arregle una que otra dependencia.. y listo.

ya podemos hacer el buen

mount -t ntfs-3g /dev/sdb1 /carpeta_NTFS


*asumiendo que /dev/sdb1 es nuestra particion NTFS

Y eso es todo.

lunes, 19 de abril de 2010

Infiltrados - Net use

Y bueno. "Infiltrados" es un nuevo segmento que acabo de crear, en donde se publicará información no necesariamente relativa 100% al mundo de linux, pero que sin embargo nos ayudan en el diario administrar.

Esa vez le toca al Net Use. Un comando simpático usado en DOS, que sirve para asignar puertos a recursos de red. (si, ya se que el comando es solo NET y que USE es parámetro, no jodan)

Bueno.

Digamos que tenemos un ambiente de clientes Windows, y tenemos instalado un programa que por deseo e ignorancia del desarrollador le dejó QUEMADOTE en el codigo fuente que siempre envía todas las impresiones a travez del puerto LPT1, limitándonos a usar el puerto paralelo para impresión. Pero, y si mi impresora es USB, o mi impresora está conectada a oooootra maquina de mi red... Qué se hace??

Bueno. aqui entra el net use

Asumamos que la maquina donde esta instalado el programa que manda a imprimir en LPT1 es la 192.168.0.2, y la maquina donde tenemos físicamente conectada la impresora (Ya sea en LPT, o USB o lo que sea) es la 192.168.0.1.

Lo que debemos hacer es :

1) en la máquina 192.168.0.1 compartimos en red la impresora conectada físicamente. Y le ponemos ahi un nombre de recurso de red cualquiera, por ejemplo "superHP"

entonces la dirección para acceder a ese recurso de red (impresora) desde otros puntos de red sería
\\192.168.0.1\superHP

Bien, ahora a configurar ese recurso en nuestro equipo con el software ignoranton

2) en el equipo 192.168.0.2, accedemos a una consola DOS y tipeamos

net use LPT1 \\192.168.0.1\superHP --persistent

este comando "enlaza" por así decirlo, el puerto LPT1, al recurso de red en \\192.168.0.1\superXP, y cada vez que mandemos algo a LPT1, en realidad se dirigirá a \\192.168.0.1\superXP. En este caso, una impresión. Fácil.

el formato de esta variante de net es:

net use [puerto] [recurso] (opciones)

El comando --persistent es solo para que no se elimine esa asignación una vez cerrada la sesión o reiniciada la máquina.


En el caso de que la impresora estuviese conectada al mismo equipo, podríamos compartirla y accederla por \\127.0.0.1\superXP

Pruébenlo, y si me equivoqué en algo.. me avisan. Pero lo que es a mi, hasta ahora me ha servido. jeje Suerte.

Con esto cerramos el primer post de INFILTRADOS

Comando del de vez en cuando - Cambiar Hora y Fecha

Y bueno... con este post, inauguro el segmento llamado "Comando del de vez en cuando". Iba a nombrarlo "Comando del día", pero hubieran asumido que cada día voy a poner un comando. Lo que NO ES ASÍ!! jaja.

en fin. hoy veremos cómo cambiar la hora del Centos de una forma super facil. y se hace con el comando date

Ejm: date 041914272010.30

Te deja con el servidor en la fecha 19 de Abril de 2010 con la hora 14:27:30

Formato:

date [mes][dia][hora][minuto][año].[segundo]


Listo. Post chiquito. con info chiquita.... pero útil

jueves, 8 de abril de 2010

Disco duro externo

Y bueno. Cometí mi primera novatada al tratar de hacer mi primer post realmente informatico. Iba a comenzar contandoles la vida, obra y milagros que envuelven a la compra instalación y dificultades que tuve para instalar el disco externo en el servidor a mi cargo... pero me di cuenta de que ya iba como en la linea 200 y no había puesto nada realmente útil. Así que me voy a saltar todo eso y resumiré en unas 4 o 5 líneas lo que pasó.

Compré un disco externo, conecté, descubrí que estaba como NTFS, quise instalar el ntfs-3g (que veremos luego) para que se monte el disco en Linux, pero me di cuenta que en ese servidor no estaba funcionando el buen "yum" (instalador automático de paquetes y dependencias). Quise instalar el yum manualmente.. NO PUDE.. jaja (lo intentaremos en otra ocasión). me di vueltas y vueltas solo para descubrir más y mas problemas con otros paquetes y dependencias (realmente perderera de tiempo y bien frustrante jaja). así que opte por.

FORMATEAR EL DISCO EXTERNO DIRECTAMENTE EN EXT3

No se cómo no se me ocurrió eso en primera instancia. Me hubiera ahorrado como unas 3 horas.

En fin. Le pregunté al buen Dr. G, y encontré por ahi unas páginas que me funcionaron.
OJO. Todo lo que haremos será en Linux. Pues encontré soluciones para formatear el disco que venían en Windows pero mejor todo full linux.

Primero que nada averiguar con qué dispositivo se identificó el disco externo. Para ello:

# fdisk -l

ahi se me desplegó la bola de particiones y discos de mi servidor. pero el que me interesaba era el externo (identificado como /dev/sdb1) fácilmente identificable porque por ahí decía algo de NTFS jeje

Device Boot Start End Blocks Id System
/dev/sdb1 1 121601 976760001 NTFS

así que procedi a utilizar la herramienta fdisk para eliminar esa particion, crear una nueva y formatear el disco en ext3

1) acceder al fdisk para editar el dispositivo asignado a mi disco

# fdisk /dev/sdb1

2) vi la lista de todos los comandos que me permite el fdisk, con la letra m

a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

3) Eliminamos las particiones del disco con la opción 'd', si hay más de una partición ahi nos pide que ingresemos el número de partición. Hacemos eso hasta que no quede ninguna.

4) Creamos una nueva partición con la opción 'n' , ahi le hacemos primaria con la letra 'p', y le dejamos que seleccione el 1er y ultimo cilindro del disco dandole ENTER en cada caso.

5) Especificamos el tipo de archivo que se va a manejar, con la opción 't', y le ponemos la 83 que corresponde al ext3 de Linux. Si se quiere ver qué otros tipos de archivos hay, por ahi dice que con la letra L se ve. jeje.

6) Guardamos los cambios y salimos del fdisk con la opción 'w'.

7) Ahora solo nos queda formatear el disco como ext3. Para lo cual usamos la herramienta mkfs

# mkfs.ext3 /dev/sdb1

ahi comienza el proceso, que puede demorar algo dependiendo de su equipo y del tamaño del disco.

8) al final volvemos a ver la lista de particiones con fdisk -l y ya aparece nuestro disco en ext3

Disk /dev/sdb: 1000.2 GB, 1000204884480 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 121601 976760001 83 Linux


Eso es todo en cuanto a la formateada.

Ahora solo nos queda montar.. el disco..

# mount -t ext3 /dev/sdb1 /home/disco_externo/

y listo ahora si ya tengo el disco en /home/disco_externo/

Hola mundo

Y bueno. este es el primer post de este nuevo blog. Y como en todo primer post, procederé a indicar el propósito de este.. su blog.

Linuxholico, en sí, más que un blog, pretende ser una recopilación bien detallada de todas las cosas que me toque (a mi, su buen amigo Kernel) realizar o aprender, en ese maravillosos sitema operativo Linux. Y bueno ya que mi trabajo me lo exige, deberé hacer, aprender o desarrollar cosas nuevas algún de vez en cuando. Por lo que la informaicón publicada aquí no tendrá una regularidad definida.
Sin embargo, trataré de publicar todo lo hecho ya sea en mi ámbito laboral, en proyectos personales. O simplemente por descubrir cosas nuevas. Y de una forma facil,dibujadito, comidito, con titeres, o sea for dummies.

Uno de los propósitos de este blog es de servir como fuente de información para situaciones específicas varias, ya sea una simple instalación, una que otra configuración truculenta, o algun truquito rebuscado por ahi que puede ahorrar al que lo lea hasta horas y horas de búsqueda infructuosa.


Y bueno. Ahi vamos.