En iyi Webmaster forumlari.
iyilerin buluşma noktasi.

Proxy koruma

Başlatan Administrator, Tem 28, 2025, 12:14 ÖÖ

« önceki - sonraki »

Administrator

  # proxy_onconnect.tcl - Kullanıcı sunucuya bağlandığında IP'sini kontrol eder (on-connect)
# Eğer proxy.txt veya DNSBL eşleşmesi varsa, kullanıcı IRC'den atılır.

set proxylist "proxy.txt"
set dnsbl_servers {
    "dnsbl.dronebl.org"
    "dnsbl.tornevall.org"
    "rbl.efnetrbl.org"
    "dnsbl.proxybl.org"
}

bind raw - "NICK" proxy:onconnect_check

proc proxy:onconnect_check {from keyword text} {
    # Gelen kullanıcıyı ayrıştır (nick, ident, host)
    if {[regexp {^:?([^!]+)!([^@]+)@(.+)} $text -> nick ident host]} {
        set ip [proxy:getip $host]
        if {$ip eq ""} return

        # Local proxy.txt kontrol
        if {[proxy:checklist $ip]} {
            putlog "proxy_onconnect: $nick -> IP $ip = proxy.txt eşleşmesi"
            proxy:kickuser $nick "Proxy bağlantı tespit edildi (local)"
            return
        }

        # DNSBL kontrol
        foreach dnsbl $::dnsbl_servers {
            if {[proxy:dnsbl_check $ip $dnsbl]} {
                putlog "proxy_onconnect: $nick -> IP $ip = $dnsbl eşleşmesi"
                proxy:kickuser $nick "Blacklist ($dnsbl)"
                return
            }
        }
    }
}

proc proxy:getip {host} {
    if {[regexp {(\d+\.\d+\.\d+\.\d+)} $host -> ip]} {
        return $ip
    }
    return ""
}

proc proxy:checklist {ip} {
    if {![file exists $::proxylist]} { return 0 }
    set f [open $::proxylist r]
    set data [split [read $f] "\n"]
    close $f
    return [expr {$ip in $data}]
}

proc proxy:dnsbl_check {ip dnsbl} {
    set parts [split $ip "."]
    if {[llength $parts] != 4} { return 0 }
    set revip "[lindex $parts 3].[lindex $parts 2].[lindex $parts 1].[lindex $parts 0].$dnsbl"
    set result [dnslookup $revip]
    return [expr {$result ne ""}]
}

proc proxy:kickuser {nick reason} {
    # Kullanıcıyı IRC'den atmak için NOTICE + QUIT veya ircd'ye göre KILL/AKILL kullanılabilir
    putserv "NOTICE $nick :Güvenlik uyarısı: $reason"
    putserv "KILL $nick :Proxy / Tor bağlantılar yasaktır"
}
 
Webmasterforumlari.com yorumlarınız değerlidir..