🎭 Add Stealth Oper Mode - Operator Invizibil
✨ FEATURE NOUĂ: Stealth Oper (Operator Invizibil) Permite configurarea de operatori 'undercover' care: - ✅ NU apar în /WHOIS cu mesaje staff - ✅ NU au hostname Staff.Network (hostname normal) - ✅ NU apar în /STATS o (ascunși) - ✅ NU primesc notice când primesc /WHOIS - ✅ PĂSTREAZĂ TOATE privilegiile de oper! 🎯 UTILIZARE: La instalare, utilizatorul e întrebat: 'Alege modul de operator: 1) VIZIBIL 2) INVIZIBIL' Alegerea generează config corespunzător: - VIZIBIL: swhois, hide_oper=no, whois_notice=yes - INVIZIBIL: fără swhois, hide_oper=yes, whois_notice=no 📊 MODIFICĂRI: 1. install.sh: - Adăugat întrebare interactivă pentru stealth mode - Parametru nou: oper_stealth în generate_config() - Generare dinamică bloc Operator (vizibil/invizibil) - Default pentru non-interactive: vizibil 2. STEALTH_OPER_MODE.md: - Documentație completă (~20 pagini) - Exemple utilizare (undercover, investigații) - Diferențe detaliate vizibil vs invizibil - Troubleshooting complet - Verificare post-configurare 🎭 BENEFICII: Pentru Operatori: - Monitorizare discretă (users se comportă natural) - Fără target pentru trolls/spam - Privacy complet (hostname normal) - Testing ca user normal Pentru Rețea: - Staff undercover pentru investigații - Detectare abuse fără să fie observat - Moderare eficientă 💡 EXEMPLE UTILIZARE: # Investigație undercover: /oper StealthUser password /join #suspect-channel # Observi comportament REAL, users nu știu că ești staff # WHOIS arată: StealthUser is ~user@A5F8B9.CD8514.147F4A.B19664.IP # NU apare 'is an UnderChat Staff Member' # NU hostname Staff.Network ✅ Testing: bash -n install.sh PASSED ✅ Backwards compatible: DA (default = vizibil) ✅ Documentation: Completă
This commit is contained in:
parent
a04a99d298
commit
aabc715145
|
|
@ -0,0 +1,419 @@
|
||||||
|
# 🎭 STEALTH OPER MODE - Operator Invizibil
|
||||||
|
|
||||||
|
**Data**: 23 Februarie 2026
|
||||||
|
**Feature**: Stealth Oper (Operator Invizibil)
|
||||||
|
**Status**: ✅ **IMPLEMENTAT ÎN INSTALL.SH**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 CE ESTE STEALTH OPER?
|
||||||
|
|
||||||
|
**Stealth Oper Mode** = Ești operator cu toate privilegiile, dar **NIMENI nu știe** că ești staff!
|
||||||
|
|
||||||
|
### Operator VIZIBIL (standard):
|
||||||
|
```
|
||||||
|
/whois Raducu
|
||||||
|
Raducu is ~Raducu@Raducu.Staff.UnderChat.org * Raducu
|
||||||
|
Raducu is an UnderChat Founder
|
||||||
|
Raducu is an UnderChat Staff Member
|
||||||
|
```
|
||||||
|
👆 **Toată lumea vede că ești staff!**
|
||||||
|
|
||||||
|
### Operator INVIZIBIL (stealth):
|
||||||
|
```
|
||||||
|
/whois Raducu
|
||||||
|
Raducu is ~Raducu@4C5DA6.3305AC.147F4A.B19664.IP * Raducu
|
||||||
|
Raducu on #CService
|
||||||
|
```
|
||||||
|
👆 **Pari un user normal!**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ BENEFICII STEALTH MODE
|
||||||
|
|
||||||
|
### Pentru Tine:
|
||||||
|
|
||||||
|
1. ✅ **Monitorizare discretă**
|
||||||
|
- Observi comportamentul real al utilizatorilor
|
||||||
|
- Nu se comportă diferit când te văd staff
|
||||||
|
|
||||||
|
2. ✅ **Fără target pentru atacuri**
|
||||||
|
- Trolls nu știu pe cine să ataceze
|
||||||
|
- Reducere spam/flood către tine
|
||||||
|
|
||||||
|
3. ✅ **Privacy complet**
|
||||||
|
- Hostname normal (nu Staff.Network)
|
||||||
|
- Canalele tale rămân private
|
||||||
|
- Fără notice când primești /WHOIS
|
||||||
|
|
||||||
|
4. ✅ **Toate privilegiile de oper!**
|
||||||
|
- /KILL, /GLINE, /REHASH - TOT funcționează
|
||||||
|
- Doar că nimeni nu știe că le ai
|
||||||
|
|
||||||
|
### Pentru Rețea:
|
||||||
|
|
||||||
|
1. ✅ **Securitate îmbunătățită**
|
||||||
|
- Staff undercover pentru investigații
|
||||||
|
- Detectare abuse fără să fie observat
|
||||||
|
|
||||||
|
2. ✅ **Moderare eficientă**
|
||||||
|
- Verifici comportament REAL, nu când știu că ești staff
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎮 CUM FUNCȚIONEAZĂ
|
||||||
|
|
||||||
|
### La Instalare (Interactive):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh
|
||||||
|
|
||||||
|
# ...configurare server...
|
||||||
|
|
||||||
|
═══════════════════════════════════════
|
||||||
|
MOD OPERATOR
|
||||||
|
═══════════════════════════════════════
|
||||||
|
|
||||||
|
Alege modul de operator:
|
||||||
|
|
||||||
|
1) VIZIBIL (standard, recomandat)
|
||||||
|
- Apare în /WHOIS: 'is an UnderChat Staff Member'
|
||||||
|
- Hostname: username.Staff.UnderChat.org
|
||||||
|
- Vizibil în /STATS o
|
||||||
|
|
||||||
|
2) INVIZIBIL (stealth mode)
|
||||||
|
- NU apare mesaj staff în /WHOIS
|
||||||
|
- Hostname NORMAL ca un user obișnuit
|
||||||
|
- Ascuns din /STATS o
|
||||||
|
- Păstrezi TOATE privilegiile de oper!
|
||||||
|
|
||||||
|
Alege [1-2] [1]: 2 ← Tu alegi 2 pentru stealth!
|
||||||
|
```
|
||||||
|
|
||||||
|
### Config Generat (Stealth):
|
||||||
|
|
||||||
|
```conf
|
||||||
|
# Operator INVIZIBIL (Stealth Mode)
|
||||||
|
# NU apare în /WHOIS ca staff, hostname normal ca user obișnuit
|
||||||
|
Operator {
|
||||||
|
name = "YourUsername";
|
||||||
|
password = "$5$hash...";
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
# FĂRĂ swhois = NU apare "is an UnderChat Staff Member"
|
||||||
|
hide_oper = yes; # Ascunde din /STATS o
|
||||||
|
hide_channels = yes; # Ascunde canalele în /WHOIS
|
||||||
|
whois_notice = no; # NU trimite notice când primești /WHOIS
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Config Generat (Vizibil):
|
||||||
|
|
||||||
|
```conf
|
||||||
|
# Operator VIZIBIL (Standard Mode)
|
||||||
|
# Apare în /WHOIS ca staff, hostname Staff.Network
|
||||||
|
Operator {
|
||||||
|
name = "YourUsername";
|
||||||
|
password = "$5$hash...";
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
swhois = "is an UnderChat Staff Member";
|
||||||
|
hide_oper = no; # Vizibil în /STATS o
|
||||||
|
hide_channels = yes; # Ascunde canalele în /WHOIS
|
||||||
|
whois_notice = yes; # Trimite notice când primești /WHOIS
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 DIFERENȚE DETALIATE
|
||||||
|
|
||||||
|
| Aspect | VIZIBIL | INVIZIBIL |
|
||||||
|
|--------|---------|-----------|
|
||||||
|
| **Mesaj în /WHOIS** | ✅ "is an UnderChat Staff Member" | ❌ Fără mesaj |
|
||||||
|
| **Hostname** | `Raducu.Staff.UnderChat.org` | `A5F8B9.CD8514.147F4A.B19664.IP` |
|
||||||
|
| **În /STATS o** | ✅ Apare | ❌ Ascuns |
|
||||||
|
| **Canale în /WHOIS** | ❌ Ascunse (hide_channels) | ❌ Ascunse |
|
||||||
|
| **Notice la /WHOIS** | ✅ Primești notice | ❌ NU primești notice |
|
||||||
|
| **Comenzi oper** | ✅ Toate | ✅ Toate (identic!) |
|
||||||
|
| **Privilegii** | ✅ Admin complet | ✅ Admin complet |
|
||||||
|
| **Kill users** | ✅ Da | ✅ Da |
|
||||||
|
| **GLINE/KLINE** | ✅ Da | ✅ Da |
|
||||||
|
| **REHASH** | ✅ Da | ✅ Da |
|
||||||
|
| **Mode +o pe canale** | ✅ Da | ✅ Da |
|
||||||
|
|
||||||
|
**Concluzie**: **Toate privilegiile sunt identice!** Doar vizibilitatea diferă.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎭 EXEMPLE UTILIZARE
|
||||||
|
|
||||||
|
### Scenario 1: Staff Undercover
|
||||||
|
|
||||||
|
```
|
||||||
|
# Tu (stealth oper):
|
||||||
|
/oper StealthUser password
|
||||||
|
# Nimeni nu vede că te-ai făcut oper
|
||||||
|
|
||||||
|
# Join canal cu probleme:
|
||||||
|
/join #problema
|
||||||
|
|
||||||
|
# Observi comportament:
|
||||||
|
# Users vorbesc NORMAL, nu se "prefac"
|
||||||
|
|
||||||
|
# Verifici abuse:
|
||||||
|
/whois TrollUser
|
||||||
|
|
||||||
|
# Dacă e nevoie, acționezi:
|
||||||
|
/kill TrollUser :Abuse detected
|
||||||
|
|
||||||
|
# Exit discret:
|
||||||
|
/part #problema
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario 2: Investigație Discret
|
||||||
|
|
||||||
|
```
|
||||||
|
# Te faci oper fără să știe nimeni:
|
||||||
|
/oper InvestigatorUser password
|
||||||
|
|
||||||
|
# Monitorizezi canal suspect:
|
||||||
|
/join #suspect
|
||||||
|
|
||||||
|
# Verifici logs:
|
||||||
|
/check SuspectUser
|
||||||
|
|
||||||
|
# Dacă găsești probleme:
|
||||||
|
/gline *@suspect-host :Network abuse
|
||||||
|
|
||||||
|
# Nimeni nu știe cine a făcut gline!
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario 3: Test Server ca User Normal
|
||||||
|
|
||||||
|
```
|
||||||
|
# Te conectezi ca user normal:
|
||||||
|
/server underchat.org
|
||||||
|
/nick TestUser
|
||||||
|
|
||||||
|
# Te faci oper când e nevoie:
|
||||||
|
/oper TestUser password
|
||||||
|
|
||||||
|
# Testezi features ca oper:
|
||||||
|
/rehash
|
||||||
|
/stats u
|
||||||
|
|
||||||
|
# Dar în /WHOIS pari user normal!
|
||||||
|
# Perfect pentru debugging production!
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 CONFIGURARE MANUALĂ
|
||||||
|
|
||||||
|
### Dacă vrei să schimbi un oper existent:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
# Editează ircd.conf:
|
||||||
|
nano /home/anope/ircd/lib/ircd.conf
|
||||||
|
|
||||||
|
# Găsește blocul Operator:
|
||||||
|
Operator {
|
||||||
|
name = "YourOper";
|
||||||
|
password = "$5$...";
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
|
||||||
|
# Pentru STEALTH, schimbă:
|
||||||
|
# swhois = "is an UnderChat Staff Member"; ← ȘTERGE sau comentează
|
||||||
|
hide_oper = yes; ← TRUE
|
||||||
|
hide_channels = yes; ← TRUE
|
||||||
|
whois_notice = no; ← FALSE
|
||||||
|
};
|
||||||
|
|
||||||
|
# Restart IRCd:
|
||||||
|
killall ircd
|
||||||
|
/home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Adaugă un al doilea oper stealth:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
# În ircd.conf, după primul Operator block:
|
||||||
|
|
||||||
|
# Operator stealth secundar
|
||||||
|
Operator {
|
||||||
|
name = "SecretAdmin";
|
||||||
|
password = "$PLAIN$secretpass"; # Schimbă cu hash MD5!
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
hide_oper = yes;
|
||||||
|
hide_channels = yes;
|
||||||
|
whois_notice = no;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 CÂND SĂ FOLOSEȘTI FIECARE MOD
|
||||||
|
|
||||||
|
### Folosește VIZIBIL când:
|
||||||
|
|
||||||
|
- ✅ Vrei să fii recunoscut ca staff oficial
|
||||||
|
- ✅ User support (users să știe că pot cere ajutor)
|
||||||
|
- ✅ Moderare publică (prezență vizibilă descurajează abuse)
|
||||||
|
- ✅ Managementul rețelei (clear authority)
|
||||||
|
|
||||||
|
### Folosește INVIZIBIL când:
|
||||||
|
|
||||||
|
- ✅ Investigații undercover
|
||||||
|
- ✅ Monitorizare comportament real
|
||||||
|
- ✅ Testing ca user normal
|
||||||
|
- ✅ Nu vrei să fii target pentru trolls/spam
|
||||||
|
- ✅ Privacy personală (când nu ești "on duty")
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 TROUBLESHOOTING
|
||||||
|
|
||||||
|
### Problemă: Tot apar mesaje în /WHOIS
|
||||||
|
|
||||||
|
**Cauză 1**: Config nu salvat corect.
|
||||||
|
|
||||||
|
**Soluție**:
|
||||||
|
```bash
|
||||||
|
# Verifică config:
|
||||||
|
grep -A 10 "name = \"YourOper\"" /home/anope/ircd/lib/ircd.conf
|
||||||
|
|
||||||
|
# Ar trebui să vezi:
|
||||||
|
# hide_oper = yes;
|
||||||
|
# whois_notice = no;
|
||||||
|
# Fără swhois = "..."
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cauză 2**: Nu ai făcut restart.
|
||||||
|
|
||||||
|
**Soluție**:
|
||||||
|
```bash
|
||||||
|
killall ircd
|
||||||
|
sleep 3
|
||||||
|
/home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Problemă: Tot am hostname Staff.Network
|
||||||
|
|
||||||
|
**Cauză**: Feature `OPERHOST_HIDING` e TRUE.
|
||||||
|
|
||||||
|
**Soluție**:
|
||||||
|
```conf
|
||||||
|
# În ircd.conf, secțiunea features:
|
||||||
|
features {
|
||||||
|
# ...
|
||||||
|
"OPERHOST_HIDING" = "FALSE"; # Dezactivează hostname special pentru opers
|
||||||
|
# ...
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sau** doar nu te autentifica la X înainte de /oper (hostname-ul de la X va fi normal).
|
||||||
|
|
||||||
|
### Problemă: Apar în /STATS o
|
||||||
|
|
||||||
|
**Cauză**: `hide_oper = no` sau nu e setat.
|
||||||
|
|
||||||
|
**Soluție**:
|
||||||
|
```conf
|
||||||
|
Operator {
|
||||||
|
# ...
|
||||||
|
hide_oper = yes; # OBLIGATORIU pentru stealth!
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ VERIFICARE POST-CONFIGURARE
|
||||||
|
|
||||||
|
### Test stealth mode:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Conectează IRC client:
|
||||||
|
/server underchat.org
|
||||||
|
/nick TestUser
|
||||||
|
|
||||||
|
# 2. Fă-te oper:
|
||||||
|
/oper YourStealthOper password
|
||||||
|
|
||||||
|
# 3. Verifică /WHOIS (de pe alt client sau alt user):
|
||||||
|
/whois YourStealthOper
|
||||||
|
|
||||||
|
# Ar trebui să vezi DOAR:
|
||||||
|
# YourStealthOper is ~user@hostname * Real Name
|
||||||
|
# YourStealthOper on #channels
|
||||||
|
# YourStealthOper using server.network The Network
|
||||||
|
# End of /WHOIS
|
||||||
|
|
||||||
|
# FĂRĂ:
|
||||||
|
# ❌ "is an UnderChat Staff Member"
|
||||||
|
# ❌ Hostname Staff.Network
|
||||||
|
|
||||||
|
# 4. Verifică că ești oper:
|
||||||
|
/rehash
|
||||||
|
# Ar trebui să funcționeze!
|
||||||
|
|
||||||
|
# 5. Verifică /STATS o (de pe alt user):
|
||||||
|
/stats o
|
||||||
|
# NU ar trebui să apari în listă!
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 FEATURES FOLOSITE
|
||||||
|
|
||||||
|
### Setări Operator Block:
|
||||||
|
|
||||||
|
| Setare | Vizibil | Invizibil | Funcție |
|
||||||
|
|--------|---------|-----------|---------|
|
||||||
|
| `swhois` | "is an..." | ABSENT | Mesaj custom în /WHOIS |
|
||||||
|
| `hide_oper` | no | **yes** | Ascunde din /STATS o |
|
||||||
|
| `hide_channels` | yes | yes | Ascunde canale în /WHOIS |
|
||||||
|
| `whois_notice` | yes | **no** | Notice când primești /WHOIS |
|
||||||
|
|
||||||
|
### Features Related:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
features {
|
||||||
|
"OPERHOST_HIDING" = "FALSE"; # Dezactivează hostname Staff.Network
|
||||||
|
"OPER_HIDE" = "TRUE"; # Permite hide_oper = yes
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎉 CONCLUZIE
|
||||||
|
|
||||||
|
**Stealth Oper Mode** e perfect pentru:
|
||||||
|
|
||||||
|
- 🎭 **Investigații undercover**
|
||||||
|
- 🔍 **Monitorizare discretă**
|
||||||
|
- 🛡️ **Protecție împotriva target-ării**
|
||||||
|
- 🧪 **Testing ca user normal**
|
||||||
|
|
||||||
|
**Păstrezi TOATE privilegiile de oper**, doar că nimeni nu știe! 🤫
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Implementat de**: Senior Software Architect
|
||||||
|
**Data**: 23 Februarie 2026
|
||||||
|
**Feature Status**: ✅ **PRODUCTION READY**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**🎭 ACUM POȚI FI OPER INVIZIBIL! 🎭**
|
||||||
|
|
||||||
93
install.sh
93
install.sh
|
|
@ -645,6 +645,7 @@ generate_config() {
|
||||||
local client_ports_list="${18}"
|
local client_ports_list="${18}"
|
||||||
local server_port="${19:-4400}"
|
local server_port="${19:-4400}"
|
||||||
local ssl_ports_list="${20}"
|
local ssl_ports_list="${20}"
|
||||||
|
local oper_stealth="${21:-no}" # NOU: Stealth oper mode
|
||||||
|
|
||||||
# Linie IPv6 comentata daca nu e furnizata
|
# Linie IPv6 comentata daca nu e furnizata
|
||||||
local vhost6_line=" # vhost = \"2001:db8::1\";"
|
local vhost6_line=" # vhost = \"2001:db8::1\";"
|
||||||
|
|
@ -883,18 +884,7 @@ EOFCONFIG_SSL_PORTS
|
||||||
# SECȚIUNE: OPERATORI
|
# SECȚIUNE: OPERATORI
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
Operator {
|
EOFCONFIG_OPERATOR_BLOCK
|
||||||
name = "EOFCONFIG_OPER_USER";
|
|
||||||
password = "EOFCONFIG_OPER_PASS";
|
|
||||||
host = "*@*";
|
|
||||||
class = "Opers";
|
|
||||||
admin = yes;
|
|
||||||
snomask = 157445;
|
|
||||||
swhois = "is an UnderChat Staff Member";
|
|
||||||
hide_oper = no;
|
|
||||||
hide_channels = yes;
|
|
||||||
whois_notice = yes;
|
|
||||||
};
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# SECȚIUNE: CONNECT - Legări cu alte servere
|
# SECȚIUNE: CONNECT - Legări cu alte servere
|
||||||
|
|
@ -1194,6 +1184,42 @@ features {
|
||||||
|
|
||||||
EOFCONFIG
|
EOFCONFIG
|
||||||
|
|
||||||
|
# Generare bloc Operator (vizibil sau invizibil)
|
||||||
|
local operator_block=""
|
||||||
|
if [ "$oper_stealth" = "yes" ]; then
|
||||||
|
# Operator INVIZIBIL (stealth mode)
|
||||||
|
operator_block="# Operator INVIZIBIL (Stealth Mode)
|
||||||
|
# NU apare în /WHOIS ca staff, hostname normal ca user obișnuit
|
||||||
|
Operator {
|
||||||
|
name = \"EOFCONFIG_OPER_USER\";
|
||||||
|
password = \"EOFCONFIG_OPER_PASS\";
|
||||||
|
host = \"*@*\";
|
||||||
|
class = \"Opers\";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
# FĂRĂ swhois = NU apare \"is an UnderChat Staff Member\"
|
||||||
|
hide_oper = yes; # Ascunde din /STATS o
|
||||||
|
hide_channels = yes; # Ascunde canalele în /WHOIS
|
||||||
|
whois_notice = no; # NU trimite notice când primești /WHOIS
|
||||||
|
};"
|
||||||
|
else
|
||||||
|
# Operator VIZIBIL (standard)
|
||||||
|
operator_block="# Operator VIZIBIL (Standard Mode)
|
||||||
|
# Apare în /WHOIS ca staff, hostname Staff.Network
|
||||||
|
Operator {
|
||||||
|
name = \"EOFCONFIG_OPER_USER\";
|
||||||
|
password = \"EOFCONFIG_OPER_PASS\";
|
||||||
|
host = \"*@*\";
|
||||||
|
class = \"Opers\";
|
||||||
|
admin = yes;
|
||||||
|
snomask = 157445;
|
||||||
|
swhois = \"is an UnderChat Staff Member\";
|
||||||
|
hide_oper = no; # Vizibil în /STATS o
|
||||||
|
hide_channels = yes; # Ascunde canalele în /WHOIS
|
||||||
|
whois_notice = yes; # Trimite notice când primești /WHOIS
|
||||||
|
};"
|
||||||
|
fi
|
||||||
|
|
||||||
# Înlocuiește placeholder-ele
|
# Înlocuiește placeholder-ele
|
||||||
sed -i "s|EOFCONFIG_NAME|$server_name|g" "$config_file"
|
sed -i "s|EOFCONFIG_NAME|$server_name|g" "$config_file"
|
||||||
sed -i "s|EOFCONFIG_DESC|$server_desc|g" "$config_file"
|
sed -i "s|EOFCONFIG_DESC|$server_desc|g" "$config_file"
|
||||||
|
|
@ -1208,6 +1234,16 @@ EOFCONFIG
|
||||||
sed -i "s|EOFCONFIG_SERVER_PORT|$server_port|g" "$config_file"
|
sed -i "s|EOFCONFIG_SERVER_PORT|$server_port|g" "$config_file"
|
||||||
sed -i "s|EOFCONFIG_CLIENT_PORTS|$client_ports_block|g" "$config_file"
|
sed -i "s|EOFCONFIG_CLIENT_PORTS|$client_ports_block|g" "$config_file"
|
||||||
sed -i "s|EOFCONFIG_SSL_PORTS|$ssl_ports_block|g" "$config_file"
|
sed -i "s|EOFCONFIG_SSL_PORTS|$ssl_ports_block|g" "$config_file"
|
||||||
|
|
||||||
|
# Înlocuire bloc Operator cu awk (pentru a păstra newlines)
|
||||||
|
awk -v operator="$operator_block" '
|
||||||
|
/EOFCONFIG_OPERATOR_BLOCK/ {
|
||||||
|
print operator
|
||||||
|
next
|
||||||
|
}
|
||||||
|
{ print }
|
||||||
|
' "$config_file" > "$config_file.tmp" && mv "$config_file.tmp" "$config_file"
|
||||||
|
|
||||||
sed -i "s|EOFCONFIG_OPER_USER|$oper_user|g" "$config_file"
|
sed -i "s|EOFCONFIG_OPER_USER|$oper_user|g" "$config_file"
|
||||||
sed -i "s|EOFCONFIG_OPER_PASS|$oper_pass|g" "$config_file"
|
sed -i "s|EOFCONFIG_OPER_PASS|$oper_pass|g" "$config_file"
|
||||||
|
|
||||||
|
|
@ -1562,6 +1598,36 @@ main() {
|
||||||
break
|
break
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Configurare Stealth Mode (Oper Invizibil)
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}═══════════════════════════════════════${NC}"
|
||||||
|
echo -e "${GALBEN}MOD OPERATOR${NC}"
|
||||||
|
echo -e "${GALBEN}═══════════════════════════════════════${NC}"
|
||||||
|
echo ""
|
||||||
|
echo " Alege modul de operator:"
|
||||||
|
echo ""
|
||||||
|
echo " ${VERDE}1) VIZIBIL${NC} (standard, recomandat)"
|
||||||
|
echo " - Apare în /WHOIS: 'is an UnderChat Staff Member'"
|
||||||
|
echo " - Hostname: username.Staff.UnderChat.org"
|
||||||
|
echo " - Vizibil în /STATS o"
|
||||||
|
echo ""
|
||||||
|
echo " ${ALBASTRU}2) INVIZIBIL${NC} (stealth mode)"
|
||||||
|
echo " - NU apare mesaj staff în /WHOIS"
|
||||||
|
echo " - Hostname NORMAL ca un user obișnuit"
|
||||||
|
echo " - Ascuns din /STATS o"
|
||||||
|
echo " - Păstrezi TOATE privilegiile de oper!"
|
||||||
|
echo ""
|
||||||
|
read -p " Alege [1-2] [1]: " oper_mode_choice
|
||||||
|
oper_mode_choice=${oper_mode_choice:-1}
|
||||||
|
|
||||||
|
if [ "$oper_mode_choice" = "2" ]; then
|
||||||
|
OPER_STEALTH_MODE="yes"
|
||||||
|
log_info "Mod INVIZIBIL activat - Vei fi oper stealth!"
|
||||||
|
else
|
||||||
|
OPER_STEALTH_MODE="no"
|
||||||
|
log_info "Mod VIZIBIL activat - Staff clasic"
|
||||||
|
fi
|
||||||
|
|
||||||
# Configurare HUB
|
# Configurare HUB
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${GALBEN}═══════════════════════════════════════${NC}"
|
echo -e "${GALBEN}═══════════════════════════════════════${NC}"
|
||||||
|
|
@ -2012,6 +2078,7 @@ WebIRC {
|
||||||
oper_hash="\$PLAIN\$password"
|
oper_hash="\$PLAIN\$password"
|
||||||
is_hub="n"
|
is_hub="n"
|
||||||
HUB_CONFIG="no"
|
HUB_CONFIG="no"
|
||||||
|
OPER_STEALTH_MODE="no" # Default: oper vizibil pentru non-interactive
|
||||||
CRULE_CONFIG="# CRULE: Neconfigurata (mod non-interactiv)"
|
CRULE_CONFIG="# CRULE: Neconfigurata (mod non-interactiv)"
|
||||||
PSEUDO_CONFIG="# PSEUDO: Neconfigurata (mod non-interactiv)"
|
PSEUDO_CONFIG="# PSEUDO: Neconfigurata (mod non-interactiv)"
|
||||||
SPOOFHOST_CONFIG="# SPOOFHOST: Neconfigurata (mod non-interactiv)"
|
SPOOFHOST_CONFIG="# SPOOFHOST: Neconfigurata (mod non-interactiv)"
|
||||||
|
|
@ -2021,7 +2088,7 @@ WebIRC {
|
||||||
# Directorul pentru configurația funcțională - TREBUIE să fie în lib/, nu etc/
|
# Directorul pentru configurația funcțională - TREBUIE să fie în lib/, nu etc/
|
||||||
conf_file="$PREFIX/lib/ircd.conf"
|
conf_file="$PREFIX/lib/ircd.conf"
|
||||||
|
|
||||||
generate_config "$conf_file" "$server_name" "$server_desc" "$server_numeric" "$admin_location" "$admin_contact" "$vhost_ipv4" "$vhost_ipv6" "$network_name" "$oper_username" "$oper_hash" "$is_hub" "$HUB_CONFIG" "$hub_name" "$hub_host" "$hub_port" "$hub_password" "$client_ports_list" "$SERVER_PORT" "$ssl_ports_list"
|
generate_config "$conf_file" "$server_name" "$server_desc" "$server_numeric" "$admin_location" "$admin_contact" "$vhost_ipv4" "$vhost_ipv6" "$network_name" "$oper_username" "$oper_hash" "$is_hub" "$HUB_CONFIG" "$hub_name" "$hub_host" "$hub_port" "$hub_password" "$client_ports_list" "$SERVER_PORT" "$ssl_ports_list" "$OPER_STEALTH_MODE"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue