Servidor git en nas

Ivan Martil

Hace un tiempo que tengo un nas synology, concretamente el ds215j. Poco a poco le voy encontrando nuevas utilidades más alla de las copias de respaldo y la nube personal. Ahora pretendo utilizarlo como servidor de git.

El proceso no ha sido todo lo rápido que me gustaría. Por ello me dejo en este artículo una especie de guía para futuros contratiempos y si de ello alguien se beneficia, bienvenido sea.

No entraré en instalación, configuración de cuenta admin y demás. Esta todo muy bien explicado en la web de synology . Los problemas vienen cuando te mandan directamente al programa ez-internet para configurar el router. En mi caso el router no es compatible y el proceso se tiene que hacer manual.

Establecer ip estática

La mayoria de nosotros tenemos la ip dinámica en casa. El primer paso con el nas es establecer una ip estática dentro de nuestro rango. El objetivo es que tenga asignada siempre la misma IP y nos sea más facil acceder a él.
Entramos en el nas y vamos a “panel de control/red” . Selecionamos la opcion “interfaz de red”. Escogemos la interfaz de red que utilizamos (LAN en mi caso) y presionamos editar. En IPv4 seleccionamos “Utilizar configuración manual” y rellenemos los datos:

Dirección IP
La ip estatica que queremos asignar. En mi caso 192.168.1.100
Máscara de subred
Casi siempre es 255.255.255.0. Si teneis dudas, en Windows ejecutais en el terminal

    ipconfig /all

vereis los datos de vuestra red. En OS X la información está en “preferencias de sistema/red y avanzado”.

Pasarela
Es el valor que corresponde a la puerta de enlace en ipconfig o Router en mac. Suele ser 192.168.1.1
Dns Server
Las dns podemos utilizar las propias de nuestra red o utilizar las de google por ejemplo (8.8.8.8 y/o 8.8.4.4)

Seleccionamos la opción “Configurar como pasarela predeterminada” y guardamos los cambios.

Conexión ssh

Si vamos a trabajar con git lo ideal es poder conectar por ssh con nuestro servidor.

cambiar puerto nas
imagen 1

En “Panel de control/Terminal y SNMP” ( imagen 1 ) podemos habilitar ssh. Por seguridad es recomendable cambiar el puerto por defecto por cualquier otro de nuestro agrado. En el ejemplo utilizamos el 2202.

Una vez cambiado el puerto debemos comunicarle al firewall nuestro cambio. En “Panel de control/Seguridad/Cortafuegos” ( imagen 2 ) selecionamos editar regla para añadir nuestro nuevo puerto.

Reglas en firewall
imagen 2

Selecionamos Crear. En la opción de puertos escogemos Personalizado y clicamos ( imagen 3 ) en puertos(separar con comas): introducimos el puerto selecionado para ssh (2202) y el resto lo dejamos como está.

Security Rules
imagen 3

Con esto tenemos el nas listo por ahora. Veamos como configurar el router manualmente.

Abrir puertos

El siguiente paso es abrir los puertos del router para que permita la comunicación desde fuera de la red con el nas. Synology nos proporciona un listado de los puertos necesarios en sus programas.

Ahora se trata de abrir aquellos puertos que necesitemos en nuestro router. Mi router es un Comtrend VR-3025un ( el típico router blanco de jazztel). Cada router tiene un menú de configuración distinto. Pero las bases son las mismas. Entremos en el router ( 192.168.1.1 ).

Abrir puertos router
imagen 4

Dentro del apartado “Advanced Setup/NAT/Virutal Server” ( imagen 4 ) nos aparece un listado de los puertos abiertos. Presionámos en add y rellenamos los campos con nuestros datos.

User Interface
En este apartado hay que selecionar el protocolo dependiendo de nuestra conexion a internet.

internet_atm/ppp0.1
Si nuestra conexión es vdsl.
internet_ptm/ppp1.1
La opción si la conexión es ADSL2+.

En el apartado “Device Info/WAN” del router podeis ver que interfaz teneis activa de las dos.

Custom Service
Ponemos el nombre que nos apatezca. Si es descriptivo mejor, de ese modo solo con el nombre recordaremos que función realiza.
Server IP Address
Ponemos la ip estática que hemos asignado al nas. En mi caso era 192.168.1.100.

Rellenamos los campos con el puerto que queremos abrir ( imagen 4 ). Como protocolo en el caso de ssh seleccionamos TCP.

El siguiente paso es añadir el puerto en el cortafuegos del router “Advanced Setup/Security/IP Filtering/Incoming” ( imagen 5 )

añadir regla firewall router
imagen 5

Asignamos un nombre de regla e introducimos el puerto en Source Port. Como interfaz Wan debemos selecionar solo la que tenemos activa.

Instalando git server

Todo listo para instalar git en el nas. Abrimos el Centro de paquetes y buscamos git server para su instalación.

git server en el centro de paquetes
imagen 6

Una vez instalado lo ejecutamos y aparece la lista de usuarios disponibles en el nas. Le damos permisos a aquellos usuarios que utilizarán git o bien creamos nuevos usuarios para git.

Acceder desde el terminal

Para crear el directorio donde alojar los repositorios necesitamos acceder como root al nas. El usuario root no existe como tal en la lista de usuarios, para tener los permisos totales debemos logearnos con nuestra cuanta admin y luego elevar los permisos.

  
  ssh admin@192.168.1.100 -p2202
    
  

code 1

Con el comando ( code 1 ) accedemos al nas con permisos de administrador. En el ejemplo admin@192.168.1.100 hace referéncia al usuario y la ip estática del nas. El -p2202 establece el puerto por el que debe realizarse la conexión ssh. Si quisieramos acceder al nas desde fuera de nuestra red local deberíamos cambiar la ip estática por nuestra ip pública. En windos necesitamos un programa para conectar por ssh. Putty es uno de ellos y está bien documentado.

Una vez estamos logueados como admin para elevar los permisos escribimos lo siguiente en el terminal:

    
      sudo -i
    

Al pulsar aceptar nos volverá a pedir la contraseña de administrador. Una vez logueados nuestro usuario ya será root. Con este usuario ya podremos crear nuestra carpeta git. Nos ubicamos en la raiz del disco ( En mi caso volume1 pero depende del número de discos del nas o de como esten configurados).

  
  cd /volume1
  

Creamos la carpeta para gitrepos y nos desplazamos hacia ella.

  
  mkdir gitrepos
  cd gitrepos
  

Gitrepos será la carpeta que contenga todos nuestros proyectos. Ahora creamos un proyecto dentro e iniciamos git.

  
    mkdir git_prueba
    cd git_prueba
    git init --bare --shared 
  

Ya tenemos el primer proyecto git en marcha. Pero solo el usuario root tiene permisos en este repositorio. Para poder trabajar con git tenemos que dar permisos en el directorio al usuario o grupo de usuarios que se conectarán. Si hemos creado un grupo de usarios git bastaría con darle permisos al grupo y luego añadimos a él los usuarios que deseemos. En el ejmplo estamos trabajando con el usuario admin. Asi que tenemos que dar permisos al grupo de administradores en el directorio.

  

    cd ..
    chown admin:administrators -R git_prueba/
 

Una vez creado el repositorio ya podemos salir del usuario root. Para clonarlo en local ejecutamos el siguiente comando:

  
    git clone ssh://admin@192.168.1.100:2202/volume1/gitrepos/git_prueba
    //sintaxy
    git clone ssh://[usuario_con_permisos]@[ip:Puerto][ruta]

  

Ahora ya tenemos el repositorio clonado en local y todo listo para trabajar con nuestro propio servidor git.

Comentarios 0

Nadie ha comentado nada aún. Te animas ha ser el primero!! ;)

Opina libremente

Tu dirección de correo electrónico no será publicada.Todos los campos son obligatorios.