Contador de Visitas


Contador web
Ranking Página

GuLcPy

No te olvides de visitar la pagina de GULCPY http://www.gulcpy.org.py
Donde podras encontrar informaciones y tutoriales referentes a GNU/Linux y conocer el camino hacia la libertad!!!!




vpn en gnu/linux con openvpn

0 comentarios
[b][color=red]OpenVPN[/color][/b] es una solución de conectividad basada en software: SSL (Secure Sockets Layer) VPN Virtual Private Network (red virtual privada), OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre. [b][color=red][size=18]Introducción[/size][/color][/b] Este articulo tiene como objetivo mostrar de forma rápida y simple la configuración de un VPN basado en GNU/Linux utilizando OpenVPN como herramienta, siendo que este es un Software estable, simple de configurar es un proyecto que esta siempre en desarrollo. Vamos a considerar el caso de conectar las redes internas de una empresa (matriz y sucrusal), siendo que ambas se localizan en lugares diferentes y bien distantes, que cada empresa posee una conexión ADSL rodando GNU/Linux como servidor de sus respectivas redes internas conforma al ejemplo hipótetico de abajo: Matriz ADSL con IP 200.217.222.222 LAN con la clase 192.168.1.0/24 Sucrusal ADSL con ip 200.141.64.33 LAN con la clase 192.168.2.0/24 [img]http://k22.kn3.net/taringa/5/8/0/8/7/2//cagl86/A67.jpg?2780[/img] En nuestra VPN, tenemos como principal objetivo hacer que cualquier maquina de la red interna de la Matriz se conecte directamente con cualquier máquina de la red interna de la Sucrusal (o vice versa), dejando la impresión de que ambas redes estan en el mismo edificio. [b][color=blue][size=18]Instalación[/size][/color][/b] Antes de comenzar, devemos fijarnos primeramente si el driver TUN/TAP se encuentra en el Kernel. En el caso de que no se encuentre, necesitaremos activar ese driver dentro de la opción "Network Device Support", conforme con el ejemplo de abajo: [*] Network device support ARCnet devices ---> < > Dummy net driver support < > Bonding driver support < > EQL (serial line load balancing) support <*> Universal TUN/TAP device driver support < > Ethertap network tap (OBSOLETE) < > General Instruments Surfboard 1000 Ethernet (10 or 100Mbit) ---> Ethernet (1000 Mbit) ---> [ ] FDDI driver support [ ] HIPPI driver support (EXPERIMENTAL) <*> PPP (point-to-point protocol) support < > SLIP (serial line) support Wireless LAN (non-hamradio) ---> Token Ring devices ---> [ ] Fibre Channel driver support < > Red Creek Hardware VPN (EXPERIMENTAL) < > Traffic Shaper (EXPERIMENTAL) Wan interfaces ---> No voy a tocar en este articulo temas de compilación de kernel ni la configuración del ADSL por cuestiones de tiempo. NOTA: En las Distros RedHat 9.0, Slackware 9.1, 10.0 e 10.1 no fue necesario modificar el Kernel. En Slackware 9.0 es necesario recompilar el kernel con soporte al driver TUN/TAP. T Bajamos los paquetes lzo-1.08.tar.gz (biblioteca de compresión de datos) y el paquete openvpn-1.5.0.tar.gz. 1º Paso $ tar -xzvf lzo-1.08.tar.gz $ cd lzo-1.08 $ ./configure $ make $ su # make install 2º Paso $ tar -xzvf openvpn-1.5.0.tar.gz $ cd openvpn-1.5.0 $ ./configure $ make $ su # make install Ahora el OpenVPN ya esta instalado en nuestro sistema con soporte a la biblioteca de compresión de datos. Ahora solo resta configurar nuestra VPN. [b][color=red][size=18]Configuración de la Matriz[/size][/color][/b] Configurando nuestra VPN en la Matriz: El OpenVPN puede operar 3 tipos de cifrado. Ninguna crippode operar con 3 tipos de cifrado. Ningun cifrado(solo el túnel), cifrado con llaves estáticas en modo TLS, en que las llaves son cambiadas periodicamente. En nuestro ejemplo, usaremos cifrado con llaves estáticas.. 1 - Ejecute los seguintes comandos: # mkdir /etc/openvpn Creamos el directorio donde estarán los archivos de configuración. # openvpn --genkey -secret /etc/openvpn/llave Fue creada una llave de cifrado con el nombre llave (puede ser cualquier nombre de archivo) dentro del directorio /etc/openvpn. # cat /etc/openvpn/llave Solo para visualizar el contenido de la llave que generamos. # touch /etc/openvpn/matriz.conf Cree ese archivo con el siguiente contenido: # Usar como interface o driver TUN dev tun # 10.0.0.1 ip que será asumido en la matriz # 10.0.0.2 ip remoto, ese será el ip de la sucursal ifconfig 10.0.0.1 10.0.0.2 # Entra en el directorio donde se encuentran los archivos de configuracion cd /etc/openvpn # Indica que ese túnel posee una llave de cifrado secret llave # OpenVPN usa el puerto 5000/UDP por defecto. # Cada túnel de OpenVPN debe usar # un puerto diferente. # El estándar es el puerto 5000 port 5000 # Usuário que correrá el daemon del OpenVPN user winner # Grupo que correrá el daemon do OpenVPN group winner Usa la biblioteca lzo comp-lzo # Envia un ping via UDP para la parte # remota a cada 15 segundos para mantener # la conexión de pié en el firewall statefull # Muy recomendado, igual si no se usa # un firewall basado en statefull. ping 15 # Nível de log verb 3 En seguida, vamos a iniciar la conexión del servidor, faltando apenas configurar la sucursal. Ejecute el siguiente comando en el servidor de la Matriz: # openvpn --config /etc/openvpn/matriz.conf -daemon # ifconfig tun0 tun0 Link encap:Point-to-Point Protocol inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1 RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0 TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb) Si aparece algo parecido significa que el túnel de la Matriz ya esta pronto a la espera de la conexión de la sucursal. [b][color=red][size=18]Configuración de la sucursal[/size][/color][/b] Configurando nuestra VPN en la sucursal: La instalación en la sucursal tiene que ser exactamente igual a la de la Matriz, y solo seguir los pasos descritos en la parte de instalación. Ya en la parte de configuración, no cambia mucho las cosas, pues el mayor trabajo es simplemente copiar la llave que generamos en la Matriz con un canal seguro hasta la sucursal. Ejecutamos los siguientes comando. Crearemos el mismo directorio de configuración en la sucursal : # mkdir /etc/openvpn Copie la llave generada en la matriz para la filial con el siguiente comando: # scp /etc/openvpn/llave ip_filial:/etc/openvpn A continuación creamos el archivo de configuración llamado sucursal.conf: # touch /etc/openvpn/sucursal.conf Creamos el archivo con el siguiente contenido: # Usar como interface el driver TUN dev tun # 10.0.0.1 ip que será asumido en la matriz # 10.0.0.2 ip remoto, este sería el ip de la sucursal ifconfig 10.0.0.2 10.0.0.1 # Indica donde está la ip de la Matriz (es la unica linea que añadimos # en el archivo de configuración de la sucursal), el resto es todo igual. remote 200.217.222.222 # Entra en el directorio donde se encuentran los archivos de configuración cd /etc/openvpn # Indica que ese túnel posee una llave de cifrado secret llave # OpenVPN usa el puerto 5000/UDP por defecto. # Cada túnel del OpenVPN debe usar # un puerto diferente. # por defecto el puerto 5000 port 5000 # Usuário que ejecutará el daemon del OpenVPN user winner # Grupo que ejecutará el daemon del OpenVPN group winner # Usa la biblioteca lzo comp-lzo # Envia un ping via UDP para la parte # remota cada 15 segundos para manter # la conexión de pie en firewall statefull # Muy recomendado, igual si no utilizas # un firewall basado e statefull. ping 15 # Nível de log verb 3 Inicie la conexión en la sucursal con el siguiente comando: # openvpn --config /etc/openvpn/sucursal.conf -daemon # ifconfig tun0 tun0 Link encap:Point-to-Point Protocol inet addr:10.0.0.2 P-t-P:10.0.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1 RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0 TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb) Ok! si apareciera algo similar a esto, sua VPN, está ejecutándose!!! Pruebe haciendo ping de una puerta a otra: # ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=63 time=11.9 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=63 time=6.09 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=63 time=5.93 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=63 time=8.15 ms 64 bytes from 10.0.0.1: icmp_seq=5 ttl=63 time=6.19 ms Si aparece algo similar a esto, su VPN ya esta funcionando ahora solo falta adicionar las rutas para las redes internas se vean. [b][color=blue][size=18]Adicionando rutas[/size][/color][/b] NOTA: Antes de adicionar las rutas, es necesario activar el ruteamiento en el kernel en ambas puntas (Matriz y Sucursal). Ejecute los siguientes comando en la matriz y la sucursal: # echo 1 > /proc/sys/net/ipv4/ip_forward Para adicionar la ruta con destino a la red de la sucursal, ejecute dentro del servidor matriz el siguiente comando: # route add -net 192.168.2.0/24 gw 10.0.0.2 Para adicionar la ruta con destino a la red de la Matriz, ejecute desde el servidor de la Sucursal el siguiente comando: # route add -net 192.168.1.0/24 gw 10.0.0.1 Bien ahora solo sobra testear. Intente dar ping dentro de una maquina de LAN de la Matriz con destino LAN de la Sucursal. Tambien tenemos que colocar toda la secuencia de comandoBom, agora é só testar. Tente pingar de dentro de uma máquina da LAN da Matriz com destino a LAN da Filial. Vale lembrar também que temos que colocar toda a seqüência de comandos en rc.local de su distro, para que la misma cargue las configuraciones al iniciar el sistema operativo. Para terminar, podemos tambien configurar un servidor Wins con Samba o window$ nt/2000 para que ambos sean visualizadas en la red de window$. Imprimir

programar backup con rsync y cron de manera rápida y simple

0 comentarios
Primeramente vamos a introducirnos a lo que es.. [b][color=red]rsync[/color][/b] es una aplicación libre para sistemas de tipo Unix y microsoft window$ que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión. Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto. rsync se distribuye bajo la licencia GNU General Public License. [b][color=blue]Cron[/color][/b] En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos que significa "tiempo". Cron se podría definir como el "equivalente" a Tareas Programadas de window$. [color=red][b]Por que usar rsync[/b][/color] Simplemente por que es un Software especifico para la realización de copias, funciona de manera a acelerar las transferencias al copiar las diferencias entre 2 archivos, en ves de copiar el archivo entero todas las veces. Eso mismo. rsync consigue identificar que archivos fueron alterados y el administrador puede optar por copiar solamente los archivos nuevos o modificados no necesariamente todos los archivos, lo que tomaria el proceso de backup demorado de manera innecesaria. Ese recurso puede presentar una gran ventaja, principalmente para backups diários de grande cantidad de archivos. Otro gran beneficio es que rsync guarda las informaciones sobre permisos y propiedades de los archivos y directorios, inclusive de links simbólicos. [b][color=blue][size=18]Instalando el rsync[/size][/color][/b] El primer paso es instalar el rsync, si no lo tiene. Si utilizamos Debian, nos logueamos como root y escribimos: # apt-get install rsync Si utilizas ubunti escribe: $ sudo apt-get install rsync Solamente para confirmar si el rsync que instalamos está funcionando normalmente, escribimos en la linea de comando: $ rsync En el caso de que aparezcan informaciones de la ayuda del rsyn es por que fue instalado correctamente. [b][color=red][size=18]Configurando el archivo backup[/size][/color][/b] En el archivo de abajo será utilizado el siguiente parametro con el rsyn para que realize la copia: -Cravzp. De esta forma, el rsync está siendo accionado para: -C: auto-ignorar archivos identicos; -r: copiar de forma recursiva, osea todos los directorios y subdirectorios en el camino especificado; -a: indica que estaran siendo copiados archivos; -v: modo detallado, más información de copia; -z: comprime los archivos durante la copia; -p: indicador de progreso de copia. #!/bin/bash INICIO=`date +%d/%m/%Y-%H:%M:%S` LOG=/var/log/`date +%Y-%m-%d`_nombree-del-archivo-de-log.txt echo " " >> $LOG echo " " >> $LOG echo "|-----------------------------------------------" >> $LOG echo " Sincronización iniciada en $INICIO" >> $LOG sudo rsync -Cravzp /carpeta-de-origen/ /carpeta-de-destino/ >> $LOG FINAL=`date +%d/%m/%Y-%H%:M:%S` echo " Sincronización Finalizada en $FINAL" >> $LOG echo "|-----------------------------------------------" >> $LOG echo " " >> $LOG echo " " >> $LOG [b][color=blue][size=18]Explicando el archivo de backup[/size][/color][/b] En la primera linea hay un aviso del interpretador de comandos que debe ser utilizado el bash: #!/bin/bash Almacena el momento de inicio en la variable INICIO, en formato dd/mm/yyyy-hh:mm:ss: INICIO=`date +%d/%m/%Y-%H:%M:%S` Almacena en la variable LOG que archivo debe ser grabado en el registro de backup, en el formato yyyy-mm-dd_nombre-del-archivo.txt: LOG=/var/log/`date +%Y-%m-%d`_nombre-del-archivo-de-log.txt Manteniendo ese archivo, puede ser muy util para que pueda verificar los backups que han sido realizados correctamente. Crea el inicio del registro de log en el archivos, grabando una cabecera en el cual insterte el dia y hora de inicio del backup: echo " " >> $LOG echo " " >> $LOG echo "|--------------------------------------------" >> LOG echo " Sincronización iniciada en $INICIO" >> $LOG Esa es la linea que realiza el backup en realidad. Invoca al comando rsyn y invoca los parametros de cuales archivos copiar y para que destino. A cada archivo copiado, una linea será insertada en el archivo de log. De esta forma el administrador puede saber cuales de los archivos fueron copiados en el backup de un día determinado. sudo rsync -Cravzp /carpeta-de-origen/ /carpeta-de-destino/ >> $LOG Almaneza el momento de término del backup en la variable FINAL, en el formato: FINAL=`date +%d/%m/%Y-%H%:M:%S` Finaliza el archivo de backup con un pie en el cual inserta el día y la hora del termino del backup: echo " Sincronización Finalizada en $FINAL" >> $LOG echo "|--------------------------------------------" >> $LOG echo " " >> $LOG echo " " >> $LOG Observaciones: En caso de que desees modificar los parametros del rsync para la copia, consulta el manual de rsync con el comando rsync. Se sugiere crear una carpeta en /var/log con el nombre rsync y grabar todos los logs del rsync en esa carpeta. [b][color=blue][size=18]Programando cron para realizar el backup[/size][/color][/b] Cron es un servicio de Linux que es cargado durante el proceso de boot del sistema. Funciona como un programador de tareas que permite programar la ejecución de comandos y procesos de manera repetitiva para un trabajo en especifico. El daemon (una especie de programa que ejecuta tareas en segundo plano) cron ejecuta los comandos en los días y horarios especificados. A cada minuto el daemon verifica si hay alguna tarea a ser ejecutada. Todas las acciones del cron son realizads en base de registros en una especie de tabla conocida como crontab. Para los familiarizados con GNU/Linux, No hay secretos para la configuración del cron via linea de comando. Para los que poseen menos dominio de Linux sugiero que instalen el Webmin. Se trata de una herramienta de administración atraves de interfaz web que facilita mucho la vida del administrador. Para instalar el Webmin, puede descargar desde: [url]http://www.webmin.com/download.html[/url] A los usuarios de Debian y Ubuntu y otras distros derivados de debian pueden descargar el paquete .deb. Si utilizamos Debian escribimos como root: # dpkg -i webmin_version-del-webmin-copiado.deb Si utilizas ubuntu escribe: $ sudo dpkg -i webmin_version-del-webmin-copiado.deb En caso de que presente dependencias en otros paquetes, instalamos los paquetes que solicita. Ya con el Webmin instalado, accedemos en el navegador en la dirección https://192.168.1.11:10000 y escriba su usuario de sistema GNU/Linux. Dentro del Webmin, accedemos al menu Sistema > Tareas programadas (CRON). No elimine las tareas ya existentes! puede producir algunos daños al sistema. Accedemos en la opción "Crear nueva tarea programada". En la próxima Ventana, una propuesta de tarea sería: Ejecutar tarea programada como: root Activo: si Descripción: Ejecutar cuando: Horarios y días seleccionados abajo Minutos: Seleccionados 0 Hora: Seleccionados 17 Dias: Todos Meses: Todos Dias da semana: Todos Ejecutar en qualquer día: si Su backup programado esta listo! Verifique en el primer backup si los archivos fueron copiados correctamente para el destino y confirme el registro de log del archivo. Si todo esta ok, en los momentos indicados el backup programado ira funcionando automáticamente, sin intervención manual. Mais informaciones sobre el rsync en: [url]http://samba.anu.edu.au/rsync/[/url] sobre el Webmin en: [url]http://www.webmin.com/ [/url] Espero les sea de ayuda ;) Imprimir

optimización so gnu/linux con cache squid

0 comentarios
En este articulo vamos a tratar las configuraciones avanzadas del servidor gnu/linux usando la herramienta squid. Utilizaremos las tecnicas para aumentar la performance tanto del sistema operativo, lectura en el disco y configuraciones avanzadas de herramientas Utilizaremos las siguientes herramientas disponibles para descargar: [color=red][url=http://cdimage.debian.org/debian-cd/6.0.2.1/amd64/iso-cd/debian-6.0.2.1-amd64-netinst.iso]Debian 6 64 bits (Recomendado)[/url][/color][b][/b] Obs.: Se puede utilizar cualquier distribución tales como Fedora, Ubuntu etc. [url=http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.14.tar.gz][b]Squid 3.1[/b][color=red][/color] [/url] [b]Preparando el servidor:[/b][color=red][size=18][/size][/color] Se recomienda la instalacion del build-essential para Linux una vez para compilar el squid 3.1 vamos a necesitar de esa herramienta. [b]Actualizamos el apt-get:[/b][color=red][/color] [b]en la consola escribimos:[/b] # apt-get update Instale los compiladores: # apt-get install build-essential [b]Instalando el Squid[/b][color=red][size=18][/size][/color] [b]Descargamos el squid:[/b][color=blue][/color] # wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.14.tar.gz Descompactamos el archivo: # tar -xvzf squid-3.1.14.tar.gz # cd /squid-3.1.14.tar.gz Ahora iremos a compilar el squid, aqui comienza las sugerencias de optimización. Compilamos el squid con los ficheros descriptores, el estandar es de 1024. Para una empresa que posee una gran demanda de acesso a internet, ese valor llega ser bajo y muchas veces donde se encuentra el cuello de botella del sistema Vamos a compilar usando 16000 filedescriptors: # ./configure --bindir=/bin --sbindir=/sbin --sysconfdir=/etc/squid --enable-underscores --enable-storeio="diskd ufs aufs" --enable-removal-policies="heap lru" --enable-snmp --enable-delay-pools --enable-linux-netfilter --enable-useragent-log --enable-referer-log --disable-dependency-tracking --enable-cachemgr-hostname=localhost --enable-truncate --disable-ident-lookups --enable-pool --with-maxfd=16000 [b]Despues escriba:[/b] # make # make install Squid Instalado. [b]Optimizaciones y acceso a discos[/b][color=blue][size=18][/size][/color] Despues de muchas investigaciones se descubrio que el acceso al cache cuando es utilizado o reiserfs llega a ser 20% más rapido que otros filesystem, por ejemplo ext3, ext2. Se aconseja a todos que cuando efectuen la instalación del SO dejen una partición solamente para el cache, eso agiliza la lectura d elos datos Supon que cuando estas instalando Debia creo la partición "/cache" vamos a instalar el reiserfs y formatear la unidad con la herramienta. # apt-get install reiserfsprogs Depues de tener instalado el reiserfs vamos a formatear la unidad "/cache" que para mi es "/dev/sda5": # mkfs.reiserfs /dev/sda5 Hecho esto ya tenemos "/cache" con reiserfs trabajando. Otro consejos para montar el filesystem "/cache" añadir notail, noatime (eso agiliza mucho a la hora de lectura y escritura una vez que el squid tenga su propio tiempo, usando estas funciones usted evita que el sistema al guardar un archivo lo haga 2 veces). Entre al directorio "/etc/fstab" y agregue: /dev/sda5 /cache reiserfs defaults,notail,noatime 1 2 [b]Optimización del SO[/b][color=red][size=18][/size][/color] Vamos a ir mostrando como optimizar el sistema para que el mismo acepte que varias conexiones sean realizadas en varios archivos utilizando los file descriptors. Muchas personas que instalan el squid terminan pasando por ese problema, el sistema bloque para que el maximo 1024 instancias de archivos sean abiertas. Para comprobar cuántos archivos pueden ser abiertos por el sistema operativo, sólo tienes que escribir en la consola: # ulimit -n # ulimit -a Vamos a comenzar con la optimización: acceda a "/etc/sysctl.conf", y agregue la siguiente linea: fs.file-max = 65535 Despues escribimos en la consola: # sysctl -p Despues accedemos en "/etc/security/limits.conf", adicionamos las siguientes linas al final del archivo; root soft nofile 16384 root hard nofile 32768 * soft nofile 16384 * hard nofile 32768 Mucha gente pregunta que despues de hacer esas modificaciones el sistema aplica las configuraciones, pero una vez que le damos reboot al SO el limite vuele para 1024. Para resolver ese problema solo agregamos la siguiente linea de comando en"/etc/pam.d/common-account": session required pam_limits.so Hecho esto cuando el sistema operativo inicia el cambio sera puesto a punto"startado" y todo el sistema estará optimizado para recibir las solicitudes. [b]Finalizando la verificación de las optimizaciones[/b][color=blue][size=18][/size][/color] Al final de estas guias vamos a confirmar si el sistema arranco con todas las optimizaciones y si el servidor esta listo para recibir altas tasas de conexiones simultaneas. En primer lugar vamos a la consola y vemos lo siguiente: # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 16382 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 16384 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Vemos que el SO ahora está permitieneo que 16384 archivos sean abiertos a lo que anteriormente solo eran 1024. Despues en el archivo "cache.log" del squid: # cat cache.log 2011/07/11 14:19:08| Starting Squid Cache version 3.1.14 for x86_64-unknown-linux-gnu... 2011/07/11 14:19:08| Process ID 31325 2011/07/11 14:19:08| With 16000 file descriptors available Meu próximo artigo será otimização do arquivo "squid.conf". Espero que le pueda a ayudar a mas de uno este articulo aclarando que el articulo fue una copilación de algunas páginas tube que traducir parte de la guia asi que mis disculpas correspondiente si hubo alguna equivocación en la traducción del documento. Imprimir

Configurar IPTables para hacer NAT

0 comentarios
Aclaro que encontre esta información buscando algo al respecto y me pareció muy importante para poder compartirlo con ustedes ya que seguramente a mas de uno le va a interesar y le servirá en algun u otro momento.. Bueno primeramente partamos de que es... [b]Qué es iptables?[/b][color=red][/color] [b]iptables[/b] es un conjunto de herramientas (comandos) que le permiten al usuario enviar mensajes al kernel del s.o.. El kernel tiene todo el manejo de paquetes TCP/IP metido dentro de él, no es algo aparte como lo es en otros sistemas operativos, por lo tanto todos los paquetes que van destinados a un Linux o lo atraviesan son manejados por el mismo kernel. Esto tiene sus ventajas y desventajas, si bien no me considero un experto en el tema, puedo arriesgar algunos pros y contras ... pero no nos vayamos de tema, el hecho de que el kernel maneje cada paquete de red nos permite (a través de iptables) decirle al kernel qué debe hacer con cada uno de los paquetes. Entonces, iptables es una forma de indicarle al kernel algunas cosas que debe hacer con cada paquete, esto se hace en base a las características de un paquete en particular. Los paquetes de red tienen muchas características, algunas pueden ser los valores que tienen en sus encabezados (a donde se dirigen, de donde vienen, números de puertos, etc., etc.), otra puede ser el contenido de dicho paquete (la parte de datos), y existen otras características que no tienen que ver con un paquete en particular sino con una sumatoria de ellos. La idea es lograr identificar un paquete y hacer algo con el mismo. Por lo tanto, siguiendo con el arduo (?!) trabajo de llegar a una definición de lo que es iptables, podríamos decir que ``iptables es un conjunto de comandos que permiten decirle al kernel qué hacer con ciertos paquetes que cumplan con ciertas características''. Ahora bien, las acciones que podemos indicar con iptables no son tan amplias, con iptables vamos a poder decirle al kernel que acepte un paquete (lo deje pasar), lo deniegue (lo descarte), lo rechace, lo marque o lo modifique. Hay ciertas cosas que no vamos a poder indicarle, por ejemplo que lo ``reenvie'' por alguna ruta estática TCP/IP definida. Con lo cual, con iptables vamos a poder filtrar o modificar paquetes, nada más. [b]Bueno ahora a continuación les dejo una indicación de como configurarlo[/b][size=18][color=blue][/color][/size] #!/bin/bash # # Script # Local para el ejecutable del IPTables IPT=`which iptables`; # Interfaz de red interna IF_INTERNA="eth0"; # Interfaz de red externa IF_EXTERNA="eth1"; # Definición de red interna RED_INTERNA="192.168.1.0/24" fw_start() { #activa el ruteamiento dinamico echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr # ================ POLITICAS POR DEFECTO =================== $IPT -t filter -P INPUT DROP $IPT -t filter -P FORWARD DROP $IPT -t filter -P OUTPUT ACCEPT $IPT -t nat -P PREROUTING ACCEPT $IPT -t nat -P POSTROUTING ACCEPT $IPT -t nat -P OUTPUT ACCEPT $IPT -t mangle -P PREROUTING ACCEPT $IPT -t mangle -P POSTROUTING ACCEPT $IPT -t mangle -P OUTPUT ACCEPT $IPT -t mangle -P INPUT ACCEPT $IPT -t mangle -P FORWARD ACCEPT # Crea una cadena con las normas de seguridad $IPT -N BLOCK $IPT -A BLOCK -p icmp --icmp-type echo-request -j DROP $IPT -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT $IPT -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT $IPT -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT $IPT -A BLOCK -m unclean -j DROP $IPT -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A BLOCK -j LOG --log-prefix "FW_ALERT: " $IPT -A BLOCK -j DROP #Cambiar la prioridad de los paquetes (Type Of Service) para agilizar Las cosas $IPT -t mangle -A OUTPUT -o $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j TOS --set-tos 0x10 # Libera todo el trafico local $IPT -t filter -A INPUT -i lo -j ACCEPT $IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT $IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT # Libera solo FTP, SSH e WEB $IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j ACCEPT # Libera la conexión para la red interna $IPT -t nat -A POSTROUTING -s $RED_INTERNA -j MASCARA # Crea un NAT para el SSH de una maquina de red interna $IPT -t filter -A FORWARD -p tcp -d 0/0 --dport 2222 -j ACCEPT $IPT -t nat -A PREROUTING -p tcp -d 0/0 --dport 2222 -j DNAT --to 192.168.1.2:22 # Reglas para evitar packet flood $IPT -A INPUT -j BLOCK $IPT -A FORWARD -j BLOCK } fw_stop() { $IPT -t filter -P INPUT ACCEPT $IPT -t filter -P FORWARD ACCEPT $IPT -t filter -P OUTPUT ACCEPT $IPT -t nat -P PREROUTING ACCEPT $IPT -t nat -P POSTROUTING ACCEPT $IPT -t nat -P OUTPUT ACCEPT $IPT -t mangle -P PREROUTING ACCEPT $IPT -t mangle -P POSTROUTING ACCEPT $IPT -t mangle -P OUTPUT ACCEPT $IPT -t mangle -P INPUT ACCEPT $IPT -t mangle -P FORWARD ACCEPT $IPT -t filter -F $IPT -t nat -F $IPT -t mangle -F $IPT -t filter -X $IPT -t nat -X $IPT -t mangle -X $IPT -t filter -Z $IPT -t nat -Z $IPT -t mangle -Z } fw_usage() { echo echo "$0 (start | stop | restart | clear)" echo echo "start - Ativa el firewall" echo "stop - Desativa el firewall" echo "restart - Reactiva el firewall" echo "clear - Limpa los contactores" } fw_clear() { $IPT -t filter -Z $IPT -t nat -Z $IPT -t mangle -Z } case $1 in start) fw_start; ;; stop) fw_stop; ;; restart) fw_stop; fw_start; ;; clear) fw_clear; ;; *) fw_usage; exit; ;; esac Fuente: Linux Imprimir

Servidor de videovigilancia Casera Ubuntu.

1 comentarios
Después de que una persona me ha pedido un sistema de videovigilancia para su domicilio me tome la molestia de investigar por internet como podríamos hacerlo en Ubuntu para que todo sea 100% libre.

Bueno encontré una información bastante interesante de como hacerlo de manera casera y simple con tan solo una cámara web.

Acá comparto con ustedes la información con los pasos que se seguirán para que pueda funcionarles.

El software que se necesita se llama Motion, este programa nos permite capturar imágenes o vídeo mediante una entrada de vídeo, ya sea una WebCam, una tarjeta de vídeo u otro dispositivo. Es de gran utilidad ya que contiene muchas utilidades, pero la principal es que puede capturar al haber un movimiento frente a la cámara. Esto lo logra mediante una comparación de imágenes. Supongamos que tenemos una imagen X y una imagen Y, se comparan y si hay un cierto numero de píxeles que varían entre una y otra, se dice que X es diferente de Y y se almacenan como dos imágenes independientes, en caso contrario se desecha Y y solo se almacena X.

Para comenzar escribimos en la consola

sudo apt-get install motion


Esto es así porque el programa Motion ya viene en los repositorios de nuestro Ubuntu y en la mayoría de las distribuciones, si las cosas fáciles no te gustan, puedes bajarte el .DEB de la web de Motion y complicarte la vida buscando las dependencias de este software, y si lo quieres mas difícil, puedes bajarte el .TAR.GZ y compilarlo tú mismo.

Al instalar Motion se crean archivos de configuración en el directorio /etc/motion, uno llamado motion.conf y otro llamado thread0.conf mediante estos archivos Motion controla la o las cámaras disponibles. El archivo motion.conf contiene los valores generales para todas las cámaras web que tengas y por cada cámara web debe haber un archivo thread0.conf para la cámara 1, thread1.conf para la cámara 2.

En el archivo motion .conf que trae por defecto no tiene nada configurado, para ayudarnos un poco bajamos un archivo de la web de Motion con la configuración general o lo podemos descargar de AQUÍ y lo copiamos a la carpeta donde se encuentran los archivos del motion, esta es /etc/motion

Para configurar el archivo motion.conf, abrimos una terminal y escribimos esto:

sudo gedit /etc/motion/motion.conf

En el cual vamos a configurar las siguientes lineas:

control_authentication NOMBREDEUSUARIO:PASSWORD

En este caso como usuario dejamos taringa(o podemos cambiarlo por uno personalizado) y contraseña inteligencia(o uno elegido por nosotros.) después los vamos a usar para ingresar al panel de configuración de Motion.

target_dir /home/k4r1xs/Security


Aquí se van a guardar las imágenes capturadas por la cámara.

webcam_port 8001




Este es el puerto en el cual podremos acceder para ver el vídeo que esta capturando la cámara, el puerto 8000 es para el panel de control de la cámara.

webcam_motion on


Esto es para que se aplique la tasa de captura dada cuando detecte movimiento, por defecto es 2 fotos por segundo, le pueden cambiar a su gusto.

Ahora tenemos que iniciar el servicio o demonio, para ello podemos hacerlo de las siguientes dos formas, cualquiera que les guste.

sudo /etc/init.d/motion start

o

sudo motion -c /etc/motion/motion.conf


Si todo se hizo como debió ser, enhorabuena ya tenemos nuestro server y para comprobarlo solo basta con abrir y teclear en la barra de direcciones http://127.0.0.1:8001
Y si se ven en su cámara como yo walaaa :D


Como último encontré un Software de videovigilancia bastante interesante que ahora me propuse investigar y cuando sepa mas sobre como configurarlo estaré compartiendo con ustedes de vuelta.. espero vuelvan a pasar por mi post.
Les dejo el link de lo que les mencione recién.

ZoneMinder
Fuente: Linuxeros
Imprimir