From a88b06c300ce6d0bd1eeafc995064e7cd7358a6b Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Mon, 23 Feb 2026 19:13:02 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20missing=20features:=20HIDDEN?= =?UTF-8?q?=5FHOST=5FQUIT,=20EXTENDED=5FACCOUNTS=20=E2=9C=85=20Ad=C4=83uga?= =?UTF-8?q?te=204=20features=20lips=C4=83=20=C3=AEn=20template=20ircd.conf?= =?UTF-8?q?:=201.=20HIDDEN=5FHOST=5FQUIT=20=3D=20TRUE=20=20=20=20-=20Mesaj?= =?UTF-8?q?e=20clare=20c=C3=A2nd=20utilizatorii=20seteaz=C4=83/reseteaz?= =?UTF-8?q?=C4=83=20+x=20=20=20=20-=20Afi=C8=99eaz=C4=83=20'Registered'/'U?= =?UTF-8?q?nRegistered'=20=C3=AEn=20loc=20de=20quit=20generic=202.=20HIDDE?= =?UTF-8?q?N=5FHOST=5FSET=5FMESSAGE=20=3D=20'Registered'=20=20=20=20-=20Me?= =?UTF-8?q?saj=20personalizabil=20c=C3=A2nd=20user=20seteaz=C4=83=20+x=20(?= =?UTF-8?q?activeaz=C4=83=20hidden=20host)=203.=20HIDDEN=5FHOST=5FUNSET=5F?= =?UTF-8?q?MESSAGE=20=3D=20'UnRegistered'=20=20=20=20-=20Mesaj=20personali?= =?UTF-8?q?zabil=20c=C3=A2nd=20user=20reseteaz=C4=83=20-x=20(dezactiveaz?= =?UTF-8?q?=C4=83=20hidden=20host)=204.=20EXTENDED=5FACCOUNTS=20=3D=20TRUE?= =?UTF-8?q?=20=20=20=20-=20Suport=20pentru=20sintaxa=20extins=C4=83=20AC?= =?UTF-8?q?=20(X3,=20Anope=202.x,=20Atheme)=20=20=20=20-=20Permite=20opera?= =?UTF-8?q?=C8=9Bii=20avansate:=20rename,=20merge,=20unregister=20accounts?= =?UTF-8?q?=20=20=20=20-=20Compatibilitate=20cu=20servicii=20IRC=20moderne?= =?UTF-8?q?=20=F0=9F=93=9A=20Documenta=C8=9Bie=20complet=C4=83=20=C3=AEn?= =?UTF-8?q?=20FEATURES=5FADAUGATE=5FHOST=5FHIDING.md=20=F0=9F=8E=AF=20Impa?= =?UTF-8?q?ct:=20-=20User=20experience=20=C3=AEmbun=C4=83t=C4=83=C8=9Bit?= =?UTF-8?q?=C4=83=20(feedback=20clar=20pentru=20+x/-x)=20-=20Compatibilita?= =?UTF-8?q?te=20complet=C4=83=20cu=20X3=20=C8=99i=20servicii=20moderne=20-?= =?UTF-8?q?=20Suport=20pentru=20opera=C8=9Bii=20avansate=20pe=20conturi=20?= =?UTF-8?q?=F0=9F=94=A7=20Loca=C8=9Bii=20modificate:=20-=20install.sh=20li?= =?UTF-8?q?nia=20~999:=20EXTENDED=5FACCOUNTS=20-=20install.sh=20linia=20~1?= =?UTF-8?q?010-1012:=20HIDDEN=5FHOST=5F*=20features=20=E2=9C=85=20Testing:?= =?UTF-8?q?=20bash=20-n=20install.sh=20PASSED=20=E2=9C=85=20Backwards=20co?= =?UTF-8?q?mpatible:=20DA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FEATURES_ADAUGATE_HOST_HIDING.md | 502 +++++++++++++++++++++++++++++++ install.sh | 8 + 2 files changed, 510 insertions(+) create mode 100644 FEATURES_ADAUGATE_HOST_HIDING.md 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";