{"id":1291,"date":"2018-10-26T14:54:34","date_gmt":"2018-10-26T13:54:34","guid":{"rendered":"http:\/\/diablo.craem.net\/?p=1291"},"modified":"2018-10-26T14:54:34","modified_gmt":"2018-10-26T13:54:34","slug":"guacamole-debian-streetch-open-ldap-nginx","status":"publish","type":"post","link":"https:\/\/diablo.craem.net\/?p=1291","title":{"rendered":"guacamole debian streetch + open ldap + nginx"},"content":{"rendered":"<p>Otra entrada que es un apunte.<br \/>\nEn esta ocasi\u00f3n, instalaremos guacamole, como gateway de conexi\u00f3n a nuestros server y exponerlo a internet.<br \/>\nPartimos de una debian 9 pelada y instalamos las dependencias:<br \/>\n<code><br \/>\n# apt install tomcat8 libcairo2-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev libjpeg62-turbo-dev libpng-dev libpng16-16 git<\/code><br \/>\n<code><br \/>\n<\/code><br \/>\n<code># git clone git:\/\/github.com\/apache\/incubator-guacamole-server.git<br \/>\nautoreconf -fi<br \/>\n.\/configure --with-init-dir=\/etc\/init.d<br \/>\n# make<br \/>\n# make install<br \/>\n# ldconfig<br \/>\n# systemctl enable guacd<br \/>\n# \/etc\/init.d\/guacd start<br \/>\n<\/code><br \/>\ncreamos el fichero guacamole.properties<br \/>\n<code><br \/>\n# nano \/etc\/guacamole\/guacamole.properties<br \/>\n<\/code><br \/>\n<code><br \/>\n#    Guacamole - Clientless Remote Desktop<br \/>\n#    Copyright (C) 2010  Michael Jumper<br \/>\n#<br \/>\n#    This program is free software: you can redistribute it and\/or modify<br \/>\n#    it under the terms of the GNU Affero General Public License as published by<br \/>\n#    the Free Software Foundation, either version 3 of the License, or<br \/>\n#    (at your option) any later version.<br \/>\n#<br \/>\n#    This program is distributed in the hope that it will be useful,<br \/>\n#    but WITHOUT ANY WARRANTY; without even the implied warranty of<br \/>\n#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br \/>\n#    GNU Affero General Public License for more details.<br \/>\n#<br \/>\n#    You should have received a copy of the GNU Affero General Public License<br \/>\n#    along with this program.  If not, see .<\/code><br \/>\n<code><code><\/code><\/code><br \/>\n# Hostname and port of guacamole proxy<br \/>\nguacd-hostname: localhost<br \/>\nguacd-port: 4822<br \/>\n<code><code><\/code><\/code><br \/>\n# Auth provider class (authenticates user\/pass combination, needed if using the provided login screen)<br \/>\n<code><code><\/code><\/code><br \/>\n# LDAP properties<br \/>\nldap-hostname: ldap.craem.net<br \/>\nldap-port: 389<br \/>\nldap-user-base-dn: DC=craem,DC=net<br \/>\nldap-search-bind-dn: CN=admin,DC=craem,DC=net<br \/>\nldap-search-bind-password: password<br \/>\nldap-config-base-dn: DC=craem,DC=net<br \/>\nldap-username-attribute: uid<br \/>\n<code><br \/>\n<\/code><br \/>\n<code><\/code><br \/>\nCreamos el enlace simb\u00f3lico para la app<br \/>\n<code><br \/>\n# ln -s \/etc\/guacamole\/ \/var\/lib\/tomcat8\/.guacamole<br \/>\n<\/code><br \/>\nConfiguramos la parte cliente (la 0.9.14 es la \u00faltima a fecha 10\/2018):<br \/>\n<code><br \/>\n# wget httpss:\/\/sourceforge.net\/projects\/guacamole\/files\/current\/binary\/guacamole-0.9.14.war<br \/>\n# mv guacamole-0.9.14.war \/var\/lib\/tomcat8\/webapps\/guacamole.war<br \/>\n# service tomcat8 restart<br \/>\n<\/code><br \/>\nAhora instalamos el cliente ldap<br \/>\n<code><br \/>\n# cd \/etc\/guacamole<br \/>\n# wget -c https:\/\/apache.org\/dyn\/closer.cgi?action=download&amp;filename=guacamole\/0.9.14\/binary\/guacamole-auth-ldap-0.9.14.tar.gz<br \/>\n# service tomcat8 restart<br \/>\n<\/code><br \/>\nAhora nos queda actualizar el schema de open ldap:<br \/>\n<code><br \/>\n# tar -zxvf guacamole-auth-ldap-0.9.14.tar.gz<br \/>\ncp guacamole-auth-ldap-0.9.14.jar \/etc\/guacamole\/<br \/>\n<\/code><br \/>\nDentro de la carpeta <em>schema<\/em>, tenemos la parte de openldap que hemos de incorporar en nuestro server&#8230; lo copiamos e importamos<br \/>\n<code><br \/>\nroot@ldap:\/usr\/src# ldapadd -Q -Y EXTERNAL -H ldapi:\/\/\/ -f guacConfigGroup.ldif<br \/>\nadding new entry \"cn=guacConfigGroup,cn=schema,cn=config\"<\/code><br \/>\n<code><code><\/code><\/code><br \/>\nroot@ldap:\/usr\/src#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:\/\/\/ -b cn=schema,cn=config dn<br \/>\ndn: cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={0}core,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={1}cosine,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={2}nis,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={3}inetorgperson,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={4}zarafa,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={5}radius,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\ndn: cn={6}guacConfigGroup,cn=schema,cn=config<br \/>\n<code><code><\/code><\/code><br \/>\nroot@ldap:\/usr\/src#<br \/>\n<code><br \/>\n<\/code><br \/>\n<code><\/code><br \/>\nAhora nos queda crear los objetos de nuestros servers&#8230;&#8230; creamos un fichero, por ejemplo, entrada.ldif<br \/>\n<code><br \/>\ndn: cn=zeus,ou=maquines,dc=craem,dc=net<br \/>\nobjectClass: guacConfigGroup<br \/>\nobjectClass: groupOfNames<br \/>\ncn: zeus<br \/>\nguacConfigProtocol: ssh<br \/>\nguacConfigParameter: hostname=192.168.1.2<br \/>\nguacConfigParameter: port=22<br \/>\nguacConfigParameter: security=ssh<br \/>\nmember: cn=Angel Elena,cn=craem_users,dc=craem,dc=net<br \/>\n<\/code><br \/>\nGuardamos cambios e importamos el fichero:<br \/>\n<code><br \/>\n# ldapadd -x -D cn=admin,dc=goufone,dc=local -W -f entrada.ldif<br \/>\n<\/code><br \/>\nEl siguiente paso, es a\u00f1adir el ngix y certbot para hacer de reverse proxy e incorporar el certificado:<br \/>\n<code><br \/>\n# apt-get install nginx<\/code><br \/>\n<code><code><\/code><\/code><br \/>\ncreamos el fichero<br \/>\n# nano \/etc\/nginx\/sites-available\/guacamole<br \/>\n<code><code><\/code><\/code><br \/>\ny a\u00f1adimos:<br \/>\n<code><code><\/code><\/code><br \/>\nserver {<br \/>\nlisten 80;<br \/>\nlisten [::]:80;<br \/>\nserver_name guacamole;<br \/>\n<code><code><\/code><\/code><br \/>\nlocation \/ {<br \/>\nproxy_pass https:\/\/127.0.0.1:8080\/guacamole\/;<br \/>\nproxy_buffering off;<br \/>\nproxy_https_version 1.1;<br \/>\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br \/>\nproxy_set_header Upgrade $https_upgrade;<br \/>\nproxy_set_header Connection $https_connection;<br \/>\naccess_log off;<br \/>\n}<br \/>\n<code><br \/>\n<\/code><br \/>\n<code>}<br \/>\n<\/code><br \/>\nY creamos el enlace simb\u00f3lico en \/etc\/nginx\/sites-enabled<br \/>\nReiniciamos el nginx y ya tenemos el servicio preparado \ud83d\ude09<br \/>\nvamos al navegador &#8230; https:\/\/guacamole<a href=\"https:\/\/diablo.craem.net\/wp-content\/uploads\/2018\/10\/Captura-de-pantalla-de-2018-10-26-15-54-59.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-1300\" src=\"https:\/\/diablo.craem.net\/wp-content\/uploads\/2018\/10\/Captura-de-pantalla-de-2018-10-26-15-54-59-300x147.png\" alt=\"\" width=\"300\" height=\"147\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Otra entrada que es un apunte. En esta ocasi\u00f3n, instalaremos guacamole, como gateway de conexi\u00f3n a nuestros server y exponerlo a internet. Partimos de una debian 9 pelada y instalamos las dependencias: # apt install tomcat8 libcairo2-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev libjpeg62-turbo-dev libpng-dev libpng16-16 git # [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[58,85,102,126],"class_list":["post-1291","post","type-post","status-publish","format-standard","hentry","category-linux","tag-debian","tag-guacamole","tag-linux-2","tag-nginx"],"_links":{"self":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts\/1291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1291"}],"version-history":[{"count":0,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=\/wp\/v2\/posts\/1291\/revisions"}],"wp:attachment":[{"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diablo.craem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}