Updated on 2024-07-29 GMT+08:00

Encrypted Transmission

Overview

Encrypted transmission allows you to protect your data transmitted between clients and SFS Turbo file systems using the TLS protocol.

As data needs to be encrypted and decrypted, you may experience a slight decrease in performance when encrypted transmission is used.

Configuring Encrypted Transmission and Mounting the File System (Linux)

  1. Install stunnel.
    Stunnel is an open-source proxy designed to add TLS encryption functionality to existing clients and servers without any changes in the programs' code. It listens to local ports, encrypts the received traffic, and forwards the encrypted traffic to SFS Turbo file systems. To use encrypted transmission, you need to install stunnel first.
    • Run the following commands to install stunnel in Ubuntu or Debian:
    sudo apt update
    sudo apt-get install stunnel
    • Run the following command to install stunnel in CentOS, EulerOS, or Huawei Cloud EulerOS:
    sudo yum install stunnel

    Stunnel 5.56 or later is recommended.

  2. Select an idle port as the local listening port.
    Run the following command to view occupied local ports:
    netstat -anp | grep 127.0.0.1
    Figure 1 Viewing occupied local ports

    In this example, port 20049 has been used. Select an idle port ranging from 20050 to 21049.

  3. Configure the stunnel configuration file.

    Create a stunnel_[Local listening port].conf file in /etc/stunnel and add the following content to the file:

    client = yes
    sslVersion = TLSv1.2
    [nfs]
    ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256
    accept = 127.0.0.1:[Local listening port]
    connect = [dns name]:2052
  4. Start the stunnel process.
    stunnel /etc/stunnel/stunnel_[local listening port].conf
  5. Mount the file system.
    mount -t nfs -o vers=3,nolock,tcp,port=[Local listening port],mountport=[Local listening port] 127.0.0.1:/ [Mount point]

    All file operations on this mount point are the same as those in non-encrypted transmission scenarios.

    If the stunnel process exits abnormally, file operations will be suspended. You can use Linux functionalities such as crontab to ensure that the stunnel process can be automatically started after it exits.

Dependency Components

Stunnel and crontab

FAQ

  • Why Can't the Stunnel Process Be Started?
    The stunnel process cannot be started if the port is occupied. If the following message is returned when stunnel is started, the port has been occupied:
    Binding service [nfs] to 127.0.0.1: (occupied port): Address already in use