ircu2/OPERATORI_HUB_LINKING.md

8.7 KiB

🔐 Configurare Operatori și HUB Linking - Ghid Complet

Data: 13 februarie 2026
Limbă: Română
Feature: Operator + HUB Linking Automată


🎯 Noile Funcționalități

Scriptul install.sh cere acum automat:

  1. Username operator - Cere cum vrei să-i spui operatorului
  2. Parola operator - Cere parola și o criptează automat
  3. Este HUB? - Cere dacă serverul e HUB sau nu
  4. HUB Linking - Dacă e HUB, cere date pentru conectare la HUB principal

📋 Flux Instalare Nou

./install.sh

# 1. Cereri Configurare Server (anterior)
Domeniu rețea [underchat.org]: 
Nume server [ns1.underchat.org]:
Etc...

# 2. ✨ NOUĂ: Cereri Configurare Operator
═══════════════════════════════════════
CONFIGURARE OPERATOR
═══════════════════════════════════════

Username operator [AdminRoot]: 
Parola operator: ••••••••••
Repetă parola: ••••••••••
[INFO] Generare hash parola...
[SUCCES] Parola operator criptată

# 3. ✨ NOUĂ: Cereri Configurare HUB
═══════════════════════════════════════
CONFIGURARE HUB
═══════════════════════════════════════

Este aceasta un server HUB? (y/n) [n]: y

[INFO] Configurare LINK la HUB principal

Nume HUB [hub.underchat.org]: 
IP/Host HUB [192.168.1.100]: 
Port HUB [4400]: 
Parola linking: •••••••••••

# Generator ircd.conf cu toți parametrii

GATA! Server ready!

🔐 Configurare Operatori

Ce se întâmplă automat:

  1. Cere username operator (ex: AdminRoot, root, operator)
  2. Cere parola (2x, cu validare)
  3. Generează hash $PLAIN$password
  4. Adaugă în ircd.conf secțiune Operator completă

Exemplu config generat:

Operator {
    # Nickname-ul operatorului
    name = "AdminRoot";
    
    # Password-ul (hash auto-generat)
    password = "$PLAIN$mypassword123";
    
    # Host-uri permise
    host = "*@*";
    
    # Clasă
    class = "Opers";
    
    # Permisiuni
    admin = yes;
    hide_oper = no;
    hide_channels = no;
};

Validare Parola:

  • Minim 4 caractere
  • Repetă pentru confirmare
  • Cript automat
  • Format ready pentru ircd

🌐 Configurare HUB Linking

Dacă răspunzi "y" la "Este aceasta un server HUB?":

Script-ul cere:

1. Nume HUB              (hub.underchat.org)
2. IP/Host HUB           (192.168.1.100)
3. Port HUB              (4400)
4. Parola linking        (secret_password)

Exemplu config generat (dacă e HUB):

# ============================================================================
# SECȚIUNE: CONNECT - Legări cu alte servere
# ============================================================================

# Conectare la HUB principal
Connect {
    name = "hub.underchat.org";
    host = "192.168.1.100";
    password = "secret_password";
    port = 4400;
    class = "Server";
    autoconnect = yes;
    hub;
};

Exemplu config generat (dacă NU e HUB):

# ============================================================================
# SECȚIUNE: CONNECT - Legări cu alte servere
# ============================================================================

# Server nu este HUB - fără connect

Feature "HUB" și în features secțiune:

Dacă e HUB:

"HUB" = "TRUE";

Dacă NU e HUB:

"HUB" = "FALSE";

🚀 Flux Complet Instalare

# 1. Clone și update
cd ~/underchat-ircd
git pull origin main

# 2. Lansare install
./install.sh

# 3. Răspunde la toate întrebările (inclusiv operator + HUB)
# - Domeniu: underchat.org
# - Nume server: ns1.underchat.org
# - ...alte setări...
# - Username operator: AdminRoot
# - Parola: ••••••••••
# - E HUB? y
# - Nume HUB: hub.underchat.org
# - IP HUB: 192.168.1.100
# - Port HUB: 4400
# - Parola linking: secret123

# 4. Script-ul generează ircd.conf complet cu:
#    - Server config
#    - Admin info
#    - Operatori cu parola
#    - HUB Connect (dacă e HUB)
#    - Features (HUB=TRUE/FALSE)

# 5. Verifică și pornește
./admin.sh
# → 4) Verifica status
# → 1) Pornire server

📝 Exemplu: Server Leaf (NU e HUB)

./install.sh

# Output:
Domeniu rețea [underchat.org]: underchat.org
Nume server [ns1.underchat.org]: leaf.underchat.org
...
Username operator [AdminRoot]: MyOperator
Parola operator: mypass123
Repetă parola: mypass123
[SUCCES] Parola operator criptată

Este aceasta un server HUB? (y/n) [n]: n
# (Nu cere info HUB)

ircd.conf generat:

features {
    "HUB" = "FALSE";
    ...
};

# ============================================================================
# SECȚIUNE: CONNECT
# ============================================================================

# Server nu este HUB - fără connect

📝 Exemplu: Server HUB

./install.sh

# Output:
Domeniu rețea [underchat.org]: underchat.org
Nume server [ns1.underchat.org]: hub1.underchat.org
...
Username operator [AdminRoot]: HubAdmin
Parola operator: hubpass456
Repetă parola: hubpass456
[SUCCES] Parola operator criptată

Este aceasta un server HUB? (y/n) [n]: y

[INFO] Configurare LINK la HUB principal

Nume HUB [hub.underchat.org]: hub2.underchat.org
IP/Host HUB [192.168.1.100]: 10.0.0.100
Port HUB [4400]: 4400
Parola linking: linkpass789

ircd.conf generat:

Operator {
    name = "HubAdmin";
    password = "$PLAIN$hubpass456";
    ...
};

features {
    "HUB" = "TRUE";
    ...
};

Connect {
    name = "hub2.underchat.org";
    host = "10.0.0.100";
    password = "linkpass789";
    port = 4400;
    class = "Server";
    autoconnect = yes;
    hub;
};

🔍 Validare Parolă

Ce verifică script-ul:

Lungime minim 4 caractere
Potrivire pe confirm
Criptare automat
Format $PLAIN$password

Erori posibile:

[EROARE] Parola prea scurtă! Minim 4 caractere.
→ Încearcă din nou cu parola mai lungă

[EROARE] Parolele nu se potrivesc!
→ Re-introdu parolele, trebuie identice

🎛️ Parametri Operator Generați

În fișierul ircd.conf:

name          = "AdminRoot"        # Username operator
password      = "$PLAIN$parola"    # Hash parola
host          = "*@*"              # Orice host
class         = "Opers"            # Clasa de operatori
admin         = yes/no             # Administrator complet?
hide_oper     = yes/no             # Ascunde status oper
hide_channels = yes/no             # Ascunde canale

🎛️ Parametri HUB Generați

În fișierul ircd.conf:

Connect {
    name          = "hub.underchat.org"  # Nume HUB
    host          = "192.168.1.100"      # IP/Host HUB
    password      = "secret_password"    # Parola linking
    port          = 4400                 # Port HUB
    class         = "Server"             # Clasa server
    autoconnect   = yes                  # Conectare automată
    hub;                                 # Este HUB
};

🚀 Comenzi După Instalare

# Verifică operatori în config
grep -A 5 "^Operator" ~/ircd/etc/ircd.conf

# Verifică Connect block (HUB)
grep -A 8 "^Connect" ~/ircd/etc/ircd.conf

# Verifică feature HUB
grep "HUB" ~/ircd/etc/ircd.conf

# Pornire server
./admin.sh → 1) Pornire server

# Login operator
/OPER AdminRoot mypass123

# Verifică status operator
/STATS u

📊 Fișiere Actualizate

  • install.sh - +23 linii, funcții noi, cereri interactive
  • Nicio modificare alte fișiere
  • Backward compatible cu versiunile vechi

🆘 Troubleshooting

Q: "Parola prea scurtă"

A: Parola trebuie minim 4 caractere

Q: "Parolele nu se potrivesc"

A: Introdu aceeași parola de 2 ori

Q: "Script nu acceptă parola"

A: Asigură-te că ai introdus corect

Q: "HUB nu se conectează"

A: Verifică:

  • Nume HUB corect
  • IP/Host corect
  • Port corect (implicit 4400)
  • Parola potrivită

Q: "Operator nu funcționează"

A: Verifică:

  • Username corect în config
  • Parola potrivită
  • Host matching (@)

📚 Documentație Suplimentară

  • CONFIGURARE_PROFESIONALA.md - Descriere completă secțiuni
  • INSTALL_AUTO.md - Ghid instalare detaliat
  • admin.sh - Meniu administrare

Status

Cereri operatori implementate
Parole criptate automat
HUB linking configurat
Validare intrări completă
Documentație în limba română
Push pe Gitea


Data: 13 februarie 2026
Feature: Operator + HUB Linking
Status: Production Ready