ircu2/FEATURES_ADAUGATE_HOST_HIDI...

12 KiB

📝 FEATURES ADĂUGATE - Host Hiding & Extended Accounts

Data: 23 Februarie 2026
Versiune: v1.8.0+
Status: ADĂUGATE ÎN TEMPLATE ircd.conf


🎯 OVERVIEW

Am adăugat 4 features lipsă în template-ul de configurare install.sh pentru funcționalitate completă a host hiding și compatibilitate cu serviciile IRC moderne.


FEATURES ADĂUGATE

1. HIDDEN_HOST_QUIT

Locație în install.sh: Linia ~1010 (secțiunea Host hiding)

Ce face:

  • Controlează dacă să se trimită mesaje de quit când utilizatorii setează/resetează modul +x (hidden host)
  • Când e TRUE, utilizatorii vor vedea mesaje "Registered" / "UnRegistered" în loc de quit real

Valoare setată: TRUE (default recomandat)

Exemplu comportament:

# Cu HIDDEN_HOST_QUIT = TRUE:
* User has quit IRC (Registered)           # Când setează +x
* User has quit IRC (UnRegistered)         # Când resetează -x

# Cu HIDDEN_HOST_QUIT = FALSE:
* User has quit IRC (Changing host)        # Mesaj generic

De ce e important:

  • Oferă feedback clar utilizatorilor când își schimbă hostname-ul
  • Previne confuzia (pare ca o reconectare, nu ca un quit real)
  • Standardizat în majoritatea rețelelor IRC moderne

2. HIDDEN_HOST_SET_MESSAGE 📝

Locație în install.sh: Linia ~1011

Ce face:

  • Mesajul afișat când un utilizator SETEAZĂ modul +x (activează hidden host)

Valoare setată: "Registered" (default)

Exemplu:

# Utilizator face: /mode Nick +x
* Nick has quit IRC (Registered)
* Nick (hidden@users.underchat.org) has joined #channel

Customizare: Poți schimba în:

  • "is now hidden" - Mesaj în engleză
  • "Host ascuns" - Mesaj în română
  • "Protected" - Sugerează protecție

3. HIDDEN_HOST_UNSET_MESSAGE 📝

Locație în install.sh: Linia ~1012

Ce face:

  • Mesajul afișat când un utilizator RESETEAZĂ modul -x (dezactivează hidden host)

Valoare setată: "UnRegistered" (default)

Exemplu:

# Utilizator face: /mode Nick -x
* Nick has quit IRC (UnRegistered)
* Nick (real@203.0.113.45) has joined #channel

Customizare: Poți schimba în:

  • "is now visible" - Mesaj clar
  • "Host vizibil" - Română
  • "Unprotected" - Sugerează lipsa protecției

4. EXTENDED_ACCOUNTS 🔐

Locație în install.sh: Linia ~999 (secțiunea Security & Authentication)

Ce face:

  • Activează suport pentru sintaxa extinsă AC (Account) folosită de servicii IRC moderne
  • TRUE = Folosește subcomenzile R, M, U, C, A, D, H pentru operații avansate
  • FALSE = Folosește sintaxa veche (compatibilitate services vechi)

Valoare setată: TRUE (default, recomandat)

Când să folosești TRUE:

  • X3 (serviciu recomandat pentru UnderChat)
  • Anope 2.x cu protocol P10
  • Atheme IRC Services moderne

Când să folosești FALSE:

  • ⚠️ Services foarte vechi (pre-2010)
  • ⚠️ Custom services cu protocol legacy

Subcomenzile disponibile cu EXTENDED_ACCOUNTS = TRUE:

Subcomandă Funcție
R Rename account (redenumire cont)
M Merge accounts (fuziune conturi)
U Unregister account (ștergere cont)
C Create account (creare cont)
A Authenticate (autentificare)
D Deauthenticate (deautentificare)
H Set hidden host (setare hostname ascuns)

Exemplu protocol:

# Cu EXTENDED_ACCOUNTS = TRUE (modern):
:X3!services@underchat.org AC Nick A 1234567890

# Cu EXTENDED_ACCOUNTS = FALSE (vechi):
:X3!services@underchat.org AC Nick 1234567890

De ce e important:

  • Permite serviciilor să efectueze operații complexe pe conturi
  • Suport complet pentru redenumire/fuziune conturi
  • Compatibilitate cu X3 și servicii moderne
  • Funcții avansate de management conturi

📊 COMPARAȚIE ÎNAINTE/DUPĂ

ÎNAINTE (fără features):

features {
    # Host hiding
    "HOST_HIDING" = "TRUE";
    "HOST_HIDING_STYLE" = "3";
    "HIDDEN_HOST" = "users.underchat.org";
    # ... alte setări ...
}

Probleme:

  • Utilizatorii văd mesaje generice la schimbarea host-ului
  • Lipsește feedback când setează +x/-x
  • Services nu pot face operații avansate pe conturi

DUPĂ (cu features noi):

features {
    # Security & Anti-Abuse
    # ...
    
    # Extended Accounts Support (pentru servicii X3/IRC Services)
    "EXTENDED_ACCOUNTS" = "TRUE";
    
    # Host hiding
    "HOST_HIDING" = "TRUE";
    "HOST_HIDING_STYLE" = "3";
    "HIDDEN_HOST" = "users.underchat.org";
    "HIDDEN_IP" = "127.0.0.1";
    "HOST_HIDING_PREFIX" = "UnderChat";
    "HOST_HIDING_KEY1" = "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
    "HOST_HIDING_KEY2" = "sdfjkLJKHlkjdkfjsdklfjlkjKLJ";
    "HOST_HIDING_KEY3" = "KJklJSDFLkjLKDFJSLKjlKJFlkjS";
    "HOST_HIDING_COMPONENTS" = "1";
    
    # Host hiding - Mesaje set/unset +x
    "HIDDEN_HOST_QUIT" = "TRUE";
    "HIDDEN_HOST_SET_MESSAGE" = "Registered";
    "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered";
}

Beneficii:

  • Mesaje clare când utilizatorii schimbă hostname-ul
  • Feedback vizual pentru +x/-x
  • Suport complet pentru X3 și servicii moderne
  • Operații avansate pe conturi (rename, merge, etc.)

🎮 EXEMPLE UTILIZARE

Scenario 1: Utilizator Se Autentifică

Cu servicii X3 și EXTENDED_ACCOUNTS = TRUE:

1. User conectează: Nick!user@203.0.113.45
2. /msg X@services.underchat.org LOGIN username password
3. X autentifică user-ul cu AC command (subcomandă A)
4. User primește +x automat (dacă configured)
5. * Nick has quit IRC (Registered)
6. * Nick (hidden@users.underchat.org) has joined #channel

Mesaj vizibil:

Nick!user@203.0.113.45 → Nick!hidden@users.underchat.org (Registered)

Scenario 2: Utilizator Manual Setează +x

1. Nick!user@real-hostname.isp.com
2. /mode Nick +x
3. * Nick has quit IRC (Registered)
4. * Nick (UnderChat-554F4C88D.isp.com) has joined #channel

Explicație:

  • HOST_HIDING_STYLE = 3 → Authenticated users get style 1, unauthenticated get style 2
  • Dacă user e autentificat: users.underchat.org
  • Dacă user e guest: UnderChat-HASH.isp.com (Unreal style)

Scenario 3: Utilizator Resetează -x

1. Nick!hidden@users.underchat.org
2. /mode Nick -x
3. * Nick has quit IRC (UnRegistered)
4. * Nick (user@real-hostname.isp.com) has joined #channel

NOTĂ: Funcționează doar dacă ALLOWRMX = TRUE (implicit FALSE pentru securitate).


⚙️ CONFIGURARE AVANSATĂ

Customizare Mesaje (Opțional)

Dacă vrei mesaje în română sau custom:

# În ircd.conf:
features {
    "HIDDEN_HOST_QUIT" = "TRUE";
    "HIDDEN_HOST_SET_MESSAGE" = "Hostname ascuns";
    "HIDDEN_HOST_UNSET_MESSAGE" = "Hostname vizibil";
}

Rezultat:

* Nick has quit IRC (Hostname ascuns)     # La +x
* Nick has quit IRC (Hostname vizibil)    # La -x

Dezactivare Mesaje (Dacă Dorești)

features {
    "HIDDEN_HOST_QUIT" = "FALSE";
    # HIDDEN_HOST_SET_MESSAGE și HIDDEN_HOST_UNSET_MESSAGE sunt ignorate
}

Rezultat:

* Nick (hidden@users.underchat.org) has joined #channel
# Niciun mesaj de quit, doar join cu noul hostname

Pentru Services NON-X3

Dacă folosești services vechi sau custom:

features {
    "EXTENDED_ACCOUNTS" = "FALSE";
}

ATENȚIE: Pierzi funcționalități avansate (rename accounts, merge, etc.).


📚 REFERINȚE & DOCUMENTAȚIE

Fișiere Relevante:

  • doc/readme.features (liniile 1046-1070, 1511-1528)
  • install.sh (liniile ~999, ~1010-1012)
  • ircd/s_user.c - Implementarea host hiding
  • ircd/s_bsd.c - Gestionarea mesajelor quit

RFC & Standarde:

  • RFC 2812 - IRC Client Protocol (modul +x)
  • P10 Protocol - UnderNet server-to-server (AC command)

Services Compatibile:

Service EXTENDED_ACCOUNTS Versiune Minimă
X3 TRUE 1.8+
Anope 2.x TRUE 2.0+
Atheme TRUE 7.x+
Services vechi FALSE ⚠️ Pre-2010

🐛 TROUBLESHOOTING

Problemă: Mesajele de quit nu apar

Cauză: HIDDEN_HOST_QUIT = FALSE sau services nu trimit AC correct.

Soluție:

# Verifică în ircd.conf:
grep "HIDDEN_HOST_QUIT" $HOME/ircd/lib/ircd.conf

# Ar trebui să fie:
"HIDDEN_HOST_QUIT" = "TRUE";

# Dacă e FALSE, modifică și restart:
nano $HOME/ircd/lib/ircd.conf
killall ircd
$HOME/ircd/bin/ircd -f $HOME/ircd/lib/ircd.conf

Problemă: Services nu pot redenumi conturi

Cauză: EXTENDED_ACCOUNTS = FALSE sau services incompatibile.

Soluție:

# Verifică:
grep "EXTENDED_ACCOUNTS" $HOME/ircd/lib/ircd.conf

# Ar trebui să fie TRUE pentru X3:
"EXTENDED_ACCOUNTS" = "TRUE";

# Verifică versiunea services:
/msg X@services.underchat.org VERSION
# Ar trebui X3 1.8+

Problemă: Utilizatorii nu pot face -x (remove hidden host)

Cauză: ALLOWRMX = FALSE (default pentru securitate).

Soluție (DOAR dacă vrei să permiți):

# În ircd.conf:
features {
    "ALLOWRMX" = "TRUE";  # Permite utilizatorilor să facă -x
}

ATENȚIE: Permiterea -x poate expune IP-uri reale. Recomandăm FALSE pentru securitate.


VERIFICARE POST-INSTALARE

1. Verifică Features în Configurație

# După instalare, verifică că features-urile sunt prezente:
grep -A 5 "Host hiding - Mesaje" $HOME/ircd/lib/ircd.conf
grep "EXTENDED_ACCOUNTS" $HOME/ircd/lib/ircd.conf

Output așteptat:

    # Host hiding - Mesaje set/unset +x
    "HIDDEN_HOST_QUIT" = "TRUE";
    "HIDDEN_HOST_SET_MESSAGE" = "Registered";
    "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered";

    # Extended Accounts Support
    "EXTENDED_ACCOUNTS" = "TRUE";

2. Test Manual cu IRC Client

# Conectează cu client IRC:
/server localhost 6667
/nick TestUser
/mode TestUser +x

# Ar trebui să vezi:
# * TestUser has quit IRC (Registered)
# * TestUser (hidden@users.underchat.org) has joined #channel

# Reset:
/mode TestUser -x

# Ar trebui să vezi:
# * TestUser has quit IRC (UnRegistered)
# * TestUser (user@real-host.com) has joined #channel

3. Verifică Logs Pentru Erori

# Verifică că nu sunt erori de configurare:
tail -f $HOME/ircd/log/ircd.log | grep -i "feature\|hidden\|account"

Ar trebui: Nicio eroare legată de features-urile noi.


🎯 NEXT STEPS

Pentru Utilizatori Existenți:

# 1. Pull noua versiune
cd underchat-ircd
git pull origin main

# 2. Re-instalare (păstrează config backup)
cp $HOME/ircd/lib/ircd.conf /backup/ircd.conf.old
./install.sh

# 3. Merge manual features-urile noi în config vechi (dacă dorești)
# SAU lasă configurația nouă (recomandăm)

# 4. Restart server
killall ircd
$HOME/ircd/bin/ircd -f $HOME/ircd/lib/ircd.conf

# 5. Test funcționalitatea +x/-x

Pentru Instalări Noi:

# Features-urile sunt AUTOMAT incluse în template!
./install.sh
# Alege configurările standard → features-urile vor fi deja active

🏆 BENEFICII

Cu Aceste Features:

  • User Experience mai bună - Mesaje clare când se schimbă hostname-ul
  • Compatibilitate X3 - Suport complet pentru servicii moderne
  • Operații avansate - Rename/merge accounts funcționează
  • Standardizare - Comportament consistent cu alte rețele IRC
  • Feedback vizual - Utilizatorii știu când +x/-x are efect

Fără Aceste Features:

  • Mesaje generice de quit (confuză)
  • Services nu pot face rename accounts
  • Lipsă feedback pentru +x/-x
  • Incompatibilitate cu X3 modern

📝 CHANGELOG

v1.8.0+ (23 Februarie 2026)

Added:

  • HIDDEN_HOST_QUIT = TRUE în template ircd.conf
  • HIDDEN_HOST_SET_MESSAGE = "Registered"
  • HIDDEN_HOST_UNSET_MESSAGE = "UnRegistered"
  • EXTENDED_ACCOUNTS = TRUE pentru suport X3/services moderne

Impact:

  • Mesaje clare când utilizatorii setează/resetează +x
  • Suport complet pentru X3 și operații avansate pe conturi
  • User experience îmbunătățită

Adăugat de: Senior Software Architect
Data: 23 Februarie 2026
Versiune: v1.8.0+
Status: FEATURES ACTIVE ÎN TEMPLATE


🎉 HOST HIDING & EXTENDED ACCOUNTS SUNT ACUM COMPLETE! 🎉