Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:documentation:08_technical_reference:09_tentacle [2021/05/05 09:14] admscopia |
en:documentation:08_technical_reference:09_tentacle [2022/04/28 14:35] (current) |
||
---|---|---|---|
Line 6: | Line 6: | ||
===== About Tentacle ===== | ===== About Tentacle ===== | ||
- | Tentacle is a client/ | + | |
+ | {{ : | ||
+ | |||
+ | **Tentacle** is a [[https:// | ||
* Safe by design. | * Safe by design. | ||
Line 12: | Line 15: | ||
* Versatile and cross-platform. | * Versatile and cross-platform. | ||
- | Tentacle was created to replace more complex tools like SCP and FTP for simple file transfer/ | + | **Tentacle** |
- | The client and server are designed to be run from the command line or called from a shellscript. Since [[https:// | + | The client and server are designed to be run from the command line or called from a shellscript. Since [[https:// |
- | Tentacle is implemented in Perl and ANSI C (Windows | + | Tentacle is implemented in [[wp> |
You can download it and find more information at the [[http:// | You can download it and find more information at the [[http:// | ||
- | ===== Documentation | + | Quick access: |
+ | |||
+ | * [[: | ||
+ | * [[: | ||
+ | * [[: | ||
+ | * [[: | ||
+ | * [[: | ||
+ | |||
+ | |||
+ | ===== Tentacle User Guide ===== | ||
+ | |||
+ | ==== Installing the PERL version ==== | ||
+ | |||
+ | The process consists on downloading the source code through [[https:// | ||
+ | |||
+ | To install **both** the client and the server version run: | ||
+ | < | ||
+ | |||
+ | $ svn co http:// | ||
+ | $ cd tentacle | ||
+ | $ perl Makefile.PL | ||
+ | $ make | ||
+ | # make install | ||
+ | |||
+ | </ | ||
+ | |||
+ | To install just the client, run: | ||
+ | |||
+ | < | ||
+ | $ svn co http:// | ||
+ | $ cd client | ||
+ | $ perl Makefile.PL | ||
+ | $ make | ||
+ | # make install | ||
+ | |||
+ | </ | ||
+ | |||
+ | To install just the server, run: | ||
+ | |||
+ | < | ||
+ | $ svn co http:// | ||
+ | $ cd server | ||
+ | $ perl Makefile.PL | ||
+ | $ make | ||
+ | # make install | ||
+ | |||
+ | </ | ||
+ | |||
+ | If you want to install to a custom location, replace: | ||
+ | |||
+ | < | ||
+ | $ perl Makefile.PL | ||
+ | |||
+ | </ | ||
+ | |||
+ | by: | ||
+ | |||
+ | < | ||
+ | $ perl Makefile.PL PREFIX=/ | ||
+ | |||
+ | </ | ||
+ | === Manual Installation === | ||
+ | |||
+ | If **make** is not available in your system, you can manually copy the files '' | ||
+ | |||
+ | In this case, if the Perl binary is not located at ''/ | ||
+ | < | ||
+ | # | ||
+ | |||
+ | </ | ||
+ | ==== Installing the C version ==== | ||
+ | |||
+ | === Installing from SVN === | ||
+ | |||
+ | Bearing in mind the prior section, to install the Tentacle client, run: | ||
+ | |||
+ | < | ||
+ | $ svn co http:// | ||
+ | $ cd tentacle | ||
+ | $ ./ | ||
+ | $ make | ||
+ | # make install | ||
+ | |||
+ | </ | ||
+ | |||
+ | Make sure to check the configure output for errors, missing headers etc. | ||
+ | |||
+ | To disable OpenSSL support, enabled by default, replace: | ||
+ | |||
+ | < | ||
+ | $ ./ | ||
+ | |||
+ | </ | ||
+ | |||
+ | by: | ||
+ | |||
+ | < | ||
+ | $ ./configure –disable-ssl | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle use examples ==== | ||
+ | |||
+ | To see the available options, execute '' | ||
+ | < | ||
+ | $ tentacle_client -h | ||
+ | Usage: tentacle_client [options] [file] [file] ... | ||
+ | |||
+ | Tentacle client v0.4.0. | ||
+ | |||
+ | Options: | ||
+ | -a address | ||
+ | -b localaddress Local address to bind. | ||
+ | | ||
+ | -e cert | ||
+ | -f ca | ||
+ | | ||
+ | | ||
+ | -k key OpenSSL private key file. | ||
+ | -p port | ||
+ | | ||
+ | -r number | ||
+ | -t time | ||
+ | | ||
+ | | ||
+ | -x pwd Server password. | ||
+ | -y proxy Proxy server string (user: | ||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -h | ||
+ | Usage: / | ||
+ | |||
+ | Tentacle server v0.6.2. See https:// | ||
+ | |||
+ | Options: | ||
+ | -a ip_addresses IP addresses to listen on (default 0, | ||
+ | (Multiple addresses separated by comma can be defined.) | ||
+ | -c number | ||
+ | -d Run as daemon. | ||
+ | -e cert | ||
+ | -f ca_cert | ||
+ | -F config_file | ||
+ | -h Show help. | ||
+ | -I Enable insecure operations (file listing and moving). | ||
+ | -i Filters. | ||
+ | -k key OpenSSL private key file. | ||
+ | -l log_file | ||
+ | -m size | ||
+ | -o Enable file overwrite. | ||
+ | -p port Port to listen on (default 41121). | ||
+ | -q Quiet. Do now print error messages. | ||
+ | -r number | ||
+ | -s Storage directory | ||
+ | -S (install|uninstall|run) Manage the win32 service. | ||
+ | -t time | ||
+ | -v Be verbose (display errors). | ||
+ | -V Be verbose on hard way (display errors and other info). | ||
+ | -w Prompt for OpenSSL private key password. | ||
+ | -x pwd Server password. | ||
+ | -b ip_address | ||
+ | -g port Proxy requests to the given port. | ||
+ | -T Enable tcpwrappers support. | ||
+ | (To use this option, ' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Predefined values for all options will also be shown in the help section. | ||
+ | |||
+ | For all of the following examples. the server is located at the address 192.168.1.1 and the client private key is not protected by pasword. | ||
+ | |||
+ | * Simple transfer of a file limited to a maximum of 1 megabyte and placed in ''/ | ||
+ | < | ||
+ | |||
+ | $ tentacle_server -m 1048576 -s /tmp -v | ||
+ | $ tentacle_client -a 192.168.1.1 -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Simple transfer on port 65000 with overwrite mode enabled: | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -o -p 65000 -s /tmp -v | ||
+ | $ tentacle_client -a 192.168.1.1 -p 65000 -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Simple transfer with authentication based on password: | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -x password -s /tmp -v | ||
+ | $ tentacle_client -a 192.168.1.1 -x password -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Safe transfer, with no client certificate: | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -e cert.pem -k key.pem -w -s /tmp -v | ||
+ | $ tentacle_client -a 192.168.1.1 -c -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Safe transfer with client certificate: | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -e cert.pem -k key.pem -f cacert.pem -w -s /tmp -v | ||
+ | $ tentacle_client -a 192.168.1.1 -e cert.pem -k key.pem -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Safe transfer with client certificate and additional authentication with password (notice the use of the connector '' | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -x password -e cert.pem -k key.pem -f cacert.pem -w -s /tmp -v | ||
+ | $ tentacle_client \ | ||
+ | -a 192.168.1.1 \ | ||
+ | -x password \ | ||
+ | -e cert.pem \ | ||
+ | -k key.pem \ | ||
+ | -v / | ||
+ | |||
+ | </ | ||
+ | |||
+ | The Tentacle server allows its configuration through a plain text file. All command line options are available through said file. If the same configuration option is specified both in the file and the command line, the value indicated in the latter will have preference. The full path to the configuration file is indicated with the option '' | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -F / | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle Proxy ==== | ||
+ | |||
+ | The Tentacle server can act as a proxy, communicating many Tentacle clients to an inaccessible Tentacle server. | ||
+ | |||
+ | The following diagram shows how the Tentacle proxy server works: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The proxy does not have any information, | ||
+ | |||
+ | < | ||
+ | $ tentacle_server -b 192.168.200.200 -g 65000 | ||
+ | |||
+ | </ | ||
+ | |||
+ | These parameters are** IP address** ('' | ||
+ | < | ||
+ | $ tentacle_server -a 192.168.100.100 -p 45000 -b 192.168.200.200 -g 65000 | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round info 60%>The tentacle in proxy mode also supports authentication and encryption parameters.</ | ||
+ | |||
+ | |||
+ | ===== Installing PERL for Windows ===== | ||
+ | |||
+ | This brief guide is conceived to help configure and execute Tentacle client and server on MS Windows®. | ||
+ | |||
+ | ==== Installing Perl Version ==== | ||
+ | |||
+ | === Installing Perl Environment === | ||
+ | |||
+ | Through ActiveState® download ActivePerl 5.8 through the following link [[https:// | ||
+ | |||
+ | === Installing the module IO-Socket-SSL === | ||
+ | |||
+ | Download and install OpenSSL from: | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Download the following perl modules: | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | And run from the command prompt in the directory where the '' | ||
+ | < | ||
+ | |||
+ | ppm install Net_SSLeay.pm.ppd ppm install IO-Socket-SSL.ppd | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Running the Tentacle Client and Server === | ||
+ | |||
+ | The execution is similar to that of systems Unix/Linux, just enter the Perl command at the beginning, followed by the whole syntax, for instance: | ||
+ | |||
+ | < | ||
+ | |||
+ | </ | ||
+ | ===== Tentacle Protocol Definition ===== | ||
+ | |||
+ | The Tentacle protocol itself is very simple and straightforward. Some important characteristics are: | ||
+ | |||
+ | * Communication is always initiated from the client side. | ||
+ | * Commands are always terminated by a newline character. | ||
+ | * The following characters can not be part of a file name: | ||
+ | |||
+ | < | ||
+ | '? | ||
+ | |||
+ | </ | ||
+ | |||
+ | ASCII sequence diagrams will be used to illustrate use cases. Commands are enclosed in single quotes. | ||
+ | |||
+ | |||
+ | ==== Sending Files ==== | ||
+ | |||
+ | A successful file transfer is shown first. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | To allow multiple file transfers within the same session, a new **SEND** command may be sent **after a successful file transfer** and before a **QUIT**. | ||
+ | |||
+ | If the server refuses to accept a file, a generic error message is sent back to the client. For security reasons, no details are provided. This happens if the file: | ||
+ | |||
+ | * Has an invalid file name, or a path is specified. | ||
+ | * Is empty or exceeds the server' | ||
+ | * Already exists on the server and file overwrite is not enabled. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | [[: | ||
+ | |||
+ | |||
+ | ==== Receiving Files ==== | ||
+ | |||
+ | Single files can be requested from the server. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The client has the chance to reject the file after the server reports its size. | ||
+ | |||
+ | As with **SEND**, a new **RECV** command may be sent **after a successful file retrieval** (even if the file was rejected by the client) and before a **QUIT** command. A generic error message is sent if the server refuses to send the file. The latter happens if the file: | ||
+ | |||
+ | * Has an invalid file name, or a path is specified. | ||
+ | * Does not exist on the server. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== Password Authentication ==== | ||
+ | |||
+ | If the server requires a password, the client must authenticate before sending any other command. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | A double MD5 of the password is sent to hide the actual password, but bear in mind that this does **NOT** add any extra security under an unencrypted connection. If you need secure file transfers always enable SSL-encrypted connections. | ||
+ | |||
+ | |||
+ | ==== Error Handling ==== | ||
+ | |||
+ | Under any error condition the server will shut down the connection without giving any explanation. Be it because of a bad command, a bad password, more data than that reported being sent, etc. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP center round info 60%>\\ | ||
+ | By default, the Tentacle log is configured at ''/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== OpenSSL Certificates Quick Guide ===== | ||
+ | |||
+ | This is just a quick guide that will get you started with OpenSSL certificates. See [[http:// | ||
+ | |||
+ | ==== Creating a Certificate ==== | ||
+ | |||
+ | Preparing the environment: | ||
+ | |||
+ | < | ||
+ | $ mkdir demoCA | ||
+ | $ mkdir demoCA/ | ||
+ | $ mkdir demoCA/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Remember to set in place, for safety reasons, writing and reading permissions of the different users in your system in the recently created folders. The following step is make a self-signed CA certificate and move it to the created directories: | ||
+ | |||
+ | < | ||
+ | $ openssl req -new -x509 -keyout cakey.pem -out cacert.pem | ||
+ | $ mv cakey.pem demoCA/ | ||
+ | $ mv cacert.pem demoCA/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Fill in the requested fields for the certificate and remember them because you will need them again later on, exactly the same ones. Now create a certificate request: | ||
+ | |||
+ | < | ||
+ | $ openssl req -new -keyout tentaclekey.pem -out tentaclereq.pem -days 360 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Sign the certificate request, setting in addition a consecutive serial as a control and aduting system: | ||
+ | |||
+ | < | ||
+ | $ cat tentaclereq.pem tentaclekey.pem> | ||
+ | $ touch demoCA/ | ||
+ | $ echo " | ||
+ | $ openssl ca -out tentaclecert.pem -in tentaclenew.pem | ||
+ | |||
+ | </ | ||
+ | |||
+ | Bear on mind that if the [[https:// | ||
+ | |||
+ | |||
+ | ==== Creating a Self-Signed Certificate ==== | ||
+ | |||
+ | < | ||
+ | $ openssl req -new -x509 -keyout tentaclekey.pem -out tentaclecert.pem -days 360 | ||
+ | |||
+ | </ | ||
+ | ==== Generating an RSA Private Key ==== | ||
+ | |||
+ | This is very useful to avoid having to enter a password on the client side using Tentacle. | ||
+ | |||
+ | Generate the key: | ||
+ | |||
+ | < | ||
+ | $ openssl genrsa -out tentaclekey.pem | ||
+ | |||
+ | </ | ||
+ | |||
+ | And replace '' | ||
+ | ==== Exporting certificate to another format ==== | ||
+ | |||
+ | Certificates can be required in DER format instead of PEM for some operative systems (such as Ubuntu® or Windows®). If that is the case, you may obatin the certificate of said format through the generated PEM: | ||
+ | |||
+ | < | ||
+ | openssl x509 -outform der -in tentaclecert.pem -out tentaclecert.der | ||
+ | |||
+ | </ | ||
+ | ===== Tentacle configuration guide with security options ===== | ||
+ | |||
+ | This guide will explain step by step how to configure both **Agent Software** and **Tentacle server** to ensure safe communication. | ||
+ | |||
+ | First, it is recommended to carry out manual tests from the devices to make sure configuration, | ||
+ | |||
+ | Then configure permanently the according configuration files: | ||
+ | |||
+ | **Tentacle servers** | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | **Unix/ | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | **MS Windows® software agents** | ||
+ | |||
+ | '' | ||
+ | |||
+ | **Satellite servers** | ||
+ | |||
+ | '' | ||
+ | |||
+ | **Tentacle Proxy servers** | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | Remember to restart the according services after any modification. In the case of Unix/Linux, you may also use the option '' | ||
+ | |||
+ | |||
+ | ==== Communication encryption ==== | ||
+ | |||
+ | Both the Tentacle server and the Software Agents can use a secure communication with certificates and password, either direct communication between both, or through a Tentacle Proxy server. | ||
+ | |||
+ | <WRAP center round info 60%>It is **ALWAYS** necessary to indicate in the parameters the absolute paths where the certificates are located, e.g. ''/ | ||
+ | |||
+ | </ | ||
+ | <WRAP center round important 60%>To use Tentacle' | ||
+ | |||
+ | </ | ||
+ | |||
+ | In the previous sections the various combinations are explained in detail; in this section the password options, Tentacle Proxy server and the use of '' | ||
+ | |||
+ | **Simple transfer with password-based authentication: | ||
+ | |||
+ | Extra parameter in the server for password: | ||
+ | < | ||
+ | |||
+ | -x password | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra parameter in the client for password ( '' | ||
+ | < | ||
+ | -x password | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Secure transfer, without client certificate: | ||
+ | |||
+ | Extra parameters on the server: | ||
+ | |||
+ | < | ||
+ | -e tentacle_cert -k tentacle_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Secure transfer with customer certificate** | ||
+ | |||
+ | Extra parameters on the server: | ||
+ | |||
+ | < | ||
+ | -e tentacle_cert -k tentacle_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra parameters in the client ( '' | ||
+ | < | ||
+ | -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Secure transfer with client certificate and additional password authentication: | ||
+ | |||
+ | Extra parameters on the server: | ||
+ | |||
+ | < | ||
+ | -x password -e tentacle_cert -k tentacle_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra parameters in the client ( '' | ||
+ | < | ||
+ | -x password -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Certificate configuration in Tentacle server accepting any certificate in client ==== | ||
+ | |||
+ | For this configuration, | ||
+ | |||
+ | When laucnhing the **server** manually, include the parameters '' | ||
+ | < | ||
+ | $ su - pandora -s /bin/bash | ||
+ | # tentacle_server -v -e tentacle_cert -k tentacle_key -s /tmp | ||
+ | |||
+ | </ | ||
+ | |||
+ | Launch in the **client** manually, include the '' | ||
+ | < | ||
+ | $ echo test> file.txt | ||
+ | $ tentacle_client -v -c -a 192.168.70.125 file.txt | ||
+ | |||
+ | </ | ||
+ | |||
+ | If this manual execution works properly, you may continue with the permanent configuration in the appropriate file: | ||
+ | |||
+ | * For** Tentacle servers**: | ||
+ | |||
+ | < | ||
+ | ssl_cert tentacle_cert | ||
+ | ssl_key tentacle_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For **Software Agents**: | ||
+ | |||
+ | < | ||
+ | server_opts -c | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For** Satellite servers**: | ||
+ | |||
+ | < | ||
+ | server_opts -c | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle server and client certificate configuration verifying the certificate with a specific CA in client ==== | ||
+ | |||
+ | For this configuration, | ||
+ | |||
+ | When launching the **server** manually, include the '' | ||
+ | < | ||
+ | |||
+ | # su - pandora -s /bin/bash | ||
+ | # tentacle_server -v -e tentacle_cert -k tentacle_key -s /tmp | ||
+ | |||
+ | </ | ||
+ | |||
+ | When launching the **client** manually, include the '' | ||
+ | < | ||
+ | # echo test> file.txt | ||
+ | # tentacle_client -v -e tentacle_client_cert -f ca_cert -a 192.168.70.125 file.txt | ||
+ | |||
+ | </ | ||
+ | |||
+ | If this manual execution works properly, permanent configuration will be possible in the appropriate file. | ||
+ | |||
+ | * For **Tentacle servers**: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Software Agents**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Satellite servers**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle server and client certificate configuration verifying the certificate with a specific CA in server ==== | ||
+ | |||
+ | For this configuration, | ||
+ | |||
+ | When launching the **server** manually, include the '' | ||
+ | < | ||
+ | # su - pandora -s /bin/bash | ||
+ | # tentacle_server -v -e tentacle_cert -k tentacle_key -f ca_cert -s /tmp | ||
+ | |||
+ | </ | ||
+ | |||
+ | When launching the **client** manually, include the '' | ||
+ | < | ||
+ | # echo test> file.txt | ||
+ | # tentacle_client -v \ | ||
+ | -e tentacle_client_cert \ | ||
+ | -k tentacle_client_key \ | ||
+ | -a 192.168.70.125 file.txt | ||
+ | |||
+ | </ | ||
+ | |||
+ | If this manual execution works properly, permanent configuration will be possible in the appropriate file. | ||
+ | |||
+ | * For **Tentacle servers**: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Software Agents**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Satellite servers**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle server and client certificate configuration verifying the certificate with a specific CA in both of them ==== | ||
+ | |||
+ | For this configuration, | ||
+ | |||
+ | When launching the server manually, include the '' | ||
+ | < | ||
+ | # su - pandora -s /bin/bash | ||
+ | # tentacle_server -v -e tentacle_cert -k tentacle_key -f ca_cert -s /tmp | ||
+ | |||
+ | </ | ||
+ | |||
+ | When launching the client manually, include the '' | ||
+ | < | ||
+ | # echo test> file.txt | ||
+ | # tentacle_client -v -e tentacle_client_cert -k tentacle_client_key -f ca_cert -a 192.168.70.125 file.txt | ||
+ | |||
+ | </ | ||
+ | |||
+ | If this manual execution works properly, permanent configuration will be possible. | ||
+ | |||
+ | * For **Tentacle servers**: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Software Agents**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -k tentacle_client_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | * For Pandora FMS **Satellite servers**: | ||
+ | |||
+ | < | ||
+ | server_opts -e tentacle_client_cert -k tentacle_client_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Safe Tentacle configuration ==== | ||
+ | |||
+ | Both the Tentacle server and the software agents can use safe communication through certificates and password, either directly between them or through a Tentacle Proxy. | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | |||
+ | </ | ||
+ | <WRAP center round important 60%>To use Tentacle safe options, please verify the package '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | In previous sections, the different combinations are explained in detail; in this section we add options such as password, Tentacle Proxy server and the use of '' | ||
+ | |||
+ | **Simple transfer with password-based authentication: | ||
+ | |||
+ | Extra parameter in the server for password: | ||
+ | |||
+ | < | ||
+ | -x password | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra parameter in the client for password ( '' | ||
+ | < | ||
+ | -x password | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Safe transfer, with no client certificate: | ||
+ | |||
+ | Extra server parameters: | ||
+ | |||
+ | < | ||
+ | -e tentacle_cert -k tentacle_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Safe transfer with client certificate** | ||
+ | |||
+ | Extra server parameters: | ||
+ | |||
+ | < | ||
+ | -e tentacle_cert -k tentacle_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra client parameters | ||
+ | < | ||
+ | -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Safe transfer with client certificate and additional authentication with password: | ||
+ | |||
+ | Extra server parameters: | ||
+ | |||
+ | < | ||
+ | -x password -e tentacle_cert -k tentacle_key -f ca_cert | ||
+ | |||
+ | </ | ||
+ | |||
+ | Extra client parameters ( '' | ||
+ | < | ||
+ | -x password -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Tentacle proxy safe configuration use case === | ||
+ | |||
+ | You are explained step by step how to configure both software agents as well as the Tentacle server for safe communication, | ||
+ | |||
+ | **Manual tests:** | ||
+ | |||
+ | 1. Start tentacle_server manually: | ||
+ | |||
+ | < | ||
+ | sudo -u user tentacle_server \ | ||
+ | -x password \ | ||
+ | -e tentacle_cert \ | ||
+ | -k tentacle_key \ | ||
+ | -f ca_cert -s /tmp -v | ||
+ | |||
+ | </ | ||
+ | |||
+ | 2. Start the proxy manually: | ||
+ | |||
+ | < | ||
+ | sudo -u user tentacle_server -b ip_server -g 41124 | ||
+ | |||
+ | </ | ||
+ | |||
+ | 3. Start tentacle_client manually: | ||
+ | |||
+ | < | ||
+ | sudo -u user tentacle_client \ | ||
+ | -a ip_proxy/ | ||
+ | -x password \ | ||
+ | -e tentaclecert.pem \ | ||
+ | -k tentaclekey.pem \ | ||
+ | -v file | ||
+ | |||
+ | </ | ||
+ | |||
+ | Once you have checked that the file was sent successfully, | ||
+ | |||
+ | To configure tentacle_server with the certificate options, edite the starting script of the service **tentacle_serverd**, | ||
+ | |||
+ | **Permanent configuration: | ||
+ | |||
+ | 1. Start the server with SSL. Modify the booting script ''/ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP center round tip 75%> Remember that each time you make changes to the tentacle configuration file, it is necessary to restart the service for the changes to take effect: ''/ | ||
+ | |||
+ | </ | ||
+ | 2. Start the proxy. As in the previous point number 1, modify the configuration file ''/ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP center round tip 75%> Remember that each time you make changes to the tentacle configuration file, it is necessary to restart the service for the changes to take effect: ''/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | 3. Start the Software Agent with the corresponding options. Modify the file '' | ||
+ | < | ||
+ | -x password -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | Remember that the //token// **server_ip** must be configurated pointing to Proxy' | ||
+ | < | ||
+ | server_opts -x password -e tentacle_client_cert -k tentacle_client_key | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 60%>\\ | ||
+ | If you do not want to use any of the options, such as the password, simply do not use the corresponding parameter.\\ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Tentacle data compression ==== | ||
+ | |||
+ | <WRAP center round tip 60%>\\ | ||
+ | Version NG 725 or superior.\\ | ||
+ | </ | ||
+ | Tentacle allows enabling data compression with the option '' | ||
+ | |||
+ | |||
+ | === Pandora FMS Agent === | ||
+ | |||
+ | Edit the file ''/ | ||
+ | < | ||
+ | server_opts -z | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Satellite server === | ||
+ | |||
+ | Edit the file ''/ | ||
+ | < | ||
+ | server_opts -z | ||
+ | |||
+ | </ | ||
+ | |||
+ | [[: | ||
- | * [[Pandora: | ||
- | * [[Pandora: | ||
- | * [[Pandora: | ||
- | * [[Pandora: | ||
- | * [[en: | ||
- | * [[Pandora: |