Mostrando las entradas con la etiqueta debian. Mostrar todas las entradas
Mostrando las entradas con la etiqueta debian. Mostrar todas las entradas

domingo, 23 de junio de 2013

Como instalar LAMP en Debian Wheezy

Aqui un rapido tutorial de como instalar un sevidor Linux+Apache+PHP/Perl+MySQL (LAMP),bien en debian las cosas son faciles solo basta con pegar unos cuantos comandos y tendremos instaldo LAMP:

Abrimos una terminal y tecleamos:

Entramos como root:

su
Instalamos apache

apt-get install apache2 apache2-mpm-prefork
Instalamos MySQL

apt-get install mysql-server
Aqui nos va a salir la opcion de elegir la contraseña de mysql,eligen una es la de root pero no la de UNIX,la de root de MySQL(el administrador).


Instalamos php con las librerías de sql

apt-get install php5 php5-mysql libapache2-mod-php5

Aqui los archivos se guardan en /var/www/

Si queremos editar el archivo que se carga al entrar al 127.1.0.0

cd /var/www/
nano index.html # Esto es estando como root
Y entramos:

  127.1.0.0
Si no entra reiniciamos apache

service apache2 restart
Ahora instalamos phpmyadmin

apt-get install phpmyadmin

Y entramos:

  127.1.0.0
Si no entra,enlazamos la carpeta que esta en share:

 ln -s /usr/share/phpmyadmin  /var/www/phpmyadmin

Para saber la informacion de php y el API de apache:

printf "<?php\nphpinfo();\n?>\n" > /var/www/info.php

Y entramos

http://127.1.0.0/info.php

Eso es todo,ya dandole una "maquillada" asi puede quedar el localhost:


Eso es todo :D.



Leer más...

domingo, 16 de junio de 2013

Editar metadatos mp3 (id3tags) desde Debian/Ubuntu

En ocasiones nos encontramos con la necesidad de editar los metadatos de una canción los metadatos en las canciones se llaman ID3tags y son los que contienen la información mas importante del grupo musical,artista,banda,etc en windows por ejemplo existen infinidad de programas que nos ayudan a cambiar esta información incluso en smartphones con Android o iOS podemos realizar esto,pero en Linux se puede?

Si :D.

Existen algunos programas que lo hacen y en este caso que nos concentraremos mas en Debian ya que tiene el programa mas fácil de usar en sus repos, llamado easytags de Gnome.

Para instalarlo en Debian/Ubuntu basta con:

sudo apt-get install easytags

Ahora lo abrimos y el uso es bastante sencillo,solo elegimos una carpeta y nos busca todos los archivos de audio,luego elegimos los datos a modificar y por ultimo guardamos, también tiene opción de imagen de portada:






Eso es para Debian y Ubuntu y derivados,es al estilo windows,es bastante sencillo y recomendable,pero solo lo he visto solo en Debian en repos,si saben compilar pueden bajar el codigo fuente y compilarlo como yo arriba que lo compile para Gentoo(en estos momentos no estoy en Debian y por eso no puse las capturas de Debian):

Enlace

Descomprimen,necesitan ver las dependencias en  el archivo README

cat README
Y las opciones en el archivo INSTALL

cat INSTALL 

El programa es al estilo windows,y creo que esta disponible para el,si queremos al estilo Unix,podemos instalar id3tool y editar los ID3 desde linea de comandos en la Shell:

Para instalar:

sudo apt-get install id3tool

También lo probé en Gentoo y se instala:

sudo emerge -v media-sound/id3tool
Y ejecutamos asi:

id3tool --opcion cancion.mp3

Por ejemplo para el año

id3tool --set-year=2000 cancion.mp3

Para ver todas las opciones:

id3tool -h

Eso es todo,existen muchas mas herramientas,por ejemplo con VLC se puede hacer esto y con librerias de programación también,por ejemplo yo programe un script para mi en Perl

Enlace



Pero bueno eso ya es otra cosa :P.

Saludos.
Leer más...

sábado, 8 de junio de 2013

Como cambiar el wallpaper automáticamente en openbox

En openbox usamos un programa de linea de comandos que se llama feh,el cual usaremos en este momento,yo he visto que tambien usan nitrogen,asi que si no tienes feh instalalo:

En Debian:

sudo aptitude install feh

En Gentoo:

sudo emerge -av feh

Bien,ahora van a usar este script en Perl que programe:

 Enlace

Lo meten en un archivo de texto,luego le dan permisos de ejecución:

chmod +x archivo_que_cambia_el_wallpaper

 Y luego lo agregan al inicio de openbox:

nano ~/.config/openbox/autostart.sh

Añaden la ruta,por ejemplo:

/home/tu_usuario/archivo_que_cambia_el_wallpaper &

El & es para que se quede ejecutando en segundo plano.



Eso es todo,antes de añadirlo configuren la carpeta de las imagenes y el tiempo entre cada cambio,es en segundos,asi que un minuto son 60,el script busca automáticamente las imágenes que esten en la carpeta que señales y luego las ordena alfabéticamente y las cambia cada x segundos que hayas definido,si algo anda mal avisara:

Como una imagen no se ve como funciona:


Les dejo un vídeo:



Eso es todo :D



Leer más...

viernes, 24 de mayo de 2013

Tutorial Pygame parte 1

Bien,vamos a comenzar los tutoriales de creación de Juegos con Python usando la librería de pygame :D,algo que mas me gusta a la hora de programa es programar script's para sistemas Unix en Python,Perl,Bash,Lua,etc y últimamente estoy viendo pygame,una librería que conocía desde hace tiempo pero que no había probado muy a fondo,he tenido alguna experiencia programando juegos en lua para Windows y no se me complico tanto para entender el funcionamiento de pygame,así que les comparto lo que he aprendido y lo haré lo mas detalladamente posible y iremos al grano de programación (0 teoría) ,la teoría o las cuestiones mas técnicas fácilmente las pueden googlear así que iniciemos.

Tutorial

Este tutorial tiene previsto que ya sabes python, así que si no entiendes las partes fundamentales del lenguaje hecha un vistazo al espacio de python en Tiempo de Tux esta todo lo necesario sobre este lenguaje para entender este y los futuros tutoriales de pygame.

Enlace

Primero que nada yo uso Linux en especifico Gentoo/Debian/Arch, así que si usas windows ve la documentación de instalación de python en la pagina oficial, pero el tutorial de programación te funcionara.

Instalación:

En Debian:

sudo aptitude install pygame

En Gentoo

sudo emerge -av dev-python/pygame

Archlinux

sudo pacman -S python-pygame

Para otros sistemas googlen la instalación de pygame.

Creamos un documento de texto con nombre ejemplo1 y extension .py,ahora lo abrimos con nuestro editor de texto favorito,en mi caso uso Vim o Gedit.

1.Primero que nada vamos a importar lo necesario y definir lo necesario:

# el hash

! el bang

/usr/bin/env la ruta de env

python y el nombre de python

Nota. Si usas una distro muy actual como Arch (por ejemplo) python ya es python 3 y aquí usaremos python 2.7 así que en el nombre usaremos python2

Ve en terminal:

python -V

Si sale 3.x usa python2 en el nombre de python,si dice 2.x  usa solo python en el nombre.

Asi queda el hashbang:

#!/usr/bin/env python2

Enseguida definimos la codificación utf-8 para poder usar caracteres especiales:

# -*- coding: utf-8 -*-

Por ultimo importamos pygame en el espacio de las importaciones:

import pygame

Tambien sys para poder salir del juego cuando este en ejecución:

import sys

Bien,se recomienda usar una función main para el bloque principal de pygame,en mi caso y en estos tutoriales no ya que no es necesario.

Iniciamos definiendo las constantes del programa:

Primero nuestra pantalla:

La pantalla del videojuego es una ventana común y corriente en tamaño así que lleva las medidas alto y ancho:

Definiremos una tupla con las medidas y al mismo tiempo dos variables para poder usarlas:

size = alto,ancho = 400,400

Abajo de las constantes debemos inicializar todos los eventos de pygame con su función init:

pygame.init()

Con esto llamamos a pygame a la acción.

En un juego al igual que en la mayoría de los programas debemos crear un bucle principal que lo mantenga abierto en lo que ejecutamos su contenido,para hacer mas legible el código vamos a definir una variable que diga que estamos jugando:

jugando = True

Ahora iniciamos el bucle con la condición de la variable jugando:

while jugando:

Ahora completamos la condición while con else(while/else):

Debe quedar así:

 while jugando:  
   #juego  
 else:  
   sys.exit(0) # Para cuando dejemos de jugar cierre el juego  

Bien,en el bloque while vamos a anidar un bucle for que recorra los eventos de la lista que nos regresa pygame.event.get():

for eventos in pygame.event.get():

Pygame se manipula a base de eventos,estos son desde la entrada del teclado hasta posibles ocurrencias del sistema.

Añadimos una estructura selectiva en el bloque for,para manipular el evento QUIT de pygame,que es cuando cerramos la ventana desde el window manager(al darle a la x de la ventana):

if eventos.type == QUIT:
    jugando = False

Creamos un elif para el mismo grupo de eventos,esta vez sera para ver si un botón esta presionado ya que hay dos posibles eventos para los botones:

KEYDOWN # Cuando apretamos un botón
KEYUP # Cuando soltamos un botón (primero debemos presionarlo)

Así que esa estructura va asi:

elif eventos.type == pygame.KEYDOWN:

Ahora anidamos en esa estructura otra estructura,para ver que tecla presionamos,en este caso vamos a usar la tecla q para salir y la tecla esc:

if eventos.key == pygame.K_q or eventos.key == pygame.K_ESCAPE:
    jugando = False

Abajo de pygame.init() llamamos la ventana:

Para llamar la ventana o abrirla mejor dicho, debemos usar la función display.set_mode(tupla) pasandole una tupla o lista como parámetro de alto y ancho,como ya la definimos anteriormente, la abrimos definiendo una variable que usaremos en el futuro, así:

sreen = pygame.display.set_mode(size)

Y le podemos poner nombre a la ventana con la función pygame.display.set_caption(nombre)

pygame.display.set_caption("Ejemplo 1")

De momento solo vamos a ver como cerrar la pantalla,no necesitamos otro bloque de selección:

Esto va así en este momento:
 #!/usr/bin/env python2  
 # -*- coding: utf-8 -*-  
   
 import pygame  
 import sys  
   
 size = alto,ancho = 400,400  
   
 pygame.init()  
   
 sreen = pygame.display.set_mode(size)  
 pygame.display.set_caption("Ejemplo 1")  
   
 jugando = True  
   
 while jugando:  
   for eventos in pygame.event.get():  
     if eventos.type == pygame.QUIT:  
       jugando = False  
     elif eventos.type == pygame.KEYDOWN:  
       if eventos.key == pygame.K_q or eventos.key == pygame.K_ESCAPE:  
         jugando = False  
 else:  
   sys.exit(0)  
   

   
Es hora de ejecutarlo:

python ejemplo1.py
Nota: La misma advertencia de python,si python ya es 3.x ejecuta:
python2 ejemplo1.py


Es tiempo de colocar una imagen que a la ves nos servirá para analizar la ruta de una imagen en la posición x(horizontal) y y(vertical) :

Añadimos esta función arriba de pygame.init() :

 def cargar_imagen(nombre,alfa=False):  
   imagen = pygame.image.load(nombre)  
   if alfa == True:  
     imagen = imagen.convert_alpha()  
   else:  
     imagen = imagen.convert()  
   return imagen  

Esa función recibe dos parámetros la ruta o nombre de la imagen y si necesita transparencia,las imágenes con transparencia son los objetos que moveremos en el juego,en este caso no usare fondo pero para el fondo se usa:

imagen = imagen.convert()

Y para los objetos:

imagen = imagen.convert_alpha()

Pero para ambos siempre iniciando la variable imagen con el valor de pygame.image.load(nombre) (donde nombre,es el nombre o ruta a partir de la carpeta actual).

imagen = pygame.image.load("objeto.png")

Abajo de la función vamos a crear una clase (que heredara pygame.sprite.Sprite), que sera el objeto que moveremos:

Los sprites son la forma de tratar con los objetos en pygame(googlear para mas info)

 class Objeto(pygame.sprite.Sprite):  
   def __init__(self):  
     pygame.sprite.Sprite.__init__(self)  

Adentro de la clase cargaremos la imagen con la función que creamos anteriormente:

self.imagen = cargar_imagen("objeto.png",alfa=True)

Le añadimos el rect que es la posición en la que se encontrara al iniciar:

Primero hacemos un get a la imagen y luego lo definimos:

 self.rect = self.imagen.get_rect()  
 self.rect.centerx = alto / 2  
 self.rect.centery = ancho / 2 # De esta manera lo colocara en medio de la pantalla  

Asi queda nuestro programa hasta ahora

 #!/usr/bin/env python2  
 # -*- coding: utf-8 -*-  
   
 import pygame  
 import sys  
   
 size = alto,ancho = 400,400  
   
 def cargar_imagen(nombre,alfa=False):  
   imagen = pygame.image.load(nombre)  
   if alfa == True:  
     imagen = imagen.convert_alpha()  
   else:  
     imagen = imagen.convert()  
   return imagen  
   
 class Objeto(pygame.sprite.Sprite):  
   def __init__(self):  
     pygame.sprite.Sprite.__init__(self)  
     self.imagen = cargar_imagen("objeto.png",alfa=True)  
     self.rect = self.imagen.get_rect()  
     self.rect.centerx = alto / 2  
     self.rect.centery = ancho / 2  
   
 pygame.init()  
   
 screen = pygame.display.set_mode(size)  
 pygame.display.set_caption("Ejemplo 1")  
   
 jugando = True  
   
 while jugando:  
   for eventos in pygame.event.get():  
     if eventos.type == pygame.QUIT:  
       jugando = False  
     elif eventos.type == pygame.KEYDOWN:  
       if eventos.key == pygame.K_q or eventos.key == pygame.K_ESCAPE:  
         jugando = False  
 else:  
   sys.exit(0)  

Arriba del bucle while vamos a cargar las imagenes,primero instanciamos el objeto:

objeto = Objeto()

Luego cargamos su imagen definiendola en una variable,para poder trabajar con ella en el futuro:

imagen_objeto = objeto.imagen

Adentro del bloque del buble while,abajo del for hacemos un blit sobre la pantalla,que sera lo que cargara la imagen:

Le tenemos que pasar dos valores(en este caso),la imagen(Surface) y una lista o tupla con la posición X y Y:

Para la imagen(Surface) usamos la variable de la imagen y para la posición usamos la lista de clase (rect) del objeto objeto:

screen.blit(imagen_objeto,objeto.rect)

Ahora redibujamos la pantalla haciendo flip:

pygame.display.flip()

Ahora ejecutamos:

python ejemplo1.py

Si da error es porque no tenemos un objeto.png en esa carpeta,usen este :



Guardalo en la carpeta del juego



Ahora vamos a añadir un texto para saber donde se encuentra,en posición x y (y)

Pero primero vamos a cargar un fondo de color,en la zona de las constantes añadimos una lista con el color rgb:

color = [119,255,221]

Si no saben colores RGB o no recuerdan pueden visitar esta web:

http://coloreminder.com

Cargamos un font arriba del bucle while:

Se le pasan dos parámetros el nombre de la fuente y el tamaño,en mi caso si uso None carga la fuente por defecto y el tamaño le daremos 15:

font = pygame.font.Font(None,15)

Definimos una constante en la parte de las constantes con las variables que serán la posición del objeto:

vertical,horizontal = 0,0

En el bloque del bucle while añadimos el texto al font:

Primero definimos un texto,que en este caso sera la posición del objeto:

posicion = "x : %d y : %d" % (horizontal,vertical)

Se le pasan tres parámetros,el primero es el texto,el segundo es un boleano para definir los bordes lisos,el tercero es el color del texto en RGB:

text = font.render(posicion,1,(255,255,255))

Dibujamos la pantalla,abajo del bucle for fuera de este:

screen.fill(color)

Hacemos un blit al texto:

screen.blit(text,(20,20))

Por ultimo en la clase Objeto definimos las variables globales horizontal y vertical en un método update para que cambie:

 def update(self):  
   global horizontal,vertical  
   horizontal = self.rect.centerx  
   vertical = self.rect.centery  

Ahora debajo del bucle while añadimos el update del objeto:

objeto.update()

En estos momentos el script va asi:

 #!/usr/bin/env python2  
 # -*- coding: utf-8 -*-  
   
 import pygame  
 import sys  
   
 size = alto,ancho = 400,400  
 vertical,horizontal = 0,0  
 color = [119,255,221]  
   
 def cargar_imagen(nombre,alfa=False):  
   imagen = pygame.image.load(nombre)  
   if alfa == True:  
     imagen = imagen.convert_alpha()  
   else:  
     imagen = imagen.convert()  
   return imagen  
   
 class Objeto(pygame.sprite.Sprite):  
   def __init__(self):  
     pygame.sprite.Sprite.__init__(self)  
     self.imagen = cargar_imagen("objeto.png",alfa=True)  
     self.rect = self.imagen.get_rect()  
     self.rect.centerx = alto / 2  
     self.rect.centery = ancho / 2  
   def update(self):  
     global horizontal,vertical  
     horizontal = self.rect.centerx  
     vertical = self.rect.centery  
   
 pygame.init()  
   
 screen = pygame.display.set_mode(size)  
 pygame.display.set_caption("Ejemplo 1")  
   
 jugando = True  
 objeto = Objeto()  
 imagen_objeto = objeto.imagen  
   
 font = pygame.font.Font(None,30)  
   
 while jugando:  
   objeto.update()  
   posicion = "x : %d y : %d" % (horizontal,vertical)  
   text = font.render(posicion,1,(255,255,255))  
   for eventos in pygame.event.get():  
     if eventos.type == pygame.QUIT:  
       jugando = False  
     elif eventos.type == pygame.KEYDOWN:  
       if eventos.key == pygame.K_q or eventos.key == pygame.K_ESCAPE:  
         jugando = False  
   screen.fill(color)   
   screen.blit(text,(20,20))  
   screen.blit(imagen_objeto,objeto.rect)  
   pygame.display.flip()  
 else:  
   sys.exit(0)  

Ya podemos ejecutarlo:

python ejemplo1.py



Vamos a mover el objeto en la pantalla,para ello vamos a añadir los eventos necesarios:

En el bucle for en la estructura (elif eventos.type == pygame.KEYDOWN:)

Añadimos los sigiuentes elif's para manegar los eventos:

 elif eventos.key == pygame.K_LEFT:  
   objeto.rect.centerx -= 5  
 elif eventos.key == pygame.K_RIGHT:  
   objeto.rect.centerx += 5  
 elif eventos.key == pygame.K_UP:  
   objeto.rect.centery -= 5  
 elif eventos.key == pygame.K_DOWN:  
   objeto.rect.centery += 5  

Con eso manejaremos las pulsaciones de las cuatro direcciones,añadiendo 5 o disminuyendo 5 en la posición del objeto,recuerda que x es horizontal y (y) vertical.

Arriba del bucle while añadimos la repetición de las pulsaciones del teclado,que funcionaran para el movimiento o autofire en un juego de disparos:

pygame.key.set_repeat(1,20)

Con eso ya tenemos una buena herramienta para ver donde esta un objeto en la pantalla,vamos a hacerlo mas interesante,vamos a cambiar el color de la pantalla con la pulsación de la tecla (c)

Primero que nada creamos un modulo,que nos encuentre los colores RGB,yo programe este que usa colores grises,pueden modificarlo pero de momento así funciona:

 # -*- encoding: utf-8 -*-  
   
from random import randint  
   
def colores():  
  colors = 0  
  col = []  
  rgb = []  
  while (colors < 256):  
    col.append(colors)  
    colors += 8  
  col.append(255)  
  n = randint(0, len(col) - 1)  
  for i in range(0,3):  
    rgb.append(col[n])  
  return rgb  
   

Lo metemos en un archivo con nombre (colores.py) en la carpeta donde esta ejemplo1.py

Ahora en el ejemplo importamos los colores:

import colores

Y en la estructura de pulsacion de teclas añadimos este elif:

 elif eventos.key == pygame.K_c:  
   pygame.key.set_repeat(1,40) # Esto para detener las multiples pulsaciones(autofire)  
   color = colores.colores()  
   pygame.key.set_repeat(1,20) # Esto para devolver las pulsaciones de movimiento  

Eso es todo en este tutorial,el código final queda así:



Si tienen problemas de identacion/sangria identen manualmente el código.



Leer más...

viernes, 17 de mayo de 2013

Como instalar plymouth en Debian wheezy

El plymouth es un splash screen en nuestro sistema operativo que inicia de manera gráfica el mismo,en muchos sistemas Linux no es necesario ya que inician demasiado rápido como es el caso de Arch con systemd,en Debian nos queda muy bien un inicio gráfico ya que demora un poco en encender.

A mi en lo personal me gusta un inicio grafico ya que ya paso el tiempo en que me gustaba ver los logs y los scripts de carga,ahora mismo prefiero un inicio grafico y aqui un tutorial para hacerlo en Debian wheezy.

Tutorial

1.Entramos en modo root:

su

2.Instalamos lo necesario:

aptitude install plymouth plymouth-dev

3.Instalamos lo necesario para nuestra Pc(controlador):

Intel:


aptitude install libdrm-intel1


Para driver libre Nouveau (nVidia):

aptitude install libdrm-nouveau1


Para drivers libres ATI Radeon:

aptitude install libdrm-radeon1
Ahora configuramos /etc/initramfs-tools/modules:

nano /etc/initramfs-tools/modules

Y añadimos:

Intel:

# KMS
intel_agp
drm
i915 modeset=1


Para drivers libres Nouveau (nVidia):

# KMS
drm
nouveau modeset=1

4.Configuramos el grub:

nano  /etc/default/grub

Y añadimos o editamos la variable GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"


Actualizamos el grub:

update-grub2
Eso es todo :D

Para cambiar el tema ejecutamos:

plymouth-set-default-theme --list



Para ver los temas disponibles y :

plymouth-set-default-theme nombre_tema

Cambiarlo,por ultimo solo actualizamos initramfs:


update-initramfs -u

Reiniciamos y listo.

Nota: Puede que no sirvan algunos temas,esto se debe a que puede que tu tarjeta de video no este soportada y plymouth use el modo texto.

Referencia y mas informacion: wiki.debian.org/es/plymouth
Leer más...

miércoles, 15 de mayo de 2013

Instalar firewall en Debian wheezy

Algo que tenemos que hacer principalmente al instalar un sistema operativo es asegurar las conexiones de red,ya que por ahí se puede ver afectada la seguridad de nuestro sistema y nuestros datos se pueden ver comprometidos. Como sabemos siempre hay o puede haber personas que exploten o logren explotar nuestra Pc como se dice comúnmente hackear,existen muchas formas de hacer esto de manera local o remota y en Linux no es la excepción,en este caso solo instalaremos un firewall con configuración normal,ya que directamente podemos usar ip tables,pero es un poco mas complicado asi que instalaremos UFW y GUFW para una fácil configuración de nuestro Firewall.

Tutorial

1. Instalar UFW(Uncomplicated Firewall) este programa nos comunica con ip tables de una manera mas sencilla,en otra palabras accede a las configuraciones de ip tables para Humanos :P.

Instalamos:

sudo apt-get update && sudo apt-get install ufw
Ahora configuramos con linea de comandos,en seguida instalaremos una interfaz gráfica,para que sea aun mas facil la configuracion pero ahora lanzamos los comandos:

Vemos el estado con:

sudo ufw status


Activamos con:


sudo ufw enable
Desactivamos con :

sudo ufw disable

Eso es lo mas importante,para crear reglas copy pasteo de wikipedia:

Muestra estatus detalladosudo ufw status verbose
Muestra Lista de Reglas Numeradasudo ufw status numbered
Bloquea todo el tráfico de entradasudo ufw default deny incomingEsto detendrá por defecto todo el tráfico entrante LAN desde Internet a menos que se especifique lo contrario en una regla
Permite todo el tráfico de entradasudo ufw default allow incomingEsto permitirá por defecto todo el tráfico entrante LAN a menos que se especifique lo contrario en una regla
Bloquea todo el tráfico salientesudo ufw default deny outgoingEsto detendrá por defecto todo el tráfico saliente hacia Internet LAN a menos que se especifique lo contrario en una regla
Permite todo el tráfico salientesudo ufw default allow outgoingEsto permitirá por defecto todo el tráfico saliente hacia Internet LAN a menos que se especifique lo contrario en una regla
Bloquea elpuerto 22sudo ufw deny port 22Esto detendrá a cualquiera en Internet que intente conectarse a dispositivos en el LAN usando SSH
Permite el puerto 22sudo ufw allow port 22Esto permitirá a cualquiera en Internet conectarse a dispositivos en elLAN usando SSH
Bloquea el puerto 22 solo para una persona específicasudo ufw deny from 220.60.90.55 to port 22Esto detendrá a la dirección IP 220.60.90.55 conectarse a dispositivos en el LAN usando SSH
Permite el puerto 22 solo para una persona específicasudo ufw allow from 220.60.90.55 to port 22Esto permitirá a la dirección IP 220.60.90.55 conectarse a dispositivos en el LAN usando SSH
Bloquea el puerto 22 solo para una red específicasudo ufw deny from 220.60.90.0/24 to port 22Esto detendrá a cualquiera usando una dirección IP en el rango 220.60.90.1 - 220.60.90.254 conectarse a dispositivos en el LAN usandoSSH
Permite el puerto 22 solo para una red específicasudo ufw allow from 220.60.90.0/24 to port 22Esto permitirá a cualquiera usando una dirección IP en el rango 220.60.90.1 - 220.60.90.254 conectarse a dispositivos en el LAN usandoSSH
Bloquea el puerto 53 en el UDPsudo ufw deny port 53Esto detendrá a cualquiera en Internet usando un DNS buscar dispositivos en el LAN
Permite el puerto 53 en el UDPsudo ufw allow port 53Esto permitirá a cualquiera en Internet hacer transacciones DNS sobre dispositivos en el LAN
Permite un rango de puertos TCPsudo ufw allow 2500:5000/tcpEsto permitirá a cualquiera en Internet comunicarse a cualquier puerto en el rango 2500 - 5000 en dispositivos en el LAN
Elimina un número de reglasudo ufw delete 1Esto borrará la primera regla en la lista de reglas
 Fuente : es.wikipedia.org/wiki/Uncomplicated_Firewall

Ahora si no nos gusta la linea de comandos,podemos instalar GUFW una interfaz gráfica para UFW:

Instalamos :

sudo apt-get install gufw

Lanzamos con :

gksu gufw

o con

dbus-launch gufw
En la terminal o en ejecutor (fn + alt + F2 )si no nos sale en el menu o dash de nuestro entorno de escritorio:


Para ver reglas vean Editar de GUFW,eso es todo :D


Leer más...

sábado, 11 de mayo de 2013

Como instalar Google Chrome en Debian 7.0 wheezy


Si bien un navegador me gusta es chrome,digan lo que digan,en Debian tambien contamos con Iceweasel y me gusta mas que firefox,pero me gusta mas chrome.

Tutorial

1.Entramos como root

su

2.Añadimos el repo de Google:

Editamos los repos con :

nano /etc/apt/sources.list

Y añadimos esta repo:

# Google Chome :D
deb http://dl.google.com/linux/chrome/deb/ stable main

Guardamos

ctrl + o

ctrl + x


3.Ahora hacemos un update

aptitude update

Nota si da error de llaves gpg(que es lo mas seguro) quedarse, si no da error pasar al paso 4.

Bien,si da error copiar la llave y escribir junto con esto:

gpg --keyserver subkeys.pgp.net –recv-keys llave

gpg --export --armor llave | apt-key add -

aptitude update 
La llave son números y nos los muestra en la terminal.

4.Instalar Chrome

Para instalar estable:

aptitude install google-chrome-stable

Para Beta:

aptitude install google-chrome-beta

Para unstable:

aptitude google-chrome-unstable

Esperamos y listo :D



Leer más...

domingo, 5 de mayo de 2013

Debian 7 Wheezy Liberado

Hace mucho que no hablo de debian y si lo uso,pero no lo menciono,de hecho es una de las distribuciones que use primero,pero bueno en tiempo de tux también tenemos un espacio reservado para el sistema operativo universal.

Y así es como dice el titulo,salio la version 7.0 Wheezy el 04-05-2013 con las siguientes novedades:

  • Apache 2.2.22
  • Asterisk 1.8.13.1
  • GIMP 2.8.2
  • GNOME SHELL 3.4
  • GNU Compiler Collection 4.7.2(GCC)
  • Icedove 10
  • Iceweasel 10
  • KDE Plasma Workspaces y KDE Applications 4.8.4
  • kFreeBSD kernel 8.3 y 9.0
  • LibreOffice 3.5.4
  • Linux 3.2
  • MySQL 5.5.30
  • Nagios 3.4.1
  • OpenJDK 6b27 y 7u3
  • Perl 5.14.2
  • PHP 5.4.4
  • PostgreSQL 9.1
  • Python 2.7.3 y 3.2.3
  • Samba 3.6.6
  • Tomcat 6.0.35 y 7.0.28
  • Xen Hypervisor 4.1.4
  • Xfce 4.8
  • X.Org 7.7 
Y también nos mencionan que tienen listos 36,000 paquetes(programas) listos para instalarse :D

 Como pueden ver es un Software "antiguo" pero les aseguro que vale la pena,yo mismo ya instale en una partición Debian 7 con Gnome Shell desde netinstall,eso quiere decir que hare algunos tutoriales de Perl/Gtk3 (como antes que usaba Arch)
 y también le pondre mas cosas a simple perl browser ya que tiene mucho que no le añado cosas nuevas.

Bueno para descargar Debian 7 visiten la pagina de Debian:

Enlace 

También haré unos tutoriales aprovechando que lo instale,eso es todo :D



Leer más...

martes, 19 de marzo de 2013

Como instalar Google Chrome .deb en Gentoo

Últimamente me ha dado un error al intentar descargar mi navegador favorito google chrome desde portage y bueno de todas formas en portage hay una versión muy extraña de chrome y un poco retrasada asi que recurrí al buen Debian,o mejor dicho a la conocida paqueteria .deb de Debian,desde la pagina de Chrome,asi que lo que hice fue muy sencillo y también se puede hacer con los .tar.gz(ya compilados).

Un poco de términos de informática:

Los programas son archivos programados para hacer cierto tipo de cosas,estos cuentan con sus archivos de configuración y archivos ejecutables que usan los demás componentes(imágenes,sonidos,configuraciones,etc),al instalar un programa lo único que se hace es copiar estos archivos a sus respectivos directorios,en donde el código fuente del mismo indica que ruta y archivos va ha usar,esto puede que ya lo sepan,o no y lo digo porque es totalmente valido decir que todos los Linux son iguales,entre comillas "iguales" ya que lo único que cambia en las distribuciones es la paqueteria y el método de configuración,lo cual es mucho pero dentro de esto mismo usan el mismo sistema operativo(GNU),dentro de esto mismo entra el cambio de nombre de paquetes y configuraciones,pero ahi es donde entran los paquetes compilados,ya que un paquete compialdo viene listo para usarse, también entre comillas "listo" ya que como dicen por acá, a "chaleco"(fuerza) necesita dependencias,esto lo digo porque en este caso porque trasladamos un paquete de debian a gentoo y como dije aunque los dos sean GNU necesita dependencias las dependencias de chrome en la ramas del sistema de Gentoo.

Tutorial

1.Bajamos el .deb para nuestra aquitectura

Enlace
2.Nos pasamos a la carpeta que lo descargo:

Por la fea arquitectura de los paquetes .deb nos va a tirar muchos archivos y nos vamos a perder(o por lo menos yo pierdo de vista lo que se extrajo) así que creamos una carpeta:

2.1: Nos movemos a la carpeta de descargas:

cd Descargas

2.2: Creamos una carpeta

mkdir google

2.3: Movemos el .deb a la nueva carpeta:

 mv google-chrome*.deb google
2.4: Nos movemos a la nueva carpeta:

cd google

3.Descomprimimos

Descomprimimos el .deb:

ar -x google-chrome*.deb

Bien, eso nos dejo muchos archivos,entre ellos el que nos interesa, el de extensión .tar.lzma

 Lo descomprimimos:

Nota: Así descomprimos yo los .tar.lzma

Pasamos el .lzma a tar


  xz --format=lzma --decompress data.tar.lzma

Y el tar a lo que es realmente:



  tar xvf data.tar
Eso se debe ver así mas o menos:


4.Movemos a una carpeta:

Ya tenemos todo lo que necesitamos pero es un desorden,lo unico que necesitamos son las carpetas generadas,asi que creamos otra carpeta donde estamos:

mkdir chrome

Y movemos las carpetas que venían en el .deb a la nueva carpeta:

mv {opt,usr,etc} chrome
5.Terminamos 

5.1: Ahora movemos esta carpeta al /opt

sudo mv chrome /opt/

Y le damos permisos a nuestro usuario

sudo chown -R usuario /opt/chrome
5.2: Solo queda crear un enlace simbolico del ejecutable que venia en la carpeta /usr/bin del deb a nuestra /usr/bin real:

sudo ln -s /opt/chrome/usr/bin/google-chrome /usr/bin/chrome 


Eso es todo :D

Solo ejecutamos en terminal

chrome

También podemos añadirlo a nuestro menu o Escritorio,pero eso depende de que entorno estemos usando,por ejemplo este es un Acceso directo desde el escritorio de LXDE

[Desktop Entry]
Name=Google Chrome
Comment=Google
Exec=chrome
Icon=/opt/chrome/opt/google/chrome/product_logo_128.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Internet




O en openbox o awesome se añade como un item al menu,abra que googlear.

Eso es todo :D



Leer más...

miércoles, 19 de septiembre de 2012

Script en bash para la administrasion de Debian/Ubuntu o basados en apt

De pronto se me ocurrio programar un script para administrar o facilitar el uso de apt de Debian o basados,esto seria escrito en bash para mas rápido ya que también se podría hacer en python,pero mas rápido y accesible en bash,bueno yo siempre googleo antes lo que quiero hacer,por si esta en Internet y ver si servirá de algo lo que voy a escribir porque si ya alguien lo a hecho de nada sirve hacerlo,a menos que fuera otra alternativa,bueno el hecho es que encontré un excelente script para hacer esto,en

foro.elhacker.net

Bueno el hecho es que el script que encontre es muy bueno y mejor no escribí el mio,pero bueno el script permite,buscar,instalar y otras cosas mas sobre paquetes de software basados en apt,o sea en Debian

Por la fecha del script lo escribieron en el año 2006,pero eso no importa ya que funciona perfecto

Código:


#!/bin/bash
#Fecha 11-03-2006
#Autor: si,tu
#Licencia GNU-GPL
#Tomado parte del ubuntusetup de ryan (ubuntu-geek)
echo -e "\033[1;32m----------- Opciones -----------\033[0m";
echo "1 -> Instalar paquetes";
echo "2 -> Ver paquetes instalados";
echo "3 -> Actualizar el sistema";
echo "4 -> Buscar paquete";
echo "5 -> Eliminacion automantica de paquetes viejos";
echo "6 -> Chequear Dependencias";
printf "\033[1;32m\tOpción >> \033[0m";
read PAK
case $PAK in
1)
printf "\033[1;30mNombre del Paquetes a instalar: >>\033[0m";
read PAKN
if [ "$PAKN" = "" ];then
exit 1
else
sudo apt-get install $PAKN
fi
;;
2)
printf "\033[1;30mEscriba aqui el nombre de algun paquete que desea ver si lo tiene isntalado: >> \033[0m";
read PAKN
if [ "$PAKN" = "" ];then
exit 1
else
echo -e "\033[1;30mTiene el/los siguiente/s paquete/s: >>\033[0m";
sudo dpkg -l | grep $PAKN | awk '{print $2}' | nl -s " - "
fi
;;
3)
echo -e "\033[1;30mSe va actualizar el sistema\033[0m";
sudo apt-get upgrade && sudo apt-get dist-upgrade
;;
4)
printf "\033[1;30mNombre del Paquetes a buscar: >> \033[0m";
read PAKB
if [ "$PAKB" = "" ];then
exit 1
else
echo -e "\033[1;30mID ->\tPaquete\t -  Comentario:\033[0m";
apt-cache -v search $PAKB | nl -nrz -w3 -s " -> " | more
busqueda=(`apt-cache search $PAKB | cut -f1 -d " "`)
printf "\033[1;30mID del paquete que va instalar >>\033[0m";
fi
read PAKN
$(PAKN=0)
if [ ! -z "$PAKN" ]; then
echo -e "\033[1;30mInstalando el paquete $PAKN -> \033[0m" ${busqueda[$PAKN-1]};
sudo apt-get install ${busqueda[$PAKN-1]}
fi
;;
5)
echo -e "\033[1;30mSe eliminaran paquetes viejos automaticamente\033[0m";
sudo apt-get autoclean
;;
6)
echo -e "\033[1;30mSe chequearas si hay dependencias corruptas y si las hay se arreglaran\033[0m";
sudo apt-get -f check
;;
*)
exit 1
;;
esac 

Ese es el codigo,para usarlo copienlo y pegenlo en un archivo de texto,luego denle permisos de ejecución y ejecutenlo con el interprete o desde la carpeta,ejemplo

1.Copia el código

2.En terminal

nano administracionapt.sh

3.Pega

ctrl+alt+v

Guarda

ctrl+o

Sal

ctrl+x

4.Dale permisos de ejecución

chmod +x administracionapt.sh

5.Ejecuta

./administracionapt.sh


 Eso es todo

Script visto en:

foro.elhacker.net/ejercicios/scripts_en_bash-t54510.0.html
Leer más...

sábado, 1 de septiembre de 2012

Como ver las dependencias de un paquete .deb con dpkg



Bueno esta entrada mas que nada es para los usuarios de debian,ya que las distrivbuciones basadas o el iphone son muy facil de usar y normalmente al instalar .deb se descargan automaticamente las dependencias.

Bueno cuando bajamos un .deb lo instalamos con

sudo dpkg -i paquete.deb

o

sudo dpkg --install paquete.deb 

En debian o incluso avezes en Ubuntu dice que necesita dependencias,bueno para arreglar eso tenemos dos opciones

1.Los paquetes .deb son varias carpetas comprimidas que a la hora de instalase copiaran los archivos de estas carpetas en el sistema debe haber un archivo donde se guarde la información del .deb y esta en el archivo control

Asi que clic derecho al .deb >> abrir con gestor de srchivadores >> control.tar.gz >> control



O

En terminal

cd /tuta_del_deb ls *.deb


dpk -I paquete.deb



Las dependencias las podemos instalar una por una o todas,pero si da un error o no encuentra alguna la buscamos por cache

sudo apt-cache search dependencia 

y ahora si despues de tener todas las dependencias

sudo dpkg -i paquete.deb 

Leer más...

miércoles, 18 de abril de 2012

Como agregar repos en Debian 6

Ola que tal en esta ocasión les voy a enseñar a agregar repos (repositorios fuentes o sources,como los conozcan) en Debian 6, hace poco visite un post de como hacer esto, ahí estuve intercambiando ideas con el creador del post y me hiso reflexionar sobre algunas cuestiones del mundo Debian ya que lo que yo uso es lo siguiente:

Como saben o se darán cuenta existen permisos en los archivos de Linux/Unix los cuales están en cada archivo y carpeta del sistema uno de ellos es el "775" un permiso universal para poder ser ejecutado leído y escrito por cualquier usuario del sistema,no solo root ya que los permisos de root son "644" yo lo que uso es darle ese permiso "775"a cualquier archivo que no sea tan importante para poder modificarlo rápidamente sin usar su o sudo,pero surgió una duda de seguridad al recomendar esto en la otra web, ya que al ser un archivo root es por algo y este debe permanecer así,de todas formas esto yo no lo uso mucho es solo otra forma de bastantes que existen para realzar esta tarea y lo recomede por ver un usuario tener problemas con el modo universal que es usar nano u otro editor en modo root.

Explicación 

Las repos o repositorios son lugares donde se almacenan nuestros programas que necesitamos instalar, al añadir repos se hace simple la tarea de instalación con tan solo uno apt-get tenemos instalado un programa,esto lo hemos visto en el sitio usando Ubuntu, Fedora y en el iPhone ya que en el iPhone con jailbreak usamos apt-get en terminal, usamos repos,y también podemos modificar /etc/apt/sources/ para modificar los repos solo que en este sistema no es root este archivo y tambien lo veremos en Archlinux solo que ahí se modifica el mirror.list de pacman y no el sources.list de apt.

Tutorial


1.Abre una terminal y

pon la terminal en modo root


su

tu_contraseña
2.Ya en modo root teclea

cd /etc/apt



gedit sources.list
o

nano sources.list
Al final agregas las repos y le das guardar



Cuando este guardado le damos en terminal de nuevo

apt-get update

Se preguntaran ¿y las repos?

La pueden encontrar aquí

linuxgnublog.org/repositorios-debian-squeeze


Eso es todo :D




Leer más...

martes, 17 de abril de 2012

Navegar en internet con terminal Linux

Esto mas que nada es info ya que es muy difícil y incomodo navegar desde terminal pero se puede y se puede muy bien,si no sabian como funciona se trata de usar un programa tipo terminal llamado lynx que funciona con la sintaxis común de Unix

lynx pagina_web(con www sin http)

Para instalar usa

Ubuntu 


sudo apt-get install lynx

Debian


En modo root


aptitude install  lynx

En fedora


No lo he probado pero pienso que es así


yum install lynx

Si lo usan en otra distro comenten

Y así es como se ve Tiempo de Tux desde lynx


Se maneja solo con las teclas y aquí unos comandos vistos en esdebian.org

Shift + H: Invoca la ayuda "(h)elp"

Q: Cerrará el programa después de preguntar

Shift + Q: Cerrará el programa sin preguntar 

K: Muestra una lista de comandos de teclado disponibles

M: Vuelve a la pagina de inicio, después de preguntar (confirmamos con (Y)es)

G: Abre un cuadro de dialogo para ingresar una nueva url

Shift + G: Abre un cuadro de dialogo para ingresar una nueva url 

L: Muestra los enlaces disponibles en el “documento” actual desde el Setup 

P: Muestra las correspondientes opciones de impresión es decir, si lo guarda en un archivo local, 
se realiza un envío al correspondiente e-mail o se envía directamente a impresión

D: Guarda el archivo de la pagina con todas las imágenes

A: Añade a los favoritos o bien la pagina que estamos viendo, o bien la pagina cuyo enlace tenemos bajo el cursor

V: Abre un administrador de favoritos

Ctrl + A: Vuelve al comienzo de la pagina

Ctrl + E: Va el final de la pagina

Ctrl + R: Recarga la pagina

/: Comienza una búsqueda


Que se diviertan :D


Leer más...