lunes, 24 de junio de 2013

Configurar ubuntu server como controlador de domino mediante samba

Servidor de dominio con Samba en ubuntu server


red_local

En un antiguo post se explicaba como configurar samba de manera más básica, ahora en este post trataremos de actualizar nuestro servidor samba.

  • Primero nos logeamos como root:
          sudo su
  • En segundo lugar, como siempre, actualizamos nuestro sistema:
          apt-get update && apt-get upgrade
  • Instalamos el paquete samba:
         apt-get install samba samba-common sambanetfs

  • Ahora procedemos a configurar el servidor, como siempre los archivos de configuración están en /etc, en este caso en /etc/samba/smb.conf.
         cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
  • Editamos el antiguo archivo de configuración e insertamos las siguientes lineas de configuración:
[global]
workgroup = UPDATED
netbios name = SAMBA
server string = Servidor Samba
security = user
encrypt passwords = Yes
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *new*password* %nn *new*password* %nn *changed*
username map = /etc/samba/smbusers
password level = 8
username level = 8
unix password sync = Yes
log file = /var/log/samba/%m.log
max log size = 0
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#en este caso todos los usuarioos ejecutaran el mismo archivo de logon
logon script = LOGON.bat
logon path = %Lprofile%U
domain logons = Yes
os level = 33
preferred master = Yes
domain master = Yes
dns proxy = No
wins proxy = No
wins support = Yes
host allow = 192.168.1.1/24
[Compartido]
comment = directorio compartido
path = /samba/compartido
valid users = @gruposmb
read only = No
create mask = 0755
[netlogon]
comment = Network Logon Service
path = /samba/netlogon
public = Yes
writeable = No
browseable = Yes
valid users = @gruposmb
browseable = No
[cdrom]
comment = Cd Rom Compartido
path = /media/cdrom0
public = yes
writable = no
browseable = yes
  • Para comprobar que todos los parámetros introducidos son correctos, ejecutar testparm y obtendréis una salida parecida a esta:
          Load smb config files from /etc/samba/smb.conf
          rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
          Processing section "[Compartido]"
          Processing section "[netlogon]"
          Loaded services file OK.
          Server role: ROLE_STANDALONE
          Press enter to see a dump of your service definitions
  • Creamos el directorio /samba y todas sus dependencias.
          mkdir -p /samba/compartido

          mkdir -vp --mode 755 /samba/netlogon
  • Creamos el archivo logon “logon.bat” e insertamos el/los comando/s que precisemos:
          echo "net use u: sambacompartido" > /samba/netloon/logon.bat

En este ejemplo se crea una unidad de red, identificada con el carácter alfanumérico U.
  • Convertimos el archivo a formato DOS con CR/LF
           unix2dos /samba/netlogon/logon.bat
  • Ahora crearemos el grupo “gruposmb”, el usuario para samba que utilizaremos para logearnos en los clientes, le crearemos una contraseña:
          addgroup gruposmb

          useradd -g gruposmb -s /bin/null “new user”

          smbpasswd -a “user”

        service smbd restart

En este momento ya podemos configurar los clientes para activar la comparación de recursos.

En la versión de samba 3.6.9, me ha sido totalmente imposible ejecutar desde el servidor el archivo logon.bat, no se si sera un bug o mi configuración, así se tendrá que ejecutar desde el cliente.

En lo que concierne a nuestro firewall con iptables, se tendrán que introducir las siguientes reglas:


iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT 
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT 
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Estoy ultimando un tutorial, que dependiendo de la variable tiempo, publicare acerca de instalar/configurar samba4, que como todos sabréis nos da soporte de directorio activo(windows 20xx server). 

lunes, 17 de junio de 2013

Servidor de correo con mysql+postfix+roundcube en ubuntu

Servidor de correo con mysql+postfix+roundcube en ubuntu

En un antiguo post explicaba como crear un servidor local de correo. El paso inexorable del tiempo nos obliga a tener que renovarnos y este es el motivo por el cual voy ha crear este nuevo tutorial.


Sin más dilación comencemos.

- En primer lugar, como siempre, actualizamos nuestro server:

sudo su

apt-get update && apt-get upgrade

- En segundo lugar instalamos mysql:

apt-get install mysql-server
  • Durante el proceso de instalación podemos elegir una contraseña para el usuario root de mysql, en esta ocasión se dejará en blanco(sólo para pruebas).
- Ingresamos en mysql y creamos base de datos. Si así lo deseamos podemos utilizar un front-end tipo phpmyadmin.
  • Tras Instalar el gestor de bases de datos mysql nos logeamos en mysql:
mysql -u root -p
  • Creamos la base de datos para el mail server:

    create database mail;

  • Creamos el usuario admin que administrara la base de datos mail:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
  • Le concedemos todos los permisos, para eso es el administrador, al usuario admin recién creado y salimos de mysql:
GRANT ALL PRIVILEGES ON mail.* TO admin@localhost;
flush PRIVILEGES;

quit;

Hasta aquí la parte mysql, ahora vamos a configurar el servidor para que envié y reciba correos por lo que lo primero sera instalar los paquetes necesarios para ello:

- Instalar webmail roundcube. El webmail roundcube esta escrito en PHP, por lo que deberemos instalar PHP5(si ya instalaste LAMP no es necesario instalar PHP, en cualquier caso puedes introducir el siguiente comando, te dirá que PHP ya esta instalado y en su versión mas reciente:
  • Instalar dependencias:
apt-get install gcc apache2 php5 php5-dev mcrypt libapache2-mod-php5 php5-imap php5-intl php5-common php5-mcrypt libpcre3 libpcre3-dev openssl postfix courier-imap php5-mysql


tar -xzvf roundcubemail-0.9.1.tar.gz

mv roundcubemail-0.9.1 /var/www/webmail
    - Antes de lanzar el instalador debemos establecer una zona horaria:

    nano /etc/php5/apache2/php.ini, donde modificaremos el parámetro:

    ;date.timezone =

    por

    date.timezone = Europe/Madrid
    - Cuando todos los módulos y parámetros este bien configurados, presionamos el botón continue:

    - En la siguiente pantalla podemos modificar varias cosillas, como el logo de la empresa, etc y demás parámetros de la BBDD:

    -Una vez hecho esto, en la siguiente pagina se generan dos archivos de configuración que deberemos descargar en la carpeta de configuración de roundcube(/var/www/webmail/config en mi caso).

    - También deben ser accesibles a lectura y escritura los directorios logs y temp:
chmod 777 -R ./temp/

chmod 777 -R ./logs/

- En este momento deberemos crear las tablas par roundcube:

mysql -u 'admin' -p 'mail' < /var/www/webmail/SQL/mysql.initial.sql

Ya podemos acceder a roundcube, ingresado en el navegador la URL:







lunes, 10 de junio de 2013

Comandos para administrar GNU/Linux por consola

Comandos para administrar GNU/Linux por consola

Voy a tratar de explicar el funcionamiento de algunos comandos que nos valdrán tanto para administrar nuestro sistema local como un servidor de recursos. La finalidad será la de administrar nuestro sistema sin soporte gráfico.

No voy hacer un tutorial ni nada por el estilo, ya existen muchos en internet, incluso podemos hacer uso de las paginas man, tan sólo me voy a limitar a algunos comandos que yo uso y que me parecen muy interesantes. La explicación del porque lo sigo haciendo de esta forma es bien sencilla, las herramientas gráficas, si bien útiles, pueden cambiar, a veces radicalmente, en cambio los comandos por consola no lo hacen, o no sustancialmente.
  • Manejar procesos mediante el comando ps:
ps -aux

Con este comando mostramos los procesos activos, inactivos y políticos, upsss, perdón por un pequeño lapsus, y zombis quería decir, incluso de otros usuarios.

Si queremos afinar un poco más, podemos filtrar por nombre del proceso:

ps -aux | grep i2p

Mostrará información acerca del proceso i2p

antonio@antonio-Aspire-5253G:~$ ps -aux | grep i2p
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
antonio 9590 28.3 2.3 1487896 182776 ? Sl 18:00 15:22 i2p

Si lo que queremos el matar el proceso, por la razón X, le mandaremos a su PID una señal para que termine el proceso:

kill -9 9590

Un script para ayudarnos a la administración por consola, podría ser:


#!/bin/bash
PID=$(pidof $1)
kill -9 $PID

Ahora vamos a establecer una IP fija, lo cual puede ser muy útil sobre todo si tienes un servidor …

sudo nano /etc/network/interfaces

e insertamos la lineas:

#tarjeta red nº1
auto eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
#gategay debe ser la ip del router
gateway 192.168.1.1

#tarjeta red nº2
auto eth1
iface eth1 inet static
address 192.168.1.102
netmask 255.255.255.0
#gategay debe ser la ip del router
gateway 192.168.1.1


Si también necesitamos cambiar los DNS:

sudo nano /etc/resolv.conf

Donde el contenido será:

nameserver 79.79.79.79

lo puedes cambiar otros DNS o por tus propios DNS:

nameserver 80.80.80.80
nameserver 81.81.81.81

Un script para automatizar esta tarea podría ser:

#!/bin/bash
ETH0=”ace eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1”

ETH1=”ace eth0 inet static
address 192.168.1.102
netmask 255.255.255.0
gateway 192.168.1.1”

DNS="80.80.80.80"
DNS2="81.81.81.81"
echo $ETH0 > /etc/network/interfaces
echo $ETH1 >> /etc/network/interfaces
echo nameserver $DNS > /etc/resolv.conf
echo nameserver $DNS2 >> /etc/resolv.conf

Recientemente me he encontrado con esta pagina donde nos cuenta el funcionamiento del comando lsoft, este comando sirve para mostrar que aplicaciones están usando internet.

Estos no son, ni mucho menos, todos los comandos pero quería compartir esta información con todos, ya que si son los comandos que más utilizo.

Por otra parte los script son un buen método para no tener que recordar todos los comandos que GNU/Linux nos ofrece pero no el único, también se me ocurre el método de crear alias para un determinado comando, para ello:

nano ~/.bashrc

donde añadimos las lineas:

alias listar='ls --color -l'

Para instalar las paginas man es español:

sudo apt-get install manpages-es manpages-es-extra

miércoles, 5 de junio de 2013

Usar teclado del PC/Laptop en Android

Usar teclado del PC/Laptop en Android

Creo que no hace falta decir que tanto el PC/Laptop como el smart phone Android deben estar conectados a la misma red, por si acaso lo recuerdo.

Lo primero sera descargar e instalar desde Google Store la aplicación  Remote Keyboard.

Una vez descargado lanzamos la aplicación y seleccionamos el método de entrada, para ello entramos en la opción select keyboard y una vez alli elegimos Remote Keyboad, aceptamos y automáticamente Remote Keyboard nos dará una IP y un puerto al que nos conectaremos via telnet.

Aqui tenemos varias opciones:
  • Telnet en consola linux, supongo que en otros S.O se hará igual:
    telnet> open 192.168.1.105 2323
        Trying 192.168.1.105...
         Connected to 192.168.1.105.
        Escape character is '^]'.
  • Con Frontend tipo Putty.

Personalmente esta aplicación la encuentro muy útil, sobre todo con aplicaciones tipo whatapp, ya que a los que no somos muy hábiles con el teclado táctil, nos permite escribir rápido.

lunes, 3 de junio de 2013

Camara seguridad en ubuntu+android

Cámara seguridad en ubuntu + android


- Crear cámara seguridad ubuntu:


  • Primero del todo comenzamos con una buena practica y actualizamos nuestro sistema:
         sudo apt-get update && sudo apt-get dist-upgrade

  • Una vez actualizado nuestro sistema operativo, comenzamos la instalación/configuración de la cámara de seguridad en ubuntu.
- Instalar:

          sudo apt-get install motion

Ya esta instalado el software que nos permitirá utilizar ubuntu como cámara de seguridad, ahora vamos a configurar motion:

- Configuración:

Ya que soy un poco nostálgico/dinosaurio seguimos en poco de consola.

  • Creamos el directorio que contendrá la configuración de motion:

             mkdir  ~/.motion

  • Dentro de la carpeta creada, se crea un archivo de configuración para motion que llamaremos motion.conf:

              touch  ~/.motion/motion.conf

  • Creamos la siguiente estructura de carpetas seguridad/videos/motion/log:

             mkdir -p ~/seguridad/videos/motion/log

  •  Ahora añadimos el usuario que queremos que utilizar con motion:

             sudo usermod -a -G motion antonio

  •   Creamos un alias para la instrucción que lanzará y creará los logs de motion:

              echo "alias onguard='motion > ~/seguridad/videos/motion/log/log'" >> ~/.bashrc

  • Bien ahora sólo nos faltaría copiar el archivo de configuración de motion global a la carpeta de               configuración del usuario:
              sudo cp /etc/motion.conf  ~/.motion/

              sudo chown antonio  ~/.motion/motion.conf

Ahora ya podemos editar el archivo de configuración y cambiar diferentes parámetros, en mi caso he cambiado las etiquetas target_dir, webcam_motion y output_normal, donde se pondrá la      ruta donde se guardarán los vídeos, en la segunda le he dado el valor off para que sólo empiece a grabar                                                        
cuando la cámara detecte movimiento y la tercera pestaña la he puesto a off para que no tome fotos cuando la cámara detecte movimiento.


Os preguntareis para que sirve todo este rollo con usuarios y carpetas, pues bien, para ejecutar motion con un usuario sin privilegios.

Ya podemos lanzar motion, ingresando el la consola el comando onguard, donde para detener la grabación simplemente pulsaremos simultáneamente las teclas CTRL+C y quedara grabado el video en la carpeta que hayamos indicado en el parámetro target_dir.

foto_motion


- Acceder desde un smart phone Android:


  • Primero de todo editar vuestro archivo de configuración:
           gedit .motion/motion.conf donde ponemos a off la etiqueta webcam_localhost


            Ajustes->Más ajustes->VPN

  •  Y por último configuramos tinyCam para ver la cámara.
           Manage cameras->botón +:



- Script de instalación:

Por último me he tomado la libertad de hacer un script que automatice la tarea de instalar/configurar motion en nuestro sistema.

Se trata de un script muy sencillo, pero creo que nos evitara hacer constantemente la misma tarea, lo dejo en la sección de descargas con el nombre de install_motion.sh, ya sabéis como siempre, sois libres de modificar/mejorar este script para que se adapte a vuestras necesidades. Inicialmente en el script solamente se ha de modificar las rutas donde se descargará el archivo de configuración y la ruta  donde se creara el archivo de control de ejecución.