diff --git a/FEATURES_ADAUGATE_HOST_HIDING.md b/FEATURES_ADAUGATE_HOST_HIDING.md new file mode 100644 index 0000000..c055b78 --- /dev/null +++ b/FEATURES_ADAUGATE_HOST_HIDING.md @@ -0,0 +1,502 @@ +# 📝 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): + +```conf +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): + +```conf +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: + +```conf +# Î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) + +```conf +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: + +```conf +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**: +```bash +# 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**: +```bash +# 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)**: +```conf +# Î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 + +```bash +# 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**: +```conf + # 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 + +```bash +# 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 + +```bash +# 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: + +```bash +# 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: + +```bash +# 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! 🎉** + diff --git a/install.sh b/install.sh index b9769f7..3cc64e6 100755 --- a/install.sh +++ b/install.sh @@ -994,6 +994,9 @@ features { "TARGET_LIMITING" = "TRUE"; "IDLE_FROM_MSG" = "TRUE"; + # Extended Accounts Support (pentru servicii X3/IRC Services) + "EXTENDED_ACCOUNTS" = "TRUE"; + # Host hiding "HOST_HIDING" = "TRUE"; "HOST_HIDING_STYLE" = "3"; @@ -1005,6 +1008,11 @@ features { "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"; + # Channels "MAXCHANNELSPERUSER" = "60"; "CHANNELLEN" = "200";