To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

CService: Difference between revisions

From ZNC
Jump to navigation Jump to search
SiD (talk | contribs)
SiD (talk | contribs)
Line 77: Line 77:
=== Formatting the 2FA Secret Key ===
=== Formatting the 2FA Secret Key ===
The CService website provides the 2FA secret key in eight groups separated by spaces, like this:
The CService website provides the 2FA secret key in eight groups separated by spaces, like this:
{{{
<pre>
a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6
a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6
}}}
</pre>


Before entering the key into the module, you must:
Before entering the key into the module, you must:
Line 86: Line 86:


For example, if CService gives you `a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6`, you should enter it as:
For example, if CService gives you `a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6`, you should enter it as:
{{{
<pre>
A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
}}}
</pre>
This ensures compatibility with the module.
This ensures compatibility with the module.


You can use the following Linux command to reformat the key automatically:
You can use the following Linux command to reformat the key automatically:
{{{
<pre>
echo "a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6" | tr -d ' ' | tr '[:lower:]' '[:upper:]'
echo "a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6" | tr -d ' ' | tr '[:lower:]' '[:upper:]'
}}}
</pre>


=== Notes ===
=== Notes ===

Revision as of 19:13, 8 February 2025

The `CService` ZNC module provides secure login functionality for X on UnderNet, including support for 2FA/TOTP authentication and LoC (Login on Connect). It allows users to configure login details, enable/disable 2FA, and specify user modes. Sensitive data, such as passwords and 2FA secrets, are encrypted using AES-256 encryption for enhanced security.

Getting the Code

The code for this module can be found here.

Compatibility

This module was compiled and tested with ZNC 1.10.

Features

  • Secure Login: Authenticate with UnderNet using your username, password, and optional 2FA/TOTP.
  • 2FA/TOTP Support: Enhance security by adding time-based one-time passwords.
  • LoC (Login on Connect): Log in to UnderNet automatically using the LoC feature.
  • Custom User Modes: Set user mode prefixes (-x!, +x!, or -!+x) during server connection.
  • Encrypted Credentials: Passwords and 2FA secrets are stored securely using AES-256 encryption.

Usage

Arguments

This user module takes none arguments. No additional arguments are required to load the module. Use commands to configure settings.

Read loading modules to learn more about loading modules.

Commands

setusername

Sets the UnderNet username:

/msg *cservice setusername your_username

unsetusername

Removes the stored UnderNet username:

/msg *cservice unsetusername

setpassword

Sets the UnderNet password. The password is stored securely using AES-256 encryption:

/msg *cservice setpassword your_password

unsetpassword

Removes the stored UnderNet password:

/msg *cservice unsetpassword

setsecret

Sets the 2FA/TOTP secret key. The secret is stored securely using AES-256 encryption:

/msg *cservice setsecret your_2fa_secret

enable2fa

Enables 2FA/TOTP for secure logins:

/msg *cservice enable2fa

disable2fa

Disables 2FA/TOTP:

/msg *cservice disable2fa

setusermode

Sets the user mode prefix for the server connection. Valid options are -x!, +x!, -!+x, or an empty string:

/msg *cservice setusermode +x!

showconfig

Displays the current configuration settings:

/msg *cservice showconfig

Example Usage

1. Set your username:

  /msg *cservice setusername MyUser

2. Set your password:

  /msg *cservice setpassword MyPassword

3. Set your TOTP secret:

  /msg *cservice setsecret ABCDEFGHIJKLMNOPQRSTUV

4. Enable 2FA:

  /msg *cservice enable2fa

5. View your current configuration:

  /msg *cservice showconfig

Formatting the 2FA Secret Key

The CService website provides the 2FA secret key in eight groups separated by spaces, like this:

a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6

Before entering the key into the module, you must: 1. Remove all spaces. 2. Convert all lowercase letters to uppercase.

For example, if CService gives you `a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6`, you should enter it as:

A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6

This ensures compatibility with the module.

You can use the following Linux command to reformat the key automatically:

echo "a1b2 c3d4 e5f6 g7h8 i9j0 k1l2 m3n4 o5p6" | tr -d ' ' | tr '[:lower:]' '[:upper:]'

Notes

  • Always generate a secure encryption key (`MASTER_KEY`) before compiling the module. Use the following OpenSSL command:
  openssl rand -hex 32  
 Replace `MASTER_KEY` in the source code with the generated key.
  • The `MASTER_KEY` must be kept safe. If lost, the encrypted password and 2FA secret key will no longer work and you'll have to reconfigure it.
  • For changes to take effect, reload the module:
  /znc unloadmod cservice  
  /znc loadmod cservice

See Also

For more information on UnderNet's Login on Connect (LoC) feature, visit UnderNet LoC.

Enjoy secure and seamless logins with the `CService` ZNC module!