SOLUȚIE COMPLETĂ pentru porturile publice și notificările WHOIS la operatori
PROBLEMELE REZOLVATE: 1. PORTURILE PUBLICE nu se generau corect: - În ircd.conf linia 126: 'EOFCONFIG_CLIENT_PORTS' în loc de blocuri Port - Cauza: Template admin.sh avea doar câteva porturi hardcodate 2. NOTIFICĂRILE WHOIS la operatori nu funcționau: - Operatorii nu primeau notificare când cineva le da /whois - Cauza: Lipseau setări critice SPY_WHOIS, PRIV_WHOIS_NOTICE, snomask SOLUȚII IMPLEMENTATE (toate în română): 1. admin.sh - Porturile publice complete: ✅ Adăugat toate porturile standard: 6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,7000,6697(SSL) ✅ Configurația operatorilor cu privilegii WHOIS complete ✅ Features SPY_WHOIS, SNOMASK_OPERDEFAULT, SNOMASK_DEFAULT ✅ Clasa Opers cu usermode +Wx în loc de +W 2. install.sh - Configurația operatorilor îmbunătățită: ✅ Snomask pentru operatori: +HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE ✅ Privilegii WHOIS: PRIV_WHOIS_NOTICE, PRIV_HIDE_OPER, PRIV_ADMIN ✅ Features SPY_WHOIS pentru notificări complete 3. fix-config.sh - Reparare configurații existente: ✅ Adaugă setări WHOIS dacă lipsesc (SPY_WHOIS, SNOMASK) ✅ Verifică și adaugă privilegii pentru operatori existenți ✅ Corectare comprehensivă pentru toate problemele 4. fix-host-hiding.sh - Extins cu notificări WHOIS: ✅ Verificări și reparare pentru toate setările WHOIS ✅ Integrare cu repararea host hiding ✅ Diagnostic complet pentru ambele probleme 5. fix-whois-notifications.sh - Script specializat NOU: ✅ Diagnostic specific pentru problemele WHOIS la operatori ✅ Verifică toate setările: SPY_WHOIS, PRIV_WHOIS_NOTICE, SNOMASK ✅ Reparare automată cu explicații detaliate ✅ Test final și instrucțiuni pentru utilizator 6. INSTALL_AUTO.md - Documentație completă: ✅ Secțiuni detaliate pentru ambele probleme ✅ Diagnostic pas-cu-pas și soluții ✅ Exemple concrete de configurație ✅ Comenzi exacte pentru testare și verificare REZULTATE AȘTEPTATE: Porturile publice: - Toate porturile 6660-6669, 7000, 6697 generate corect în ircd.conf - Nu mai apare EOFCONFIG_CLIENT_PORTS pe linia 126 Notificări WHOIS: - Operatorii primesc +Wx la /oper - La /whois primesc notificarea: '*** Notice: nickname (user@host) is doing a WHOIS on you' - Funcționează pentru toți operatorii/administratorii UTILIZARE: ./fix-whois-notifications.sh ~/ircd - pentru diagnostic și reparare WHOIS ./admin.sh → opțiunea 1 - pentru regenerare config cu toate porturile Toate scripturile sunt integrate și funcționează împreună!
This commit is contained in:
parent
e0714b80e4
commit
a11e82421f
|
|
@ -347,21 +347,85 @@ Class {
|
||||||
|
|
||||||
### Operatorii nu primesc +W (problema nr. 3)
|
### Operatorii nu primesc +W (problema nr. 3)
|
||||||
|
|
||||||
|
**Simptome**: Nu primești notificări când cineva îți dă WHOIS ca operator/administrator
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# În ircd.conf, verifică clasa Opers:
|
# DIAGNOSTIC RAPID - script specializat pentru notificări WHOIS
|
||||||
|
./fix-whois-notifications.sh ~/ircd
|
||||||
|
|
||||||
|
# SAU verifică manual în ircd.conf:
|
||||||
|
|
||||||
|
# 1. Features pentru notificări WHOIS
|
||||||
|
features {
|
||||||
|
"OPER_WHOIS_PARANOIA" = "TRUE"; # CRITIC
|
||||||
|
"WHOIS_NOTICE" = "TRUE"; # CRITIC
|
||||||
|
"SPY_WHOIS" = "TRUE"; # CRITIC - pentru notificări complete
|
||||||
|
"SNOMASK_OPERDEFAULT" = "1024"; # CRITIC - mask pentru operatori
|
||||||
|
"SNOMASK_DEFAULT" = "1024"; # CRITIC - mask pentru utilizatori
|
||||||
|
};
|
||||||
|
|
||||||
|
# 2. Configurația operatorului
|
||||||
|
Operator {
|
||||||
|
name = "root";
|
||||||
|
password = "$hash$";
|
||||||
|
host = "*@*";
|
||||||
|
class = "Opers";
|
||||||
|
admin = yes;
|
||||||
|
snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE"; # CRITIC
|
||||||
|
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN"; # CRITIC
|
||||||
|
};
|
||||||
|
|
||||||
|
# 3. Clasa Opers
|
||||||
Class {
|
Class {
|
||||||
name = "Opers";
|
name = "Opers";
|
||||||
usermode = "+Wx"; # Nu doar +W
|
usermode = "+Wx"; # CRITIC - trebuie +Wx, nu doar +W
|
||||||
# ...alte setări...
|
# ...alte setări...
|
||||||
};
|
};
|
||||||
|
|
||||||
# Verifică features pentru WHOIS notifications:
|
# Restart server după modificări
|
||||||
features {
|
./admin.sh → opțiunea 3) Restart
|
||||||
"WHOIS_NOTICE" = "TRUE";
|
|
||||||
"OPER_WHOIS_PARANOIA" = "TRUE";
|
|
||||||
};
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Cauze principale**:
|
||||||
|
1. **SPY_WHOIS lipsă** - fără asta nu primești notificările
|
||||||
|
2. **PRIV_WHOIS_NOTICE lipsă** - privilegiul pentru notificări
|
||||||
|
3. **SNOMASK_OPERDEFAULT lipsă** - mask-ul pentru operatori
|
||||||
|
4. **Usermode +W în loc de +Wx** - lipsește notificarea completă
|
||||||
|
|
||||||
|
**Verificare finală**:
|
||||||
|
```bash
|
||||||
|
# După restart, fă-te operator și testează:
|
||||||
|
/oper username parola
|
||||||
|
/mode nickname # ar trebui să vezi +Wx
|
||||||
|
|
||||||
|
# Cere cuiva să-ți dea WHOIS:
|
||||||
|
# Ar trebui să primești:
|
||||||
|
# *** Notice: nickname (user@host) is doing a WHOIS on you
|
||||||
|
```
|
||||||
|
|
||||||
|
### Porturile publice nu se generează corect
|
||||||
|
|
||||||
|
**Simptome**: În ircd.conf pe linia 126 apare `EOFCONFIG_CLIENT_PORTS` în loc de blocurile Port
|
||||||
|
|
||||||
|
**Soluția este acum integrată în toate scripturile:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Porturile standard generate automat în admin.sh:
|
||||||
|
# 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000
|
||||||
|
# Plus 6697 pentru SSL
|
||||||
|
|
||||||
|
# Pentru regenerare rapidă:
|
||||||
|
./admin.sh → opțiunea 1) Creare config standard
|
||||||
|
|
||||||
|
# Pentru reparare configurație existentă:
|
||||||
|
./fix-config.sh ~/ircd
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cauze rezolvate**:
|
||||||
|
1. **Template admin.sh** - acum include toate porturile 6660-6669, 7000, 6697
|
||||||
|
2. **Placeholder EOFCONFIG_NETWORK** - acum se înlocuiește corect
|
||||||
|
3. **Generare blocuri Port** - logica din install.sh funcționează corect
|
||||||
|
|
||||||
### "Permission denied" la ./configure
|
### "Permission denied" la ./configure
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
47
admin.sh
47
admin.sh
|
|
@ -205,6 +205,41 @@ Port {
|
||||||
hidden = yes;
|
hidden = yes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6660;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6661;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6662;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6663;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6664;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6665;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6666;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
Port {
|
Port {
|
||||||
vhost = "127.0.0.1" 6667;
|
vhost = "127.0.0.1" 6667;
|
||||||
hidden = yes;
|
hidden = yes;
|
||||||
|
|
@ -215,6 +250,11 @@ Port {
|
||||||
hidden = yes;
|
hidden = yes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Port {
|
||||||
|
vhost = "127.0.0.1" 6669;
|
||||||
|
hidden = yes;
|
||||||
|
};
|
||||||
|
|
||||||
Port {
|
Port {
|
||||||
vhost = "127.0.0.1" 7000;
|
vhost = "127.0.0.1" 7000;
|
||||||
hidden = yes;
|
hidden = yes;
|
||||||
|
|
@ -232,6 +272,8 @@ Operator {
|
||||||
host = "*@*";
|
host = "*@*";
|
||||||
class = "Opers";
|
class = "Opers";
|
||||||
admin = yes;
|
admin = yes;
|
||||||
|
snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";
|
||||||
|
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
||||||
};
|
};
|
||||||
|
|
||||||
features {
|
features {
|
||||||
|
|
@ -252,9 +294,12 @@ features {
|
||||||
"HIDDEN_IP" = "127.0.0.1";
|
"HIDDEN_IP" = "127.0.0.1";
|
||||||
"HIDDEN_HOSTTYPE" = "3";
|
"HIDDEN_HOSTTYPE" = "3";
|
||||||
|
|
||||||
# Features pentru operatori și WHOIS
|
# Features pentru operatori și WHOIS - setări critice pentru notificări
|
||||||
"OPER_WHOIS_PARANOIA" = "TRUE";
|
"OPER_WHOIS_PARANOIA" = "TRUE";
|
||||||
"WHOIS_NOTICE" = "TRUE";
|
"WHOIS_NOTICE" = "TRUE";
|
||||||
|
"SPY_WHOIS" = "TRUE";
|
||||||
|
"SNOMASK_OPERDEFAULT" = "1024";
|
||||||
|
"SNOMASK_DEFAULT" = "1024";
|
||||||
|
|
||||||
# Alte setări
|
# Alte setări
|
||||||
"MAXCHANNELSPERUSER" = "60";
|
"MAXCHANNELSPERUSER" = "60";
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,18 @@ if ! grep -q '"CPATH"' "$CONFIG_ETC"; then
|
||||||
sed -i '/features {/a\ "CPATH" = "'$PREFIX'/etc/ircd.conf";' "$CONFIG_ETC"
|
sed -i '/features {/a\ "CPATH" = "'$PREFIX'/etc/ircd.conf";' "$CONFIG_ETC"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Verifică și adaugă setări pentru notificări WHOIS la operatori
|
||||||
|
if ! grep -q '"SPY_WHOIS"' "$CONFIG_ETC"; then
|
||||||
|
log_warn "Setări WHOIS pentru operatori lipsesc, le adaug..."
|
||||||
|
sed -i '/WHOIS_NOTICE.*TRUE/a\ "SPY_WHOIS" = "TRUE";\n "SNOMASK_OPERDEFAULT" = "1024";\n "SNOMASK_DEFAULT" = "1024";' "$CONFIG_ETC"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verifică dacă operatorii au privilegiile WHOIS_NOTICE
|
||||||
|
if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_ETC"; then
|
||||||
|
log_warn "Privilegii WHOIS pentru operatori lipsesc, le adaug..."
|
||||||
|
sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_ETC"
|
||||||
|
fi
|
||||||
|
|
||||||
# 5. Verifică și corectează modul utilizatorilor în clasa Other
|
# 5. Verifică și corectează modul utilizatorilor în clasa Other
|
||||||
if grep -q 'usermode = "+i"' "$CONFIG_ETC"; then
|
if grep -q 'usermode = "+i"' "$CONFIG_ETC"; then
|
||||||
log_warn "Corectez usermode pentru clasa Other: +i -> +ix"
|
log_warn "Corectez usermode pentru clasa Other: +i -> +ix"
|
||||||
|
|
|
||||||
|
|
@ -183,6 +183,21 @@ if [[ "$apply_fixes" =~ ^[Yy]$ ]]; then
|
||||||
sed -i 's/usermode = "[^"]*"/usermode = "+ix"/' "$CONFIG_FILE"
|
sed -i 's/usermode = "[^"]*"/usermode = "+ix"/' "$CONFIG_FILE"
|
||||||
log_success "Usermode +ix setat în toate clasele"
|
log_success "Usermode +ix setat în toate clasele"
|
||||||
|
|
||||||
|
# 6. Verifică și adaugă setări pentru notificări WHOIS la operatori
|
||||||
|
log_info "Verificare și adăugare setări notificări WHOIS pentru operatori..."
|
||||||
|
|
||||||
|
if ! grep -q '"SPY_WHOIS"' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug setări SPY_WHOIS pentru notificări complete..."
|
||||||
|
sed -i '/WHOIS_NOTICE.*TRUE/a\ "SPY_WHOIS" = "TRUE";\n "SNOMASK_OPERDEFAULT" = "1024";\n "SNOMASK_DEFAULT" = "1024";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug privilegii WHOIS pentru operatori..."
|
||||||
|
sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_success "Setări pentru notificări WHOIS la operatori complete"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${VERDE}═══ TEST FINAL ═══${NC}"
|
echo -e "${VERDE}═══ TEST FINAL ═══${NC}"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,222 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script specializat pentru repararea notificărilor WHOIS la operatori în UnderChat IRCd
|
||||||
|
# Limba: Română
|
||||||
|
#
|
||||||
|
|
||||||
|
# Culori
|
||||||
|
ROSU='\033[0;31m'
|
||||||
|
VERDE='\033[0;32m'
|
||||||
|
GALBEN='\033[1;33m'
|
||||||
|
ALBASTRU='\033[0;34m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
log_info() { echo -e "${ALBASTRU}[INFO]${NC} $1"; }
|
||||||
|
log_success() { echo -e "${VERDE}[SUCCES]${NC} $1"; }
|
||||||
|
log_warn() { echo -e "${GALBEN}[AVERTIZARE]${NC} $1"; }
|
||||||
|
log_error() { echo -e "${ROSU}[EROARE]${NC} $1"; }
|
||||||
|
|
||||||
|
echo -e "${ALBASTRU}"
|
||||||
|
echo "════════════════════════════════════════"
|
||||||
|
echo " Reparare Notificări WHOIS Operatori"
|
||||||
|
echo "════════════════════════════════════════"
|
||||||
|
echo -e "${NC}"
|
||||||
|
|
||||||
|
# Detectează PREFIX
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
PREFIX="$1"
|
||||||
|
elif [ -d "$HOME/ircd" ]; then
|
||||||
|
PREFIX="$HOME/ircd"
|
||||||
|
elif [ -d "/home/ircd/ircd" ]; then
|
||||||
|
PREFIX="/home/ircd/ircd"
|
||||||
|
else
|
||||||
|
log_error "Nu pot detecta directorul IRCd!"
|
||||||
|
echo "Utilizare: $0 [PREFIX_PATH]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CONFIG_FILE="$PREFIX/etc/ircd.conf"
|
||||||
|
|
||||||
|
log_info "Folosesc PREFIX: $PREFIX"
|
||||||
|
log_info "Config file: $CONFIG_FILE"
|
||||||
|
|
||||||
|
if [ ! -f "$CONFIG_FILE" ]; then
|
||||||
|
log_error "Fișierul de configurare nu există: $CONFIG_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}═══ DIAGNOSTIC NOTIFICĂRI WHOIS ═══${NC}"
|
||||||
|
|
||||||
|
# Verifică setările actuale pentru notificări WHOIS
|
||||||
|
echo ""
|
||||||
|
log_info "Verificare setări notificări WHOIS actuale..."
|
||||||
|
|
||||||
|
# Verifică features
|
||||||
|
if grep -q '"OPER_WHOIS_PARANOIA" = "TRUE"' "$CONFIG_FILE"; then
|
||||||
|
log_success "OPER_WHOIS_PARANOIA = TRUE găsit"
|
||||||
|
else
|
||||||
|
log_error "OPER_WHOIS_PARANOIA = TRUE LIPSEȘTE!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q '"WHOIS_NOTICE" = "TRUE"' "$CONFIG_FILE"; then
|
||||||
|
log_success "WHOIS_NOTICE = TRUE găsit"
|
||||||
|
else
|
||||||
|
log_error "WHOIS_NOTICE = TRUE LIPSEȘTE!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q '"SPY_WHOIS" = "TRUE"' "$CONFIG_FILE"; then
|
||||||
|
log_success "SPY_WHOIS = TRUE găsit"
|
||||||
|
else
|
||||||
|
log_error "SPY_WHOIS = TRUE LIPSEȘTE (necesar pentru notificări complete)!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verifică snomask
|
||||||
|
if grep -q 'SNOMASK_OPERDEFAULT' "$CONFIG_FILE"; then
|
||||||
|
SNOMASK_OP=$(grep 'SNOMASK_OPERDEFAULT' "$CONFIG_FILE" | sed -E 's/.*"SNOMASK_OPERDEFAULT" = "([^"]+)".*/\1/')
|
||||||
|
log_success "SNOMASK_OPERDEFAULT = $SNOMASK_OP găsit"
|
||||||
|
else
|
||||||
|
log_error "SNOMASK_OPERDEFAULT LIPSEȘTE!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verifică operatori
|
||||||
|
echo ""
|
||||||
|
log_info "Verificare configurație operatori..."
|
||||||
|
|
||||||
|
if grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then
|
||||||
|
log_success "Privilegiul PRIV_WHOIS_NOTICE găsit pentru operatori"
|
||||||
|
else
|
||||||
|
log_error "Privilegiul PRIV_WHOIS_NOTICE LIPSEȘTE pentru operatori!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -A5 'Operator {' "$CONFIG_FILE" | grep -q 'snomask'; then
|
||||||
|
SNOMASK_OPER=$(grep -A10 'Operator {' "$CONFIG_FILE" | grep 'snomask' | head -1)
|
||||||
|
log_success "Snomask pentru operatori găsit: $SNOMASK_OPER"
|
||||||
|
else
|
||||||
|
log_error "Snomask pentru operatori LIPSEȘTE!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verifică clasa Opers
|
||||||
|
echo ""
|
||||||
|
log_info "Verificare clasa Opers..."
|
||||||
|
|
||||||
|
if grep -A10 'name = "Opers"' "$CONFIG_FILE" | grep -q 'usermode = "+Wx"'; then
|
||||||
|
log_success "Usermode +Wx găsit în clasa Opers (corect pentru notificări)"
|
||||||
|
else
|
||||||
|
if grep -A10 'name = "Opers"' "$CONFIG_FILE" | grep -q 'usermode = "+W"'; then
|
||||||
|
log_warn "Usermode +W găsit (ar trebui să fie +Wx pentru notificări complete)"
|
||||||
|
else
|
||||||
|
log_error "Niciun usermode +W găsit în clasa Opers!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Afișează setările actuale
|
||||||
|
echo ""
|
||||||
|
log_info "Setări WHOIS actuale în features:"
|
||||||
|
echo -e "${GALBEN}────────────────────────────────────────${NC}"
|
||||||
|
grep -A20 'features {' "$CONFIG_FILE" | grep -E 'WHOIS|SNOMASK' | head -10
|
||||||
|
echo -e "${GALBEN}────────────────────────────────────────${NC}"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
log_info "Configurație operatori actuală:"
|
||||||
|
echo -e "${GALBEN}────────────────────────────────────────${NC}"
|
||||||
|
sed -n '/^Operator {/,/^};$/p' "$CONFIG_FILE" | head -15
|
||||||
|
echo -e "${GALBEN}────────────────────────────────────────${NC}"
|
||||||
|
|
||||||
|
# Întrebă dacă să aplice reparațiile
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}Vrei să aplic reparațiile pentru notificări WHOIS? [y/N]:${NC}"
|
||||||
|
read -r apply_fixes
|
||||||
|
|
||||||
|
if [[ "$apply_fixes" =~ ^[Yy]$ ]]; then
|
||||||
|
echo ""
|
||||||
|
echo -e "${VERDE}═══ APLICARE REPARAȚII NOTIFICĂRI WHOIS ═══${NC}"
|
||||||
|
|
||||||
|
# Backup
|
||||||
|
cp "$CONFIG_FILE" "$CONFIG_FILE.backup.whois.$(date +%s)"
|
||||||
|
log_success "Backup creat"
|
||||||
|
|
||||||
|
# 1. Adaugă sau corectează features pentru WHOIS
|
||||||
|
log_info "Configurez features pentru notificări WHOIS..."
|
||||||
|
|
||||||
|
if ! grep -q '"SPY_WHOIS"' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug SPY_WHOIS pentru notificări complete..."
|
||||||
|
sed -i '/"WHOIS_NOTICE" = "TRUE"/a\ "SPY_WHOIS" = "TRUE";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q '"SNOMASK_OPERDEFAULT"' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug SNOMASK_OPERDEFAULT..."
|
||||||
|
sed -i '/"SPY_WHOIS" = "TRUE"/a\ "SNOMASK_OPERDEFAULT" = "1024";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q '"SNOMASK_DEFAULT"' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug SNOMASK_DEFAULT..."
|
||||||
|
sed -i '/"SNOMASK_OPERDEFAULT"/a\ "SNOMASK_DEFAULT" = "1024";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_success "Features WHOIS configurate"
|
||||||
|
|
||||||
|
# 2. Configurează operatorii cu privilegii WHOIS
|
||||||
|
log_info "Configurez operatorii cu privilegii WHOIS..."
|
||||||
|
|
||||||
|
if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then
|
||||||
|
log_info "Adaug privilegii WHOIS pentru operatori..."
|
||||||
|
# Găsește secțiunea Operator și adaugă privilegiile
|
||||||
|
sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_success "Privilegii WHOIS pentru operatori configurate"
|
||||||
|
|
||||||
|
# 3. Actualizează clasa Opers
|
||||||
|
log_info "Actualizez clasa Opers cu usermode +Wx..."
|
||||||
|
|
||||||
|
# Găsește și actualizează usermode în clasa Opers
|
||||||
|
sed -i '/name = "Opers"/,/}/ s/usermode = "[^"]*"/usermode = "+Wx"/' "$CONFIG_FILE"
|
||||||
|
|
||||||
|
log_success "Clasa Opers actualizată cu +Wx"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${VERDE}═══ TEST FINAL ═══${NC}"
|
||||||
|
|
||||||
|
# Test sintaxă
|
||||||
|
if [ -x "$PREFIX/bin/ircd" ]; then
|
||||||
|
log_info "Test sintaxă configurație..."
|
||||||
|
if "$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" > /dev/null 2>&1; then
|
||||||
|
log_success "✓ Sintaxă configurație validă!"
|
||||||
|
else
|
||||||
|
log_error "✗ Erori în sintaxă găsite:"
|
||||||
|
"$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" 2>&1 | head -10
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${VERDE}════════════════════════════════════════${NC}"
|
||||||
|
echo -e "${VERDE} NOTIFICĂRI WHOIS REPARATE!${NC}"
|
||||||
|
echo -e "${VERDE}════════════════════════════════════════${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}Pași următori:${NC}"
|
||||||
|
echo "1. Restart server: $PREFIX/bin/ircd restart"
|
||||||
|
echo "2. Fă-te operator: /oper username parola"
|
||||||
|
echo "3. Verifică că primești +W: /mode nickname"
|
||||||
|
echo "4. Testează: askă pe cineva să-ți dea /whois"
|
||||||
|
echo ""
|
||||||
|
echo -e "${VERDE}Ar trebui să primești notificarea:${NC}"
|
||||||
|
echo -e "${ALBASTRU}*** Notice: nickname (user@host) is doing a WHOIS on you${NC}"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
log_info "Reparații anulate. Pentru aplicare manuală:"
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}Setări necesare în features:${NC}"
|
||||||
|
echo ' "OPER_WHOIS_PARANOIA" = "TRUE";'
|
||||||
|
echo ' "WHOIS_NOTICE" = "TRUE";'
|
||||||
|
echo ' "SPY_WHOIS" = "TRUE";'
|
||||||
|
echo ' "SNOMASK_OPERDEFAULT" = "1024";'
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}În secțiunea Operator:${NC}"
|
||||||
|
echo ' snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";'
|
||||||
|
echo ' privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";'
|
||||||
|
echo ""
|
||||||
|
echo -e "${GALBEN}În clasa Opers:${NC}"
|
||||||
|
echo ' usermode = "+Wx";'
|
||||||
|
fi
|
||||||
|
|
@ -675,10 +675,12 @@ Operator {
|
||||||
# Clasă
|
# Clasă
|
||||||
class = "Opers";
|
class = "Opers";
|
||||||
|
|
||||||
# Permisiuni
|
# Permisiuni și notificări
|
||||||
admin = yes;
|
admin = yes;
|
||||||
hide_oper = no;
|
hide_oper = no;
|
||||||
hide_channels = no;
|
hide_channels = no;
|
||||||
|
snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";
|
||||||
|
privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";
|
||||||
};
|
};
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -790,6 +792,9 @@ features {
|
||||||
|
|
||||||
# WHOIS notifications for operators
|
# WHOIS notifications for operators
|
||||||
"WHOIS_NOTICE" = "TRUE";
|
"WHOIS_NOTICE" = "TRUE";
|
||||||
|
"SPY_WHOIS" = "TRUE";
|
||||||
|
"SNOMASK_OPERDEFAULT" = "1024";
|
||||||
|
"SNOMASK_DEFAULT" = "1024";
|
||||||
};
|
};
|
||||||
|
|
||||||
EOFCONFIG
|
EOFCONFIG
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue