503 lines
12 KiB
Markdown
503 lines
12 KiB
Markdown
# 📝 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! 🎉**
|
|
|