Forum

Localde Sql serverı...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Localde Sql serverı kapatıp açmak

5 Yazılar
4 Üyeler
0 Reactions
33 Görüntüleme
(@zafer133)
Gönderiler: 13
Eminent Member
Konu başlatıcı
 

Merhaba arkadaşlar, Sunucum depoda aynı ip bloğundayım. 1433 portum açık ama akşamları depoya gidip  NET STOP ile kapatıyorum. bunu kendi bilgisayarımdan kapatmak istiyorum. sunucunun uzak masaüstünü kapattık kullanmıyoruz. bir kaç defa personel uzakmasütü ile sunucuya bağlandı bu sorunlardan sıkıldık diye kapalı. şirket yapımızda 5 terminal var. küçük bir işletme.  uzak masaüstü olmadan kapatmanın başka bir yolu var mı? sabahlarıda açmak istiyorum. internetten araştırdım bir yolunu bulamadım her yerde sunucuya uzak masa üstü diyor yada sunucu başında yapılması lazımmış. birde sunucuya hangi ip bağlanmış bunu gösteren yada bildirim veren bir uygulama var mı ücretsiz olarak. 

Şimdiden teşekkür ediyorum bilginiz için.

 
Gönderildi : 25/02/2025 10:54

(@eroldursun)
Gönderiler: 2212
Famed Member
 

Zamanlanmış görev ile ilgili sunucuyu kapatabilirsin.

Sunucunuz HP ise ilo port ile erişip açabilirsin.

 

 

 
Gönderildi : 25/02/2025 11:53

(@omercolakoglu)
Gönderiler: 72
Estimable Member
 

Merhaba,

Şöyle bir şey yapabilirsin. Sunucuya mail atarak portu açıp kapatabilirsin. Aşağıdaki Python scripti makinede bir bat dosyası olarak otomatik olarak çalışır ve senin belirleyeceğin bir mail adresini dinler. 

Sen ona belli bir mail adresinden mail atarsın ve mail içinde SQL Pasif yazarsan firewall a kural ekler SQL Aktif yazarsan kuralı iptal eder.

image
image
image
image
image
image
 
Gönderildi : 25/02/2025 13:17

(@omercolakoglu)
Gönderiler: 72
Estimable Member
 

Bu da Python scripti

image
import imaplib
import email
import smtplib
import os
import time
from email.mime.text import MIMEText

# E-posta hesap bilgileri
EMAIL_USER = "[email protected]" # Dinlenecek mail adresi
EMAIL_PASS = "iguxxxxxxxx" #Eğer gmail kullanıyorsanız uygulama şifresi yok yerel bir mail kullanıyorsanız mail şifresi
IMAP_SERVER = "imap.gmail.com"
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587  # Genellikle 587 veya 465 kullanılır

def check_email():
    try:
        # Mail sunucusuna bağlan
        mail = imaplib.IMAP4_SSL(IMAP_SERVER)
        mail.login(EMAIL_USER, EMAIL_PASS)
        mail.select("inbox")

        # Son e-postayı al
        result, data = mail.search(None, "UNSEEN")  # Yalnızca okunmamış e-postaları al
        email_ids = data[0].split()

        if not email_ids:
            mail.logout()
            print("yeni posta yok")
            return  # Yeni e-posta yoksa çık
        else:
            print("yeni posta geldi")

        for email_id in email_ids:
            result, data = mail.fetch(email_id, "(RFC822)")
            raw_email = data[0][1]

            msg = email.message_from_bytes(raw_email)
            sender_email = msg["From"]
            subject = msg["Subject"]
            
            body = ""
            

            if msg.is_multipart():
                for part in msg.walk():
                    if part.get_content_type() == "text/plain":
                        body = part.get_payload(decode=True).decode()
            else:
                body = msg.get_payload(decode=True).decode()
                command=""

            print("-------------------Yeni mesaj alındı-----------------")
            print("Kimden:"+sender_email)
            print("Konu:"+subject)
            print("İçerik:"+body)
            if "SQL Pasif" in body:
                print("İşlenecek komut:1433 portunu kapat")
                command="close"
            if "SQL Aktif" in body:
                print("İşlenecek komut:1433 portunu Aç")      
                command="open"
            if command=="":
                print("İşlenecek komut:Yok")    


            # Gelen komutları kontrol et
            if "[email protected]" in sender_email:


                if command=="close":
                    print (command)
                    os.system("netsh advfirewall firewall add rule name=SQLKapatTCP dir=in action=block protocol=TCP localport=1433")
                    os.system("netsh advfirewall firewall add rule name=SQLKapatUDP dir=in action=block protocol=UDP localport=1433")
 

                    send_response(sender_email, "1433 Portu kapatıldı!")
                    print("port kapatıldı")
                elif command=="open":
                    os.system("netsh advfirewall firewall delete rule name=SQLKapatTCP")
                    os.system("netsh advfirewall firewall delete rule name=SQLKapatUDP")
                    print("port açıldı")
                    send_response(sender_email, "1433 Portu açıldı!")
                else:
                    send_response(sender_email, "Geçersiz komut! 'Aç' veya 'Kapat' yazmalısınız.")
                    print("Geçersiz komut! 'Aç' veya 'Kapat' yazmalısınız.")
        mail.logout()

    except Exception as e:
        send_response(EMAIL_USER, f"Bir hata oluştu: {str(e)}")

def send_response(to_email, message):
    try:
        smtp_server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        smtp_server.starttls()
        smtp_server.login(EMAIL_USER, EMAIL_PASS)

        msg = MIMEText(message)
        msg["Subject"] = "SQL Port Yönetimi - Geri Bildirim"
        msg["From"] = EMAIL_USER
        msg["To"] = to_email

        smtp_server.sendmail(EMAIL_USER, to_email, msg.as_string())
        smtp_server.quit()
    except Exception as e:
        print(f"E-posta gönderme hatası: {str(e)}")

# Ana fonksiyonu çağır
while 1==1: 
    check_email()
    time.sleep(10)
 
Gönderildi : 25/02/2025 13:19

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33507
Illustrious Member Yönetici
 

Merhaba, Ömer hocam show yapmış tabi ki ama daha kurumsal çözümler kullanmanızı öneririm, yani port kapatmak yerine air gap denilen network katmanında önlemler alabilirsiniz ama tabi bunların maliyetleri yüksek. Kolaylıklar.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 25/02/2025 13:27

Paylaş: