Forum
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.
Zamanlanmış görev ile ilgili sunucuyu kapatabilirsin.
Sunucunuz HP ise ilo port ile erişip açabilirsin.
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.
Bu da Python scripti
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)
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.
*****************************************************************