14 KiB
SPOOFHOST - Mascarea Hostname-urilor Utilizatorilor
📋 CE ESTE SPOOFHOST?
Spoofhost (Spoof Host = Host Fals) este un sistem care permite mascarea hostname-urilor reale ale utilizatorilor cu hostname-uri custom pentru:
- Protecția identității (ascunderea IP-ului real)
- Organizare (hostname-uri distinctive pentru staff/VIP)
- Branduri custom (ex:
admin.underchat.org,vip.underchat.org)
Este o funcționalitate de securitate și personalizare pentru utilizatori autorizați.
🎯 SCOP
Problema FĂRĂ Spoofhost:
Când un utilizator se conectează la IRC, hostname-ul său este vizibil public:
[14:30] * Joins: User (user@203.0.113.45)
/WHOIS User
User is user@203.0.113.45 * Real Name
# ^^^^^^^^^^^ IP VIZIBIL!
Riscuri:
- ❌ IP-ul real este expus → vulnerabil la atacuri DDoS
- ❌ ISP-ul este vizibil → informații despre locație
- ❌ Tracking între canale → lipsă de anonimat
Soluția CU Spoofhost:
[14:30] * Joins: Admin (admin@staff.underchat.org)
/WHOIS Admin
Admin is admin@staff.underchat.org * Network Admin
# ^^^^^^^^^^^^^^^^^^^^^ HOSTNAME CUSTOM!
Avantaje:
- ✅ IP-ul real este ascuns
- ✅ Identitate profesională (staff.underchat.org)
- ✅ Protecție împotriva DDoS
- ✅ Brandind custom
🔧 CUM FUNCȚIONEAZĂ?
Mecanismul:
- Autentificare: User se conectează normal
- Aplicare Spoofhost: Fie automat (autoapply), fie manual cu
/SETHOST - Transformare:
user@realip.com→user@custom.underchat.org - Vizibilitate: Toată lumea vede hostname-ul fals
📝 SINTAXĂ ÎN ircd.conf
Formatul de bază:
Spoofhost "hostname.custom.org" {
pass = "parola_secreta";
host = "*@*.provider.com";
autoapply = no;
ismask = no;
matchusername = yes;
};
Parametri:
| Parametru | Obligatoriu | Descriere |
|---|---|---|
"hostname" |
✅ DA | Hostname-ul fals care va fi afișat (poate include username: user@host) |
pass |
❌ NU | Parola pentru /SETHOST hostname (dacă user aplică manual) |
host |
✅ DA | Hostmask care se potrivește (pentru autoapply sau restricție acces) |
autoapply |
❌ NU | yes = aplicare automată, no = necesită /SETHOST (default: no) |
ismask |
❌ NU | yes = hostname-ul conține wildcards (*, ?), no = hostname fix |
matchusername |
❌ NU | yes = verifică și username-ul din hostmask (default: yes) |
💡 EXEMPLE PRACTICE
Exemplu 1: Spoofhost AUTOMAT pentru Staff
Spoofhost "staff.underchat.org" {
host = "*@10.0.0.*";
autoapply = yes;
};
Funcționare:
- Oricine se conectează de pe
10.0.0.*(IP-uri interne/VPN) - Primește AUTOMAT hostname:
user@staff.underchat.org - NU necesită parolă sau comandă
Rezultat:
# User se conectează de pe 10.0.0.25:
[14:30] * Joins: Admin (admin@staff.underchat.org)
# ^^^^^^^^^^^^^^^^^^^^^^^^ AUTOMAT!
Exemplu 2: Spoofhost MANUAL cu Parolă
Spoofhost "vip.underchat.org" {
pass = "parola_vip_123";
host = "*";
autoapply = no;
};
Funcționare:
- Orice user poate solicita acest hostname
- Trebuie să folosească comanda:
/SETHOST vip.underchat.org parola_vip_123 - Hostname-ul se schimbă doar după autentificare
Utilizare:
# User se conectează normal:
/WHOIS User
User is user@203.0.113.45
# User aplică spoofhost manual:
/SETHOST vip.underchat.org parola_vip_123
# Serverul confirmă:
:server NOTICE User :Activated host: vip.underchat.org
# Acum hostname-ul este schimbat:
/WHOIS User
User is user@vip.underchat.org
# ^^^^^^^^^^^^^^^^^ SCHIMBAT!
Exemplu 3: Spoofhost cu USERNAME Custom
Spoofhost "admin@admin.underchat.org" {
host = "adminuser@*";
autoapply = yes;
matchusername = yes;
};
Funcționare:
- Potrivește doar user-i cu username
adminuser - Aplică automat hostname:
admin@admin.underchat.org - Include și user-ul în spoofhost!
Rezultat:
# User cu username "adminuser" se conectează:
[14:30] * Joins: Boss (admin@admin.underchat.org)
# ^^^^^^^^^^^^^^^^^^^^^^^^^ user+host custom!
Exemplu 4: Spoofhost cu WILDCARD (ismask)
Spoofhost "*.underchat.org" {
pass = "parola_wildcard";
host = "*@trusted.provider.com";
autoapply = no;
ismask = yes;
};
Funcționare:
ismask = yes→ hostname-ul conține wildcards- User poate alege:
staff.underchat.org,vip.underchat.org,anything.underchat.org - PERICOL: User poate evada ban-uri dacă nu e supervizat!
Utilizare:
# User solicită hostname custom:
/SETHOST myname.underchat.org parola_wildcard
# Hostname se schimbă în ce a ales:
/WHOIS User
User is user@myname.underchat.org
# ^^^^^^^^^^^^^^^^^^^^ Ales de user!
⚠️ ATENȚIE: Folosește ismask doar pentru utilizatori de încredere (operatori)!
Exemplu 5: Spoofhost pentru ISP Specific
Spoofhost "protected.underchat.org" {
host = "*@*.dial-up.provider.com";
autoapply = yes;
};
Funcționare:
- Oricine se conectează de pe
*.dial-up.provider.com - Primește automat:
user@protected.underchat.org - Protecție pentru utilizatori de pe ISP cunoscut
🎓 CAZURI DE UTILIZARE COMUNE
1. Staff și Operatori
# Administratori
Spoofhost "admin.underchat.org" {
host = "*@10.0.0.*";
autoapply = yes;
};
# Moderatori
Spoofhost "moderator.underchat.org" {
host = "*@172.16.0.*";
autoapply = yes;
};
# Operatori globali
Spoofhost "staff.underchat.org" {
pass = "staff_password";
host = "*";
autoapply = no;
};
2. Utilizatori VIP/Premium
# VIP manual (cu parolă)
Spoofhost "vip.underchat.org" {
pass = "vip_secret_2026";
host = "*";
autoapply = no;
};
# Premium automat (pe baza IP-ului)
Spoofhost "premium.underchat.org" {
host = "*@premium-vpn.service.com";
autoapply = yes;
};
3. Protecție DDoS pentru Toți
# Ascunde IP-uri pentru toată lumea
Spoofhost "users.underchat.org" {
host = "*";
autoapply = yes;
};
⚠️ NOTĂ: Acest lucru ascunde TOATE IP-urile! Poate face debugging-ul dificil.
4. Hostname-uri Distinctive pentru Locații
# Utilizatori din Europa
Spoofhost "eu.users.underchat.org" {
host = "*@*.eu";
autoapply = yes;
};
# Utilizatori din US
Spoofhost "us.users.underchat.org" {
host = "*@*.us";
autoapply = yes;
};
⚙️ CONFIGURARE ÎN ircd.conf
Exemplu Complet pentru UnderChat:
# ============================================================================
# SECȚIUNE: SPOOFHOST - Mascarea Hostname-urilor
# ============================================================================
# Administratori - Automat pentru IP-uri interne
Spoofhost "admin.underchat.org" {
host = "*@10.0.0.*";
autoapply = yes;
};
# Staff - Manual cu parolă
Spoofhost "staff.underchat.org" {
pass = "staff_password_2026";
host = "*";
autoapply = no;
};
# VIP - Manual cu parolă
Spoofhost "vip.underchat.org" {
pass = "vip_secret";
host = "*";
autoapply = no;
};
# Protecție utilizatori - Automat pentru toată lumea
Spoofhost "users.underchat.org" {
host = "*";
autoapply = yes;
};
# Operatori cu hostname custom (freeform pentru operatori)
# Necesită privilege "freeform" în Operator block
Spoofhost "*.underchat.org" {
host = "*@trusted.network.*";
autoapply = no;
ismask = yes;
};
🔐 PERMISIUNI OPERATOR (freeform)
Pentru ca operatorii să poată folosi /SETHOST cu hostname-uri arbitrare (fără Spoofhost pre-configurat), trebuie să aibă privilegiul freeform:
Operator {
name = "AdminUser";
password = "$MD5$...";
host = "*@*";
class = "Opers";
# Permisiuni
privileges = "freeform"; # Permite /SETHOST fără restricții
};
Cu freeform:
/SETHOST anything.i.want.org
# Funcționează! (fără să fie configurat în Spoofhost block)
🔍 COMENZI UTILIZATOR
1. /SETHOST - Aplicare Spoofhost Manual
# Sintaxă:
/SETHOST hostname [parola]
# Exemplu cu parolă:
/SETHOST vip.underchat.org vip_secret
# Exemplu fără parolă (pentru operatori cu freeform):
/SETHOST custom.underchat.org
2. /WHOIS - Verificare Hostname
/WHOIS User
User is user@vip.underchat.org * VIP User
# ^^^^^^^^^^^^^^^^^ Spoofhost activ
📊 AVANTAJE vs DEZAVANTAJE
✅ AVANTAJE:
- Protecție IP - Ascunde IP-uri reale împotriva DDoS
- Brandind - Hostname-uri professional (staff.underchat.org)
- Organizare - Diferențiază staff/VIP/users
- Flexibilitate - Automat sau manual, cu/fără parolă
- Personalizare - Wildcards pentru hostname-uri custom
⚠️ DEZAVANTAJE:
- Dificultate debugging - IP-uri ascunse → mai greu de identificat abuzatori
- Risc ismask - Wildcard-uri pot fi abuzate pentru evadarea ban-urilor
- Configurare necesară - Trebuie planificat și configurat manual
- Confuzie - Prea multe spoofhost-uri → dificil de gestionat
🚨 BEST PRACTICES
1. Folosește autoapply pentru staff (IP-uri interne)
# BINE:
Spoofhost "staff.underchat.org" {
host = "*@10.0.0.*";
autoapply = yes;
};
2. Folosește parole PUTERNICE pentru spoofhost-uri publice
# EVITĂ:
pass = "123456"; # ❌ SLAB!
# BINE:
pass = "vip_Str0ng_P@ssw0rd_2026"; # ✅ PUTERNIC!
3. NU folosi ismask pentru utilizatori obișnuiți
# ❌ PERICOL:
Spoofhost "*.underchat.org" {
host = "*"; # Oricine poate!
ismask = yes;
};
# ✅ SIGUR:
Spoofhost "*.underchat.org" {
host = "*@trusted.admin.network"; # Doar admini
ismask = yes;
};
4. Documentează în MOTD hostname-urile disponibile
# În ircd.motd:
-
- Hostname-uri disponibile:
- staff.underchat.org (automat pentru staff)
- vip.underchat.org (manual, contactează admin)
- users.underchat.org (automat pentru toți)
-
- Pentru /SETHOST contactează: admin@underchat.org
-
5. Păstrează log-urile IP-urilor REALE
Chiar dacă hostname-urile sunt spoofed, serverul TREBUIE să logeze IP-urile reale pentru:
- Identificarea abuza torilor
- Investigații securitate
- Debugging probleme
🔧 TROUBLESHOOTING
Problemă: /SETHOST nu funcționează
Cauze posibile:
-
Spoofhost NU este configurat
grep 'Spoofhost "' /home/ircd/ircd/lib/ircd.conf # Dacă nu găsește → Trebuie adăugat -
Parola greșită
/SETHOST vip.underchat.org wrong_password # Output: :server NOTICE nick :Invalid password for spoofhost -
User nu se potrivește cu host pattern
# Config: Spoofhost "vip.underchat.org" { host = "*@specific.provider.com"; pass = "secret"; }; # User de pe alt ISP: user@other.provider.com # → NU se potrivește → BLOCAT! -
SETHOST_USER feature dezactivat
# Verifică în features: features { "SETHOST" = "TRUE"; # Trebuie TRUE! };
Soluție generală:
# 1. Verifică că Spoofhost există
grep -A 4 'Spoofhost "vip' /home/ircd/ircd/lib/ircd.conf
# 2. Verifică că SETHOST este activat
grep SETHOST /home/ircd/ircd/lib/ircd.conf
# 3. Testează cu hostmask corect
# În IRC:
/SETHOST vip.underchat.org parola_corecta
🎯 INTEGRARE CU HOST HIDING
Spoofhost și Host Hiding (feature-ul built-in) sunt diferite:
Host Hiding (Built-in):
features {
"HOST_HIDING" = "TRUE";
"HIDDEN_HOST" = "Users.UnderChat";
"HOST_HIDING_PREFIX" = "UnderChat";
};
- Ascunde AUTOMAT IP-uri cu hash
- Format:
UnderChat-HASH.domain.tld - NU necesită configurare per-user
Spoofhost (Custom):
Spoofhost "custom.underchat.org" {
host = "*";
autoapply = yes;
};
- Hostname-uri CUSTOM specifice
- Control granular per-user/grup
- Necesită configurare manuală
Pot fi folosite ÎMPREUNĂ:
- Host Hiding pentru utilizatori normali
- Spoofhost pentru staff/VIP
📚 REFERINȚE
- Cod sursă:
ircd/s_conf.c(funcțiafind_shost_conf) - Exemplu config:
doc/example.conf(liniile 954-987) - Feature SETHOST: Controlează dacă
/SETHOSTeste disponibil
🎯 CONCLUZIE
Spoofhost = Mascarea hostname-urilor pentru protecție și brandind
Transformă hostname-uri reale:
user@203.0.113.45 → user@staff.underchat.org
user@isp.provider → user@vip.underchat.org
Este o funcționalitate esențială pentru:
- ✅ Protecția identității utilizatorilor
- ✅ Brandind profesional pentru staff
- ✅ Organizare ierarhică (admin/staff/vip/users)
- ✅ Securitate împotriva DDoS
Data: 14 Februarie 2026
Versiune: 1.0
Pentru: UnderChat IRCd v1.4.0+
🚀 QUICK START
Pentru a adăuga Spoofhost în rețeaua ta:
# Adaugă în /home/ircd/ircd/lib/ircd.conf:
# Staff automat
Spoofhost "staff.underchat.org" {
host = "*@10.0.0.*";
autoapply = yes;
};
# VIP manual
Spoofhost "vip.underchat.org" {
pass = "vip_password";
host = "*";
autoapply = no;
};
# Protecție toți utilizatorii
Spoofhost "users.underchat.org" {
host = "*";
autoapply = yes;
};
# În features, asigură-te că:
features {
"SETHOST" = "TRUE";
};
Restart IRCd și testează:
/SETHOST vip.underchat.org vip_password
/WHOIS YourNick
GATA! ✅